wireguard->protonvpn policy routing broken since 25.07.01
-
I previously had wireguard working for a long time already on a dual wan failover and a wireguard to openvpn failover for with the original settings below
WAN1 igb0 -> eth to Fritzbox -> PPPoE fibre
WAN2 igb1 -> eth to cable modemOriginal MTU/MSS settings that worked
pppoe MTU (default i.e. 1500)
pppoe MSS 1452 (-40)
tun_wg0 MTU 1412
maxmss 1452
opnvpn tun-mtu 1500
opnvpn tun-mtu-extra 32
opnvpn mssfix 1452wireguard has been playing up for about a week, and chatgpt gives me the below calculations
pppoe MTU 1492
pppoe MSS 1492 (-40)
tun_wg0 MTU 1412
maxmss 1452
opnvpn tun-mtu 1480
opnvpn mssfix 1452openvpn and the wan seems to be working fine.
from a client
curl -vk https://scmp.com * Host scmp.com:443 was resolved. * IPv6: 2606:4700::6812:cc2b, 2606:4700::6812:cd2b * IPv4: 104.18.204.43, 104.18.205.43 * Trying [2606:4700::6812:cc2b]:443... * Immediate connect fail for 2606:4700::6812:cc2b: Cannot assign requested address * Trying [2606:4700::6812:cd2b]:443... * Immediate connect fail for 2606:4700::6812:cd2b: Cannot assign requested address * Trying 104.18.204.43:443... * ALPN: curl offers h2,http/1.1 * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (OUT), TLS alert, decode error (562): * TLS connect error: error:0A000126:SSL routines::unexpected eof while reading * closing connection #0 curl: (35) TLS connect error: error:0A000126:SSL routines::unexpected eof while readingping from pfsense over the wireguard interface works fine. I have tried lowering the MTU for wireguard, but i can't seem to get a value that actually works
EDIT: the it is not a MTU/MSS issue. I have set the bridge and WG and WAN interfaces to have MSS of 1372.
-
@4o4rh How low did you try? I have a wireguard connection to ProtonVPN and set MTU and MSS to 1420 (for the wireguard interface) and have never had an issue.
-
I set MTU 1472 and MSS to 1432 on both links.
I have tried a range of mtu-tun for wireguard down to 1320.
everything causes SSL errorAn error occurred during a connection to thermalright.com. PR_END_OF_FILE_ERROR Error code: PR_END_OF_FILE_ERROR The page you are trying to view cannot be shown because the authenticity of the received data could not be verified. Please contact the website owners to inform them of this problem.just started about 2 weeks ago. have tried switching to configs from different countries, routing through different wans. nothing works
-
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 reassembleDo 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). 1tcpdump -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 64tcpdump -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 tunneltcpdump -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 9So it seems, even though the rules are on the bridge per below, policy routing is not working

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

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? -
4 4o4rh referenced this topic on
-
B Bob.Dig referenced this topic on