web-dev-qa-db-ja.com

LAN経由でホスト名を解決できません

LANがホスト名の解決を停止することがあります。なぜこれが起こるのかわかりません。これらの問題をどのように診断できますか?

2つのルーターがあります。 1つはインターネットに接続されています(ファイバーモデム経由)。もう1つはワイヤレススイッチとして設定されています。つまり、最初のルーターを介してインターネットにサービスを提供しますが、別の部屋にあり、その部屋のコンピューターへのイーサネット接続に使用されます。

この問題は、最初のルーター(または他のルーター)に起因しているようです。私はそのスイッチルーター、またはネットワーク全体の構成に関する問題を疑っています。これは、通常http://homeと入力して、インターネットに接続されたルーターのルーター構成にアクセスするためですが、これは機能しません。ただし、IPアドレスを入力して、構成ページにアクセスすることはできます。これは、元のルーターに接続しているか、スイッチルーターに接続しているかに関係なく発生します。

同様に、LAN上にWebサーバーがあり、通常はコンピューターのホスト名を使用してアクセスしますが、ネットワーク経由では実行できません(ただし、IPアドレスは機能します)。

同様に、ネットワーク上のIPアドレスへのpingは機能しますが、ホスト名は機能しません。

仮にあったとしても、これをどのように修正するかはわかりません。通常、ルーターなどを再起動すると、元に戻ります。今回はそうではなかったので、なぜこれが起こっているのかについてもう少し洞察を探しています。

5
Thomas Clayson

提供した情報によると、ルーターのDNSサービスが実際に機能しているかどうかを判断することから始める必要があります。これは、ルーターの構成を調べてサービスが稼働しているかどうかを確認することで判断できるはずですが、役立つインジケーターがない場合は、ポートスキャンを使用できます。


ルーターがDNSを教えてくれた場合は、このセクションをスキップしてくださいISライブ:

nmap などのツールを使用します。標準のLinuxディストリビューション(Debian、Ubuntu、CentOS、Mint、Fedora、Redhatなど)のほとんどのデフォルトパッケージリポジトリに含まれているため、Linuxサーバーにすばやくダウンロードできます。 DebianベースまたはRPMベースのどちらのディストリビューションを実行しているかによって、コマンド構文が異なる場合があります。

  • Debianの場合:

    • nmapを検索するには:_Sudo apt-cache search nmap_
    • nmapをインストールするには:_Sudo apt-get install nmap_
  • RPM(Fedora、Centos、RedHatなど)の場合:

    • _dnf search nmap_
    • _dnf install nmap_
  • dnfより前の古いバージョン:)

    • _yum search nmap_
    • _yum install nmap_

DNSをスキャンする

ルーターのIPが_192.168.1.1_であるとすると、ポート53(_-sU_)でサービスUDPスキャン(_-p53_)をアグレッシブな解像度(_-A_)で実行します。それがライブで機能しているかどうかを把握します。

_nmap -sU -p53 -A 192.168.1.1
_

