◆NetBIOSとは?
最大16ビットの名前で、伝統的なWindowsネットワークではNetBIOSの名前によって通信先の指定が行われており、NetBIOSの名前解決機構としてWINSサーバーが提供されている。最大16バイトの名前で、16バイト目は名前の用途を示すNetBIOSの識別子として用いられれる為、実際は最大15バイトになる。15バイトに満たない場合は15バイト目までスペース文字(0x20)で詰められます。小文字を使うことも可能ですが、内部的には大文字と同一視される。
・パラメータ設定例
netbios name = SambaServer_3
コンピューター名が「 LENOVO-B42Y」で、NetBIOSの識別子が「20」というNetBIOS名は、通常「 LENOVO-B42Y<20>」のような形式で表記されます。(nmblookupコマンドの実行例を参照)
◆NetBIOSの名前解決
最初にNetBIOSネームキャッシュによる名前解決が行われます。NetBIOSネームキャッシュの操作を行うコマンドとして
net cache コマンドがあります。
ネットワーク上の各マシンでは、Bノード、Hノードといったノードタイプを設定することで、ブロードキャストとWINSサーバーへの問い合わせの順序や問い合わせ自体を実行するかどうかを制御できます。WINSサーバーが設定されていない場合は自動的にBノードになります。
・ノードタイプと動作
(重要。各ノードの違いを理解する)
ノードタイプ |
識別子 |
動作 |
Bノード |
0x1 |
ブロードキャストのみで名前解決を実施 |
Pノード |
0x2 |
WINSサーバーへの問い合わせのでみ名前解決を実施 |
Mノード |
0x4 |
ブロードキャストの後、WINSサーバーへ問い合わせ |
Hノード |
0x8 |
WINSサーバーへ問い合わせた後、ブロードキャスト |
引き続きlmhostファイルによる名前解決が行われます。このファイルはホスト名の解決に使われるhostsファイルと同様の位置づけで、IPアドレスと対応するNetBIOS名を設定します。
最後にNetBIOS名をホスト名とみなして、DNS、hostsファイルを使った名前解決が実施されます。
◆name resolve orderパラメータ
Sambaでは、使用する名前解決機構とその順序を制御する為に
name resolve orderというパラメータが用意されています。
・name resolve orderパラメータのデフォルトの設定
name resolve order = lmhosts wins host bcast
・name resolve orderのキーワード
(重要。パラメータの引数の意味について理解する)
キーワード |
説明 |
lmhosts |
lmhostsファイルを用いた名前解決 |
wins |
win serverパラメータで指定したWINSサーバーによる名前解決 |
host |
ホスト名の名前解決機構(DNS、hostsファイル、NIS等)を用いた名前解決 |
bcast |
ブロードキャストを用いた名前解決 |
◆WINSサーバー
NetBIOSの名前解決におけるDNSサーバーのような存在。SambaをWINSサーバーとして必要なことは以下の設定をするだけです。なお、WINSの情報はwins.datに格納されます。
[global]
wins support =yes #デフォルトはno
《注意》
WINSサーバーを指定する
wins serverパラメータとWINSサーバー機能を有効化する
wins supportパラメータと混合しないように注意。
〇WINSサーバーの複製設定
以下の様な内容のファイル(ファイル名仮にwinspartner.txt)を作成。
$ vi winspartner.txt
dn: CN=
WINSERVER,CN=PARTNERS
objectClass: wreplPartner
address: 192.168.1.10
$ cat winspartner.txt | ldbadd -H wins_config.ldb -a #ldbaadコマンドを使って、wins_config.ldbファイルに追記
Added 1 records successfully
$ systemctl restart smbd #sambaのリスタートで設定が有効化。
◆ホスト名の名前解決にNetBIOS名の名前解決機構を使用する
以下設定例
$ vi /etc/nsswitch.conf
hosts: files dns wins
◆nmblookupコマンド
名前解決照会に使うnslookupによく似たNetBIOS名機構用の名前解決を行うことが出来るnmblookupというコマンドがあり、これを使ってNetBIOS名前解決のデバッグや確認が可能。
【書式】nmblookup [-M] [-R -U WINSサーバーのIPアドレス] NetBIOS名
nmblookup -A IPアドレス
・nmblookupの主なオプション
オプション |
説明 |
-M |
マスターブラウザを検索する |
-R |
問い合わせパケット中の再起検索フラグを設定する |
-A IPアドレス |
IPアドレスで指定されたマシンが登録しているNetBIOS名の一覧とMACアドレスを出力する |
-U ユニキャストアドレス |
問い合わせ先のユニキャストアドレスを指定する。WINSサーバーへの問い合わせを行う際などに使用する。 |
# nmblookup -A 10.0.1.1
Looking up status of 10.0.1.1
LENOVO-B42Y <20> - M <ACTIVE> #コンピューター名
LENOVO-B42Y <00> - M <ACTIVE>
WORKGROUP <00> - <GROUP> M <ACTIVE> #WORKGROUP名
MAC Address = 0A-00-27-00-00-06
MAC Address = 08-00-27-C7-71-3E
◆ブラウジング機能
Windowsで「ネットワーク」を開くと、コンピューターやワークグループ一覧が表示される。この一覧は
ブラウザという役割のコンピューターが保持するブラウザリストという一種の簡易データベースから取得されています。
ブラウザには
マスターブラウザと
バックアップブラウザがあり、
マスターブラウザは、ブラウザリストのマスターを維持し、ブラウザとしてサービスを提供します。マスターブラウザと同じワークグループに所属する同一IPサブネット内の各マシンは、定期的にホストアナウンスメント(ローカルアナウンスメント)というブロードキャスト通信を行い、自身の存在をマスターブラウザに通知します。
マスターブラウザは各IPサブネットのワークグループごと、あるいはドメインごとに一台ずつ必要。
バックアップブラウザは、マスターブラウザから定期的にブラウザリストの情報を受け取り、ブラウザとしてのサービスを提供します。
◆ブラウザ選定
・マスターブラウザの基本的な優先度
OS |
優先度 |
Samba |
0~255 |
ドメインコントローラー |
32 |
ドメインコントローラー以外のWindowsNT系マシン |
16 |
ファイルサーバー機能を有効化しているWindows9X 系マシン |
1 |
ファイルサーバー機能を無効化しているWindows9X 系マシン |
-(マスターブラウザになれない) |
数字が高いほど優先度が高い。通常はドメインコントローラーがマスターブラウザになる。
しかし、Sambaに関しては「os level」パラメータ値でこれを変更できる。例えば「os level = 33」に設定すればドメインコントローラーよりも優先度が高くなり、必ずマスターブラウザになることも、逆に「os level = 0」に設定することで優先度を裁定にする事も可能。又、以下のコマンドで、強制的にブラウザ選定を行うことも出来る。
# smbcontrol nmbd force-election
◆Sambaのブラウジング機能設定
・Sambaのブラウジング機能関連の主なパラメータ
パラメータ |
デフォルト |
説明 |
workgroup |
WORKGROUP |
所属するワークグループ |
local master |
yes |
ブラウザ選定に参加するかどうか |
os level |
20 |
基本的な優先度 |
peferred master |
auto |
優先マスターブラウザとなるかどうか |
domain master |
auto |
ドメインマスターブラウザとなるかどうか |
・smb.comf設定例
workgroup = WORKGROUP
os level = 20
local master = yes
preferred master = auto
domain master = auto
・ブラウザリストの出力
定期的にbrowse.datというファイルに書き込まれている。nmbdにHUPシグナルを送信することで、強制的にこのファイルへの書き込みを行うことも出来る。
・ドメイン構成なしに、別IPサブネット上に自ホストを表示させる設定例
[global]
remote announce = 192.168.2.255/HOME #192.168.2.0/24というサブネット上にHOMEワークグループのマスターブラウザが存在していれば、HOMEワークグループのコンピューター一覧に、該当のSambaマシンも表示される。
◆Sambaのブラウジング関連コマンド
・smbclient -Lコマンド
smbclient -Lコマンドは、指定したマシンの共有一覧を表示します。
【書式】smbclient [-I IPアドレス] -L コンピューター名
# sudo smbclient -L pro
Password for [NORA\root]:
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
tmp Disk
IPC$ IPC IPC Service (Samba 4.19.4)
SMB1 disabled -- no workgroup available
・findsmbコマンド