How to Solve VM-to-VM Inter-VLAN Connection Drops ("Packet Sequence Number Not Recognized") Caused by SonicWall TCP Sequence Randomization in SynetoOS 6

Written By Sebastian Sime (Super Administrator)

Updated at August 3rd, 2026

Table of Contents

→ Applies to: Hyperion 9.x and above

IMPORTANT
The fix is applied directly on the Syneto host. Disabling security on the SonicWall is not required.

 

Symptom

TCP connections between VMs on separate VLANs intermittently drop or fail to establish, returning the error: "packet sequence number not recognized". Inter-VLAN traffic is routed through a central SonicWall firewall with TCP Sequence Number Randomization enabled.

Direct testing on the host confirmed:

  • Traffic always passes symmetrically through the SonicWall (same MAC, same physical path via bond0)
  • No local shortcut exists
  • Anti-spoofing settings (rp_filter, arp_ignore, etc.) are correctly configured

SynetoOS runs an embedded Kubernetes on the same host kernel. To make that work, the kernel has net.bridge.bridge-nf-call-iptables = 1 set. This causes even VM-to-VM traffic that merely traverses the bridge (without the host being an endpoint) to be pushed through the Linux conntrack engine (stateful connection tracking, normally used by iptables / kube-proxy).

What happens technically:

  • The two VMs are on the same physical host but on different VLANs, so their traffic must leave to the SonicWall and re-enter the host (hairpin).
  • The host bridge therefore sees two copies of the same packet with the same IP 5-tuple:
    • copy A: VM1 → SonicWall (original sequence number S)
    • copy B: SonicWall → VM2 (randomized sequence number S')
  • With nf_conntrack_tcp_be_liberal = 0 (strict window checking, the default), conntrack sees copy B with an out-of-window sequence number and marks it INVALID.
  • A kube-proxy rule drops all INVALID traffic: KUBE-FORWARD ... ct state invalid -> DROP

Result: copy B is discarded, breaking the connection. When randomization is disabled on the SonicWall, both copies carry the same sequence number, look like a harmless duplicate, and pass — which is why disabling it "fixes" the symptom without addressing the actual cause.

NOTE
L2/L3 routing is clean. This is not a routing path issue.
UDP has no sequence numbers, so this specific mechanism does not explain UDP problems. If UDP interruptions are also reported, they must be investigated separately (possibly a similar conntrack issue on hairpin duplicates, but not confirmed).

 

Solution

Step 1. Connect to SynetoOS appliance via SSH as admin

ssh admin@<your_ip_address_or_hostname>

 

Step 2. Get root privileges

sudo su -

 

Step 3. Set conntrack to tolerate sequence window variance

sysctl -w net.netfilter.nf_conntrack_tcp_be_liberal=1

 

Step 4. Force the module to load at boot

echo "nf_conntrack" > /etc/modules-load.d/nf_conntrack.conf

 

Step 5. Create the persistent sysctl file

cat > /etc/sysctl.d/99-conntrack-liberal.conf << 'EOF'
net.netfilter.nf_conntrack_tcp_be_liberal = 1
EOF

 

Step 6 (Optional). Reboot to verify the setting persists

reboot

NOTE
The setting from Step 3 is already active. This reboot is only to confirm nf_conntrack loads and the sysctl value persists after a restart — it is not required for the fix to take effect immediately.

 

Step 7 (Optional). Check after reboot

sysctl net.netfilter.nf_conntrack_tcp_be_liberal

EXAMPLE OUTPUT

net.netfilter.nf_conntrack_tcp_be_liberal = 1