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 システム管理コラム集」 を参照。

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