回答編集履歴

1

完全解決(たぶん)

2019/02/09 23:51

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -1,3 +1,45 @@
1
+ 【2019年2月10日更新】
2
+
3
+
4
+
5
+ 現象が再発したので、再度調査したところ、原因と回避策がわかりました。
6
+
7
+
8
+
9
+ 原因: 複数のネットワークへの接続により複数のIPアドレスを持つ状態だと、mDNSのマルチキャストパケットが飛ばない。
10
+
11
+ 回避策: ターゲットがあるネットワークに接続するNIC以外は無効にし、ネットワークを一つにする。
12
+
13
+
14
+
15
+ 私の環境ではHyper-Vをインストールしていたため、仮想マシンNAT用の"vEthernet (Default Switch)"が常に有効であり、実質二つのネットワークに常に接続されている状態でした。"vEthernet (Default Switch)"を無効にしたところ、mDNSのマルチキャストパケットが流れて、無事名前解決が出来ました。
16
+
17
+
18
+
19
+ 駄目なときは`dig @224.0.0.251 _dp_fujitsu._tcp.local. ptr -p 5353`でも駄目なのですが、元々の管理アプリはmDNSでの検索が出来ており、違いを調べたところ、次のようになっていました。
20
+
21
+
22
+
23
+ * Rubyのresolvおよびdig: 受け取りポートを"0.0.0.0"および"[::]"でバインド => 複数ネットでNG
24
+
25
+ * 管理アプリ: 受け取りポートをインターフェースのIPアドレスでバインド => 複数ネットでもOK
26
+
27
+
28
+
29
+ "0.0.0.0"と"[::]"は全てのインターフェースのIPアドレスを表しますが、候補になるIPアドレスが複数ある場合は、マルチキャストをどのインターフェースから送れば良いのかわからなくなるのか、パケット送信がされません(Wiresharkでパケットキャプチャして確認)。この動作は、Windows 10のバグなのか、仕様なのかまではわかりませんが、避けた方が良いと思われます。
30
+
31
+
32
+
33
+ 通常の環境ではネットワークは一つだけなので問題ないことが多いでしょうが、開発環境は仮想環境用にHyper-VやVirtualBoxを入れている場合が多く、仮想マシンNAT用ネットワークが常に有効というのも多いと思います。そのような環境の方は気をつけていただければと思います。
34
+
35
+
36
+
37
+ ---
38
+
39
+ (下記は最初の古い内容です)
40
+
41
+
42
+
1
43
  本日、再度試して見たところ、問題なく取得できました。問題が発生していたときから、ファイアウォール等に大きな変更はしていません。もしかしたら、ファイアーウォール周りに何らかのバグがあって、Windows Updateでなおったのでは無いのかと思っています。
2
44
 
3
45