Using Samba

Using Samba

Robert Eckstein, David Collier-Brown, Peter Kelly 共著
第一版 1999 年 11 月
1-56592-449-5, 注文番号: 4495
416 ページ, 34.95 ドル

ハードコピー版(英語)を購入する

目次


Previous: 7.2 Windows クライアント上のプリンタへの印刷 Chapter 7
印刷と名前解決
Next: 8. その他の情報
 

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つの方式を利用することができる:

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)のが設定される。この値を変更する必要はまずないであろう。


Previous: 7.2 Windows クライアント上のプリンタへの印刷 目次 Next: 8. その他の情報
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.