7

My Server and Client softwares run both on Linux.
The Server broadcasts multicast, the Client listens multicast.

My Client has to migrate to another site,
and unfortunately multicast is not allowed between the two sites :-(

How to convey multicast between the two sites?
- Through TCP or UDP?
- What tools do you recommend?
- What about latency?

I received an good answer about Cisco configuration (GRE),
but one of the network teams do not want to monitor/maintain it,
=> when transmission will break, support team will spend too many hours to understand and repair.
=> So, what should be the best alternative to GRE?

Is there a solution based on Linux kernel features
or on network card capabilities? (low latency is important)
Usage examples are appreciated :-)


multicast channel: 225.1.0.1:6666


Related questions

oHo
  • 595

5 Answers5

9

Some routers will allow for multicast traffic to be tunnelled across IP network links. Both ends of the tunnel will have to be configured accordingly. Cisco in particular supports tunneling multicast traffic over GRE links. Here's an in article about how to achieve that Cisco

4

I am not sure to understand your graphic in your question, but as far as I understood, you need to forward multicast packet through TCP ? A tool oriented solution may involve socat:

For instance, multicast channel is 224.1.0.1:6666.

On the Server host (IP=SS.SS.SS.SS):

$socat -v UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:CC.CC.CC.CC,fork TCP:destination.hostname:4444

On the Client host (IP=CC.CC.CC.CC):

$socat -v TCP-LISTEN:4444,fork UDP4-DATAGRAM:224.1.0.1:6666,range=SS.SS.SS.SS/24

I let you check how to tune parameters with the socat manual. It is quite straightforward once you know you MULTICAST GROUP and your network interface's ip adresses. :-)

4

It is possible, but using a stream protocol like TCP is not a good idea for reasons that multiple congestion implementations (once from TCP and another time from programs attempting utilizing UDP in a smart fashion)[1].

The possibilities you have are tunneled solutions e.g. OpenVPN+TAP (with UDP transport), or GRE, or even things like L2TP. [I wonder if IPIP/IP6IP6 tunneling would work as well.]

3

Linux kernel oriented solution:

mrouted is a deamon which get any multicast packets and tells the kernel where to forward them. You will need to recompile your linux kernel with a specific patch and the right options. Then configure the mrouted daemon. Get more details in the Linux-Mrouted-MiniHOWTO.html .

A good reference is the multicast howto, good reading.

Hope it helps.

1

Steve Miller has posted good tutorial for your issue. Hope this will help you!