CentOS 5.3を実行していて、nf_conntrackモジュールを無効にしてhaproxyのネットワークパフォーマンスを向上させたいと考えています。私はいくつかの単純なルールでiptablesを実行しています。接続追跡は本当に必要ありません。
Rackspaceクラウドサーバーで実行しているため、カスタムカーネルを実行できません。 modprobeを実行してみましたが、うまくいきません。
[mmarano@w1 w1]$ Sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.
[mmarano@w1 w1]$ uname -a
Linux w1.somewhere.com 2.6.24-23-xen #1 SMP Mon Jan 26 03:09:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
[mmarano@w1 w1]$ cat /etc/redhat-release
CentOS release 5.3 (Final)
これを取り除いた後も引き続きiptablesを実行したいので、すべてのネットフィルターを破棄することはできません。誰もが何か考えを持っていますか?
iptablesの状態モジュールへの参照をすべて削除します。したがって、次のようなルールはありません
-A INPUT -m state --state RELATED、ESTABLISHED -j ACCEPT
状態モジュールにはnf_conntrack(ip_conntrack)モジュールが必要です
/ etc/sysconfig/iptables-configの次の行(存在する場合)を削除します
IPTABLES_MODULES = "ip_conntrack_netbios_ns"
そのモジュールには、破棄しようとしているip_conntrackが必要です。
状態ルールなしでiptablesをリロードします。
Sudo iptables -F
#実際のルールを追加
モジュールをドロップします。私は使用しなければなりませんでした:
Sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state
Sudo modprobe -r nf_conntrack
/ proc/net/nf_conntrackへの参照がないことを確認してください
モジュールを/etc/modprobe.d/blacklist.conf
に追加するのはどうですか?
やってみました:
rmmod -f modulename
ただし:
-f --force このオプションは非常に危険な場合があります。カーネルのコンパイル時にCONFIG_MODULE_FORCE_UNLOADが設定されていない限り、効果がありません。 このオプションを使用すると、使用されている、 、または削除するように設計されていない、または が安全でないとマークされている(lsmod(8)を参照)。
Haproxyを実行している場合、ポート80でconntrackを無効にするには、iptablesで2種類のルールが必要です。1つはクライアントからバランサーへの接続用、もう1つはバランサーからバックエンドへの接続用です。
以下は有効な例です。
iptables -t raw -I PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -I PREROUTING -p tcp --sport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --dport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --sport 80 -j NOTRACK
「modprobe -rf xt_state」および「modprobe -rf nf_conntrack_ipv6」を実行すると、「FATAL:Module xt_state is in use。」(centos)と表示されます。
「modused」は便利かもしれません、それはどんなモジュールの使用カウントも減らすことができます: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/
キーは次のとおりです。serviceip6tables stop
nf_conntrack、xt_state、iptable_nat、nf_nat、nf_conntrack_ipv4、nf_conntrack_ipv6を/etc/modprobe.d/blacklist.confに追加します