IPv6 routing issues on secondary NIC/NETIF and bridges on server

Code:
-------------------------
| Freebsd Server        |
-------------------------
|      tun0 (extif)     |
-------------------------
| em0 (GUA/ULA/RA)      |  ------- LAN ---- (clients GUA/ULA)
-------------------------           |
| em1 (GUA/ULA)         |  ----------
-------------------------
|     vm-bridge (em0)        |
|         |             | 
|       bhyve           |   
|   tap0 (GUA/ULA)      |
-------------------------

I currently have a FreeBSD 14 home server set as dual stack IPv4/IPv6 router.

IPv6 GUA is via DHPC6c where I get a GUA /64 address on em0. em0 via rtadvd then announcess the IPs and routes for all IPv6 clients with SLAAC.

IPv6 GUA addresses, every client gets it, every vm gets addresses through vm-bridge and secondary nic, and everything can connect to the internet on ipv6.
IPv4, all devices with network interfaces get an IPv4 through DHCP 192.168.0.0/24 and everything also connects with each other just fine on this subnet.

I've assigned a ULA address on em0, which does router advertisements inet6 fdd5:674c:9795::1 prefixlen 64
This is then propogated to the rest of the network, and all devices get ULA address. All the clients on LAN network can find and connect to inet6 fdd5:674c:9795::1 prefixlen 64 on em0.

It's only when it's the secondary NIC (em1) and bridged network tap0 that I get these problems.
  • LAN clients can only reach addresses ULA/GUA on em1 after sveral pings both for GUA/ULA addresses
  • VM's can only see inet6 fdd5:674c:9795::1 on em0 after being VM IPv6 address is pinged from host.

For example from the client (Linux), after a several pings it finally finds it.

Code:
PING fdd5:674c:9795::2 (fdd5:674c:9795::2) 56 data bytes
From fdd5:674c:9795:0:6567:66d2:f84b:d9bd icmp_seq=1 Destination unreachable: Address unreachable
From fdd5:674c:9795:0:6567:66d2:f84b:d9bd icmp_seq=2 Destination unreachable: Address unreachable
From fdd5:674c:9795:0:6567:66d2:f84b:d9bd icmp_seq=3 Destination unreachable: Address unreachable
64 bytes from fdd5:674c:9795::2: icmp_seq=5 ttl=64 time=0.160 ms
64 bytes from fdd5:674c:9795::2: icmp_seq=6 ttl=64 time=0.142 ms
64 bytes from fdd5:674c:9795::2: icmp_seq=7 ttl=64 time=0.215 ms
64 bytes from fdd5:674c:9795::2: icmp_seq=8 ttl=64 time=0.152 ms
64 bytes from fdd5:674c:9795::2: icmp_seq=9 ttl=64 time=0.109 ms
64 bytes from fdd5:674c:9795::2: icmp_seq=10 ttl=64 time=0.127 ms

This looks to me like a routing issue in which the routes for the IP addresses on the secondary NIC and VM bridged devices are not being added or broadcast.

Any tips for troubleshooting?

em0 ifconfig :

Code:
em0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
    options=4a520b9<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,HWSTATS,MEXTPG>
    ether 68:05:ca:41:72:73
    inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
    inet6 fe80::6a05:caff:fe41:7273%em0 prefixlen 64 scopeid 0x1
    inet6 fdd5:674c:9795::1 prefixlen 64
    inet6 2001:e68:xxxx:390:xxxx:caff:fe41:7273 prefixlen 64
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

em1 ifconfig:
Code:
em1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
    options=4e524bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
    ether 00:15:17:f0:9c:d6
    inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
    inet6 fdd5:674c:9795::2 prefixlen 64
    inet6 fe80::215:17ff:fef0:9cd6%em1 prefixlen 64 scopeid 0x3
    inet6 fdd5:674c:9795:0:215:17ff:fef0:9cd6 prefixlen 64 autoconf pltime 604800 vltime 2592000
    inet6 2001:e68:xxxx:390:xxxx:17ff:fef0:9cd6 prefixlen 64 autoconf pltime 604800 vltime 2592000
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
 
Back
Top