IPv6 bridge routing issue on boot
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 18 Oct 2021 18:08:30 UTC
I am running into some weird behavior with bridge devices and IPv6 on Boot. I have a system with three bridge devices 2 of which get IPv6 addresses from DHCPv6 and one that is statically assigned. The two bridges that are configured by dhcpd function fine. The bridge that is statically addressed comes up, but the directly connected network route doesn't get added. # uname -a FreeBSD router 13.0-RELEASE-p4 FreeBSD 13.0-RELEASE-p4 #0: Tue Aug 24 07:33:27 UTC 2021 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 # ifconfig -a -g bridge bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 58:9c:fc:10:ff:d5 inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 inet6 fe80::17bf:5f9b:57c1:8d65%bridge0 prefixlen 64 scopeid 0x6 inet6 xxxx:xxxx:4b7f:2100::1 prefixlen 64 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: igb3 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 4 priority 128 path cost 2000000 member: igb2 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 3 priority 128 path cost 2000000 member: igb1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 2 priority 128 path cost 2000000 groups: bridge nd6 options=1<PERFORMNUD> jailpub: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 58:9c:fc:10:ff:b1 inet6 fe80::b559:d5ee:5947:4033%jailpub prefixlen 64 scopeid 0x7 inet6 xxxx:xxxx:4b7f:2101::1 prefixlen 64 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: vwpuba flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 9 priority 128 path cost 2000 groups: bridge nd6 options=1<PERFORMNUD> jailpriv: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 ether 58:9c:fc:10:a3:14 inet6 fd09:fce8:b9e8:7d96::1 prefixlen 64 inet6 fe80::5a9c:fcff:fe10:a314%jailpriv prefixlen 64 scopeid 0x8 id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: vwpriva flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP> ifmaxaddr 0 port 11 priority 128 path cost 2000 groups: bridge nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> # netstat -6 -r -n Routing tables Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 default fe80::201:5cff:fe95:4e46%igb0 UG igb0 ::1 link#5 UHS lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 xxxx:xxxx:4002:300::/64 fe80::201:5cff:fe95:4e46%igb0 UG igb0 xxxx:xxxx:4002:300:b971:8222:f615:cdbb link#1 UHS lo0 xxxx:xxxx:4b7f:2100::/64 link#6 U bridge0 xxxx:xxxx:4b7f:2100::/56 ::1 UGR lo0 xxxx:xxxx:4b7f:2100::1 link#6 UHS lo0 xxxx:xxxx:4b7f:2101::/64 link#7 U jailpub xxxx:xxxx:4b7f:2101::1 link#7 UHS lo0 fd09:fce8:b9e8:7d96::1 link#8 UHS lo0 fe80::/10 ::1 UGRS lo0 fe80::%igb0/64 link#1 U igb0 fe80::2e0:67ff:fe23:2878%igb0 link#1 UHS lo0 fe80::%lo0/64 link#5 U lo0 fe80::1%lo0 link#5 UHS lo0 fe80::%bridge0/64 link#6 U bridge0 fe80::17bf:5f9b:57c1:8d65%bridge0 link#6 UHS lo0 fe80::%jailpub/64 link#7 U jailpub fe80::b559:d5ee:5947:4033%jailpub link#7 UHS lo0 fe80::%jailpriv/64 link#8 U jailpriv fe80::5a9c:fcff:fe10:a314%jailpriv link#8 UHS lo0 ff02::/16 ::1 UGRS lo0 Both jailpub and jailpriv have /64 routes. There is no route for fd09:fce8:b9e8:7d96::/64. If I do # /etc/rc.d/netif restart jailpriv # netstat -rn6 Routing tables Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 default fe80::201:5cff:fe95:4e46%igb0 UG igb0 ::1 link#5 UHS lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 2600:6c67:4002:300::/64 fe80::201:5cff:fe95:4e46%igb0 UG igb0 2600:6c67:4002:300:b971:8222:f615:cdbb link#1 UHS lo0 2600:6c67:4b7f:2100::/64 link#6 U bridge0 2600:6c67:4b7f:2100::/56 ::1 UGR lo0 2600:6c67:4b7f:2100::1 link#6 UHS lo0 2600:6c67:4b7f:2101::/64 link#7 U jailpub 2600:6c67:4b7f:2101::1 link#7 UHS lo0 fd09:fce8:b9e8:7d96::/64 link#8 U jailpriv fd09:fce8:b9e8:7d96::1 link#8 UHS lo0 fe80::/10 ::1 UGRS lo0 fe80::%igb0/64 link#1 U igb0 fe80::2e0:67ff:fe23:2878%igb0 link#1 UHS lo0 fe80::%lo0/64 link#5 U lo0 fe80::1%lo0 link#5 UHS lo0 fe80::%bridge0/64 link#6 U bridge0 fe80::17bf:5f9b:57c1:8d65%bridge0 link#6 UHS lo0 fe80::%jailpub/64 link#7 U jailpub fe80::b559:d5ee:5947:4033%jailpub link#7 UHS lo0 fe80::%jailpriv/64 link#8 U jailpriv fe80::5a9c:fcff:fe10:a314%jailpriv link#8 UHS lo0 ff02::/16 ::1 UGRS lo0 This route fd09:fce8:b9e8:7d96::/64 link#8 U jailpriv shows up and everything works. My /etc/rc.conf contains dhclient_program="/usr/local/sbin/dhcpcd" ifconfig_igb0="DHCP" ifconfig_igb0_ipv6="up" ifconfig_igb1="up" ifconfig_igb2="up" ifconfig_igb3="up" cloned_interfaces="bridge0 bridge1 bridge2 epair0 epair1" ifconfig_bridge0="inet 192.168.1.1 netmask 255.255.255.0 addm igb1 addm igb2 addm igb3 up" ifconfig_bridge1="up" ifconfig_bridge1_name="jailpub" ifconfig_bridge2_name="jailpriv" ifconfig_epair0a_name="vwpuba" ifconfig_epair0b_name="vwpubb" ifconfig_epair1a_name="vwpriva" ifconfig_epair1b_name="vwprivb" ifconfig_vwpriva="up" ifconfig_vwpuba="up" ifconfig_jailpub="addm vwpuba up" ifconfig_jailpriv="addm vwpriva up" ifconfig_jailpriv_ipv6="inet6 fd09:fce8:b9e8:7d96::1/64 auto_linklocal" Has anyone seen this and am I doing something wrong or is this a bug. Figured I should check before filing a bug report.