見出し画像

396.1 NetBIOSとWINS


主題396:Sambaのネームサービス
396.1 NetBIOSとWINS

LinuC300の試験範囲である主題390~397まであるうちの「主題396:Sambaのネームサービス」から「396.1 NetBIOSとWINS」についてのまとめ

  • 重要度:3

  • 説明:
    NetBIOS/WINSの概念に習熟し、ネットワークブラウジング機能を理解していること。

  • 主要な知識範囲:
    - WINSの概念を理解する
    - NetBIOSの概念を理解する
    - ローカルマスタブラウザの役割を理解する
    - ドメインマスタブラウザの役割を理解する
    - SambaのWINSサーバとしての役割を理解する
    - 名前解決を理解する
    - SambaをWINSサーバとして設定する
    - WINSレプリケーションを設定する
    - NetBIOSブラウジングおよびブラウザ選定を理解する
    - NetBIOS名の種類を理解する

  • 重要なファイル、用語、ユーティリティ:
    - smb.conf
    - nmblookup
    - smbclient
    - 名前解決順序
    - lmhosts
    - wins support、wins server、wins proxy、dns proxy
    - domain master、os level、preferred master


WINSの概念を理解する

~WINS(Windows Internet Naming Service)とは~
Windows環境におけるコンピューターのNetBIOS名とIPアドレスの名前解決をするためのサービスのこと。

~WINSサーバーの必要性~
Windowsネットワークはブロードキャスト通信を多用していることから「おしゃべりなプロトコル」として知られている。
ネットワーク規模が大きくなるとネットワークリソースの効率的な利用、セキュリティ対策、運用管理の効率化といった様々な理由からネットワークセグメントを分割しルーターで通信制御(ルーティング)をする必要が出てくる。
しかし、ブロードキャスト通信ではルーターを越えることができないため、ブロードキャストによる名前解決をしようとしてもルーターの向こう側にあるコンピューター名(NetBIOS名)の名前解決はできない。
そこで、ネットワーク上にルーターがあってもコンピューター名(NetBIOS名)の名前解決ができるようにするためにWINSサーバーが必要になる。

~様々な名前解決の手段~
かつてのWindowsネットワークでは名前解決にWINSやNetBIOS over TCP/IP(NBT)が使われるていたが、Windows 2000 Serverから実装されたActiveDirectory環境ではDNSサーバーが必須となりWINSサーバーは使われなくなっている。


NetBIOSの概念を理解する

NetBIOS(Network Basic Input/Output System)とは、ネットワーク通信をするためのプロトコルで、かつてのWindowsネットワークでNetBEUIとともに使われていた。
現在ではNetBIOS over TCP/IP(NBT)やNetBIOSに依存しないプロトコル(DirectHosting for SMBやCIFS)が使われている。

NetBIOSに関連するプロトコルは以下のものがある。
- (NBT)NetBIOS名前サービス:TCP/UDP 137, netbios-ns
- (NBT)NetBIOSデータグラム:TCP/UDP 138, netbios-dgm
- (NBT)NetBIOSセッションサービス:TCP 139, netbios-ssn
- (notNBT)Direct Hosting for SMB:TCP 445, microsoft-ds

~NetBIOSの仕組み~
NetBIOSは16Bytesで構成されており、先頭15ByteにNetBIOS名が、最後の1Byteがリソースタイプの情報が入る。

  • NetBIOS名(15Byte)
    - 最大15Byte、最小1Byte
    - 文字、数字、ハイフン、ピリオドが使える
    - 先頭にピリオドは使えない
    - ハイフン、ピリオド以外の記号(!や@など)は使えない
    - 予約語は使えない
    - ActiveDirectory環境ではピリオドは使えない
    - 大文字、小文字は区別されない

  • リソースタイプ(1Byte)
    - 16進数2桁
    - <コンピュータ名> 00:クライアント
    - <コンピュータ名> 20:ファイルサーバー
    - <ドメイン名> 00:ドメイン名
    - <01>01、<02>__MSBROWSE__<02> :マスタープラウザ
    - <ドメイン名> 1B:ドメインマスタープラウザ
    - <ドメイン名> 1C:ドメインコントローラー
    - <ドメイン名> 1D:マスタープラウザ

