
私は、ubuntu (12.04 または 14.04) 上の高トラフィック Web サーバー (大量の http/https トラフィック) で ufw を使用しています。
接続追跡に関連するカーネルパラメータを調整してみましたある程度の成功。
しかし、考えてみると、私は NAT を行っていないので、少なくともポート 80 または 443 の接続については接続追跡は必要ないと思います。
私は以下の指示に従ってみましたこの質問適応すると、次のようになります。
sudo iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
私の生のテーブルは次のようになります:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
NOTRACK tcp -- anywhere anywhere tcp dpt:http
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
すべてが機能することをテストするために、3 つのスレッドと 1000 の接続を使用して、wrk を使用するマシン上で nginx インスタンスを要求します。
wrk -t 3 -c 1000 "http://<server_ip>/"
これらは追跡されるべきではないので、conntrackカウントには表示されないはずです。
しかし、私は...
sudo sysctl -A | grep net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 1035
テストを実行すると、この値が上下しているのがはっきりとわかります。
何が間違っているのでしょうか?
答え1
OUTPUT ルールも必要です。
-t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
-t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK