Menu Close

Red Hat Training

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

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

firewalld でファイアウォールルールを作成することで、 ダイレクトルーティングメソッドを使用した場合の ARP 問題を回避することもできます。firewalld を使用してダイレクトルーティングを設定するには、VIP アドレスがシステム上に存在しなくても VIP アドレスに送信されたパケットを実サーバーが扱うように透過プロキシを作成するルールを追加する必要があります。
firewalld メソッドは arptables メソッドよりも設定が簡単です。単一または複数の仮想 IP アドレスがアクティブ LVS ディレクター上にのみ存在するため、このメソッドでは LVS ARP 問題も完全に回避できます。
しかし、パケットが返されるたびにオーバーヘッドが発生するため、firewalld メソッドは arptables と比較してパフォーマンスに大きく影響します。
また、firewalld メソッドを使用してポートを再利用することはできません。例えば、2 つの別々の Apache HTTP Server サービスは両方とも仮想 IP アドレスではなく INADDR_ANY にバインドする必要があるため、ポート 80 にバインドされた 2 つの別々の &HTTPD; サービスを実行することはできません。
firewalld メソッドを使用してダイレトルーティングを設定するには、すべての実サーバーで以下の手順を実行してください。
  1. firewalld が実行されていることを確認します。
    # systemctl start firewalld
    firewalld がシステム起動時に開始するように有効化されていることを確認します。
    # systemctl enable firewalld
  2. 実サーバーに対して処理されるすべての VIP、ポート、プロトコル (TCPまたはUDP) の組み合わせに以下のコマンドを使用します。このコマンドで、実サーバーは与えられた VIP とポートが宛先となっているパケットを処理します。
    # firewall-cmd --permanent --direct --add-rule ipv4 nat PREROUTING 0 -d vip -p tcp|udp -m tcp|udp --dport port -j REDIRECT
  3. ファイアウォールルールを再読み込みし、状態情報を維持します。
    # firewall-cmd --reload
    現在の永続的設定は、新しい firewalld ランタイム設定と次回のシステム起動時の設定となります。