...pudding - diary

この日記は https://yapud.hatenablog.com/ に引っ越し中


2015-06-05

_ [Software] Windows2008/2012 で自身のホスト名で名前解決したときに出てくるIPアドレス

Windows2008/2012 などで自身のホスト名で名前解決したとき、hostsファイルの優先順位が結構低い。

自身のホスト名が server1 だとしよう。ローカルのコマンドプロンプトから ping を打ってみると。

ping server1
server1 [::1]に ping を送信しています 32 バイトのデータ:
::1 からの応答: 時間 <1ms
::1 からの応答: 時間 <1ms

まずはネットワークアダプタのプロパティ画面で IPv6 を外していてもなぜか IPv6 の機能は生きていて、そのせいで “::1” と返してくる。IPv6 を無効に設定しておくと、次はようやく IPv4 のNICに割り振られたIPアドレスで返事をしてくれる。

しかしここで困ったことになる場合がある。複数のNICを付けている場合、希望のNICのIP アドレスで応答してくれないことがある。hostsファイルに書いておいても無視される。

たとえばホスト名 server1 で、NIC1 に 192.168.0.11 を設定し、NIC2 に 192.168.1.22 を設定したとしよう。

Hosts ファイルには 192.168.0.11 server1 と書いておいたとしよう。

この状態でローカルのコマンドプロンプトから ping server1 したとき、 192.168.1.22 と帰ってきてしまう場合がある。いやいやそっちのNICの優先順位は(俺の気持ちとしては)低いからさ。なんて思っても機械には通じない。機械には明確に指示を出さないとイカンのだ。

IPv4の設定画面内、メトリック値が自動割り振りとなっているのだけど、ここを自動ではなく手動で割り振り、優先的に応答して欲しいNICの方を小さい値にしておけば良い。メトリック値が小さい方が応答することになる。

Windows2000 や 2003 では、hosts に書いておいたのがサクッと採用されたものだけど、2008以降はそう簡単にはいかないよと。


2015年
6月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Twitter : @moriya_jp