~設定~

  • netbios name = サーバーのホスト名
    Sambaサーバーのホスト名とは異なるNetBIOS名を設定する。

  • netbios aliase =
    Sambaサーバーに複数のNetBIOS名を設定する。

~コマンド~
WindowsであればコマンドプロンプトからnbtstatコマンドでNetBIOS over TCP/IP(NBT)について確認できる。

C:\Windows\system32>
C:\Windows\system32> nbtstat
NBT (NetBIOS over TCP/IP) を使用して、プロトコルの統計と現在の TCP/IP ネットワ
ーク接続を表示します。

NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n]
        [-r] [-R] [-RR] [-s] [-S] [interval] ]

  -a   (adapter status) 名前を元に、リモート コンピューターの名前テーブルを一覧
                        表示します。
  -A   (Adapter status) IP アドレスを元に、リモート コンピューターの名前テーブ
                        ルを一覧表示します。
  -c   (cache)          NBT のキャッシュにあるリモート [コンピューター] 名と IP
                        アドレスを一覧表示します。
  -n   (names)          ローカルの NetBIOS 名を一覧表示します。
  -r   (resolved)       ブロードキャストと WINS によって解決した名前を一覧表示
                        します。
  -R   (Reload)         リモート キャッシュ名前テーブルを破棄し、再度読み込みま
                        す。
  -S   (Sessions)       セッション テーブルを宛先 IP アドレスと一覧表示します。
  -s   (sessions)       宛先 IP アドレスをコンピューターの NETBIOS 名に変換
                        して、セッション テーブルを一覧表示します。
  -RR  (ReleaseRefresh) 名前解放パケットを WINS に送信してから、更新を開始しま
                        す。

  RemoteName   リモートのホスト コンピューター名です。
  IP address   ドット区切り 10 進数表記の IP アドレスです。
  interval     各表示で interval 秒間一時停止しながら、選択した統計を再表示
               します。
統計の再表示を停止するには、CTRL+C を押してください。


C:\Windows\system32>
C:\Windows\system32> nbtstat -n

ホストオンリーアダプター:
ノード IP アドレス: [192.168.56.1] スコープ ID: []

                NetBIOS ローカル ネーム テーブル

       名前               種類         状態
    ---------------------------------------------
    **********     <00>  一意          登録済
    WORKGROUP      <00>  グループ        登録済
    **********     <20>  一意          登録済
    WORKGROUP      <1E>  グループ        登録済
    WORKGROUP      <1D>  一意          登録済
    ..__MSBROWSE__.<01>  グループ        登録済
   :
C:\Windows\system32>

(参考)
第3回 Windows LANの核心、NetBIOSを理解する(その1):基礎から学ぶWindowsネットワーク(1/3 ページ) - @IT
第4回 NetBIOSを理解する(その2):基礎から学ぶWindowsネットワーク(1/3 ページ) - @IT


ローカルマスタブラウザの役割を理解する

~用語~

  • ローカルマスタブラウザ(LMB)
    ドメインコントローラーが存在しないワークグループ環境におけるマスタブラウザのこと。
    Windowsサーバー、Windowsクライアント、Sambaサーバーのいずれかがローカルマスタブラウザに選定される。

~パラメーター~

  • local master = Yes
    nmbdがローカルマスタブラウザになるかどうかを設定する。 Yesの場合はローカルマスタブラウザの候補になるだけで、必ずしもローカルマスタブラウザになるとは限らない。 Noにするとローカルマスタブラウザにはならない。


ドメインマスタブラウザの役割を理解する

~用語~

  • ドメインマスタブラウザ
    ドメインコントローラーが存在するドメイン環境におけるマスタブラウザのこと。
    WindowsサーバーかSambaサーバーのいずれかがドメインマスタブラウザに選定される。

