[Bug 296883] routing: IPv6 forwarding regressed with bhyve,bridge,tap after src d05d1f256082

[email protected] Sat, 18 Jul 2026 16:15:57 +0000
Newsgroups gmane.os.freebsd.bugs
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296883

            Bug ID: 296883
           Summary: routing: IPv6 forwarding regressed with
                    bhyve,bridge,tap after src d05d1f256082
           Product: Base System
           Version: 16.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Keywords: regression
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected]

I run multi-fib IPv6-only desktop/router/firewall/virtualization all-in-one
host and I see two regressions after updating post base d05d1f256082. I'm now
at base 4d37c2ea3c86 (with cherry-picked base 30d4d3db431a build fix) with base
be42ac4dceac and base d05d1f256082 reverted, the latter revert unbreaks bridge
IPv6 forwarding for me.

1) Starting a VM with something like:

#!/bin/sh

UEFI=/usr/local/share/uefi-firmware/BHYVE_UEFI.fd
MEM=8G
VM="windoze"
IF="$(ifconfig tap create up)"
MAC="mac=00:15:17:d2:c0:11"

ifconfig bridge0 addm $IF

while true ; do
        bhyve \
                -AHPSw \
                -s 0,hostbridge \
                -s 4,nvme,/usr/vm/$VM/$VM-0.img,sectorsize=4096 \
                -s 10,e1000,$IF,$MAC \
                -s 14,virtio-rnd \
                -s 31,lpc \
                -o cpus="1" \
                -o cores="1" \
                -o threads="1" \
                -o sockets="1" \
                -l com1,stdio \
                -l bootrom,$UEFI,fwcfg=qemu \
                -m $MEM \
                $VM
        RES=$?
        bhyvectl --destroy --vm=$VM
        if [ $RES -eq 1 ] ; then
                ifconfig $IF destroy
                exit 1
        fi
        sleep 5
done

Causes the IPv6 EUI-64 address of guest to become unreachable, I get
"destination unreachable no route to host" when pinging guest from host.



2) After I start VM with the script above (tap0 becomes member of bridge0),
IPv6-only nodes behind host (bridge0 -> em1 -> dumb wireless AP -> nodes (e.g.
Linux/Android/iOS nodes) no longer can route packets to the Internet. I didn't
try to ping default gateway on them (host) or ff02::1, but I can reboot into
affected environment on request later.

-
I have a bit unusual of a setup to reproduce, but I'll try to include some
details:

ifconfig_bridge0_name="brer"
ifconfig_brer="addm em1 up"
ifconfig_brer_ipv6="inet6 2001:db8:b0d7:fed5::1/64"
ifconfig_brer_alias0="inet6 2001:db8:b0d7:fed5:38b8:42d:c42a:da00
prefer_source"
ifconfig_brer_alias1="inet6 2001:db8:b0d7:fed5::123/64"

root@desktop:~ # cat /etc/rtadvd.conf
brer:\
        :raflags="h":\
        :rdnss="2001:4860:4860::6464":rdnssltime#604800:mtu#1492:\
        :pref64="64:ff9b::":

I get IPv6 Internet access with this convoluted DHCPv6-PD setup of net/mpd5 +
net/dhcpcd that I didn't have time to figure out if right or wrong, yet:

root@desktop:~ # cat /usr/local/etc/mpd5/ipv6_up.sh:
#!/bin/sh

route add -inet6 default -interface $1
exit 0

root@desktop:~ # cat /usr/local/etc/dhcpcd.conf:
allowinterfaces ng0 brer
duid
ipv6only
noipv6rs
waitip 6
timeout 15

interface ng0
  ia_pd ng0 brer/0


Rrouting table, it is the same with working/regressed base:

root@desktop:~ # netstat -nrF0 -6
Routing tables

Internet6:
Destination                       Gateway                       Flags        
Netif Expire
::/96                             link#4                        URS            
lo0
default                           link#9                        US             
ng0
::1                               link#4                        UHS            
lo0
::ffff:0.0.0.0/96                 link#4                        URS            
lo0
2001:db8:b0d7:ef92::/64          link#5                        U             
brer
2001:db8:b0d7:ef92::1            link#4                        UHS            
lo0
2001:db8:b0d7:ef92::123          link#4                        UHS            
lo0
2001:db8:b0d7:fed5:38b8:42d:c42a:da00 link#4                   UHS            
lo0
fe80::%lo0/10                     link#4                        URS            
lo0
fe80::%lo0/64                     link#4                        U              
lo0
fe80::1%lo0                       link#4                        UHS            
lo0
fe80::%brer/64                    link#5                        U             
brer
fe80::6361:2dcc:e3a3:2fed%lo0     link#4                        UHS            
lo0
fe80::%ng0/64                     link#9                        U              
ng0
fe80::5a9c:fcff:fe10:9a95%lo0     link#4                        UHS            
lo0
ff02::/16                         link#4                        URS            
lo0

Except that, when I do "ndp -a" with working base:

2001:db8:b0d7:fed5:215:17ff:fed2:c011                          
00:15:17:d2:c0:11   brer 23h59m18s S
fe80::215:17ff:fed2:c011%brer        00:15:17:d2:c0:11   brer 23h59m29s S

With regressed base:
fe80::215:17ff:fed2:c011%brer        (incomplete)        brer permanent N

P.S. I might be slow to provide feedback this time, I'm unfortunately very busy
with something else now.

-- 
You are receiving this mail because:
You are the assignee for the bug.