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 :-)
Currently: Server and Client on the same site
Future: Server and Client, each one on a different site
multicast channel: 225.1.0.1:6666
Related questions
- UPD Multicast (Class D) = How can this be routed over the internet?
- IGMP/Multicast routing in Linux
- Multicast accross the subnets and RSVP answer
- Multiple GRE NAT router and "Multiple VPN limitation" link
- ...
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
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):
On the Client host (IP=CC.CC.CC.CC):
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. :-)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.]
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 themrouted
daemon. Get more details in the Linux-Mrouted-MiniHOWTO.html .A good reference is the multicast howto, good reading.
Hope it helps.
Steve Miller has posted good tutorial for your issue. Hope this will help you!