| ## Using Samba Robert Eckstein, David Collier-Brown, Peter Kelly 共著 第一版 1999 年 11 月 1-56592-449-5, 注文番号: 4495 416 ページ, 34.95 ドル ハードコピー版(英語)を購入する 目次

| Chapter 7 印刷と名前解決 |

> ## 7.3 Samba の名前解決

> NetBIOS Name Servers (NBNS) が現れるまで、名前解決は完全にブロードキャストに依存していた。マシンのアドレスが必要なときは、単純に名前をネットワークにブロードキャストし、通常はその名前のマシンが応答を行っていた。このアプローチは現在でも有効である: `fred` という名前のマシンを探したい場合、要求をブロードキャストすることで、それが存在するか、またそのIPアドレスが何かを知ることができる(この仕組みは Chapter 9, Troubleshooting Samba.) に記述のある`nmblookup` コマンドを使って Samba のネームサービスのトラブルシューティングを行うときに利用することができる。

> しかし、最初の章で述べたように、ブラウジングに関しても名前の登録や解決に関しても、ブロードキャストは簡単にはサブネットを通過できない。加えてブロードキャストの輻輳はネットワークのダウンにつながりかねない。 この問題を解決するため、マイクロソフトは現在 Windows Internet Naming Service (WINS) - サブネットを越える NBNS を提供しており、Samba もこれをサポートしている。管理者は特定の一台のマシンを WINS サーバとして動作させ、名前解決が必要なクライアントに対して WINS サーバのアドレスを提供することができる。これによって、名前の登録と解決の要求は、ブロードキャストに代わってネットワークのどの場所からも特定のマシンに送信されることになった。

> WINS とブロードキャストだけが名前解決の方法ではない。実際のところ Samba は以下の4つの方式を利用することができる:

> - WINS

> - Broadcasting

> - Unix /etc/hosts もしくは NIS/NIS+ matches

> - LMHOSTS ファイル

> Samba は設定ファイル中の`name` `resolve` `order` パラメータで指定した順番に、これらの方式すべて、もしくは一部だけを利用することが可能である。 ところで、設定ファイルのオプションに話を移す前に、恐らく今まで聞いたことがなかった用語: LMHOSTS ファイルについて説明しよう。

> ### 7.3.1 LMHOSTS ファイル

> LMHOSTS は LAN Manager 標準の hosts ファイルであり、各システム上でIPアドレスの名前解決に利用される。それは UNIX システム標準のファイルである /etc/hosts と NBT において同等の機能をもつファイルである。 通常ファイルのデフォルトの位置は /usr/local/samba/lib/LMHOSTS であり、 /etc/hosts と同様の形式で記述される。例えば以下のようになる:

>     192.168.220.100    hydra
>     192.168.220.101    phoenix

> 唯一の違いは、エントリの右側の名前がDNS名の代わりにNetBIOS名になっていることである。そのため、以下のようにしてリソースタイプの情報を付加することができる:

>     192.168.220.100    hydra#20
>     192.168.220.100    simple#1b
>     192.168.220.101    phoenix#20

> ここでは、`hydra` が `SIMPLE` ドメインのプライマリドメインコントローラのマシンになっている。これは、二行目での `hydra` のIPアドレスの後にドメイン名に引き続いてリソースタイプ <1B> が設定されているためである。他の2行は通常のワークステーションの記述である。

> LMHOSTS ファイルをデフォルト以外の場所に配置したい場合は、 nmbd プロセスの起動時に、以下のようにしてそれを通知する必要がある:

>     nmbd -H /etc/samba/lmhosts -D

> ### 7.3.2 Samba が別の WINS サーバを利用する設定

> Samba がネットワーク上の別の場所にある WINS サーバを利用するように設定するには、単純に WINS サーバのIPアドレスを指定するだけで良い。 これはグローバルな設定の`wins` `server` オプションで以下のように行われる:

>     [global]
>     	wins server = 192.168.200.122

> このオプションを利用すると、Samba は全ての WINS 要求を192.168.200.122 のサーバに転送するようになる。要求が1台のマシンに転送されるため、ブロードキャスト特有の問題について考慮する必要がなくなる。しかし、設定ファイル中に WINS サーバのIPアドレスを記述したからといって、Samba がその他の名前解決の仕組みに優先して WINS サーバを利用する必要がある訳ではない。Samba が様々な名前解決の方式を利用する順番は、この後すぐに説明する`name` `resolve` `order` という設定オプションで指定される。

> Samba サーバがブロードキャストで名前解決を行っているサブネットに存在しているが、Samba サーバ自身は別のサブネットにある WINS サーバの正しい位置を把握しているという場合は、 `wins` `proxy` オプションを用いて Samba がすべての名前解決要求を転送するように設定できる:

