Proxmox & IDS / Bridge

Tozz

Active Member
Mar 11, 2012
31
0
26
Hi,

I just wanted to inform the Proxmox team about an issue with the virtio network drivers. My setup consists of:

- 1 Proxmox Hypervisor (Debian 9.11 with all updates, including those from Proxmox). 3 bridge interfaces.
- 1 application proxy (apache with http_proxy) with 2 if's (1 external, 1 'left side IDS')
- 1 IDS (Snort) with 3 ifs (1 external, 1 'left side IDS', 1 'right side IDS'
- 1 Tomcat application server with 2 ifs (1 external, 1 'right side IDS'

The Snort application bridges 'left side IDS' with 'right side IDS' but can terminate TCP sessions by sending a reset if it finds something not okay.

When a requests comes from the Internet it hits the Application Proxy. The Application proxy proxies the request to 192.168.0.2, which resides on the Tomcat application server. This network traffic goes through the IDS Snort VM. It then comes out in the Tomcat application server VM, which sends a response back to the application proxy.

When I use 'virtio' network drivers on the IDS VM, I can ping from Application Proxy to Tomcat. I can see ARP entries, etc. However, TCP traffic is not working for some reason. I see the SYN requests on the tomcat application server, but it doesn't send a response back.

When I switch the IDS machine from virtio drivers to 'e1000' drivers, everything suddenly works out of the box as I have designed it.

Apparantly the virtio drivers do some kind of filtering, but I dont know what it is.. Anybody has some advise? or ideas? I'd prefer to use virtio drivers.
 
When I use 'virtio' network drivers on the IDS VM, I can ping from Application Proxy to Tomcat. I can see ARP entries, etc. However, TCP traffic is not working for some reason. I see the SYN requests on the tomcat application server, but it doesn't send a response back.

When I switch the IDS machine from virtio drivers to 'e1000' drivers, everything suddenly works out of the box as I have designed it.

Apparantly the virtio drivers do some kind of filtering, but I dont know what it is.. Anybody has some advise? or ideas? I'd prefer to use virtio drivers.
I do not believe it's filtering, but rather the "optimization" of not doing the TCP checksums "internally" and then the remote kernel could drop it. It typically does work when it exits a physical interface that then does the needed TCP checksums. Had similar type of problems, especially with the e1000 on pfSense (way back before virtio support) and TCP checksum offloading was (as I recall) turned on, and I allways had to do the opposite to make the pfSense work as a firewall and not breaking DHCP
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!