2005/08/21(日) [n年前の日記]
#1 [windows][linux][vine] マスタブラウザ云々、ブラウズリスト云々で困惑中
自分が何を望んでいるのか自分でも何がなんだか。
要するに、Windows機で「マイネットワーク」or「ネットワークコンピュータ」を開いたときに、LAN内のコンピュータの一覧が表示されるようにしたい = ブラウズリストを取得できてる状態にしたいと。たぶん。
_Windows98のファイル削除が異常に遅い;1分以上もかかる - 「WINSの解決にDHCPを使う」が原因
なるほど、こういう事例もあると…。
要するに、Windows機で「マイネットワーク」or「ネットワークコンピュータ」を開いたときに、LAN内のコンピュータの一覧が表示されるようにしたい = ブラウズリストを取得できてる状態にしたいと。たぶん。
◎ Windows だけならブラウズリスト取得可能なのか検証してみようとしてWin98機を入れてみたら更に判らない事態に :
ブラウズリスト云々以前で詰まった。ping xxxx を打つとよく判らない事態に。どうもコンピュータ名 ≒ hostname
*1
すらお互い判ってないらしい。
WinXP Home SP2 から打つと届く。
Win98からは、WinXP Home SP2 に届かない。「そんな hostname は知らんがな」と言われる。Win98 には hosts ファイルを用意してないせいだろうか。でも、Linux には届くのが不思議。誰が Linux の hostname を教えているんだろう。
Linux からは、Win98 の hostname を知らないと言われる。… hosts ファイルに Win98機の hostname を書いてないからだろうな。
試しに、WinXP Home SP2 と Linux の hosts ファイルで、自分以外の IP、hostname をコメントアウトしてみた。
WinXP は相変わらず通る。
Linux は WinXP の hostname が判らなくなった。しかし、Router の hostname は得られてる。すると、つまり…
そもそも hostname を教えているのは誰なのだろう。全員に、「xxxx って名前のヤツ、いるかー?」と尋ねて、「あ、オレオレ」という感じで該当マシンが返してくるのか。それとも、誰かが hostname の一覧を持ってて、「私の手元の資料によると xxxx は xxx.xxx.xxx.xxx ですね」と答えてくれるのだろうか。
_DHCP とか、DNSか、 _WINS とか、 _NBT (NetBIOS over TCP/IP) とか、そのへんが関係してるのだろうけど。勉強しないと。
pingを打つ側 | pingを受け取る側 | 結果 |
---|---|---|
WinXP Home SP2 | Linux (IP) | ok |
Linux (hostname) | ok | |
Win98 (IP) | ok | |
Win98 (hostname) | ok | |
Router (IP) | ok | |
Router (hostname) | ok |
pingを打つ側 | pingを受け取る側 | 結果 |
---|---|---|
Win98 | Linux (IP) | ok |
Linux (hostname) | ok | |
WinXP Home SP2 (IP) | ok | |
WinXP Home SP2 (hostname) | Unknown host xxxx. | |
Router (IP) | ok | |
Router (hostname) | ok |
pingを打つ側 | pingを受け取る側 | 結果 |
---|---|---|
Linux | WinXP Home SP2 (IP) | ok |
WinXP Home SP2 (hostname) | ok | |
Win98 (IP) | ok | |
Win98 (hostname) | Unknown host xxxx. | |
Router (IP) | ok | |
Router (hostname) | ok |
- WinXP Home SP2、Linux は、hosts ファイルを持ってる。どちらも、WinXP、Linux のIPとhostname が記述してある。
- Router は hostname を指定できる設定欄がある。
- Win98 機は、hosts ファイルを持ってない。
- WinXP Home SP2 は Windowsファイアウォールを有効にしてある。ただし、「ファイルとプリンタの共有」は例外に、ICMP関連は全部許可してある。
試しに、WinXP Home SP2 と Linux の hosts ファイルで、自分以外の IP、hostname をコメントアウトしてみた。
pingを打つ側 | pingを受け取る側 | 結果 |
---|---|---|
WinXP Home SP2 | Linux (IP) | ok |
Linux (hostname) | ok | |
Win98 (IP) | ok | |
Win98 (hostname) | ok | |
Router (IP) | ok | |
Router (hostname) | ok |
pingを打つ側 | pingを受け取る側 | 結果 |
---|---|---|
Linux | WinXP Home SP2 (IP) | ok |
WinXP Home SP2 (hostname) | Unknown host xxxx. | |
Win98 (IP) | O | |
Win98 (hostname) | Unknown host xxxx. | |
Router (IP) | ok | |
Router (hostname) | ok |
- Linux、または、Router に向けて ping を打つと、hosts ファイルに書いてあろうがなかろうが hostname で届く。
- Linux から Windows へ向けて打つと、hosts に書かない限り、hostname が判らない。
- Win98 から WinXP Home SP2 に向けて打っても hostname が判らない。
そもそも hostname を教えているのは誰なのだろう。全員に、「xxxx って名前のヤツ、いるかー?」と尋ねて、「あ、オレオレ」という感じで該当マシンが返してくるのか。それとも、誰かが hostname の一覧を持ってて、「私の手元の資料によると xxxx は xxx.xxx.xxx.xxx ですね」と答えてくれるのだろうか。
_DHCP とか、DNSか、 _WINS とか、 _NBT (NetBIOS over TCP/IP) とか、そのへんが関係してるのだろうけど。勉強しないと。
◎ _Windows 2000/XP の DNS キャッシュを制御するには? :
ipconfig /displaydns (キャッシュを表示する場合)なんだか消えてる感じがしない。hosts ファイルに記述された内容は消えないということだろうか。
ipconfig /flushdns (キャッシュを削除する場合)
◎ _ipconfig - Windowsのネットワーク設定を確認する :
とりあえず関係ありそうなページをメモ。
_Microsoftネットワークの監視で見えてくる、Windowsの裏側 (1/2) - 共有フォルダの自動検索機能を例に
_netcapコマンドでネットワーク・パケットをキャプチャする
_レジストリ修正で優先的にマスターブラウザにする方法
_Microsoftネットワークの監視で見えてくる、Windowsの裏側 (1/2) - 共有フォルダの自動検索機能を例に
_netcapコマンドでネットワーク・パケットをキャプチャする
_レジストリ修正で優先的にマスターブラウザにする方法
「HKEY_LOCAL_MACHINE」→「SYSTEM」→「CurrentControlSet」→「Services」→「Browser」→「Parameters」の「IsDomainMaster」を「TRUE」_マスタブラウザとは?
マスタブラウザの確認方法
自身のマシンを確認 : nbtstat -n
他のマシンを確認 : nbtstat -a [コンピュータ名]
.__MSBROWSE__.<00> が含まれる場合はマスターブラウザ
マスタブラウザにしないための設定
Windows9x/Me - Microsoft ネットワーク共有サービスのプロパティで「ブラウズマスタ」を調整
LM アナウンス:いいえ / ブラウズマスタ:無効
Windows NT/2000/XP - レジストリを変更
HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Browser \Parametersを選択。MaintainServerListをAutoからNoに変更。Windows再起動。
マスタブラウザにするための設定
Windows9x/Me - Microsoft ネットワーク共有サービスのプロパティで「ブラウズマスタ」を調整
LM アナウンス:はい / ブラウズマスタ:自動か有効
Windows NT/2000/XP - レジストリを変更
HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Browser \Parametersを選択。IsDomainMasterをFALSEからTRUEに変更。Windows再起動。
◎ _"Ipconfig /All" コマンドを実行すると Node Type が Unknown と表示される :
自分の WinXP もそうだわ…。
原因 : この問題は、レジストリの EnableProxy 値に無効なデータが設定されている場合に発生することがあります。
解決方法 : レジストリ エディタ (Regedit.exe) を使用して以下のキーを見つけます。そんなキーは無い。この文書、WinXP Pro 用なのだな。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\
EnableProxy 値に設定されていたデータを、0 (ゼロ) または 1 のいずれかに設定し、レジストリ エディタを終了し、コンピュータを再起動します。
◎ _連載講座 パソコン・ネットワーク3 - 「コンピュータ・ブラウザ」と「NetBIOS名の名前解決」は別々に動作する :
_家庭内LANの構築手順
を参考に、もう一度やり直してみたり。WINSサーバを使わないようにするあたりが違ってた。
あまり関係なかった。…でもない。Win98機とWinXP機の間で双方の hostname が通じるようになった。Linux機は相変わらず、Win機の hostname が判らないまま。
あまり関係なかった。…でもない。Win98機とWinXP機の間で双方の hostname が通じるようになった。Linux機は相変わらず、Win機の hostname が判らないまま。
◎ もしかして…バックアップファイルが問題だったとか? :
Win機から Linux 機に対して、「nbtstat -a linux機のhostname」を打った後、結果を眺めていて気がついた。NetBIOS サフィックスが妙に多い。ていうか単純に2倍になってる?
/etc/sysconfig/network-scripts/ 中に、*~ があるから問題だとか?
消してみた。…関係なかった。
何故か知らんが、WinXP で見た nbtstat -a xxxx と、Win98 で見た nbtstat -a xxxx では、Win98 のほうが数が2倍になってるのだけど。何故。
/etc/sysconfig/network-scripts/ 中に、*~ があるから問題だとか?
消してみた。…関係なかった。
何故か知らんが、WinXP で見た nbtstat -a xxxx と、Win98 で見た nbtstat -a xxxx では、Win98 のほうが数が2倍になってるのだけど。何故。
◎ smbdとnmbdを停止するとマスタブラウザもWinXP機になるしブラウズリストも得られることに気がついた :
するとつまり Linux の smbd だか nmbd だかが、「俺がマスタブラウザになる! つーか俺にやらせろ! …あれえ? なんかうまくいかないッス。テヘっ」という状態になってるということだろうか。
であれば、OS level をどうにかすればどうにかなるのかしら。いや、常時起動してるのは自宅サーバである Linux 機なのだから、彼がマスタブラウザとして働いてくれる状況が一番望ましいのだけど。でないと迂闊に Win機の電源を落とせない。
であれば、OS level をどうにかすればどうにかなるのかしら。いや、常時起動してるのは自宅サーバである Linux 機なのだから、彼がマスタブラウザとして働いてくれる状況が一番望ましいのだけど。でないと迂闊に Win機の電源を落とせない。
◎ 関連のありそうなページをメモ :
_間違いと偏見だらけの Windowsネットワークの説明
_Windows TIPS -- Tips:IPアドレスからホスト名を見つける方法
_Windows TIPS -- Tips:ホスト名からIPアドレスを見つける方法
_Windows TIPS -- Tips:pingでネットワーク・トラブルの原因を調査する
_NetBIOS サフィックス (NetBIOS 名の 16 番目の文字)
_@IT:Windows TIPS -- Tips:nslookupの基本的な使い方(イントラネット編)
_Vine Linux - DNSサーバ編
ひょっとして DNSサーバを動かしておかないとあかんのだろうか。でも、IPが固定じゃないと設定できないような…。そもそもブラウズリストを得るのに DNS サーバって必要なんだろうか。
_Windows TIPS -- Tips:IPアドレスからホスト名を見つける方法
_Windows TIPS -- Tips:ホスト名からIPアドレスを見つける方法
_Windows TIPS -- Tips:pingでネットワーク・トラブルの原因を調査する
_NetBIOS サフィックス (NetBIOS 名の 16 番目の文字)
_@IT:Windows TIPS -- Tips:nslookupの基本的な使い方(イントラネット編)
_Vine Linux - DNSサーバ編
ひょっとして DNSサーバを動かしておかないとあかんのだろうか。でも、IPが固定じゃないと設定できないような…。そもそもブラウズリストを得るのに DNS サーバって必要なんだろうか。
◎ _コンピュータブラウジング :
Unix系のネットワークの要素と、Windows 固有のネットワークの要素の両方があったりする。このため、ネットワークの中で自分のPCに付けた名前さえ2つの解釈が存在する。NetBIOS名=コンピュータ名と、ホスト名である。前者は、Windowsネットワークとしての名前、後者は、インターネット、イントラネットで用いるUnix系の名前である。
pingは本来Unix系のコマンドであるから、mypcはHost名として扱われる。しかし、mypcはネットワークコンピュータのプロパティのユーザ情報タブにあるコンピュータ名であり、Windows系のNetBIOS名である。しかし、心配はいらない。Windowsではこの辺はいい加減で、別に区別されず、LMHOSTSも、WINSも全部調べ、なければ最後の手段、ブロードキャストでサブネット内の全PCに聞く。そうか…。するとウチの環境では、Windows同士は NBT で hostname、じゃなくて NetBIOS名を取得できてるけど、Linux だけは「NetBIOS? 何ソレ?」状態で蚊帳の外、ということなのかしら。
_Windows98のファイル削除が異常に遅い;1分以上もかかる - 「WINSの解決にDHCPを使う」が原因
なるほど、こういう事例もあると…。
◎ _日本Sambaユーザ会 - Samba 2.2 新機能紹介 - libnss_winsによるWINSを使った名前解決の提供 :
む。
◎ _日本Sambaユーザ会 - ブラウジング機能 :
とにかくきっちり読まないとダメですね。読みますです。
*1: Windowsの場合、NetBIOS名とhostnameが入り組んでるのであれだけど…。
この記事へのツッコミ
[ ツッコミを読む(3) | ツッコむ ]
以上です。
・sambaがファイルサーバー(smbd)兼マスタブラウザ(nmbd)
・クライアントはWinXPPro/2000/98混在
・WINSサーバは立てていない
・lmhostsファイルはいじらない(例外PCを除く)
・winbindは使っていない
こんな感じ。
これを踏まえて…
> hostname を教えているのは誰なのだろう。
たぶんマスタブラウザ。
ただ、各クライアントもキャッシュしている感じ。
あと、マスタブラウザになれるマシンが複数いる状態で、
マスタブラウザなマシンを切ってしまうと他のマシンがマスタブラウザになる。
そして、マスタブラウザになる優先順位は決まっている。
(Windowsバージョンの新しい奴が優先順位が高い)
> _DHCP とか、DNSか、 _WINS とか、 _NBT (NetBIOS over TCP/IP) とか、そのへんが関係してるのだろうけど。
というわけで、DHCPもDNSもWINSも私の場合は関係なし。
NBTは関係あるけどコンピュータ名を意識するぐらいかな。
> _Windows 2000/XP の DNS キャッシュ
DNSとNetBIOSの名前解決は直接的には関係ないけど、
やりたいことはもしかすると
nbtstat -R か nbtstat -c かな?
nbtstatのヘルプを読むといいかも。
> hosts ファイルに記述された内容は
NetBIOS系の名前解決ならhostsファイルよりはlmhostsの方が良いかも。
私もよくわかってないけど、
http://www.atmarkit.co.jp/fwin2k/win2ktips/442hostsfile/hostsfile.html
この辺読んでみてくだされ。
> 俺がマスタブラウザになる! つーか俺にやらせろ! …あれえ? なんかうまくいかないッス。テヘっ」という状態
じゃなくて、sambaより優先順位の高い奴=WinXPが居るので
「WinXP様、どうぞマスタブラウザの席へ、ささ、どうぞどうぞ」
という状態(笑)
> OS level をどうにかすればどうにかなるのかしら。
確かそのとおり。
マスタブラウザになる優先順位はWindowsのバージョンの高いほうから順番だから、
当面の最新OSであるWinXP(Ver5.1)より新しいバージョンを
sambaに名乗らせればOKのはず。
ただ、私が構築していたときはむやみに新しくして失敗した
(理由は不明。別の理由で失敗してただけかもしれない。)
ので、sambaにはVer5.9を名乗らせている。
私もそうでしたけど、
「TCP/IPネットワーク」と「NetBIOSネットワーク」は「まったく別物」
という気持ちから入った方が整理できるかも。
そもそもNetBIOSのネットワークはIPアドレスなんて使わないし、
TCP/IPのネットワークはコンピュータ名とかワークグループ名なんて使わないし。
ネットワークのプロトコルが「TCP/IP」と「NetBIOS」に
わざわざ分かれているのは
まったく別物として動作するからだということで考えた方が
整理しやすいと思いますよ。
なまじ「DNSで名前解決」とか「IPアドレスであて先を指定」なんていう
知識が入っていると邪魔するかも。
> 当面の最新OSであるWinXP(Ver5.1)より新しいバージョンを
> sambaに名乗らせればOKのはず。
はannounce versionでした。
おお! 情報thxであります。助かりますです。めっちゃ感謝であります。
なるほどなるほど…
> DHCPもDNSもWINSも私の場合は関係なし。
ということは、全マシンを固定IPにして、
hosts あるいは lmhosts でどうにかしてるということでせうか。
そうか…それで動いてる状況があるということですな…
> WinXP(Ver5.1)、samba(Ver5.9)
自分が知らなかった項目が…。announce version なるものがあったとは…。
> 「TCP/IPネットワーク」と「NetBIOSネットワーク」は「まったく別物」
なるほど。了解であります。
勢い余ってDNSサーバの設定までしちゃったけど
やっぱりそこは関係ないはず、なのですな。
とりあえず、WinXP がマスタブラウザにならないよう完全に設定するのと、
announce version とやらを調べて指定してみないと…。