Linux Virtual Server (LVS) をロードバランサーとして構成およびデプロイし、複数のインターネットアクセスオンプレミスゲートウェイを Single Sign-On の認証プロキシとしてサポートします。
Linuxは、認証プロキシとして使用するために、ネットワークアドレス変換(NAT)および送信元と宛先を含む完全なネットワークアドレス変換(フルNAT)モードをサポートしています。
注意
|
手順
- LVSをNATモードで動作させるには:
重要
NATモードで動作する場合、LVSは上流サーバーにパケットを送信する際に宛先ネットワークアドレス変換(DNAT)のみを実行するため、LVSはすべての接続されたオンプレミスゲートウェイのゲートウェイでなければなりません。- Keepalived をインストールして、LVS に負荷分散機能を提供します。
/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> } ... }
- 設定を完了するために、以下の表の値をプレースホルダーのフィールドに指定してください。フィールドValueIPクライアントがアクセスするロードバランサーのIPアドレスです。それはロードバランサーのIPアドレスまたは仮想IPである可能性があります。ポート
認証プロキシとして使用されるロードバランサーのリスニングポート lb_algo次のいずれかを選択します。-
rr
: ラウンドロビン -
wrr
: 重み付きラウンドロビン -
lc
: 最小接続 -
wlc
: 重み付き最小接続 -
sh
: ソースハッシュ -
dh
: 宛先ハッシュ -
lblc
: ローカリティベースの最小接続
重要
sh
またはdh
を使用しない場合、接続を永続化するために persistence_timeout フィールドに値を設定する必要があります。lb_kindNATPersistence_timeout(オプション)lb_algo の値がsh
またはdh
でない場合は必須永続接続のタイムアウト値(秒単位)を指定してください。プロトコルTCPIP(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 } }
-
- (オプション)LVSをフルNATモードで実行するように設定するには、次の追加の構成手順を実行します
重要
フルNATモードで動作する場合、LVSは上流サーバーにパケットを送信する際にDNATとSNATの両方を実行するため、すべての接続されたオンプレミスゲートウェイのゲートウェイとして機能する必要はありません。- 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
- 次のコマンドを使用して、IPVSのconntrackを有効にします。
sysctl net.ipv4.vs.conntrack=1
- 次のコマンドを使用して、IP転送を有効にします。
sysctl net.ipv4.ip_forward=1
- iptablesで以下のルールをNATで使用するように設定します。IPフィールドはクライアントがアクセスするIPアドレスであり、ポートフィールドは認証プロキシとして使用されるロードバランサーのリスニングポートです。