>     [global]
>     	wins server = 192.168.200.12
>     	wins proxy = yes

> この設定は、WINS サーバが別のサブネットに存在する場合にだけ利用すること。同一サブネット上に WINS サーバが存在するのであれば、ブロードキャストはプロキシの存在に関わらず WINS サーバに到達する(monyo訳注)。

> ### 7.3.3 Samba を WINS サーバにする設定

> 以下に示すように設定ファイルに2つのグローバルオプションを設定することで、Samba をWINS サーバとして設定できる:

>     [global]
>     	wins support = yes
>     	name resolve order = wins lmhosts hosts bcast

> `wins` `support` オプションは、Samba を WINS サーバに設定する。本当とは思えないかも知れないが、これが必要なことの全てである。Samba はあなたがゆっくりとくつろげるように、これ以外の詳細事項のすべてを内部で処理してくれる。 `wins` `support=yes` と `wins` `server` オプションは排他的であり、Samba が WINS サーバであり、かつ別のシステムを WINS サーバとして参照するという設定を行ってはならない。

> Samba が WINS サーバとして動作させるのであれば、先に説明した`name` `resolve` `order` オプションをきちんと理解することが必要だろう。このオプションは NetBIOS 名の解決を行う時に用いる方式に順序を指定するものである。これには4つの値を指定することができる:

> lmhosts

>   LAN Manager の LMHOSTS ファイルを利用する

> hosts

>   UNIX システム標準の名前解決方式である, /etc/hosts, DNS, NIS, もしくはそれらのコンビネーション(システムの設定に依存する)を利用する

> wins

>   WINS サーバを利用する

> bcast

>   broadcast 方式を利用する

> ここで指定した順序は、Samba がWINS サーバとして動作しているときに名前解決を試みる順序でもある。例えば先ほど指定した設定をみてみよう:

>     name resolve order = wins lmhosts hosts bcast

> この設定は、Samba が最初に WINS のエントリで名前解決を試み、次にシステムにある LAN Manager の LMHOSTS ファイルを用いることを指定する。 更に hosts によって、UNIX の名前解決方式を利用することが指示される。`hosts` というキーワードは紛らわしいかも知れないが、これは /etc/hosts ファイルの使用だけではなく, DNS や NIS (UNIX ホストの設定による) の利用も意味している。 最終的にこれらの方式で解決できないと、マシンを特定するのにブロードキャストが用いられることになる。

> このように、WINS データベース中に探しているホストが存在しなかったときに、WINS サーバとして動作している Samba サーバがシステムのDNSサーバを調べるように設定することができる。 一例として、典型的な Linux システムにおいては /etc/resolv.conf ファイルを検索することで、DNS サーバの IP アドレスを見付けることができる。 その中には以下のようなエントリがある筈である:

>     nameserver 127.0.0.1
>     nameserver 192.168.200.192

> これにより、DNS サーバのアドレスが 192.168.220.192 (monyo訳注 192.168.200.192 の誤りでしょう)であることがわかる(127.0.0.1 は localhost のアドレスであり、正しい DNSサーバのアドレスではありえない)。

> グローバルな `dns` `proxy` オプションを使うことで、Samba が設定されたDNSサーバを利用することを alert することができる:

>     [global]
>     	wins support = yes
>     	name resolve order = wins lmhosts hosts bcast
>     	dns proxy = yes

> ### 7.3.4 名前解決の設定オプション

> Samba の WINS 関連オプションを、 表 7.5に示す。

> 表 7.5: WINS オプション
> オプション | パラメータ | 機能 | デフォルト | 範囲
> --- | --- | --- | --- | ---
> `wins support` | boolean | `yes` の場合、Samba は WINS サーバとして機能する。 | `no` | グローバル
> `wins server` | 文字列(IP アドレスか DNS 名) | Samba が名前登録および名前解決に利用する WINS サーバを指定する。 | なし | グローバル
> `wins proxy` | boolean | Samba に別のサブネットにある WINS サーバのプロキシとして動作させるかどうかを決定する。 | `no` | グローバル
> `dns proxy` | boolean | `yes` の場合、Samba の WINS サーバは WINS データベースで名前を見付けられないと DNS を検索する。 | `no` | グローバル
> `name resolve order` | `lmhosts`, `hosts`, `wins`, or `bcast` | NetBIOS 名の解決に用いられる方式の順序を指定する。 | `lmhosts hosts wins bcast` | グローバル
> `max ttl` | 数値 | 要求された NetBIOS 名の生存期間(TTL)を秒単位で指定する。 | `259200` (3 日) | グローバル
> `max wins ttl` | 数値 | Samba がWINS サーバとして機能している場合にクライアントに返却される NetBIOS 名の最大の生存期間(TTL)を秒単位で指定する。 | `518400` (6 日) | グローバル
> `min wins ttl` | 数値 | Samba がWINS サーバとして機能している場合にクライアントに返却される NetBIOS 名の最小の生存期間(TTL)を秒単位で指定する。 | `21600` (6 時間) | グローバル

