Giter Site home page Giter Site logo

Comments (3)

Bischoff avatar Bischoff commented on June 15, 2024 1

Original pointer seems dead. Here is a new one:

http://www.textndata.com/forums/mrouted-igmp-linux-102561.html

from mrouted.

sbrobson avatar sbrobson commented on June 15, 2024

I've been having the exact same problem on my Gentoo (2.6.34-gentoo-r12) gateway box.

My network looks as follows:
hostA -> LinuxGW -> "public" network -> FreeBSDGW -> hostB
Both GWs have an instance of mrouted running.

If I broadcast from hostA and listen on hostB, then hostB gets the broadcast. However if I broadcast from hostB, listening on hostA, then I see that the traffic only gets as far as the public interface of the LinuxGW. The Linux kernel refuses to forward the traffic. I compiled my kernel with multicast, multicast routing and the advanced router. I also disabled the firewall. IP forwarding and multicast forwarding are enabled on all the interfaces in question.

Running mrouted in debug mode, I see that the IGMPv2 join messages arrive. Also by dumping mrouted's routing table, I see that the group is correctly added on the private interface. However, the cache table always remains empty. Checking the kernel's cache via ip mroute or /proc/net/ip_mr_cache, I can verify that it is also empty.

I've also tried a number of static routes to try and convince the kernel to forward the traffic, but to no avail.

Lastly, I've tried mrouted 3.9beta3, 3.9.2 and 3.9.4.

If anyone has any ideas on how to solve this one, they would be much appreciated.

from mrouted.

troglobit avatar troglobit commented on June 15, 2024

Latest pointer to the original post now seems to be https://www.network-builders.com/threads/mrouted-and-igmp-on-linux.48959/

However, I cannot replicate any issues with this. My guess is that this was either fixed after 3.9.4, or that my IP-in-IP tunnel¹ setup is what solves the issue. Its use wasn't mentioned in either the forum post or here by @sbrobson so maybe it was a simple case of an oversight.

My test setup uses three routers in one line, the middle one is used to simulate the Internet or an intranet. The outermost routers have two hosts, one on each side, one sender and one receiver:

 H1 -----> R1 ------> R2 ------> R3 -----> H2

Only R1 and R3 run mrouted. All routers do however run OSPF, but that's just to get unicast working so I can verify the topology with ping. With DVMRP we have a sort-of stripped down RIP included, so mrouted is stand-alone in that regard (compared to PIM which requires an underlying unicast routing protocol first).

Nothing in the above setup works until I add a tunnel config to mroute.conf on R1 and R3, sort of like this:

R1: mrouted.conf
tunnel 10.0.0.1 10.0.2.1 metric 1 threshold 1 rate_limit 0

R2: mrouted.conf
tunnel 10.0.2.1 10.0.0.1 metric 1 threshold 1 rate_limit 0

The tunnel gets its own VIF in mrouted and routes are established as soon as H2 sends an IGMP join for the given multicasdt group I transmit as plain UDP from H1.

Sure, I have no firewall in place, this is plain routing, but I'm pretty confident the issue here was the lack of the IP-in-IP tunnel, which is documented in the man page.

(closing issue)


¹ built-in feature if enabled with tunnel directive in mrouted.conf

from mrouted.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.