[Bug 286322] IPv6 doesn't work across different FIBs (epair)
Date: Thu, 24 Apr 2025 14:18:56 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286322
Bug ID: 286322
Summary: IPv6 doesn't work across different FIBs (epair)
Product: Base System
Version: 14.2-STABLE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: paige@paige.bio
FreeBSD stelleri.netcrave.network 14.2-RELEASE-p3 FreeBSD 14.2-RELEASE-p3
n269524-1eb03b059e56 STELLERI amd64
➜ stelleri ifconfig epair128 create
epair128a
➜ stelleri ifconfig epair128b inet6 fcff::b/64 fib 128
➜ stelleri ifconfig epair128a inet6 fcff::a/64
➜ stelleri ping -S fcff::a fcff::b
PING(56=40+8+8 bytes) fcff::a --> fcff::b
^C
--- fcff::b ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
➜ stelleri
If you move epair128b to FIB 0 it works:
➜ stelleri ifconfig epair128b inet6 fcff::b/64 fib 0
➜ stelleri ping -S fcff::a fcff::b
PING(56=40+8+8 bytes) fcff::a --> fcff::b
16 bytes from fcff::b, icmp_seq=0 hlim=64 time=0.131 ms
16 bytes from fcff::b, icmp_seq=1 hlim=64 time=0.132 ms
^C
--- fcff::b ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.131/0.131/0.132/0.000 ms
➜ stelleri
If you move it back to FIB 128 suddenly it works:
➜ stelleri ifconfig epair128b inet6 fcff::b/64 fib 128
➜ stelleri ping -S fcff::a fcff::b
PING(56=40+8+8 bytes) fcff::a --> fcff::b
16 bytes from fcff::b, icmp_seq=0 hlim=64 time=0.133 ms
16 bytes from fcff::b, icmp_seq=1 hlim=64 time=0.131 ms
^C
--- fcff::b ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.131/0.132/0.133/0.001 ms
➜ stelleri ifconfig epair128b
epair128b: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
options=8<VLAN_MTU>
ether 02:4b:3b:66:b3:0b
inet6 fe80::4b:3bff:fe66:b30b%epair128b prefixlen 64 scopeid 0x23
inet6 fcff::b prefixlen 64
groups: epair
fib: 128
media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
➜ stelleri
And I would think because of this behavior that it must have something to do
with NDP, however looking at NDP both before after and after I couldn't tell
one way or another from looking at it's state:
before:
➜ stelleri ndp -a
Neighbor Linklayer Address Netif Expire S Flags
fe80::ac:22ff:fe52:c10a%epair128a 02:ac:22:52:c1:0a epair128a permanent R
fcff::a 02:ac:22:52:c1:0a epair128a permanent R
fe80::ac:22ff:fe52:c10b%epair128b 02:ac:22:52:c1:0b epair128b permanent R
fcff::b 02:ac:22:52:c1:0b epair128b permanent R
and after move to fib 0:
➜ stelleri ndp -a
Neighbor Linklayer Address Netif Expire S Flags
fe80::ac:22ff:fe52:c10a%epair128a 02:ac:22:52:c1:0a epair128a permanent R
fcff::a 02:ac:22:52:c1:0a epair128a permanent R
fe80::ac:22ff:fe52:c10b%epair128b 02:ac:22:52:c1:0b epair128b permanent R
fcff::b 02:ac:22:52:c1:0b epair128b permanent R
and after move back:
➜ stelleri ndp -a
Neighbor Linklayer Address Netif Expire S Flags
fe80::4b:3bff:fe66:b30a%epair128a 02:4b:3b:66:b3:0a epair128a permanent R
fcff::a 02:4b:3b:66:b3:0a epair128a permanent R
fe80::4b:3bff:fe66:b30b%epair128b 02:4b:3b:66:b3:0b epair128b permanent R
fcff::b 02:4b:3b:66:b3:0b epair128b permanent R
Sorry if this is filed in the wrong place, I'm not really sure where to file
it, and it might not be specific to AMD64 that's just what I have to go based
on (the machine that I have to test on is AMD64.)
--
You are receiving this mail because:
You are the assignee for the bug.