Windows Server {2000,2003,2008} でDSRを行う方法
「Keepalived + LVS + CentOS4 でロードバランサー(DSR) - Sleepless geek in Seattle」あたりで、Keepalived を使ったCentOS のロードバランスは簡単にできるようになったが、Windows Server の設定はどうやるんだろうと調べてみたら、こんな素敵なエントリ を見つけた。
Windows Server 2008 上にこの通りの設定をやってみたがうまく行かない。どうやら、上記のエントリでは、Windows Server 2003 でのみ動作するようだ。 Windows Server 2000, 2003, 2008 でやり方がそれぞれ違うことが分かったのでここにログを残そう。
- loopback インタフェースの追加(2000, 2003, 2008 共通)
概要を書くと、
新しいデバイスの追加 -> ネットワーク アダプタ -> 製造元からMicrosoftを選択 -> ネットワーク アダプタの中から Microsoft Loopback Adapter を選択
そのloopback インタフェースに、Virtual IP を振る。
詳細は、「Windows serverでDSRを行う方法: sanonosa システム管理コラム集」 を参照。
- Windows Server 2000 の場合
Metric を254などの大きい値にする。方法は、「@IT:Windows TIPS -- Tips:高速なネットワーク・インターフェイスを自動的に選択可能にする」を参照。これだけ。
ファイアウォールを無効にするか、そのポートのトラフィックを遮断しないように設定する。これだけ。
ファイアウォールを無効にするか、そのポートのトラフィックを遮断しないように設定するのに加えて、以下のコマンドを実行する。
"Local Area Connection" と "loopback" の部分は、各自読み替えること。(Windows Server日本語版だと、 「ローカルエリア接続」 みたいな名前になる。)
netsh interface ipv4 set interface "Local Area Connection" weakhostreceive=enabled netsh interface ipv4 set interface "loopback" weakhostreceive=enabled netsh interface ipv4 set interface "loopback" weakhostsend=enabled
参考にしたサイト
「Windows serverでDSRを行う方法: sanonosa システム管理コラム集」
「Loadbalancer.org Blog » Blog Archive » Direct Routing aka. Direct Server Return on Windows 2008 using loopback adpter」