web-dev-qa-db-ja.com

ドメイン上にない場合、マシンの名前解決はどのように機能しますか?

Linksys WRT54ワイヤレスルーターを使用して、ホームネットワーク上に4台のWindowsマシン(3 x Win7、1 x WinXP)とその他のさまざまなデバイスがあります。ドメインサーバーがなく、一部のマシンで他のマシンのホスト名を解決できないという問題が発生しました。

DNSサーバーがない場合、それはどのように機能しますか?すべて同じワークグループ名で設定しましたが、「Pingリクエストでホストが見つかりませんでした...」というメッセージが表示されて失敗します。

この問題の原因をどのように見つけることができますか? Windowsファイアウォールで動作を妨げる特定の事項はありますか?

2
Neil Barnwell

Windowsマシンは、他のホストのIPを解決するために独自の手法を使用します。最も一般的には、ブロードキャストまたはマルチキャストを使用して、ネットワーク上で利用可能であることをアドバタイズします。

たとえば、Windows XPはNetBIOSネームサービスを使用して、ブロードキャストパケットを使用してアドバタイズし、解決します。Vista以降、マルチキャストベースのLLMNRも利用できますが、Mac OSXとLinuxは非常によく似たmDNSを使用します。 、NetBIOSは依然として最も広くサポートされていますが。

他のホストに確実に接続できるようにしたい場合は、いつでもホストファイルを編集して解決できます。この方法は、静的IPがある場合の唯一のオプションです。

  • Wiresharkを使用してネットワークで何が起こっているかを確認しますが、少し高度な場合もあります。 Wiresharkを使用すると、NIC上を流れるネットワークトラフィックを確認できます。
  • ファイアウォールを一時的にシャットダウンしてから、他のホストにpingを実行してみてください。
  • NetBIOSが機能していることを確認します。
2
Robert

Microsoft TCP/IPホスト名解決順序 執筆時点での順序の概要(NT4/9x)。それ以来、あまり変化はありませんでした。 「ホストの解決」と「winsockの解決」の2つの方法について説明しています。

プログラムの大部分(Webでさえ)は、ws2_32!gethostbynameで実装されたwinsockメソッドを使用します。その順序は、スニファ(Wiresharkなど)で確認できます。

Win7の時点で、私が観察する順序は次のとおりです。

  • FQDNの場合:DNSのみ

  • 修飾されていない名前の場合:

    1. ドメインプレフィックスが付いた接続がある場合:そのプレフィックスが追加されたDNS
    2. [〜#〜] llmnr [〜#〜] (udp/5355マルチキャスト)(XPには存在しません)
    3. NetBIOS 構成された「ノードタイプ」に応じて。事実上常に、それはハイブリッド別名Hノードです。つまり-WINSサーバーが構成されている場合は、NBNS(udp/137ブロードキャスト)

hostsファイルは常にDNSルックアップをオーバーライドし、lmhostsはNetBIOSルックアップをオーバーライドすることに注意してください。

「ホスト解決」はDNSのみを使用するように指定されており、IEおよびいくつかのユーティリティなどの「一部のプログラム」でのみ使用されます-wininetを使用するアプリで表示されます。

0
ivan_pozdeev