web-dev-qa-db-ja.com

LinuxができないときにWindowsマシンがローカル名を解決できるのはなぜですか?

WindowsとLinuxマシンがD-Link DIR-825ルーターに接続された小さなネットワークがあります。

ネットワーク上のWindowsマシンは他のすべてのマシンに名前で到達できますが、Linuxマシンは他のマシンにIPアドレスでしか到達できません。

ルーターのWeb管理インターフェイスのDHCPクライアントステータスリストに、名前がリストされたすべてのマシンとそのDHCP割り当てアドレスが表示されます。

Linuxマシンが名前で他のマシンを見つけることができないのに、WindowsがLinuxマシンを見つけるのに問題はないのはなぜですか?

18
Per Salmi

私はネットワークの専門家ではありません。また、このトピックの回答についてLOTを調査しています。私の現在の発見は:

  • WindowsはNetBIOS名を使用し、そのようなプロトコルはブロードキャストの1つであるため、中央サーバーがなくてもお互いを見つけることができます。

  • 最新のディストリビューションのLinuxマシンは、Avahiと呼ばれるプロトコルをネイティブに使用します。これはサーバーに依存しないブロードキャストプロトコルでもあります。ローカルネットワークマシンにはサフィックス.localがあるため、ping hostname.localを使用してLinuxからLinuxにpingするか、avahi-discoverでそれらを表示できます。パッケージ。 Gnomeの一部のアプリは、avahiを使用してネットワーク内のマシンを一覧表示します(例:リモートデスクトップビューアー)

  • LinuxマシンにSAMBAをインストールすると、NetBIOS名が割り当てられます(または、より技術的には、Linuxマシンがデフォルトでホスト名であるNetBIOS名を使用してブロードキャストリクエストで自分自身をアドバタイズします)、およびWindowsマシンがLinuxのものを見つけることができるようにする

  • Gotcha:Sambaを備えたLinuxマシンはNetBIOSプロトコル要求に応答しますが、Ubuntuのようなディストリビューションのデフォルト設定では、名前解決の方法としてNetBIOSを使用しません。これが、Linuxマシンがお互いに、またはWindowsマシンを「認識」できない理由です。そのためには、/etc/nsswitch.confファイルを編集し、winsをこの行のリストに追加する必要があります。

    hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4

  • 上記を機能させるには、 may winbind(および自動的にインストールされない場合はlibnss-winbind)パッケージをインストールする必要があります。

  • したがって、可視性の問題については、すべてのLinuxマシンにSambaをインストールする(そして/etc/nsswitch.confを編集してNetBIOS名前解決を有効にする)か、WindowsマシンにAvahiサポートをインストールします。

  • ファイル共有に関しては、SambaはLinuxマシンにWindowsとのファイル共有機能を提供します。 Nautilusの「ネットワーク」セクションで、Linuxマシンがお互いの共有フォルダとWindows(およびその逆)の共有フォルダを表示するために、/ etc/nsswitch.confを編集する必要はありません。

これがお役に立てば幸いです。 :D

32
MestreLion

デフォルトでは、DNSサーバーがなければ、WindowsはNetBIOS(Microsoft名前解決プロトコル)を使用して、ネットワークにローカルな他のWindowsシステムの名前を検出できます。前述のように この回答では 、Linux側でSAMBA(または少なくともwinbind)をセットアップする必要があるようです。これが 基本的な命令セット です。

LinuxコンピューターからWindows netbiosの名前解決を有効にするには、Sambaがインストールされていることを確認します(ただし、smbサービスが実行されている必要はありません)。 Sambaスイートには、Windowsホスト名の解決を可能にするwinbindが含まれています。次に、/ etc/nsswitch.confを編集して、次の行を変更します。

hosts: files dns

これに:

hosts: files dns wins

次に、LAN上のWindowsマシンのコンピューター名をpingしてテストします。

$ ping windowsbox

ところで、これはWINSと直接関係ありません。 WINSは、ブロードキャストトラフィックを削減し、従来の集中型名前解決プラットフォームを提供し、最終的に異なるネットワーク上のシステムが互いのNetBIOS名を認識できるようにするために、より大規模なネットワークで通常使用されるNetBIOSサーバーです。 -to-IPマッピング。

SAMBAの代わりに、DNSサーバーをセットアップして動的DNS更新を構成するか、DHCPがDNSレコードを登録できるようにします。

18
Eric C. Singer
3
joeqwerty

おそらく、Avahi/mDNS解決を設定する必要があるだけです。 WindowsのLLMNRと同じように動作します。

2
juwi

Linuxはローカル名を解決できますが、必要なソフトウェアがデフォルトでインストールされていません...

ほとんどのLinuxディストリビューションは、カーネル以外のソフトウェア要件に関してほとんど想定していません... Debianリファレンス DNSMasq

apt-cache search dnsmasq ...

0
Eddie B