[Bug 264858] IPv6: 'route add' sets wrong netif in fib when iface has different fib
Date: Thu, 23 Jun 2022 19:52:47 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264858 Bug ID: 264858 Summary: IPv6: 'route add' sets wrong netif in fib when iface has different fib Product: Base System Version: 13.1-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: pmc@citylink.dinoex.sub.org When adding a route into a fib, it may get connected to lo0 instead of the desired interface, and traffic does not work. Example: -------- # ifconfig tun6 tun6: flags=8010<POINTOPOINT,MULTICAST> metric 0 mtu 1371 options=80000<LINKSTATE> groups: tun nd6 options=1<PERFORMNUD> # setfib 4 netstat -rn6 Routing tables (fib: 4) Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 ::1 link#1 UHS lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 fe80::/10 ::1 UGRS lo0 ff02::/16 ::1 UGRS lo0 # ifconfig tun6 inet6 fe80::1%tun6 prefixlen 124 # route -6 add -net fe80::1%tun6/124 -iface tun6 -fib 4 add net fe80::1%tun6/124: gateway tun6 fib 4 # route -6 add -net default fe80::2%tun6 -fib 4 add net default: gateway fe80::2%tun6 fib 4 # setfib 4 netstat -rn6 Routing tables (fib: 4) Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 default fe80::2%tun6 UGS lo0 << ::1 link#1 UHS lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 fe80::/10 ::1 UGRS lo0 fe80::%tun6/124 link#4 US tun6 ff02::/16 ::1 UGRS lo0 But then, when changing the interface itself to the fib, it suddenly works as desired: # route -6 delete -net default fe80::2%tun6 -fib 4 delete net default: gateway fe80::2%tun6 fib 4 # ifconfig tun6 inet fib 4 # route -6 add -net default fe80::2%tun6 -fib 4 add net default: gateway fe80::2%tun6 fib 4 # setfib 4 netstat -rn6 Routing tables (fib: 4) Internet6: Destination Gateway Flags Netif Expire ::/96 ::1 UGRS lo0 default fe80::2%tun6 UGS tun6 << ::1 link#1 UHS lo0 ::ffff:0.0.0.0/96 ::1 UGRS lo0 fe80::/10 ::1 UGRS lo0 fe80::%tun6/124 link#4 US tun6 ff02::/16 ::1 UGRS lo0 I don't think this is the correct behaviour, because the fib on the interface should concern incoming traffic, while the route table concerns outgoing traffic, and one might want this to be separate concerns. -- You are receiving this mail because: You are the assignee for the bug.