~パラメーター~

  • domain master = Auto
    workgroupで設定したドメインのマスタブラウザとなる。domain logons = yes の場合に有効となり、domain master = YesとなってPDCとして動作する。 バックアップドメインコントローラー(BDC)を構成する場合にはdomain master = Noとする。


SambaのWINSサーバとしての役割を理解する

<・・・調査中・・・>


名前解決を理解する

名前解決とは、ホスト名に対応するIPアドレスが不明だった場合にこれを解決する処理のことで、名前解決の方法にはDNS、WINS、hostsファイル、lmhostsファイルなどがある。

~名前解決の順序~

  1. PC内で保持しているNetBIOSキャッシュ

  2. Hノード:WINSサーバー → ブロードキャスト
    Pノード:WINSサーバー → ブロードキャスト
    Mノード:ブロードキャスト → WINSサーバー
    Bノード:ブロードキャスト → WINSサーバー

  3. lmhostsファイル

  4. hostsファイル

  5. DNS

~パラメーター~

  • name resolve order = lmhosts wins host bcast

    • lmhosts
      lmhostsファイルで名前解決をする。

    • wins
      WINSサーバーで名前解決をする。

    • host
      Linuxの名前解決の仕組み(hostsやDNS)で名前解決をする。

    • bcast
      ローカルネットワークに対してブロードキャストで名前解決をする。

  • name cache timeout = 660
    ホスト名キャッシュを保持する時間。
    無効にするにはname cache timeout = 0にする。

~NetBIOSキャッシュ関連のコマンド~

  • net cache list
    NetBIOSキャッシュの一覧を表示する。

  • net cache search
    特定のNetBIOSキャッシュを検索する。

  • net cache get
    特定のNetBIOSエントリーを表示する。

  • net cache add
    特定のNetBIOSエントリーを追加する。

  • net cache del
    特定のNetBIOSエントリーを削除する。

  • net cache flush
    NetBIOSキャッシュをすべて削除する。

~WINS関連のコマンド~

  • nmblookup
    WINSによる名前解決の確認をする。
    -M ワークグループ名:
    マスターブラウザを検索する
    -A NetBIOS名:
    指定したNetBIOS名に対応するIPアドレスやMACアドレスなどの情報を表示する
    -A IPアドレス:
    指定したIPアドレスに対応するIPアドレスやMACアドレスなどの情報を表示する
    -R -U WINSサーバー:
    特定のWINSサーバーにユニキャストで問い合わせをする。
    -W | --workgroup ドメイン名:
    特定のドメインを指定して問い合わせをする。

  • net lookup

  • findsmb
    ネットワーク内のNetBIOS名の一覧を表示する。


SambaをWINSサーバとして設定する

~パラメーター~

  • wins support = No
    Yesとすることでnmbdをwinsサーバーとして使用する。

  • wins server =
    Sambaサーバーが参照するWINSサーバーを指定する。

  • wins proxy = No
    クライアントPCに代わってブロードキャストによる名前解決を行う。

  • wins hook
    WINSサーバーに対して名前の登録や削除が発生した時に呼び出すプログラムを指定する。

  • dns proxy = Yes
    WINSサーバーで名前解決できなかった場合にDNSに問い合わせをする。

  • max wins ttl = 518400
    NetBIOSキャッシュの最大の生存時間(TTL 秒)を設定する。

  • max wins ttl = 21600
    NetBIOSキャッシュの最小生存時間(TTL 秒)を設定する。


WINSレプリケーションを設定する

SambaでのWINSサーバーではWINSデータベースのレプリケーションには対応していないため、別の方法でWINSデータベースのレプリケーションにはを実現する必要がある。

~パラメーター~

  • wins hook =
    WINSサーバーのデータベースに変更が行われた際に実行されるプログラムを指定する。
    このパラメーターを使って外部プログラムを呼び出すことでWINSサーバーのデータベース複製処理が簡易的ではあるが可能になる。

(参考)
winssend.pl や wins-push.pl というプログラムを使うことでWINSサーバーのデータベース複製処理が実現可能。
WINS-replication - Samba-JP
Samba のための簡易 WINS 複製機能 - wins-push - Open Source Solution Technology Corporation


