General IPv6 Topics > IPv6 on Linux & BSD & Mac

Joining Router to all-routers multicast

(1/2) > >>

fukawi2:
My searching has returned nothing, so I apologize if this is answered, but I have been unable to find the information.

I have a pair of CentOS 6 boxes acting as a H/A perimeter firewall/router, using keepalived to control the Master/Slave operation. I have native IPv6 connectivity, and the boxes handle the routing and firewalling fine, using radvd to send router advertisements and isc dhcpd to handle out leases. (Both radvd and dhcpd are stopped/started by keepalived in accordance with which box is master and which is slave)

All is working well, however the boxes do not respond to FF01::2 "all-routers" address so I have a few of questions regarding that:

1. Should they respond to all-routers address? (Just the master, or both boxes?)
2. What are implications of them not being part of that address since everything is already working?
3. How do I get them to join that address?

snarked:

--- Quote from: fukawi2 on July 15, 2012, 03:56:14 PM ---...  All is working well, however the boxes do not respond to FF01::2 "all-routers" address so I have a few questions....
--- End quote ---

Did you try FF02::2?

fukawi2:
I'm assuming that was a typo on my behalf in my original post.  FF02::2 still doesn't work:

--- Code: ---fw1 ~ # ip a a ff02::2/16 dev bond0.42
RTNETLINK answers: Cannot assign requested address
fw1 ~ # ip a a ff02::2 dev bond0.42
RTNETLINK answers: Cannot assign requested address
fw1 ~ # ip a a ff02::2/64 dev bond0.42
RTNETLINK answers: Cannot assign requested address
--- End code ---

snarked:
Next issue: Are they configured as multicast routers?  That requires an additional kernel configuration item (and if you use modules, an additional module need be loaded).  The configuration item is called CONFIG_IP_MROUTE, so look for a module with "mroute" in its name if you use modules.  (CentOS uses the Linux kernel).

You cannot assign a multicast address to an interface as it is not valid to use as a SOURCE address.  "netstat -g" will tell you for which multicast addresses you're listening.

fukawi2:
Thanks for your help on this :)

These are CentOS boxes; that kernel option is enabled:

--- Code: ---fw1 ~ # grep CONFIG_IP_MROUTE /boot/config-2.6.32-696.13.2.el6.x86_64
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
--- End code ---

It appears the boxes have joined the multicast group, but only on some interfaces:

--- Code: ---fw1 ~ # netstat -g | grep ip6-allrouters
eth0            1      ip6-allrouters
eth1            1      ip6-allrouters
eth2            1      ip6-allrouters
eth3            1      ip6-allrouters
bond0.3114      1      ip6-allrouters
bond0.3115      1      ip6-allrouters
bond0.3116      1      ip6-allrouters
bond0.3199      1      ip6-allrouters
--- End code ---
Other interfaces not listed above: bond0.20, bond0.42, bond0.3111, bond0.3112, bond0.3118, bond0.3130

So, how does the kernel decide which interfaces to join on?  Nothing stands out to me as being different between these interfaces.

Navigation

[0] Message Index

[#] Next page

Go to full version