コンピュータ名で共有フォルダにアクセス出来ない。
しかし、IPアドレスでは共有ファイルにアクセス出来る。
そんな時は、そのパソコンからのWindowsの名前解決(コンピュータ名をIPアドレスと関連付ける)が問題になっています。
レジュメ
Windows名前解決の仕組み。DNS、NetBIOSに加えLLMNR
パソコン「client」からサーバー「server」にアクセスするには、コンピュータ名「server」だけ知っていてもアクセスできません。
コンピュータ名「server」からIPアドレス「192.168.1.1」を知る必要があります。
パソコンからサーバーにアクセスするためにはIPアドレスが必要なんです。
Windowsでコンピュータ名からIPアドレスを知るためには何種類か方法があります。
コンピュータ名からIPアドレスに変換するに当たり
- パソコン内のファイルに定義された「hosts」「Imhosts」
- サーバーに定義された「DNS」「WINS」
- ネットワーク上を探す「NetBIOS」「LLMNR」
の三つに分類されます。
一昔前の人は「LLMNR」について知らないので注意しましょう。
IPv6が登場した時期から、新しい名前解決の方法が出来ました、それが「LLMNR」です
Windows名前解決(コンピュータ名からIPアドレス)の順番
名前解決とは、「コンピュータ名からIPアドレスを知る方法」になります。
Windowsが名前解決するのいは、以下の順番になります。
- (DNSキャッシュ)
- hostsファイル
- DNSサーバーに問い合わせる
- LLMNRでネットワークを探す
- (NetBIOSキャッシュ)
- NetBIOSブロードキャストでネットワークを探す および WINSサーバーに問い合わせる
- lmhostsファイル
参考: Windows 名前解決の順序 - Ask the Network & AD Support Team - Site Home - TechNet Blogs
パソコン内のファイルに定義された「hosts」「Imhosts」
この方法は自己解決型の名前解決方法ですね(自己=自分自身の操作しているパソコン)。
これは、自分でパソコンの中のファイルに書かないと定義されないので、書いたかどうかは自分で確認して下さい。
場所は、
C:\Windows\System32\drivers\etc
です。このパスを知っているだけでも、「なんかパソコンに詳しそう」と思われるかもしれませんねw
この「hosts」ファイルや「lmhosts」ファイル内に、コンピュータ名とIPアドレスを関連付ける記述があります。
サーバーに定義された「DNS」「WINS」
この方法は詳しい人(=ネットワーク管理者のサーバー)に聞くというイメージの名前解決方法です。
これはDNSサーバーとかWINSサーバーとか言われるサーバー内に「コンピュータ名とIPアドレスの関連付け情報」が定義されています。
そのネットワークのシステム管理者が定義しています。
パソコン「client」からサーバー「server」にアクセスする時に、DNSサーバーやWINSサーバーにサーバー「server」のIPアドレスを聞きに行き、その後IPアドレス「192.168.1.1」でサーバーにアクセスしに行きます。
ネットワーク上を探す「NetBIOS」「LLMNR」
この方法は、まるでパソコンからネットワーク上に、声を大にして「コンピュータ名serverはどこにいるー?」と叫んでサーバーからの反応を待つような名前解決方法になります。
その呼び方が「NetBIOS」「LLMNR」になります。
ネットワーク上のすべての端末に聞くことになる(ブロードキャスト・マルチキャスト)ので、あまり好まれない方法ではありますが、最後の手です。
この方法で、ネットワーク上で声が届く範囲は、ルーターまでです。
ルーターを超えるネットワークには声が届きません。(ブロードキャストドメインとかサブネットとか言われます)