troglobit / pimd

PIM-SM/SSM multicast routing for UNIX and Linux
http://troglobit.com/projects/pimd/
BSD 3-Clause "New" or "Revised" License
194 stars 86 forks source link

PIMD not sending Pim Join #161

Closed miiguelpereiraa closed 3 years ago

miiguelpereiraa commented 3 years ago

Hi,

I'm working with the topology below.

topo

This topology is mounted using mininet in a VM running CentOS 7. R1, R2 and R3 are 3 hosts running pimd and S1 is a OVS switch controlled by ONOS, running a PIM app. In the test that I'm trying to do, all routers detect each other has PIM Neighbours, but when R1 (running pimd) receives a PIM Join message at interface 1, sent by S1 (H1 is interested in receiving data from H2(10.0.2.1), group 232.0.0.1), it doesn't send a PIM Join Message to R2 to build the multicast tree (prints below).

r1

R1_routes

Could you please help me solve this problem?

Thank you very much in advance.

troglobit commented 3 years ago

I can get this to work in CORE, using a very similar setup to yours. I don't have OVS on S1 though, that's the only difference.

You didn't mention what version of pimd you are running, I'm running the latest master (unreleased v3.0), which has many fixes compared to v2.3.2. Neither did you mention what pimd.conf looks like. I use no config at all, relying on the built-in defaults.

In CORE I set up OSPF on all routers to get a unicast networking up and running. Then I started all pimd instances, followed by all the senders on H2 (ping -t 64 232.0.0.1) and H3 (ping -t 64 225.1.2.3). Both SSM and ASM can be received by H1.

Note: I posted another reply a few minutes ago which I just deleted because I just found I had been using the wrong group on the receiver, H1.

miiguelpereiraa commented 3 years ago

Hi,

I'm using the latest master version of pimd. I'm also not using any config file, relying on the built-in defaults. The only difference is that I'm not using OSPF to build the unicast routes. Instead, I'm using static routes. To generate the multicast traffic I'm using mcjoin. I made another test with a ASM range IP (225.0.0.1) and I have the same problem. I also tested joining the group with H3 and the problem is the same, the router R3 sends a PIM Join to R1, but R1 doesn't send a PIM Join to R2. Could the problem be related to using static routes? Do I need to use a dynamic routing protocol like OSPF to build the routes?

Thank you.

troglobit commented 3 years ago

OK, so same as me then, presumably.

Statically or dynamically populated routing tables makes no difference, pimd queries the kernel using netlink for active routes to find the reverse-path back to the source. So as long as you can ping from all ends of the network, i.e. ability to ping H1-H3, H1-H2 and H2-H3 it should work.

Have you tried a smaller setup first with only pimd routers?

miiguelpereiraa commented 3 years ago

Hi,

I tried a smaller setup with only pimd routers and I discovered that the problem was in the static routes that I configured. When I configured them correctly, pimd started to send PIM Join messages.

Thank you very much for the help.

troglobit commented 3 years ago

Nice! Thanks for getting back to updating this issue, I'm closing it now :)