問題: 私のワイヤレス ネットワークには、ドメイン名「serenity」、192.168.1.1、ホスト名「jayne」(Arch Linux、192.168.1.108)、および「mal」(Mac OS X、192.168.1.101) の 2 台のコンピュータがあります。この 2 台を通信させようとすると、次のようになります。
jayne$ ping mal
PING mal.serenity (184.106.31.161) ... [pings go through to weird IP]
そして
mal$ ping jayne
PING jayne.serenity (184.106.31.161) ...
ただし、ルーターに ping を実行すると機能します。
jayne or mal$ ping serenity
PING serenity.serenity (192.168.1.1) ...
そして、事態は奇妙になります。
jayne or mal$ ping google
PING google.serenity (184.106.31.161) ... [same IP as before]
jayne or mal$ ping google.com
PING google.com (74.125.115.106) ... [works as expected]
jayne$ ping 192.168.1.101
PING 192.168.1.101 (192.168.1.101) ... [works as expected]
では、なぜマルとジェインがお互いを見ることができないのでしょうか?
キャッチ: serenity は現在、インターネットへのプライマリ ゲートウェイである、192.168.0.1 にある別の既存のルーター (ドメイン名はありません) に接続されています。serenity を常に 192.168.0.2 にマップするように静的 DHCP ルールを設定しました。
さて、ブラウザで存在しないURLにアクセスすると、ISPの「インターネットで*を検索」ページにリダイレクトされることに気づいたので、pingが解決する奇妙なIPアドレスは、おそらくISPでそれを処理するサーバーに属していると考え、.0.1ルーターのDNSサーバーを次のように変更しました。Google のパブリック DNSサービス。
現在、 "完全な" 名 ("mal.serenity" など) を使用しても、まったく解決されない ("ping: 不明なホスト mal"、"ping: jayne を解決できません: 不明なホスト")ping mal
かping jayne
、またはまだ正常に実行できますping serenity
。
では、なぜマルとジェインがお互いを見ることができないのでしょうか?
私はネットワークに詳しいわけではないので、おそらくどこか設定が間違っているだけだと思いますが、とりあえず、hosts
ホスト名を IP アドレスに手動でマッピングすることでファイルを使用してこの問題を回避していますが、これは症状を修正しているだけで、問題を解決しているわけではありません。
答え1
上記のコメント/質問に対するあなたの回答に基づいてこれを修正または削除する場合があります。
これが起こっていると私は考えていますが、あなたにも多少は役立つかもしれません。最初の部分は簡単です。DNS を使用して、DNS のどこにも登録されていないワークステーションに ping を実行しようとしており、ルーター/DNS サーバーが外部 IP アドレスを返しています (そうだと思います。上記の質問に対する回答でこれが確認できます)。
2 つ目の部分は、2 台の Windows ワークステーションを比較する場合、ローカル DNS サーバーに登録されていないときは、NetBIOS over TCP/IP を使用して互いを検索するということです。あなたの場合、私は Linux や Mac のユーザーではないので、使用できる同様のものがあるかどうかはわかりません。また、あったとしても、現在は使用されていません。
私が言えるのは、Linux ボックスを DNS サーバーとして設定し、独自の DNS をホストして、そのサーバーにコンピューターを登録するか、または HOSTS ファイルをそのまま使い続けることができるということです。最後に、NetBIOS over TCP/IP と同様に、DNS を使用せずに Linux と Mac を通信させる方法を教えてくれる別の回答を追加する人が現れる可能性が非常に高いです。
NetBIOS over TCP/IP の概念に似たものを誰かが思いつかない場合は、HOSTS ファイルを使用しても問題ないというのが私の個人的な意見であり、それが正しい方法です。
答え2
「.serenity」ビットが DNS 検索ドメインとして追加されている可能性があります。これは DHCP 経由で自動的に構成できるため、おそらくそこから取得していると考えられます。ルーターの DHCP 設定で、検索ドメイン フィールド (存在する場合) をすべてクリアします。
それでも表示される場合は、Windows で TCP/IP 設定に移動し、「詳細設定」をクリックして、DNS タブで次の操作を行います。
- 「この接続のDNSサフィックス」ボックスをクリアします
- 「これらのDNSサフィックスを追加する」を選択し、リストに何もないことを確認します
IPv4 と IPv6 の両方でこれを行う必要がある場合があります。
Mac では、システム環境設定のネットワークに移動します。接続の [詳細] ボタンをクリックし、DNS タブの [+] ボタンをクリックして空のエントリを追加します。(DHCP からの偽のエントリはグレー表示されているため、この方法でのみ削除できます。)
/etc/resolve.conf
Mac と Linux の両方で、検索ドメインがそこに含まれていないことを確認する必要がある場合もあります。
不可解な DNS 結果については、DNS プロバイダーが使用している「キャッチオール」または「ドメイン名修正」サービスの一種だと思います。通常、プロバイダーは存在しないすべてのドメインに対してこの結果を返すことで、広告収入を得ようとします。OpenDNS や多くの ISP がこれを行っています。
検索ドメインが追加されたホスト名は、有効なローカル ホスト名ではなくなり、OS にとっては適切な FQDN のように見えるため、OS は NetBIOS を参照するのではなく、DNS サーバーに送信します。この「キャッチ オール」サービスがない場合、OS は最終的にこれが適切なドメインではないことを認識し、NetBIOS またはその他の名前解決メカニズムにフォールバックします。