> #### 7.3.4.1 wins support

> Samba は smb.conf ファイルの`[global]`セクションに以下の設定を行うことで、ネットワーク上の全ての麻疹に対して、WINS ネームサービスを提供する。 :

>     [global]
>         wins support = yes

> デフォルトの値は `no`であり、これは通常、別の Windows NT サーバを WINS サーバとして利用するという時に用いられる。このオプションを有効にする場合は、現在 Samba の WINS サーバはバックアップの WINS サーバとデータの交換を行うことができないことを忘れないように。このオプションは、`wins` `server` パラメータと排他であるため、両方を同時に `yes` に設定することはできない。設定した場合、 Samba はエラーを表示する。

> #### 7.3.4.2 wins server

> Samba は、設定ファイル中で `wins` `server` グローバルオプションを指定することで、ネットワーク上に存在する WINS サーバを利用することが可能になる。このオプションの値は、WINS サーバの IP アドレスか DNS 名(NetBIOS 名ではない)になる。以下に一例を示す:

>     [global]
>         wins server = 192.168.220.110

> もしくは

>     [global]
>         wins server = wins.example.com

> このオプションを利用するには、`wins` `support` オプションが`no` (デフォルト)である必要がある。さもなくば、Samba はエラーを出力することになる。このオプションでは、WINS サーバのアドレスを1つだけしか設定できない。

> #### 7.3.4.3 wins proxy

> このオプションにより Samba が別の WINS サーバのプロキシとして動作することが可能になり、名前登録および名前解決の要求を、現在のサブネットの外に存在する実際の WINS サーバに転送するようになる。WINS サーバは`wins` `server` オプションで指定される。このようにしてプロキシは WINS の応答をクライアントに返却する。このオプションは `[global]` section に以下の記述を行うことで有効にする:

>     [global]
>         wins proxy = yes

> #### 7.3.4.4 dns proxy

> WINS に名前がなかった時に domain name service (DNS) を利用するには、以下のオプションを設定する:

>     [global]
>         dns proxy = yes

> これにより nmbd がマシンの名前を問い合わせる際に、標準の DNS を用いるようになる、DNS サーバに定常的に接続することができない場合は、このオプションを無効にした方がよいだろう。このオプションの利用に関わらず、WINS サーバの利用を勧める。ネットワークに WINS サーバが存在しないときは、Samba マシンを WINS サーバにしよう。しかし、現在は WINS データベースの複製ができないため、2台の WINS サーバを(1台はプライマリ、もう1台はセカンダリとして)運用することはできない。

> #### 7.3.4.5 name resolve order

> グローバルな `name` `resolve` `order` オプションにより、 Samba が名前解決を行うときに用いるサービスの順序を指定することができる。デフォルトでは、まず LMHOSTS ファイル、次に標準の UNIX 名前解決方式( /etc/hosts, DNS, および NISの複合), そして WINS サーバへの問い合わせ、最後にブロードキャストという順序で、NetBIOS 名の名前の解決を行う。このオプションで以下のように指定することで、その順序を変更することができる:

>     [global]
>         name resolve order = lmhosts wins hosts bcast

> これにより、名前解決の順序は、まず LMHOSTS ファイルを使い、続いて WINS サーバへの問い合わせ、システムのパスワードファイル、そして最後にブロードキャストとなる。全ての方式を指定する必要はなく、利用したくない方式は指定しなくてもよい。このオプションの詳細は、この章で既に述べた Section 7.3.3, Setting Up Samba as a WINS Server で記述している。

> #### 7.3.4.6 max ttl

> このオプションにより、Samba サーバに登録された NetBIOS 名が有効である期間(TTL)の最大値が設定される。この値を変更する必要はまずないであろう。

> #### 7.3.4.7 max wins ttl

> このオプションにより、WINS サーバによって解決された NetBIOS 名が有効である期間(TTL)の最大値が設定される。この値を変更する必要はまずないであろう。

> #### 7.3.4.8 min wins ttl

> このオプションにより、WINS サーバによって解決された NetBIOS 名が有効である期間(TTL)のが設定される。この値を変更する必要はまずないであろう。

> 7.2 Windows クライアント上のプリンタへの印刷 |  | 8. その他の情報

> O'Reilly Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
> International | About O'Reilly | Affiliated Companies

> © 1999, O'Reilly & Associates, Inc.