https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286322
--- Comment #9 from Paige Thompson <pa...@paige.bio> --- I just tested using a 2000::/3 scoped address and it's the same problem,, ➜ ~ sudo ifconfig epair9a inet6 2001:470:B56F::2 prefixlen 64 ➜ ~ sudo ifconfig epair9b inet6 2001:470:B56F::1 prefixlen 64 fib 48 it has the correct address in it's assignment: epair9a: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500 options=8<VLAN_MTU> ether 02:a8:b6:06:0f:0a inet 192.0.0.28 netmask 0xfffffffe broadcast 255.255.255.255 inet6 2001:470:b56f::2 prefixlen 64 inet6 fe80::a8:b6ff:fe06:f0a%epair9a prefixlen 64 scopeid 0x21 groups: epair media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>) status: active nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> but if you compare the route that it creates to the ipv4 address routes: 2001:470:b56f::/64 link#33 U epair9a 2001:470:b56f::2 link#3 UHS lo0 192.0.0.28 link#3 UHS lo0 192.0.0.28/31 link#33 U epair9a that checks out too so ... um FIB 48 has the same kinda thing going on: 2001:470:b56f::/64 link#34 U epair9b 2001:470:b56f::1 link#3 UHS lo0 so.. I donno.... ➜ ~ sudo route add -inet6 2001:470:b56f::1 -iface epair9a add host 2001:470:b56f::1: gateway epair9a fib 0 ➜ ~ sudo route add -inet6 2001:470:b56f::2 -iface epair9b -fib 48 add host 2001:470:b56f::2: gateway epair9b fib 48 ➜ ~ ping6 2001:470:B56F::1 PING(56=40+8+8 bytes) 2001:470:b56f::1 --> 2001:470:b56f::1 no ok so delete these I donno this should just work, .. the way it is *shrug* yet it doesn't. Works with IPv4: ➜ ~ ping -S 192.0.0.28 192.0.0.29 PING 192.0.0.29 (192.0.0.29) from 192.0.0.28: 56 data bytes 64 bytes from 192.0.0.29: icmp_seq=0 ttl=64 time=0.240 ms 64 bytes from 192.0.0.29: icmp_seq=1 ttl=64 time=0.209 ms 64 bytes from 192.0.0.29: icmp_seq=2 ttl=64 time=0.225 ms 64 bytes from 192.0.0.29: icmp_seq=3 ttl=64 time=0.241 ms ¯\_(ツ)_/¯ with Linux this is like trivial: ⚡ root@smol /home/netcraveos ip link add vrf1 type vrf table 1000 ip link set vrf1 up ip link add veth0 type veth peer name veth1 ip link set veth1 master vrf1 ip addr add fcff::a/64 dev veth0 ip addr add fcff::b/64 dev veth1 ip link set veth0 up ip link set veth1 up ⚡ root@smol /home/netcraveos ping -6 fcff::b PING fcff::b (fcff::b) 56 data bytes 64 bytes from fcff::b: icmp_seq=1 ttl=64 time=0.084 ms --- fcff::b ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.084/0.084/0.084/0.000 ms ⚡ root@smol /home/netcraveos ping -6 fcff::a PING fcff::a (fcff::a) 56 data bytes 64 bytes from fcff::a: icmp_seq=1 ttl=64 time=0.041 ms ^C --- fcff::a ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.041/0.041/0.041/0.000 ms ⚡ root@smol /home/netcraveos ip -6 route show table 1000 anycast fcff:: dev veth1 proto kernel metric 0 pref medium local fcff::b dev veth1 proto kernel metric 0 pref medium fcff::/64 dev veth1 proto kernel metric 256 pref medium anycast fe80:: dev veth1 proto kernel metric 0 pref medium local fe80::502d:fff:fec3:6a38 dev veth1 proto kernel metric 0 pref medium fe80::/64 dev veth1 proto kernel metric 256 pref medium multicast ff00::/8 dev veth1 proto kernel metric 256 pref medium The only actual difference between VRF and what freeBSD has is that the FIB that an interface is assigned to is set by the FIB parameter; Linux interfaces don't have a way to specify a FIB association; VRF acts like a bridge but the only thing it bridges are what routing tables the interfaces it enslaves are assigned to. I donno if I put them both on fib 0: ➜ ~ sudo ifconfig epair9a inet6 2001:470:B56F::2 prefixlen 64 ➜ ~ sudo ifconfig epair9b inet6 2001:470:B56F::1 prefixlen 64 fib 0 then of course it actually works ➜ sq ping6 -S 2001:470:b56f::2 2001:470:b56f::1 PING(56=40+8+8 bytes) 2001:470:b56f::2 --> 2001:470:b56f::1 16 bytes from 2001:470:b56f::1, icmp_seq=0 hlim=64 time=0.278 ms 16 bytes from 2001:470:b56f::1, icmp_seq=1 hlim=64 time=0.223 ms and I can even move epair9b to FIB 48 and it still works: ➜ sq ifconfig epair9b fib 48 ➜ sq ping6 -S 2001:470:b56f::2 2001:470:b56f::1 PING(56=40+8+8 bytes) 2001:470:b56f::2 --> 2001:470:b56f::1 16 bytes from 2001:470:b56f::1, icmp_seq=0 hlim=64 time=0.273 ms ^C --- 2001:470:b56f::1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.273/0.273/0.273/0.000 ms 2001:470:b56f::/64 link#33 U epair9a 2001:470:b56f::1 link#3 UHS lo0 <---- but wait I tried adding this manually and it didn't work soo.... idk this is broken I'm just saying 2001:470:b56f::2 link#3 UHS lo0 -- You are receiving this mail because: You are the assignee for the bug.