ネットワークデータベースは、ネットワークを構成するために必要な情報を提供するファイルです。ネットワークデータベースには次のものがあります。
hosts
netmasks
ethers
bootparams
protocols
services
networks
構成工程の一環として、ネットワークをサブネット化する場合は、hosts データベースと netmasks データベースを編集します。マシンをネットワーククライアントとして構成するには、bootparams と ethers の 2 つのネットワークデータベースを使用します。残りのデータベースはオペレーティングシステムが使用するもので、編集が必要になることはほとんどありません。
ネットワークデータベースではありませんが、nsswitch.conf ファイルも、関連のネットワークデータベースとともに構成する必要があります。nsswitch.conf は、特定のマシンに、NIS、NIS+、DNS、ローカルファイルのどのネームサービスを使用するかを指定します。
ネットワークデータベースがとる形式は、ネットワーク用として選択するネームサービスの種類によって異なります。たとえば、hosts データベースには、少なくとも、ローカルマシンとそのマシンに直接接続されているネットワークインタフェースのホスト名と IP アドレスだけは入っています。しかし、ネットワークで使用するネームサービスの種類によっては、その他の IP アドレスとホスト名も hosts データベースに入ることがあります。
DNS のブートファイルとデータファイルは、直接的にはネットワークデータベースに対応していません。
図 4-2 に、これらのネームサービスにより使用される hosts データベースの形式を示します。
表 4-1 に、ネットワークデータベースと、各ネットワークデータベースに対応する、ローカルファイル、NIS+ および NIS のネームサービスファイルを示します。
表 4-1 ネットワークデータベースと対応するネームサービスファイル
ネットワークデータベース |
ローカルファイル |
NIS+ のテーブル |
NIS のマップ |
---|---|---|---|
/etc/inet/hosts |
hosts.ord_dir |
hosts.byaddr hosts.byname |
|
/etc/inet/netmasks |
netmasks.ord_dir |
netmasks.byaddr |
|
/etc/ethers |
ethers.ord_dir |
ethers.byname ethers.byaddr |
|
/etc/bootparams |
bootparams.ord_dir |
bootparams |
|
/etc/inet/protocols |
protocols.ord_dir |
protocols.byname protocols.bynumber |
|
/etc/inet/services |
services.ord_dir |
services.byname |
|
/etc/inet/networks |
networks.ord_dir |
networks.byaddr networks.byname |
本書では、ローカルファイルをネームサービスとして使用するネットワークで使用されるものとして、ネットワークデータベースの説明を進めます。hosts データベースに関する情報は、「hosts データベース」を、netmasks データベースに関する情報は、「netmasks データベース」を。NIS、DNS、NIS+ でのネットワークデータベースの対応付けについては、『Solaris ネーミングの管理』を参照してください。
/etc/nsswitch.conf ファイルは、ネットワークデータベースの検索順序を定義します。Solaris インストールプログラムは、インストール中にネットワーク管理者が指定するネームサービスに基づいて、ローカルマシン用のデフォルトの /etc/nsswitch.conf ファイルを作成します。"None" オプションを指定して、ローカルファイルをネームサービスとして使用することを指示した場合は、nsswitch.conf ファイルは例 4-5 のようになります。
# /etc/nsswitch.files: # # An example file that could be copied over to /etc/nsswitch.conf; # it does not use any naming service. # # "hosts:" and "services:" in this file are used only if the # /etc/netconfig file contains "switch.so" as a # nametoaddr library for "inet" transports. passwd: files group: files hosts: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files publickey: files # At present there isn't a 'files' backend for netgroup; the # system will figure it out pretty quickly, # and won't use netgroups at all. netgroup: files automount: files aliases: files services: files sendmailvars: files
このファイルについての詳細は、nsswitch.conf(4) のマニュアルページに説明されています。基本構文は次のとおりです。
database name-service-to-search
database フィールドには、オペレーティングシステムが検索するさまざまの種類のデータベースを指定できます。たとえば、passwd や aliases などのようにユーザーに影響を与えるデータベースでも、またネットワークデータベースでも指定できます。ネットワークデータベースの場合の name-service-to-search パラメータの値は、files、nis、nis+ のどれかです (hosts データベースの場合は、検索するネームサービスとして dns も値に指定できます)。nis+ と files のように、複数のネームサービスを指定することもできます。
例 4-5 にサーチオプションとして示されているのは、files だけです。したがって、ローカルマシンは、/etc ディレクトリと /etc/inet ディレクトリに入っているファイルから、ネットワークデータベース情報のほか、セキュリティと自動マウントに関する情報を入手します。
/etc ディレクトリには、Solaris インストールプログラムが作成した nsswitch.conf ファイルが入っています。そのほかに、次のネームサービス用のテンプレートファイルも入っています。
nsswitch.files
nsswitch.nis
nsswitch.nis+
あるネームサービスから別のネームサービスに変更したい場合は、対応するテンプレートを nsswitch.conf にコピーすることができます。また、nsswitch.conf ファイルを選択的に編集して、個々のデータベースを見つけるために検索するデフォルトのネームサービスを変更することができます。
たとえば、NIS を実行するネットワークでは、ディスクレスクライアントについての nsswitch.conf ファイルの変更が必要な場合があります。bootparams データベースと ethers データベースの検索順序では、最初のオプションとして files、次に nis が指定されている必要があります。例 4-6 に、正しい検索順序を示します。
## /etc/nsswitch.conf:# . . passwd: files nis group: file nis # consult /etc "files" only if nis is down. hosts: nis [NOTFOUND=return] files networks: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files ethers: files [NOTFOUND=return] nis netmasks: nis [NOTFOUND=return] files bootparams: files [NOTFOUND=return] nis publickey: nis netgroup: nis automount: files nis aliases: files nis # for efficient getservbyname() avoid nis services: files nis sendmailvars: files
ネームサービススイッチについての詳細は、『Solaris ネーミングの管理』 を参照してください。
bootparams データベースには、ネットワーククライアントモードでブートするように構成されているディスクレスのクライアントとマシンが使用する情報が入っています。ネットワーククライアントを持つネットワークの場合は、このデータベースの編集が必要になります。(手順については、「ネットワーククライアントの構成」を参照してください)。このデータベースは、/etc/bootparams ファイルに入力した情報をもとにして構築されます。
このデータベースの構文についての詳細は、bootparams(4) のマニュアルページで説明されています。基本構文は次のとおりです。
machine-name file-key-server-name:pathname
個々のディスクレスまたはネットワーククライアントマシンについて、エントリが 1 つずつあります。各エントリに入っている情報は、クライアント名、キーのリスト、サーバー名、パス名です。
各エントリの最初の項目は、クライアントマシンの名前です。その次は、キー、サーバー名、パス名をタブ文字で区切ったリストです。最初の項目以外は、すべてオプションです。このデータベースには、すべてのクライアントに一致するワイルドカードエントリを含めることができます。次に例を示します。
myclient root=myserver : /nfsroot/myclient ¥ swap=myserver : /nfsswap//myclient ¥ dump=myserver : /nfsdump/myclient |
この例の dump=: は、ダンプファイルを捜さないようにディスクレスホストに指示します。
ディスクレスクライアントをサポートするように bootparams データベースを編集するときには、ほとんどの場合、ワイルドカードエントリを使用する方が便利です。次のようにしてワイルドカードエントリを使用します。
* root=server:/path dump=:
アスタリスク (*) ワイルドカードは、このエントリが、bootparams データベース内で明示的に指定されていないすべてのクライアントに適用されることを示します。
ethers データベースは、/etc/ethers ファイルに入力した情報をもとにして構築されます。このデータベースは、ホスト名をイーサネットアドレスに関連付けます。ethers ネットワークの作成が必要になるのは、RARP デーモンを実行する場合、つまりネットワーククライアントまたはディスクレスマシンを構成する場合だけです。
RARP は、このファイルを使って、イーサネットアドレスを IP アドレスにマップします。RARP デーモン in.rarpd を実行するときは、ethers ファイルを設定し、このデーモンを実行するすべてのホストでこのファイルを維持して、ネットワークに対する変更が反映されるようにする必要があります。
このデータベースの構文についての詳細は、ethers(4) のマニュアルページに説明されています。基本構文は次のとおりです。
Ethernet-address hostname #comment
Ethernet-address は、ホストのイーサネットアドレスです。
hostname は、ホストの公式名です。
#comment は、ファイル内のエントリに付加できる任意の注意書きです。
イーサネットアドレスは装置の製造元から提供されます。マシンの電源を入れたときにイーサネットアドレスが表示されない場合は、ハードウェアのマニュアルを調べてください。
ethers データベースにエントリを追加するときは、ホスト名が、ニックネームではなく、hosts データベース内の一次名に一致していることを確かめてください (例 4-8)。
8:0:20:1:40:16 fayoum 8:0:20:1:40:15 nubian 8:0:20:1:40:7 sahara # This is a comment 8:0:20:1:40:14 tenere
残りのネットワークデータベースについては、編集が必要になることはほとんどありません。
networks データベースは、ネットワーク名をネットワーク番号に関連付けて、一部のアプリケーションが番号の代わりに名前を使用し表示できるようにします。networks データベースは、/etc/inet/networks ファイルの中の情報をもとにして作られます。このデータベースには、このネットワークがルーターを介して接続されるすべてのネットワークの名前が入っています。
初期 networks データベースは、Solaris インストールプログラムが設定します。このデータベースを更新する必要があるのは、既存のネットワークトポロジに新たなネットワークを追加した場合だけです。
/etc/inet/networks の詳しい構文は、networks(4) マニュアルページで説明されています。基本構文は次のとおりです。
network-name network-number nickname(s) # comment
network-name は、ネットワークの公式名です。
network-number は、InterNIC から割り当てられた番号です。
nickname は、ネットワークの認識のために使用されるその他の名前です。
#comment は、ファイル内のエントリに付加したい任意の注意書きです。
networks ファイルの管理は大変重要です。netstat プログラムは、このデータベース内の情報を使って状態テーブルを作成します。
例 4-9 に /etc/networks ファイルのサンプルを示します。
#ident "@(#)networks 1.4 92/07/14 SMI" /* SVr4.0 1.1 */ # # The networks file associates Internet Protocol (IP) network numbers with network names. The format of this file is: # # network-name network-number nicnames . . . # The loopback network is used only for intra-machine communication #loopback 127 # Internet networks # arpanet 10 arpa # Historical ucb-ether 46 ucbether # # local networks eng 193.9.0 #engineering acc 193.9.1 #accounting prog 193.9.2 #programming |
protocols データベースには、システムにインストールされている TCP/IP プロトコルとそれぞれの番号のリストが入っています。このデータベースは、Solaris インストールプログラムが自動的に作成します。このファイルについて管理作業が必要になることはほとんどありません。
protocols データベースには、システムにインストールされている TCP/IP プロトコルの名前が含まれています。詳しい構文は、protocols(4) マニュアルページに記載されています。例 4-10 に、/etc/inet/protocols ファイルの例を示します。
# # Internet (IP) protocols # ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol tcp 6 TCP # transmission control protocol udp 17 UDP # user datagram protocol |
services データベースには、TCP サービスと UDP サービスの名前と、それぞれのよく知られているポート番号のリストが入っています。このデータベースは、ネットワークサービスを呼び出すプログラムにより使用されます。Solaris インストールプログラムは、services データベースを自動的に作成します。このデータベースについては、通常は管理作業が必要になることはありません。
詳しい構文は、services(4) のマニュアルページに記載されています。 例 4-11 に、典型的な /etc/inet/services ファイルからの抜粋を示します。
# # Network services # echo 7/udp echo 7/tcp discard 9/udp sink null discard 11/tcp daytime 13/udp daytime 13/tcp netstat 15/tcp ftp-data 20/tcp ftp 21/tcp telnet 23/tcp time 37/tcp timeserver time 37/udp timeserver name 42/udp nameserver whois 43/tcp nickname |