NetBIOSブラウジングおよびブラウザ選定を理解する

~用語~

  • ブラウジング
    ネットワーク上にいるコンピューターを一覧する機能のこと。
    WindowsPCであれば「ネットワークコンピューター」や「マイネットワーク」といったネットワーク上のコンピューターを表示させる機能で確認できる。

  • ブラウザリスト
    NetBIOS名とIPアドレスの対応表のこと。

  • マスタブラウザ
    ブラウジングをするには、ネットワーク上に存在するコンピューターのNetBIOS名とIPアドレスの対応表であるブラウザリストを保持する役割を持つマスタブラウザが必要になる。
    マスタブラウザはネットワーク上に存在するコンピューターの中から自動的に選出される。
    Sambaサーバーの場合nmbdがマスタブラウザの機能を持っている。
    マスタブラウザにはローカルマスタブラウザとドメインマスタブラウザの2種類がある。

~ブラウザの選定方法~

ネットワーク上のコンピューターに設定されている優先度によって決定される。
この数値が大きいほど優先度が高くなる。
ドメインコントローラーのWindowsサーバー:32
ドメインコントローラー以外Windowsサーバー:20
Windowsクライアント:1
Sambaサーバー:既定値は20、os levelで設定ができる。

どのコンピューターがマスタブラウザになっているかはWindowsPCのコマンドプロンプトでnbtstatコマンドで確認できる。

~パラメーター~

  • local master = Yes
    nmbdがローカルマスタブラウザになるかどうかを設定する。 Yesの場合はローカルマスタブラウザの候補になるだけで、必ずしもローカルマスタブラウザになるとは限らない。 Noにするとローカルマスタブラウザにはならない。

  • preferred master(prefered master) = Auto
    ワークグループのマスタブラウザーとして優先されるかどうかに影響する。これが Yes に設定されているとnmbdは起動時にブラウザーの選定を強要する。

  • os level = 20
    ローカルマスタブラウザに選定される優先度。
    Sambaサーバーをローカルマスタブラウザにしたい場合はos levelを十分大きい値にする。
    Sambaサーバーをローカルマスタブラウザにしたくない場合は、domain master = No、local master = No、preferred master = No、os level = 0とすれば良い。

  • announce as = NT Server
    ブラウジングでコンピューター一覧に表示させるOSの種類の情報

  • announce version = 4.9
    ブラウジングでコンピューター一覧に表示させるOSのバージョンの情報

~パラメーター(Samba独自機能)~
ブラウジングは基本的に同一ドメイン(ワークグループ)でないと機能しないが、以下のパラメーターを設定することでは異なるドメイン(ワークグループ)であってもブラウジングが可能になる。
いずれもSamba独自機能であるため、この機能を利用するサーバーはSambaサーバーでないといけない。

  • remote announce =
    このパラメーターで指定したサーバーにドメイン(ワークグループ)のコンピューターの情報を送信する。
    Windowsネットワークでは異なるドメイン(ワークグループ)の情報はやり取りされないためドメイン(ワークグループ)が異なる場合は名前解決ができないが、このパラメーターを使用することで異なるドメイン(ワークグループ)であっても名前解決が可能になる。

  • remote browse sync =
    このパラメーターで指定したサーバーとブラウザリストの同期が可能になる。

  • enhanced browsing = Yes
    異なるドメインのドメインマスタブラウザが持っているブラウザリストを取得することができ、結果的に異なるドメインであっても名前解決ができるようになる。


NetBIOS名の種類を理解する

NetBIOS名には以下2つのタイプがある。
また、NetBIOSリソースタイプは更に細かく定義されている。

  • UNIQUE
    コンピューター名
    NetBIOS名とIPアドレスが1:1の関係になっている。

  • GROUP
    ワークグループ名、ドメイン名
    NetBIOS名とIPアドレスが1:Nの関係になっている。


参考文献


この記事が気に入ったらサポートをしてみませんか?