iptablesでエンタープライズ・ファイアウォールが実現できることを示す事例として、イリノイ大学アーバナシャンペーン校(University of Illinois at Urbana-Champaign)で私が管理しているネットワークを紹介しよう。このネットワークは2,000に及ぶデバイスをサポートしており、2つのファイアウォール・ゾーン(DMZおよびセキュア)を有する1ギガビットのアップリンクを備えている。1日のアウトバウンド帯域幅は平均して100GB/sほどだ。このネットワークを保護するのがiptablesを実行している2台のファイアウォール専用マシンで、それぞれは3枚のネットワークカード(2枚はファイアウォールのブリッジング用、1枚は管理アクセス用)を備え、1GBのメモリと1.5GHzのシングルコアプロセッサで動作している。この場合、演算処理能力はそれほど重要でないため、ローエンドのCPU搭載マシンを利用することで費用の節約が可能だ。
ファイアウォールに起因した遅延が生じることもなく、不正なトラフィックのブロックについても期待どおりの働きをしてくれる。また、ファイアウォールに適切な調整を施すと、ソフトウェアの問題によるダウンタイムも発生しなくなった。
ただ、いくつか注意すべき点がある。定期的なスキャンを実施している、あるいは高トラフィックネットワーク上にあるファイアウォールでは、接続テーブルが一杯になってしまう可能性がある。この問題を解決するには、「net.ipv4.ip_conntrack_max」というカーネルパラメータの値を大きく(私は131071にしている)、「net.ipv4.tcp_keepalive_time」の値を小さくする(3600が適切)。ファイアウォールに十分な空きメモリがある限りは、この設定で問題はないはずだ。あとは何も考えなくても満足のいく動作をしてくれる。結果として、パケット損失がなく遅延を感じさせない、非常に可用性に優れた(ハードウェアに問題がなければの話だが)ファイアウォールが構築できる。
