Hi everyone,
I’m running into a weird networking issue with Proxmox and I’m not sure if I’m hitting a bug or if I misconfigured something. Maybe someone has seen this before.
Setup:
The problem:
When two VMs are on the same host, they sometimes can’t talk to each other. For example:
From VM1 → VM2 will succeed maybe 1–2 times, and then hang/timeout on the 3-4 try.
If I disable the Proxmox firewall, it works fine.
If I migrate VM2 to a different Proxmox host and let the firewall enabled everything works also fine.
So it seems firewall-related, but only when traffic stays inside the same host’s bridge.
iptables output (shortened):
The chains PVEFW-FWBR-IN and PVEFW-FWBR-OUT are basically empty.
Disabling this rule fixes the issue:
Looks like some packets between VMs on the same host get marked as INVALID by conntrack and dropped.
I logged the packets marked as INVAILD:
Questions:
Is this a known issue with Proxmox firewall / conntrack on bridged traffic?
Is there a proper way to keep the firewall enabled but avoid dropping these “false positive” INVALID packets?
I’m running into a weird networking issue with Proxmox and I’m not sure if I’m hitting a bug or if I misconfigured something. Maybe someone has seen this before.
Setup:
- Proxmox VE 8.4.11 (Enterprise-Repo)
- Multiple nodes in a cluster
- Linux bridges (vmbr0) for VM networking
- Firewall enabled at Datacenter level
- No special per-VM firewall rules, just the default Proxmox chains
The problem:
When two VMs are on the same host, they sometimes can’t talk to each other. For example:
Code:
curl -v https://vm2
From VM1 → VM2 will succeed maybe 1–2 times, and then hang/timeout on the 3-4 try.
If I disable the Proxmox firewall, it works fine.
If I migrate VM2 to a different Proxmox host and let the firewall enabled everything works also fine.
So it seems firewall-related, but only when traffic stays inside the same host’s bridge.
iptables output (shortened):
Code:
Chain PVEFW-FORWARD (1 references)<br>target prot opt source destination
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
PVEFW-FWBR-IN all -- anywhere anywhere PHYSDEV match --physdev-in fwln+ --physdev-is-bridged
PVEFW-FWBR-OUT all -- anywhere anywhere PHYSDEV match --physdev-out fwln+ --physdev-is-bridged
The chains PVEFW-FWBR-IN and PVEFW-FWBR-OUT are basically empty.
Disabling this rule fixes the issue:
iptables -D PVEFW-FORWARD -m conntrack --ctstate INVALID -j DROP
Looks like some packets between VMs on the same host get marked as INVALID by conntrack and dropped.
I logged the packets marked as INVAILD:
Code:
2025-08-20T13:25:20.996227+02:00 artos kernel: [12510.499823] INVALID_DROP: IN=vmbr871 OUT=vmbr871 PHYSIN=tap103i0 PHYSOUT=eno8303 MAC=84:b8:02:5a:24:00:bc:24:11:e3:b3:be:08:00 SRC=10.10.x.x DST=131.15.x.x LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=22716 DF PROTO=TCP SPT=52866 DPT=443 WINDOW=21 RES=0x00 ACK URGP=0
Questions:
Is this a known issue with Proxmox firewall / conntrack on bridged traffic?
Is there a proper way to keep the firewall enabled but avoid dropping these “false positive” INVALID packets?
Last edited: