マルチホーム環境の Windows で名前解決を行うと予期しない結果になる事があります。
ここでは、その解決方法を記載します。
なお、Windows Server 2012 から仕様が変わっています。
AD ドメインに参加した場合のことは「マルチホーム環境の Windows の名前解決 (2)」に記載します。
update:2015/05/24
マルチホーム環境の Windows とは?
マルチホームとは2つ以上の LAN アダプタ (NIC) がある Windows 環境を指します。
例えば、
IP セグメント1(運用) = 172.16.1.xxx
IP セグメント2(管理) = 192.162.2.xxx
のように、複数のセグメントが存在しそれらに Windows が接続する場合がマルチホーム環境と呼ばれます。
現象
マルチホーム環境の Windows に対してホスト名を指定して ping コマンドを実行すると名前解決された Ping 先 IP アドレスが予期せぬ宛先となってしまう。
なお、ping コマンド実行時にホスト名に ping すると IPv6 で応答されます。-4 を付けると IPv4 で応答します。
ping -4 “ホスト名”
対策
OS |
原因 |
対処方法/情報サイト |
Windows Server 2012 |
2012から複数の NIC がある場合、名前解決で 返される IP アドレスは、NIC のインターフェイス メトリック値の小さい側が優先される。これは仕様変更。 |
メトリック値の変更方法
- Windows ロゴ キーを押しながら R キーを押す。
- [ファイル名を指定して実行] 表示。
- [ncpa.cpl] と入力、[OK] クリック。
- [ネットワーク接続] 表示。
- 変更するネットワーク アダプタを選択し右クリック。
- [プロパティ] クリック。
- [インターネット プロトコル バージョン 4 (TCP/IPv4)] クリック。
- [プロパティ] クリック。
- [全般] タブで、[詳細設定] クリック。
- [IP 設定] タブで、[自動メトリック] チェック ボックスをオフ。
- [インターフェイス メトリック] フィールドに数値を入力。
これを、NIC ごとに実施。優先させる NIC のメトリックを小さくする。
参考:Windows Server 2012 ではサポート技術情報 981953 の対処策が使用できません。 |
Windows Server 2008, 2008 R2 |
方法は 2 つ
・バインドの順序変更。
・hosts レコード追記。 |
バインド順序変更方法
- [スタート] > [コントロール パネル] の順にクリック。
- [ネットワークとインターネット] > [ネットワークと共有センター] の順にクリック。
- オペレーティング ・ システムによって、ネットワーク アダプターの設定を変更。
Windows Server 2008 : [アダプターの設定の管理] をクリック。
Windows Server 2008 R2: [アダプターの設定の変更] をクリック。
- [整理] をクリック、[レイアウト] をポイント、[メニュー バー] をクリック。
- [詳細設定] メニューの [詳細設定] をクリック。
- [接続] ウィンドウで、優先させるネットワーク アダプターを選択。
- ネットワーク アダプターをリストの一番上に移動。
- [OK]をクリック。
hosts レコード追記方法
- [スタート] > [すべてのプログラム] > [アクセサリ] の順にクリック。
- [メモ帳] を右クリックし、[管理者として実行] をクリック。
- UAC管理者のパスワードまたは確認に応じます。
- コマンド プロンプトで cd %windir%\system32\drivers\etc を実行し移動。
- コマンド プロンプトで notepad hosts と入力し実行。
- 手順 6 で開いた hosts ファイルの下部にエントリを追加、IP アドレスとホスト名の間は半角スペースまたはtab。(例)10.0.0.1 Server01
- [メモ帳] を保存して閉じる。
- キャッシュされている情報をクリヤし hosts ファイルをリロードするため、コマンド プロンプトで ipconfig /flushdns コマンドを実行。(*1)
Windows Server 2008 または Windows Server 2008 R2 では、NetBIOS 名を使用して、サーバーに対して ping を実行すると、無効な IP アドレスが返されます。 |
(*1)ipconfig のパラメータ
/flushdns :DNS キャッシュを消去
/displaydns :DNS キャシュのエントリを表示
自動メトリックの選択を解除し、メトリック値を設定する。
優先となる NIC のバインド順を上位に設定する。
注意
ネットワーク アダプターに複数のアドレスがある場合に IPv6 アドレスが優先します。
参考
- 「マルチホーム環境にて API により IPv4 アドレスが返される順番について」
- 文書番号:2854670「Windows Server 2012 ではサポート技術情報 981953 の対処策が使用できません。」
- 文書番号:981953「Windows Server 2008 または Windows Server 2008 R2 では、NetBIOS 名を使用して、サーバーに対して ping を実行すると、無効な IP アドレスが返されます。」
関連