サービスが戻ってきたらOPEN | UNFILTERED、あなたは金色です。 [〜#〜] closed [〜#〜]と表示された場合は、構成をもう少し調べて、許可するオプションがあるかどうかを確認してください。 DNSを再構成するか、ルーターを再起動して、ルーターが正常に戻ることを期待します。他のすべてが失敗した場合は、製造元に電話して、大量に文句を言ってください。それは時々うまくいきます:)


Windowsホストの構成:

手元のタスクに戻ります。ルーターでDNSが実行され、正しく機能していることが確実である限り、Windowsクライアントは少し単純であり、信頼できるGUIがあるため、Windowsクライアントを機能させることをお勧めします。ルーターにフォールバックDNSを設定して、1つが失敗した場合に複数のDNSサーバーにクエリを実行できるようにすることをお勧めします。

私の個人的なお気に入り:

  • _8.8.8.8_はGoogle1です
  • _8.8.4.4_はGoogle2です
  • _208.67.220.220_はOpenDNS1です
  • _208.67.222.222_はOpenDNS2です

それが完了したら、次のステップは、TCP/IPv4ネットワーク設定で手動で構成することにより、Windowsシステムにルーター上のDNSを解決させることができるかどうかを確認することです。

  1. タスクバーの右下部分にあるネットワークアイコンを右クリックして、_Networking and Sharing Center_に移動します。
  2. ネットワークインターフェイス(_ethernet 1_など)をクリックして、propertiesに移動します。
  3. Internet Protocol Version 4 (TCP/IPv4)をクリックし、もう一度propertiesを押します。
  4. _User the following DNS server addresses_ラジオボタンをクリックします。
  5. ルーター/ DNSサーバーのIPを優先DNSとして入力します。
  6. フォールバックのために、代替DNSとして_8.8.8.8_(googleのパブリックDNS)を入力します
  7. 終了時に_Validate Settings_を確認してください
  8. OKを押して適用し、ネットワークインターフェイスがトラブルシューティング/再起動するのを待ちます

この時点で、WindowsシステムでDNSホスト名を解決できるはずです。もしそうなら、何らかの理由でルーターのDHCPサービスが正しい設定をブロードキャストしていないことを知っているので、製造元を関与させる必要があるか、どこかに到達することを期待して自分自身をいじくり回すことができます。常にドキュメントを参照してください。

一方、それが機能しない場合は、ケーブル自体またはルーターのハードウェアが疑われます。物理デバイスの交換を開始する以外に、この時点で行うことはあまりありません。


Linuxサーバーの構成:

(権限エラーが表示された場合は、root/Sudoユーザーからこれらのコマンドを実行する必要がある場合があります。)

Linuxの経験があまりない場合、これは新しい冒険になる可能性がありますが、心配する必要はありません。

_/etc/resolv.conf_ファイルを次のようにチェックすることから始めます。

_cat /etc/resolv.conf
_

このファイルは、ネームサーバー、ドメイン名、および検索ドメインが構成されている場所です。通常、次のように表示されます。

_# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
_

セットアップがどのように見えるかに応じて、2つの可能性があります。 1つは、dnsmasqがインストールされていて、resolv.confを変更しないように指示する警告バナーが表示されることです。この場合、私の構成に見られるようにループバック(127.0.0.1または127.0.1.1)があり、dnsmasqを介して独自のDNSサービスを実行していることを示しています。これが表示された場合は、次を実行します。

_/etc/init.d/dnsmasq status
_

_No such file or directory_が表示されている場合は、dnsmasqがインストールされていません。問題はありません。それなしで先に進むことも、
_apt-get install dnsmasq_(または_dnf install dnsmasq_)。

Dnsmasqをインストール/再起動しないことを選択した場合は、_/etc/resolv.conf_ファイルをお気に入りのテキストエディター(私はnanoが好きです)で編集して、次の行を含めることができます。

_nameserver 192.168.1.1 8.8.8.8 8.8.4.4    # That's your router and two fallback DNS servers
_

Dnsmasqステータスがアクティブ/実行中の場合は、インストールされ、正しく実行されています。 dnsmasqが非アクティブ/デッドの場合は、次のように起動する必要があります。

_/etc/init.d/dnsmasq start
_

dnsmasqは通常、_/etc/resolv.conf_ファイルを動的に変更することでDNS解決を処理します。リゾルバーがリクエストを適切に処理していない場合、またはdnsmasqが適切に構成されていない場合は、 その素敵なドキュメント を読むことを強くお勧めします。

ただし、_/etc/dnsmasq.conf_が適切に配置されていることを確認するために必要な設定は実際には2つだけです。

_server=/yourlocaldomain/192.168.1.1
local=/yourlocaldomain/
_

これらはサーバーをローカルドメイン名とDNSサーバーのIPに設定し、_local=/yourlocaldomain/_は、解決しようとしているホストのFQDNにドメインが見つかったときに、dnsmasqがアップストリームネームサーバーに解決しようとするのを防ぎます。

たとえば、この設定を設定せずに_emailserver.localdomain_を解決しようとすると、dnsmasqはGoogle Public DNSに_emailserver.localdomain_がどこにあるかを尋ねます...そしてもちろん「私には手がかりがありません!」

これを設定すると、dnsmasqは次のようになります: "_emailserver.**localdomain**_ ... _192.168.1.1_にこれがどこにあるか尋ねる必要があります。" -そして、ルーターである_192.168.1.1_は、適切なDNS応答と_emailserver.localdomain_のIPで適切に応答できます。


この説明と長年の解決策がお役に立てば幸いです。考えられるすべてのシナリオを説明しようとしましたが、何かを見逃したり、何かが機能していない場合はお知らせください。

2
True Demon

LANにあまり多くのコンピューターがない場合、および/または内部DNSルートに依存していない場合は、pv4構成のDNSパラメーターを次のように設定します。

8.8.8.8

そして

8.8.4.4

これにより、DNS解決作業がGoogleのサーバーに提供されます。