Convey multicast (to another LAN) through WAN disabling multicast

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

    current network diagram http://ditaa.org/ditaa/render?grid=%2B---------%2B+%2B---------%2B%0D%0A%7C+Server++%7C+%7C+Client++%7C%0D%0A%7C+sends+++%7C+%7C+listens+%7C%0D%0A%7Cmulticast%7C+%7Cmulticast%7C%0D%0A%7C+++IP1+++%7C+%7C++IP2++++%7C%0D%0A%2B----%2B----%2B+%2B---%2B-----%2B%0D%0A+++++%7C++++++++++%7C%0D%0A+++++%2B%2B---------%2B%0D%0A++++++%7CLAN+of+site+1%0D%0A++++++%7C%0D%0A++++++%2B---------------------WAN

  • Future: Server and Client, each one on a different site

    Future network diagram http://ditaa.org/ditaa/render?grid=%2B---------%2B+%2B---------%2B+++++++++%2B-----------%2B%0D%0A%7C+Server++%7C+%7C+++++++++%7C+++++++++%7C+new+host++%7C++%0D%0A%7C+sends+++%7C+%7C+++++++++%7C+++++++++%7C+for+Client%7C++%0D%0A%7Cmulticast%7C+%7C+++++++++%7C+++++++++%7C+++++++++++%7C++%0D%0A%7C+++IP1+++%7C+%7C+++++++++%7C+++++++++%7C+IP3+++++++%7C+++%0D%0A%2B----%2B----%2B+%2B---%2B-----%2B+++++++++%2B--%2B--------%2B%0D%0A+++++%7C++++++++++%7C++++++++++++++++++%7C++++++++++++%7C%0D%0A+++++%2B%2B---------%2B++++++++++++++++++%2B%2B-----------%2B-%0D%0A++++++%7CLAN+of+site+1++++++++++++++++%7CLAN+of+site+2%0D%0A++++++%7C+++++++++++++++++++++++++++++%7C%0D%0A++++++%2B-----------------------------%2B%0D%0A++++++++++++++++++++++++++++WAN

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
  • ...

Solution 1:

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. :-)

Solution 2:

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