pimd icon indicating copy to clipboard operation
pimd copied to clipboard

2 instances of pimd - wrong second gateway to RP

Open Kzibi opened this issue 9 years ago • 5 comments

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,

Kzibi avatar Mar 30 '16 14:03 Kzibi

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

troglobit avatar Mar 30 '16 15:03 troglobit

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

Kzibi avatar Mar 31 '16 13:03 Kzibi

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

troglobit avatar Mar 31 '16 13:03 troglobit

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.

idismmxiv avatar Mar 31 '16 14:03 idismmxiv

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

Kzibi avatar Apr 17 '16 17:04 Kzibi