ビュー:

Linux Virtual Server (LVS) をロードバランサーとして構成およびデプロイし、複数のインターネットアクセスオンプレミスゲートウェイを Single Sign-On の認証プロキシとしてサポートします。

Linuxは、認証プロキシとして使用するために、ネットワークアドレス変換(NAT)および送信元と宛先を含む完全なネットワークアドレス変換(フルNAT)モードをサポートしています。
注意
注意
  • これらの画面と指示は、LVSバージョン1.27-8を使用して2024年7月15日現在有効です。
  • この指示は、使用しているマシンに2つのネットワークインターフェースコントローラー(NIC)があり、それぞれ異なるネットワークとサービスゲートウェイを持っていることを前提としています。
    NICnetworkTopology=GUID-1cbbf8ec-b284-4e74-8759-9d9d5a992dea.jpg
    1 つの NIC を使用する場合は、追加の構成が必要です。詳細については、Linux Virtual Server ドキュメントを参照してください

手順

  1. LVSをNATモードで動作させるには:
    重要
    重要
    NATモードで動作する場合、LVSは上流サーバーにパケットを送信する際に宛先ネットワークアドレス変換(DNAT)のみを実行するため、LVSはすべての接続されたオンプレミスゲートウェイのゲートウェイでなければなりません。
    1. Keepalived をインストールして、LVS に負荷分散機能を提供します。
    2. /etc/keepalived/keepalived.conf で Keepalived の設定ファイルを編集し、virtual_server のブロックを作成します。
      virtual_server <IP> <port> { delay_loop <loop> lb_algo <lb_algo> lb_kind NAT persistent_timeout <persistent_timeout> protocol TCP real_server <IP 1> <port 1> { weight <weight 1> } real_server <IP 2> <port 2> { weight <weight 2> } ... }
    3. 設定を完了するために、以下の表の値をプレースホルダーのフィールドに指定してください。
      フィールド
      Value
      IP
      クライアントがアクセスするロードバランサーのIPアドレスです。それはロードバランサーのIPアドレスまたは仮想IPである可能性があります。
      ポート
      認証プロキシとして使用されるロードバランサーのリスニングポート
      lb_algo
      次のいずれかを選択します。
      • rr: ラウンドロビン
      • wrr: 重み付きラウンドロビン
      • lc: 最小接続
      • wlc: 重み付き最小接続
      • sh: ソースハッシュ
      • dh: 宛先ハッシュ
      • lblc: ローカリティベースの最小接続
      重要
      重要
      sh または dh を使用しない場合、接続を永続化するために persistence_timeout フィールドに値を設定する必要があります。
      lb_kind
      NAT
      Persistence_timeout(オプション)
      lb_algo の値が sh または dh でない場合は必須
      永続接続のタイムアウト値(秒単位)を指定してください。
      プロトコル
      TCP
      IP(1、2、3、…)
      サービスゲートウェイのIPアドレス(インターネットアクセスが可能なオンプレミスゲートウェイにインストール済み)
      ポート (1, 2, 3, … )
      認証プロキシに使用されるサービスゲートウェイのリスニングポート
      重み
      負荷分散の決定に使用される重み
      以下は、ポート10000で待機している1つの仮想サーバーを持つ例の構成です。負荷分散アルゴリズムはNATモードで動作するラウンドロビンです。永続タイムアウトは10秒です。2つの上流サービスゲートウェイが接続されています:1つは192.168.1.100で、ポート8089で待機しており、もう1つは192.168.1.101で、ポート18089で待機しています。
      virtual_server 10.64.1.2 10000 { delay_loop 20 lb_algo rr lb_kind NAT persistent_timeout 10 protocol TCP real_server 192.168.1.100 8089 { weight 1 } real_server 192.168.1.101 18089 { weight 1 } }
  2. (オプション)LVSをフルNATモードで実行するように設定するには、次の追加の構成手順を実行します
    重要
    重要
    フルNATモードで動作する場合、LVSは上流サーバーにパケットを送信する際にDNATとSNATの両方を実行するため、すべての接続されたオンプレミスゲートウェイのゲートウェイとして機能する必要はありません。
    1. iptablesで以下のルールをNATで使用するように設定します。IPフィールドはクライアントがアクセスするIPアドレスであり、ポートフィールドは認証プロキシとして使用されるロードバランサーのリスニングポートです。
      iptables -t nat -I PREROUTING -d <IP> <port> -j MARK --set-xmark 0x4000/0x4000 iptables -t nat -I POSTROUTING -m mark --mark 0x4000/0x4000 -j MASQUERADE
    2. 次のコマンドを使用して、IPVSのconntrackを有効にします。
      sysctl net.ipv4.vs.conntrack=1
    3. 次のコマンドを使用して、IP転送を有効にします。
      sysctl net.ipv4.ip_forward=1