Wiktor Rzeczkowski
2014-09-24 03:36:49 UTC
From my experience and investigation of complaints of "slowness", "download stops", "download does not complete", "web page does not load", etc. in EZproxy and other online services, the problems can appear when, paradoxically, good stateful firewall rules involving conntrack and RELATED/ESTABLISHED are enabled, and they disappear when the rules are disabled or somewhat mitigated.
I saw defective TCP ACK packets (e.g. packets with wrong SLE/SRE, cf. with Wireshark) coming to servers and being rejected (correctly) by the good conntrack based rules, causing TCP transmissions to fail, which the users perceived as the "slowness", "download stops", etc.The problem was primarily for users who used slower connections to the Internet, such as wireless and DSL connections, and who were far from the content server. In such circumstances some network packets could likely be lost on the way and, when they did, retransmissions were attempted which would never complete if bad TCP ACK packets were generated on the way and the firewall on the server rejected them.
For http (port 80) and https (port 443) services, such as those of EZproxy, the stateful conntrack rules could be mitigated with additional stateless rules, e.g.:
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Here, bad packets rejected by the stateful conntrack rules (the first two) could be accepted by the following stateless rules so that the required retransmissions can complete. When such stateless rules were added to firewalls on our servers, users stopped complaining.
I wonder if the Ubuntu did have stateful firewall rules and the Solaris did not.
Wiktor
---
Wiktor Rzeczkowski
McMaster University
---
You are currently subscribed to ezproxy as: gee-***@m.gmane.org.
To unsubscribe, send request to ***@itec.suny.edu