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

2 instances of pimd - wrong second gateway to RP #75

Open
Kzibi opened this issue Mar 30, 2016 · 5 comments
Open

2 instances of pimd - wrong second gateway to RP #75

Kzibi opened this issue Mar 30, 2016 · 5 comments

Comments

@Kzibi
Copy link

Kzibi commented Mar 30, 2016

pimd -v 2.3.1

Same RP for both subnets - 10.200.200.20
First run in default table,second run in it's own table.
Debug:

Virtual Interface Table ====
Vif  Local Address    Subnet              Thresh  Flags      Neighbors

---

  0  192.168.80.1     192.168.80/30            1  DISABLED
  1  81.210.7.6       81.210.7.4/30            1  DISABLED
  2  10.201.230.2     10.201.230/30            1  DISABLED
  3  10.204.32.1      10.204.32/23             1  DISABLED
  4  10.200.51.26     10.200.51.24/30          1  DR PIM     10.200.51.25  
  5  10.205.110.1     10.205.110/23            1  DR NO-NBR
  6  10.200.51.26     register_vif0            1 

 Vif  SSM Group        Sources             

NETLINK: ask path to 10.200.200.20
NETLINK: vif 2, ifindex=58
NETLINK: gateway is 10.201.230.1
For src 10.200.200.20, iif is 2, next hop router is 10.201.230.1: NOT A PIM ROUTER

10.201.230.1 - wrong; it's from 1st instance/net
should be 10.200.51.25
unicast routing is fine,

@troglobit
Copy link
Owner

Thank you for the report. Maybe @idismmxiv or @markusve can better answer this one?

@Kzibi
Copy link
Author

Kzibi commented Mar 31, 2016

hmm ... @idismmxiv or @markusve - 1 month no activities ;(
I will try run both pim daemons in not default routing table and see what happens

@troglobit
Copy link
Owner

@Kzibi that could actually very well help! I'm unfortunately not up to speed on how Linux's CONFIG_IP_MROUTE_MULTIPLE_TABLES works, but I can imagine that both instances must run in their own table, and none of them in the default table.

Would be awesome to hear back from you if that works, then I can update the docs and we can clarify this issue for future improvement, i.e. add detection of more pimd instances and warn the user.

@idismmxiv
Copy link
Contributor

I might be wrong, but this is how I see the case.
To be able to run multiple pimd instances, you need to have multiple multicast routing tables. One for each instance. But currently pimd does not support multiple unicast routing tables. I have used multiple pimd instances with multiple multicast routing tables, but newer trying to share single IP (like RP address in this case) in both instances.

I suppose there is a room for improvement in netlink.c to handle unicast route queries based on multiple routing tables. Or to use LInux namespaces, but I haven't tried that.

@Kzibi
Copy link
Author

Kzibi commented Apr 17, 2016

So ;) .. I try ... no success

but newer trying to share single IP (like RP address in this case) in both instances.

this is the clue
I think, that pimd (netlink) should use only if's from conf file and do some test like ex.:
ip route li table xx | grep RP
OR
ip route get RP oif from_config ( it need's output interface name not address in config file).

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

3 participants