同じサブネット上にWindowsマシンとLinuxマシンがあります。私のルーター構成は、マシン名とIPアドレスの両方を正しく教えてくれます。ただし、WindowsマシンからLinuxマシンにpingを実行しようとしたり、LinuxマシンからWindowsマシンにpingを実行したりする場合は、名前ではなくIPアドレスを使用する必要があります。 WindowsマシンからWindowsマシンにpingを実行している場合、またはLinuxマシンからLinuxマシンにpingを実行している場合、マシン名はホストファイルエントリなしで正しく解決されます。
どうしてこれなの?
私のルーター(D-Link DIR-655)はそれ自体がDNSサーバーとして機能すると思っていたでしょう。 「DNSリレーを有効にする」というオプションがあるようですが、私が読んだところ、これは役に立ちません。関連する場合は、DIR-655が内部トラフィックに使用され、ISPのNetgearDGN1000がインターネットへのゲートウェイとして使用されます。ただし、別のサブネット上にあり、すべてのマシンはDGN1000ではなくDIR-655に接続します。
実行しているオペレーティングシステムに関係なく、サブネット内でホスト名を自動的に解決するにはどうすればよいですか?
ある種の名前解決サーバーが必要です。
最初に、静的IPを持つ1台のマシンで動的更新を受け入れるDNSサーバーをセットアップします。 BINDは当然の選択です(WindowsとLinuxにインストールされます)が、DJBDNSなどの他のLinuxバージョンも同様に機能します... DNSサーバーは、ISPのDNSサーバーまたは他のパブリックDNSサーバーに要求を転送する必要があります。安全に使用できる適切なドメイン名は「home.internal」です。登録する必要はなく、パブリックドメインではありません... DNSを設定するこのマシンは常に稼働している必要があります...
セットアップが完了したら、セットアップしたDNSサーバーのIPを配布するようにルーターのDHCPサーバーに指示します。
ARPホスト名はNetBIOS名とは異なります。
WindowsはNetBIOS名に基づいていますが、Linuxはホスト名に基づいています。
ルーターはARP/DHCPを介してホスト名を受け取ります。はい、Windowsにもホスト名があります。
ルーターにDNSのホスト名をホストさせるか、すべてのホストファイルを調整する必要があります。
ルーターがサポートしていない場合は、ルーターにDD-WRT
をインストールし、ホストを入力するdnsmasq
ファイルと一緒にhosts
を使用することを検討できます。これはかなりの回避策だと思いますが、pingを実行できるようにするためだけにこれを実行しますか?毎日のコンピュータ活動ではありません...
私はあなたの苦痛を知っています、2011年にホスト名が箱から出してすぐに「機能する」だけではないことは完全に正気ではありません。
別のオプションはBonjourです。これはAppleテクノロジーですが、Linux( Avahi )とWindows( Bonjour for Windows )の実装があります。Bonjourでは他にアクセスできます構文を使用するコンピューター:
<hostname>.local
DD-WRT互換のルーター、またはDNSを実行するための常時接続サーバーがないため、このソリューションを使用しました。また、一度設定すると、hostsファイルのようにIPが変更されるかどうかを心配する必要はありません。