vol38. windows10でmDNSの問題を解決する

先日、windows10で名前解決の問題にぶち当たった。windows10からLAN接続されている機 器に対してpingが通らないのである。

結論からいうと、windows10に実装されているmDNSを無効にして、3rd party のmDNSをイ ンストール(bonjour)したら問題が解決した。

windows10に3rd partyのmDNSをインストールしても、window10で実装された標準mDNS が優先的に使用される、かつ、このmDNSがバグってる(予想)ので、うまくうごかなかった模様 。レジストリを修正して、標準mDNSを無効にしないといけない。

解決に丸1日以上かかったので、うっぷんばらしと、今後の備忘録代わりにブログに投稿 しておく。

問題の概要

ホスト名(hogehoge.local)でターゲットを指定すると、ホスト名が見つからないと怒られ る。IPアドレス指定は問題なしなことから名前解決の問題。 ホスト名指定でも、ping に-4オプションを加えとipv4指定すると動くが、-6とipv6指定すると動かない。 以下はそのログ。

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local
ping 要求ではホスト hogehoge.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping 192.168.100.18
192.168.100.18 に ping を送信しています 32 バイトのデータ:
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping fe80::2fc:70ff:fe00:1
fe80::2fc:70ff:fe00:1 に ping を送信しています 32 バイトのデータ:
fe80::2fc:70ff:fe00:1 からの応答: 時間 <1ms
fe80::2fc:70ff:fe00:1 からの応答: 時間 <1ms

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local -6
ping 要求ではホスト hogehoge.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local -4
hogehoge.local [192.168.100.18]に ping を送信しています 32 バイトのデータ:
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64

システム構成

システム構成は以下の通り

  • PC A (Windows10)
  • PC A (Linux Debian(Vmware on Windows10))
  • PC B (Windows7)
  • 機器A (Linux: hogehoge.local)
  • avahi daemon を利用して、mDNS をサポート。機器名はhogehoge.local

システム内の機器はEthernet Switch を通じて接続。システム内のすべての機器はipv4, ipv6対応している。

詳細

以下詳細。

  • PC A(windows10)から機器A(hogehoge.local)へのpingで名前解決ができない

    • ipv4指定にすると(ping -4) 問題なし
    • ipv6指定にすると(ping -6) 問題発生
  • PC A(Linux Debian@vmware)からの機器へのpingでは問題なし

  • PC B(Windows7)でも問題なし

    • 標準状態では、ipv4, ipv6指定共に、問題発生 これは、windows7ではmDNSはサポートされていないから。 windowsでは、DNSサーバーがなしの名前解決のプロトコルとして、LLMNRが採用されているが Linuxではこのプロトコルはサポートされていない。
    • bonjour for windows といった3rd party 制のmDNS cleinet をインストールする とipv4, ipv6共に動作するようになる
  • その他

    • windows10にもbonjour install してみたけどNG.

問題解決方法

冒頭にも述べたように、結論から言うと、windows10のmDNSの機能を無効にし、他のmDNSクライアントを 用いることで問題が解決する。

  1. mDNSを無効にする
  2. 3rd party のmDNS client をインストールする

これで動くようになった!!

いろいろ情報を集めたけど、最終的な決めてとなったのは以下の投稿。感謝!!

http:// https://superuser.com/questions/1330027/how-to-enable-mdns-on-windows-10-build-17134