メインオフィス側ネットワーク(192.168.1.0/24)のWINSサーバへ分室側ネットワーク(192.168.2.0/24)から名前登録をさせるだけでは、コンピュータ一覧に分室側ネットワークのマシンが表示されない。でも名前でアクセスできる。不思議だ。調べてみたら理由は単純でローカルマスタブラウザはサブネットを越えないからだ。
ふざけんなよ、まったくもう。名前登録したら、一覧ぐらい見えるようにしとけってんだ。
NetBIOSはもともとブロードキャストによる名前解決、つまり部屋の中で大声で「PC_0001_001はどこですか??」と叫び、該当する機械が「おぉ、俺ここ!!」と答えるような仕組みである。この方法ではサブネットを越えられない。大声で叫ぶのはサブネットまで、とTCP/IPでは決められている。つまりサブネットごとに別の部屋になっていて大声出しても隣の部屋には聞こえないわけだ。
でもねぇ。だからWINSを使ってサブネットを越えるんじゃないのかよ。
これが、ちがうのだ。どうやらWINSは”名前解決”だけに使われていて、コンピュータの一覧を提供するのは「マスタブラウザ」であるらしい。再びたとえ話をするならば…だれがどこにいるのかを知っているWINSさんのところへ行って「PC_0001_001はどこですか??」と聴くと「あぁ、それならさっき192.168.1.62って届けがあったよ」と教えてくれるのだが、登録されている情報のリストは見せてくれない。あくまでも個別の問い合わせにたいしてアドレスを答えるのみなのだ。
コンピュータの一覧は「ドメインブラウザさん」のところへ行って見せてもらうのだけれど、これはWINSと同じ機械/プロセスで動いていても、WINSで獲得した名前のリストを一覧として提供するようにはなっていないらしい。「ドメインブラウザ」氏は、上述したブロードキャストでしかコンピュータ一覧を作らないのでやはりサブネットは越えない。なので「ローカルドメインブラウザ」というやつでサブネット/当該セグメントのコンピュータ一覧を作って「マスタードメインブラウザ」で全部のセグメントの一覧表をまとめあげるように、なっている。
ったく、めんどくせぇなぁ、おい。
ということで、以下のような論理構成になる必要がある。
192.168.1.0/24側ネットワーク
- WINSサーバ
- ドメインマスタブラウザ
- ローカルマスタブラウザ
192.168.2.0/24側ネットワーク
- ローカルマスタブラウザ
で、どうやってローカルマスタブラウザはドメインマスタブラウザに”ここにもサブネットがあって、こういうマシンがあるぜ”というブラウズリスト交換をやるのか?? どうやらそれはそれでWINSを使うらしい。
WINSさんのところへ行って「WORKGROUPのドメインマスタブラウザは誰ですか?」と聞いて「あ、それなら192.168.1.10だよ」と教えてもらって「192.68.1.10さーん!! これ、うちのブラウズリストね」とやるらしい。
—追記—
WINSを使うかどうかは良く分からんが、smb.confのパラメータで指定できる。
remote browse sync (G)
このオプションにより、 別セグメントにある Samba サーバのマスタブラウザと 定期的にブラウズリストの同期要求を行なうように nmbd(8) が 構成される。 このオプションにより、 ルーティングされたネットワーク上に存在する 複数ワークグループからなるブラウズリストを 構築することが可能になる。 これは Samba 固有の方式で動作するため、 Samba 以外のサーバでは機能しない。
これは、Samba サーバおよび同じセグメント上のクライアントマシンを 通常のブラウズリストの交換ができない別のワークグループ上に表示させたい場合に有用である。 別のワークグループは、IP パケットを送信できるところであれば どこにあってもよい。
以下に例を示す:
remote browse sync = 192.168.2.255 192.168.4.255
上記の設定は、nmbdが指定されたサブネットのアドレスに対して ローカルサーバとのブラウズリストの同期を要求する設定である。
設定するIPアドレスとしては、 通常リモートネットワークのブロードキャストが用いられるが、 ネットワークが安定していれば、 マスタブラウザのIPアドレスを指定することもできる。 IPアドレスが設定された場合、Sambaはそのマシンが起動していて、 要求を待っているかについても、そのセグメントのマスタブラウザであるかどうかについても確認しない。
デフォルト: remote browse sync = <空文字列>
ドメインマスタブラウザ側のsmb.confにこのパラメータを分室のローカルドメインブラウザを直接指定する形で記述したら、めでたくマシン一覧が表示されるようになりました。
—追記ここまで—
したがってsmb.confの記述はこうなる。
192.168.1.0/24側ネットワークのWINS/ドメインマスタブラウザ/ローカルマスタブラウザサーバ
[global]
domain master = Yes
local master = Yes
preferred master = Yes
os level = 35
wins support = Yes
remote browse sync = 192.168.2.10 << これ、追記しました
192.168.2.0/24側ネットワークのローカルマスタブラウザサーバ
[global]
domain master = No
local master = Yes
preferred master = Yes
os level = 35
wins server = 192.168.1.10
このようであることの利点は…ユーザが気にしなきゃいけないことが減るってことかな。たぶん。「コンピュータつなげば、一覧表にポチッと出てきてネットワークリソースとして利用できるようになる。プラグを外せばコンピュータ一覧から消えて、利用できなくなる。」っていう利用感をリアルタイムに、スムーズにやろうとしたらこうなった、っていうことなんだろう。
わかるけど、めんどくさいなぁ、これ。