Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.2.2. ダイレクトルーティングと iptables

iptables ファイアウォールルールを作成することで、 ダイレクトルーティングメソッドを使用した場合の ARP 問題を回避することもできます。iptables を使用してダイレクトルーティングを設定するには、VIP アドレスがシステム上に存在しなくても VIP アドレスに送信されたパケットを実サーバーが扱うように透過プロキシを作成するルールを追加する必要があります。
iptables メソッドは arptables_jf メソッドよりも 設定が簡単です。仮想 IP アドレスがアクティブ LVS ディレクタ上にのみ存在するため、このメソッドでは LVS ARP 問題も完全に回避できます。
しかし、パケットの転送/マスカレードでのオーバーヘッドがあるため、arptables_jf と比較すると、iptables メソッドの使用にはパフォーマンスの問題があります。
また、iptables メソッドを使用してポートを再利用することはできません。例えば、二つの別々の Apache HTTP Server サービスは 両方とも仮想 IP アドレスではなく INADDR_ANY にバインドする必要があるため、ポート 80 にバインドされた二つの別々の Apache HTTP Server サービスを実行することはできません。
iptables メソッドを使用してダイレクトルーティングを設定するには、以下の手順を実行します。
  1. 実サーバーでの実行が意図された VIP、ポート、プロトコル (TCP または UDP)の組み合わせすべてに、以下のコマンドを実行します。
    iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT
    このコマンドで、実サーバーは与えられた VIP とポートが宛先となっているパケットを処理します。
  2. 実サーバー上で設定を保存します。
    # service iptables save
    # chkconfig --level 2345 iptables on
    上記のコマンドで、システムはネットワーク開始前に、起動時に iptables 設定をリロードします。