Menu Close

Red Hat Training

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

3.2.3. iptables を使用したダイレクトルーティング

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