You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It's the human again... After some work today, it looks like having syn cookies enabled causes the firewall to block new TCP connections. Disabling syn cookies got the 26.7 firewall forwarding traffic again. I've updated the report below. Hopefully that's helpful.
This firewall is using virtio network drivers in a Proxmox VM.
Root cause (confirmed 2026-09-25)
pf SYN cookies set to always breaks all new TCP on OPNsense 26.7.x (FreeBSD 15.1 base).
Config has <syncookies>always</syncookies> (Firewall → Settings → Advanced → SYN cookies). This was already set on 26.1.11_10, where it worked fine — so this is a regression in pf's syncookie handling on 26.7 / FreeBSD 15.1, not a config change from the upgrade.
Generated ruleset line: set syncookies always (line 7 of /tmp/rules.debug).
Note: net.inet.tcp.syncookies (a kernel TCP tunable, also in config.xml) is a different mechanism and not involved.
Fix / workaround
Firewall → Settings → Advanced → SYN cookies → disabled (adaptive untested), then Apply.
tcpdump on WAN: pf answers every SYN itself with SYN-ACK win 0, MSS-only options — including on behalf of hosts behind the firewall.
After the client ACK validates, pf's own SYN toward the backend appears in pflog with IP cksum 0 / incorrect TCP cksum, tos 0x10, tiny window — and is blocked by pf's own default block rules (rule 77 on WAN, rule 62 on LAN).
pfctl -s info: proto-cksum climbing ~25–30/s even with Suricata stopped and hw.vtnet.csum_disable=1; state-insert 0.
pfctl -vsi: syncookies sent ~55/s, validated ~37/s, mode always.
Connections to the firewall's own GUI (443): handshake completes, but the TLS ClientHello is never ACKed (ack 1 forever) → GUI unreachable. SSH sessions kept working.
Symptoms: clients behind the firewall can't reach the internet; web GUI unreachable from WAN-side management host; SSH OK.
Ruled out (tested on fresh 26.7 install with imported config)
Suricata / netmap IPS (configctl ids stop — no change; zero vtnet0 counters were just netmap owning the rings)
Traffic Shaper / ipfw (net.inet.ip.fw.enable=0, no dnpipe/dnqueue in pf — no change); config_aqm flowset busy dmesg messages are a side issue
vtnet checksum offload (hw.vtnet.csum_disable=1 in /boot/loader.conf.local — no change; can be removed)
Captive Portal (disabled — no change). Note: the portal DOES generate rdr rules on vtnet1 and a default block rule (! <__captiveportal_zone_0>), so the old note "no rdr in this ruleset" was wrong.
Older kernel on 26.7 userland — no change (unsupported mix; syncookie issue lives in pf, but result was inconclusive)
Earlier theories (DDoS, php-cgi, Proxmox firewall, pf state-insert bug divert: issues on 15.1 #303 / core#10615, igb driver bug src#329) — not the cause.
Environment
VM on Proxmox, virtio NICs
Suricata IPS (netmap) on WAN, Traffic Shaper, Captive Portal zone 0 on LAN, Proxmox Firewall on vNICs
Last good: 26.1.11_10. Broken: 26.7.1_1 (upgrade) and fresh 26.7.x install.
2026-09-25: fresh 26.7 install + config import from backup disk (see config-backup-disk.md). Isolated each feature; pflog showed pf-generated SYNs being blocked; tcpdump showed win-0 SYN-ACKs; traced to set syncookies always; never fixed it.
OPNsense forwarding failure — ROOT CAUSE FOUND
Acknowledgements
Before you add a new report, we ask you kindly to acknowledge the following:
The Non-AI Part
It's the human again... After some work today, it looks like having syn cookies enabled causes the firewall to block new TCP connections. Disabling syn cookies got the 26.7 firewall forwarding traffic again. I've updated the report below. Hopefully that's helpful.
This firewall is using virtio network drivers in a Proxmox VM.
Root cause (confirmed 2026-09-25)
pf SYN cookies set to
alwaysbreaks all new TCP on OPNsense 26.7.x (FreeBSD 15.1 base).<syncookies>always</syncookies>(Firewall → Settings → Advanced → SYN cookies). This was already set on 26.1.11_10, where it worked fine — so this is a regression in pf's syncookie handling on 26.7 / FreeBSD 15.1, not a config change from the upgrade.set syncookies always(line 7 of /tmp/rules.debug).net.inet.tcp.syncookies(a kernel TCP tunable, also in config.xml) is a different mechanism and not involved.Fix / workaround
grep syncookies /tmp/rules.debugandpfctl -vsi | grep -i -A2 syncookie→ modenever.Loading this restored the web GUI immediately.
Evidence
win 0, MSS-only options — including on behalf of hosts behind the firewall.tos 0x10, tiny window — and is blocked by pf's own default block rules (rule 77 on WAN, rule 62 on LAN).pfctl -s info:proto-cksumclimbing ~25–30/s even with Suricata stopped andhw.vtnet.csum_disable=1;state-insert0.pfctl -vsi: syncookies sent ~55/s, validated ~37/s, modealways.ack 1forever) → GUI unreachable. SSH sessions kept working.Ruled out (tested on fresh 26.7 install with imported config)
configctl ids stop— no change; zero vtnet0 counters were just netmap owning the rings)net.inet.ip.fw.enable=0, no dnpipe/dnqueue in pf — no change);config_aqm flowset busydmesg messages are a side issuehw.vtnet.csum_disable=1in /boot/loader.conf.local — no change; can be removed)rdrrules on vtnet1 and a default block rule (! <__captiveportal_zone_0>), so the old note "no rdr in this ruleset" was wrong.Environment
Bug report
History (brief)
set syncookies always;neverfixed it.Sources