こんにちは
家でパソコンを使っている分には、問題ないのですが、
仕事で、ユーザーにWindowsパソコンを導入したり、トラブルでお伺いした時に、時々、サーバーに「つながらない」「アクセス出来ない」などの、トラブルに出くわす時があります
その時、だいたいの原因は、「ケーブルが抜けている」「無線がつながってない」「設定が間違っている」というものですが、たまに「IPアドレスだとアクセスできるのだけど・・」という、現象があります
これは、「名前解決」の問題である可能性が高い
Windowsドメイン環境の場合は、ドメインコントローラーがDNSサーバーになり、名前解決は概ね、DNSで解決する事になるのですが、WorkGroup環境の場合や、混在の場合は、名前解決のプロセスが結構ややこしいです
今回は、パソコン(Windows 10)が名前解決する順番を調べてみました
調べた限り、以下の順番になります
【1番目】 DNSのリゾルバキャッシュ
ー>これは、普段インターネットを見たり、サーバーにアクセスしたり、する際、DNSに名前解決要求を行い、その応答(名前とIPの紐づけ情報)もらいますが、その情報はPCにしばらく保存(キャッシュ※)されます。※デフォルトで最大1日
キャッシュされている情報は、以下コマンドで確認可能
>ipconfig /displaydns
キャッシュされている情報をクリアするには、以下コマンドを実行
>ipconfig /flushdns
【2番目】 Hostsファイル
ー>これは、故意的に、名前とIPの紐づけをPCに登録するために使用します
例えば、社内のサーバーの名前をHostsファイルに登録し、DNSやその他の仕組みで、名前解決出来なくても問題なく出来ます。ファイルの場所は、以下です
"%SystemRoot%\system32\drivers\etc"
【3番目】 DNSサーバー
ー>NICに設定してある、DNSサーバーに問い合わせを行います
問い合わせをコマンドで確認する場合は、以下コマンドを実行します
>nslookup
【4番目】NETBIOS
ー>これが結構厄介です。Windows特有の仕組みで、Windowsコンピューター名は、DNSで使用される「ホスト名」とは別に、「NETBIOS名」があります。この「NETBIOS名」は、同じセグメントであれば、ブロードキャストで、勝手に名前解決をしてくれます。便利ですが、名前解決がややこしくなる原因でもあります
まず、キャッシュを確認します。以下コマンドで確認可能
>nbtstat -c
キャッシュをクリアするには、以下コマンドを実施します
>nbtstat -R
次に、「ブロードキャスト」や「WINS」、「LMHOSTSファイル」を確認します
「LMHOSTS」ファイルの場所は以下です
"SystemRoot%\system32\drivers\etc"
こんな感じの順番で名前解決を行います
この順番を変えるには、レジストで変更が可能です
レジストリの場所は、以下になります
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\ServiceProvider
ご参考になれば・・
家でパソコンを使っている分には、問題ないのですが、
仕事で、ユーザーにWindowsパソコンを導入したり、トラブルでお伺いした時に、時々、サーバーに「つながらない」「アクセス出来ない」などの、トラブルに出くわす時があります
その時、だいたいの原因は、「ケーブルが抜けている」「無線がつながってない」「設定が間違っている」というものですが、たまに「IPアドレスだとアクセスできるのだけど・・」という、現象があります
これは、「名前解決」の問題である可能性が高い
Windowsドメイン環境の場合は、ドメインコントローラーがDNSサーバーになり、名前解決は概ね、DNSで解決する事になるのですが、WorkGroup環境の場合や、混在の場合は、名前解決のプロセスが結構ややこしいです
今回は、パソコン(Windows 10)が名前解決する順番を調べてみました
Windows 10の名前解決の順番
調べた限り、以下の順番になります
【1番目】 DNSのリゾルバキャッシュ
ー>これは、普段インターネットを見たり、サーバーにアクセスしたり、する際、DNSに名前解決要求を行い、その応答(名前とIPの紐づけ情報)もらいますが、その情報はPCにしばらく保存(キャッシュ※)されます。※デフォルトで最大1日
キャッシュされている情報は、以下コマンドで確認可能
>ipconfig /displaydns
キャッシュされている情報をクリアするには、以下コマンドを実行
>ipconfig /flushdns
【2番目】 Hostsファイル
ー>これは、故意的に、名前とIPの紐づけをPCに登録するために使用します
例えば、社内のサーバーの名前をHostsファイルに登録し、DNSやその他の仕組みで、名前解決出来なくても問題なく出来ます。ファイルの場所は、以下です
"%SystemRoot%\system32\drivers\etc"
【3番目】 DNSサーバー
ー>NICに設定してある、DNSサーバーに問い合わせを行います
問い合わせをコマンドで確認する場合は、以下コマンドを実行します
>nslookup
【4番目】NETBIOS
ー>これが結構厄介です。Windows特有の仕組みで、Windowsコンピューター名は、DNSで使用される「ホスト名」とは別に、「NETBIOS名」があります。この「NETBIOS名」は、同じセグメントであれば、ブロードキャストで、勝手に名前解決をしてくれます。便利ですが、名前解決がややこしくなる原因でもあります
まず、キャッシュを確認します。以下コマンドで確認可能
>nbtstat -c
キャッシュをクリアするには、以下コマンドを実施します
>nbtstat -R
次に、「ブロードキャスト」や「WINS」、「LMHOSTSファイル」を確認します
「LMHOSTS」ファイルの場所は以下です
"SystemRoot%\system32\drivers\etc"
こんな感じの順番で名前解決を行います
この順番を変えるには、レジストで変更が可能です
レジストリの場所は、以下になります
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\ServiceProvider
ご参考になれば・・
コメント