電子書籍の厳選無料作品が豊富!

turbolinux8sでsamba-2.2.7a-8jaJPを使用しています。
とりあえず初めてなので元々入っていたものを使用しています。

sambaで名前解決ができるそうなのですが、これはどういう仕組みになっているのでしょうか?
ちなみにsmbサービスを起動させていると、windwosから
ping ホスト名でpingは通ります。しかし、linuxから
ping ホスト名では通りません。この辺の違いもなぜだか分かりません。
あと、smbを停止させた後でもwindwosからはping ホスト名で通ってしまいます。なお、windows側でhostsファイルには何も追加していません。

これについて詳しく教えていただければと思います。

A 回答 (2件)

あんまり、詳しくはないので、いい加減な説明だと思って聞いて下さい。


いわゆるwindowsのネットワークで使われるホスト名は、NETBEUI名でこれは、NETBEUIという小規模ネットワークでのネットワークプロトコル(通信の為の取り決め)です。
NETBEUIでは、ブロードキャスト(放送)によって名前の解決をします。
言ってみれば、ネットワーク上に
俺の名前はチョメチョメだぁ~とか
おまえの名前はなんなんだぁ~とか
こういう名前を探してるぅ~と叫ぶことに相当します。
こういうことをやっていると、ネットワークに参加しているホスト(PC)が少ない場合はいいですが、
多くなってくると、ネットワーク上で叫んでいる人ばかりになってしまって、ネットワークが混雑して使えなくなります。
そこで、名前の管理をしてくれるPCが必要になります。
MSでは、このNETBEUI名の管理をしてくれるサーバーをWINSといいます。
そういうサーバーがある時には、それぞれのPCは、名前を知らせたい時、知りたい時サーバーにアクセスすればいいのです。
WINSを使うにはMSのサーバーが必要になりますが、色々制約やらロイヤリティやらありますので、いわゆるフリーのOSで構成されるようなネットワークになじみません。(フリーでなくなってしまう)
そこでWINSの様な動作をするサーバーとして、
sambaが作られました。
動作としては、俺は、IP*.*.*.*の何々だという情報を貰ってそれを知りたいホストに提供することです。
windowsのPCは、WINSとかサーバーを設定してあると、そこから、名前を問い合わせてIPアドレスを得ることができます。
それで、NETBEUI名でpingとかができるということですね。
Linuxでは、基本的に名前の解決にはDNSを使います、WINSを自動的に使うという設定がありませんので、
NETBEUI名では、名前の解決ができません。
windowsのネットワークでは、WINSなど(sambaも)サーバーがなくてももともと動作するようになっています。
それは、サーバーが存在しない場合、ネットワーク上の適当な(例えば、NTとか)ホストがサーバーの替わりをやってくれるからです。このサーバーの替わりをやってくれているホストをマスタブラウザといいます。このホストが誰かがネットワーク上で叫んだのを覚えておいて、サーバーの替わりに返答(アドレスを教えてくれる)してくれるわけです。
そういうのが無い場合でも、叫べば直接返事(本人がアドレスを教えてくれる)をしてくれるかも知れません。(マイネットワークに表示のないPCでも直接名前を入力すればアクセスできる)
    • good
    • 0

Linux 上での名前解決の方法は /etc/nsswitch.conf の hosts で定義されます。

通常は hosts ファイルと dns になっているはずです。
また、Windows と samba の名前解決について参考URLに詳しい解説があります。

参考URL:http://www.samba.gr.jp/doc/browsing/browsing01.h …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!