After extensive testing.
I have deleted the tunnels/peers/gateways and recreated.
switched NAT from Hybrid to Manual and back to Hybrid (although none of these had changed)
deleted the interfaces / gateways and recreated
So:
it is not a corrupted config file.
the config was working prior to 25.07.01 upgrade
Noticeable behavior that is different
saving a change to an interface, causes wireguard to stop reaching the monitoring 1.1.1.1 address (never used to have this problem)
switching the default gateway from WAN1 to 2, or 2 to 1 restores connection to the monitoring address
client on bridge1 (vlan40) network can ping the gateway 10.2.0.1
client on bridge1 can NOT ping 1.1.1.1 or any internet address via WG gateway (but WAN / OPNVPN gateways no problem)
curl to any internet address returns error 0A000126:SSL unexpected EOF while reading via WG ( but WAN/OPNVPN gateways work)
if you edit the wg gateway and try to save, it also gives the error "The gateway address 10.2.0.1 does not lie within one of the chosen interface's subnets." when the tunnel end is 10.2.0.2/32 - this is new behaviour as well
scrub from any to <vpn_networks> no-df max-mss 1372 fragment reassemble
scrub from <vpn_networks> to any no-df max-mss 1372 fragment reassemble
scrub on pppoe0 inet all no-df max-mss 1372 fragment reassemble
scrub on igb1 inet all no-df max-mss 1372 fragment reassemble
scrub on bridge1 inet all no-df max-mss 1372 fragment reassemble
scrub on lagg0.40 inet all no-df fragment reassemble
scrub on igb6.40 inet all no-df fragment reassemble
Do I need to set the mss max on the individual interfaces even though i have the below settings
net.link.bridge.pfil_member Packet filter on the member interface 0
net.link.bridge.pfil_bridge Packet filter on the bridge interface 1
net.inet.ip.forwarding Enable packet forwarding between interfaces (required for NAT reflection) 1
net.link.bridge.vlan_filter Enable VLAN filtering on the bridge (required if you use VLAN‑aware bridges). 1
tcpdump -i bridge1 icmp
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on bridge1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
12:35:50.896835 IP v110.lan > one.one.one.one: ICMP echo request, id 51, seq 1, length 64
12:35:51.897180 IP 110.lan > one.one.one.one: ICMP echo request, id 51, seq 2, length 64
12:35:52.921189 IP v110.lan > one.one.one.one: ICMP echo request, id 51, seq 3, length 64
12:35:53.945298 IP v110.lan > one.one.one.one: ICMP echo request, id 51, seq 4, length 64
12:35:54.969258 IP v110.lan > one.one.one.one: ICMP echo request, id 51, seq 5, length 64
tcpdump -i tun_wg0 icmp
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on tun_wg0, link-type NULL (BSD loopback), snapshot length 262144 bytes
---- nothing going through the tunnel
tcpdump -i igb1 icmp
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on igb1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
12:38:11.325166 IP ip-xxx-xxx-xxx-xxx.um05.pools.vodafone-ip.de > one.one.one.one: ICMP echo request, id 39605, seq 8620, length 9
12:38:11.325207 IP ip-xxx-xxx-xxx-xxx.um05.pools.vodafone-ip.de > 145.253.xx.xx: ICMP echo request, id 42609, seq 8620, length 9
12:38:11.333470 IP one.one.one.one > ip-xxx-xxx-xxx-xxx.um05.pools.vodafone-ip.de: ICMP echo reply, id 39605, seq 8620, length 9
12:38:11.334976 IP 145.253.xx.xx > ip-xxx-xxx-xxx-xxx.um05.pools.vodafone-ip.de: ICMP echo reply, id 42609, seq 8620, length 9
12:38:11.825337 IP ip-xxx-xxx-xxx-xxx.um05.pools.vodafone-ip.de > 145.253.xx.xx: ICMP echo request, id 42609, seq 8621, length 9
So it seems, even though the rules are on the bridge per below, policy routing is not working
[image: 1765885335518-201e6b7b-61ae-4828-a9c5-ee7ce5638676-image.png]
I have made work off those !LOCAL rules to allow any protocol and disabled the other. No difference
NAT is being used in Hybrid and worked previously
[image: 1765885441881-3c9eb8a4-78e1-4511-8e74-238cc1e67a72-image.png]
Also, switching the gateway from wg to opnvpn and everything is working.
This looks like a defect introduced from 25.07.01 onwards, or, am I missing something?
some compatibility issue between wireguard and bridge?