Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odd Join/Prune interaction #130

Open
ruckc opened this issue Nov 13, 2018 · 1 comment
Open

Odd Join/Prune interaction #130

ruckc opened this issue Nov 13, 2018 · 1 comment

Comments

@ruckc
Copy link

ruckc commented Nov 13, 2018

So, in our environment, with two pimd routers, we see an oddity, as our one of our MC Producer joins the group it is sending to.

image

So, in the above picture, the MC Producer, also is joining the group, creating an IGMP join to it's local the DR. So when the consumer joins the group, the RP, ends up outputting the multicast traffic on both interfaces, back to the originating DR, and to the MC Consumer.

It appears this join causing the RP pimd to send it back to the DR is from the DR's join/prune, that is joining the group's RP address with (SWR) flags, and pruning it's source with (SR) flags.

In pimd -r (and pimctl compat) we see the (*,G) route with a join and outgoing to the interface back to the DR, and on the (S,G) route we see that interface with a and prune.

So, while we completely recognize that the MC Producer shouldn't be joining the group, we don't understand why pimd is sending the pruned (S,G) data back to the DR, even though it has a (*,G) join.

@troglobit
Copy link
Owner

Not sure really, pimd was originally written a long time ago, based on RFC 2362. I believe the original idea was to forward all multicast to the RP and then have end devices join via the RP, when a threshold was reached an SPT switchover is triggered which would alla shortest-path tree to be constructed instead.

However, legacy aside, it could also be a bug that causes this. You're more than welcome to look into this since my time with this project is rather limited for the time being.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants