Solaris のシステム管理 (IP サービス)

ネットワークデータベースと nsswitch.conf ファイル

ネットワークデータベースは、ネットワークの構成に必要な情報を提供するファイルです。ネットワークデータベースには次のものがあります。

構成工程の一環として、ネットワークをサブネット化する場合は、hosts データベースと netmasks データベースを編集します。システムをネットワーククライアントとして構成するには、bootparamsethers の 2 つのネットワークデータベースを使用します。残りのデータベースはオペレーティングシステムが使用するもので、編集が必要になることはほとんどありません。

nsswitch.conf ファイルはネットワークデータベースではありませんが、このファイルは関連するネットワークデータベースと共に構成する必要があります。nsswitch.conf は、特定のシステムに、 ローカルファイル、NIS、DNS、または LDAP のどのネームサービスを使用するかを指定します。

ネットワークデータベースへのネームサービスの影響

ネットワークデータベースの形式は、ネットワークで選択したネームサービスの種類によって異なります。たとえば、hosts データベースには、少なくとも、ローカルシステムとそのシステムに直接接続されているネットワークインタフェースのホスト名と IPv4 アドレスだけは含まれています。しかし、ネットワークで使用するネームサービスの種類によっては、その他の IPv4 アドレスとホスト名も hosts データベースに含まれていることがあります。

ネットワークデータベースは、次のように使用されます。


注 –

DNS 起動ファイルとデータファイルは、ネットワークデータベースに直接は対応していません。


次の図に、これらのネームサービスで使用する hosts データベースの形式を示します。

図 10–2 ネームサービスが使用する hosts データベースの形式

この図は、さまざまな DNS、NIS、NIS+ ネームサービスとローカルファイルがホストデータベースをどのように保存するかを示しています。

次の表に、ネットワークデータベースと対応するローカルファイルおよび NIS マップを示します。


注 –

Solaris 10 11/06 よりあとの Oracle Solaris リリースでは、ipnodes データベースは削除されます。


表 10–1 ネットワークデータベースと対応ネームサービスファイル

ネットワークデータベース 

ローカルファイル 

NIS のマップ 

hosts

/etc/inet/hosts

hosts.byaddr hosts.byname

ipnodes

/etc/inet/ipnodes

ipnodes.byaddr ipnodes.byname

netmasks

/etc/inet/netmasks

netmasks.byaddr

ethers

/etc/ethers

ethers.byname ethers.byaddr

bootparams

/etc/bootparams

bootparams

protocols

/etc/inet/protocols

protocols.byname protocols.bynumber

services

/etc/inet/services

services.byname

networks

/etc/inet/networks

networks.byaddr networks.byname

このマニュアルでは、ネームサービス用にローカルファイルを使用するネットワークから見たネットワークデータベースについて説明します。

NIS、DNS、および LDAP でのネットワークデータベースの対応関係については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

nsswitch.conf ファイル

/etc/nsswitch.conf ファイルは、ネットワークデータベースの検索順序を定義します。Oracle Solaris インストールプログラムは、インストール中にネットワーク管理者が指定するネームサービスに基づいて、ローカルシステム用のデフォルトの /etc/nsswitch.conf ファイルを作成します。「None」オプションを指定して、ローカルファイルをネームサービスとして使用することを指示した場合は、nsswitch.conf ファイルは次の例のようになります。


例 10–5 ネームサービスにファイルを使用するネットワーク用の nsswitch.conf


# /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 フィールドには、オペレーティングシステムが検索する多くの種類のデータベースの 1 つを指定できます。たとえば、passwdaliases などのようにユーザーに影響を与えるデータベースでも、またネットワークデータベースでも指定できます。ネットワークデータベースの場合、 name-service-to-search パラメータの値は、filesnisnis+ のどれかです。hosts データベースの場合は、検索するネームサービスとして dns も値に指定できます。nis+files のように、複数のネームサービスも指定できます。

例 10–5 において、示されている唯一の検索オプションは files です。したがって、ローカルシステムは、/etc ディレクトリと /etc/inet ディレクトリに入っているファイルから、ネットワークデータベース情報のほか、セキュリティーと自動マウントに関する情報を入手します。

nsswitch.conf の変更

/etc ディレクトリには、Oracle Solaris インストールプログラムが作成する nsswitch.conf ファイルが含まれています。そのほかに、次のネームサービス用のテンプレートファイルも含まれています。

あるネームサービスから別のネームサービスに変更したい場合は、対応するテンプレートを nsswitch.conf にコピーできます。また、nsswitch.conf ファイルを選択的に編集して、個々のデータベースを見つけるために検索するデフォルトのネームサービスを変更できます。

たとえば、NIS を実行するネットワークでは、ネットワーククライアントについての nsswitch.conf ファイルの変更が必要な場合があります。bootparams データベースと ethers データベースの検索順序では、最初のオプションとして files、次に nis が指定されている必要があります。次のコード例に、正しい検索順序を示します。


例 10–6 NIS を実行するネットワーク上のクライアントのための nsswitch.conf


# /etc/nsswitch.conf:#
.
.
passwd:        files nis
group:         files 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 のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

bootparams データベース

bootparams データベースには、ネットワーククライアントモードで起動されるように構成されたシステムが使用する情報が含まれています。ネットワーククライアントを持つネットワークの場合は、このデータベースの編集が必要になります。手順については、「ネットワーククライアントの構成」を参照してください。このデータベースは、/etc/bootparams ファイルに入力した情報をもとにして構築されます。

このデータベースの構文についての詳細は、bootparams(4) のマニュアルページに含まれています。基本構文は、次のとおりです。

system-name file-key-server-name:pathname

個々のディスクレスまたはネットワーククライアントシステムについて、エントリが 1 つずつ含まれています。 各エントリに入っている情報は、クライアント名、キーのリスト、サーバー名、パス名です。各エントリの最初の項目は、クライアントシステムの名前です。最初の項目以外は、すべてオプションです。次に例を示します。


例 10–7 bootparams データベース


myclient   root=myserver : /nfsroot/myclient  \
swap=myserver : /nfsswap//myclient \
dump=myserver : /nfsdump/myclient

この例の dump= はダンプファイルを探さないようクライアントホストに指示しています。

bootparams のワイルドカードエントリ

ほとんどの場合、ワイルドカードエントリを使用するのは、bootparams データベースを編集してクライアントをサポートするときです。次のようにしてワイルドカードエントリを使用します。

*  root=server:/path dump=:

アスタリスク (*) ワイルドカードは、このエントリが、bootparams データベース内で明示的に指定されていないすべてのクライアントに適用されることを示します。

ethers データベース

ethers データベースは、/etc/ethers ファイルに入力した情報から構築されます。このデータベースは、ホスト名を「メディアアクセス制御」(MAC) アドレスに関連付けます。ethers データベースの作成が必要になるのは、RARP デーモンを実行する場合だけです。つまり、ネットワーククライアントを構成する場合だけです。

RARP は、このファイルを使用して、MAC アドレスを IP アドレスにマッピングします。RARP デーモン in.rarpd を実行する場合は、ethers ファイルを設定し、このファイルをこのデーモンを実行するすべてのホストに格納して、ネットワークに対する変更が反映されるようにする必要があります。

このデータベースの構文についての詳細は、ethers(4) のマニュアルページに含まれています。基本構文は、次のとおりです。


MAC-address   hostname   #comment
MAC-address

ホストの MAC アドレス

hostname

ホストの公式名

#comment

ファイルのエントリに追加する注釈

MAC アドレスは装置の製造元から提供されます。システムの起動プロセス中に、システムが MAC アドレスを表示しない場合は、お使いのハードウェアのマニュアルを参照してください。

ethers データベースにエントリを追加するときは、ホスト名が、ニックネームではなく、hosts データベース内と ipnodes データベース内 (Solaris 10 11/06 以前のリリースの場合) の基本名に一致していることを確認してください (次のコード例を参照)。


例 10–8 ethers データベース内のエントリ


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 データベースは、ネットワーク名をネットワーク番号と関連付けて、いくつ かのアプリケーションが番号ではなく名前を使用または表示できるようにします。networks データベースは、/etc/inet/networks ファイルの中の情報に基づいています。このデータベースには、このネットワークがルーターを介して接続されるすべてのネットワークの名前が含まれています。

初期 networks データベースは、Oracle Solaris インストールプログラムが設定します。ただし、既存のネットワークトポロジに新たなネットワークを追加する場合は、このデータベースを更新する必要があります。

/etc/inet/networks の構文についての詳細は、networks(4) のマニュアルページに含まれています。基本形式は、次のとおりです。


network-name  network-number  nickname(s)  #comment
network-name

ネットワークの公式名

network-number

ISP またはインターネットレジストリが割り当てた番号

nickname

そのネットワークの別名

#comment

ファイルのエントリに追加する注釈

networks ファイルは必要に応じて更新する必要があります。netstat プログラムは、このデータベース内の情報を使用して状態テーブルを作成します。

次のコード例に、/etc/networks ファイルのサンプルを示します。


例 10–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
#
# local networks

eng   192.168.9 #engineering
acc   192.168.5 #accounting
prog  192.168.2 #programming

protocols データベース

protocols データベースには、システムにインストールされている TCP/IP プロトコルとプロトコル番号の一覧が含まれています。このデータベースは、Oracle Solaris インストールプログラムによって自動的に作成されます。このファイルの管理が必要になることは、ほとんどありません。

このデータベースの詳しい構文については、protocols(4) のマニュアルページを参照してください。次のコード例に、/etc/inet/protocols ファイルのサンプルを示します。


例 10–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 データベース

services データベースは、TCP と UDP サービスの名前および既知のポート番号の一覧を含んでいます。このデータベースは、ネットワークサービスを呼び出すプログラムにより使用されます。Oracle Solaris インストールプログラムは、services データベースを自動的に作成します。通常は、このデータベースの管理作業を必要としません。

構文についての詳細は、services(4) のマニュアルページを参照してください。次に、典型的な /etc/inet/services ファイルからの抜粋を示します。


例 10–11 /etc/inet/サービス ファイル


#
# Network services
#
echo      7/udp
echo      7/tcp
echo      7/sctp6
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