ネットワークインタフェース

/etc/netconfig ファイル

netconfig(4) ファイルには、ホスト上のすべてのトランスポートプロトコルが記述されています。表 4-1 で、netconfig(4) ファイルのエントリについて簡単に説明しています。詳細については、netconfig(4) のマニュアルページを参照してください。

表 4-1 netconfig(4) ファイル

エントリ 

説明 

network ID

tcp のようなトランスポート名のローカルな表現。このフィールドに tcpudp のようなよく知られた名前が設定されるとは限らない。また、同じトランスポートについて、2 つのシステムが同じ名前を使用するとも限らない

semantics

特定のトランスポートプロトコルの意味。指定できる意味は次のとおり

  • tpi_clts - コネクションレス

  • tpi_cots - コネクション型

  • tpi_cots_ord - 正常型解放機能を備えたコネクション型

flags

v またはハイフン (-) だけを指定できるが、(-v) という可視フラグだけが定義されている

protocol family

トランスポートプロバイダのプロトコルファミリ名 (たとえば、inet または loopback)

protocol name

トランスポートプロバイダのプロトコル名。たとえば、protocol familyinet の場合、protocal name は、tcpudp または icmp。それ以外の場合は、protocal name の値は、ハイフン (-)

network device

トランスポートプロバイダにアクセスする場合に開く、デバイスファイルの完全パス名 

name-to-address translation libraries

共有オブジェクトの名前。このフィールドには、名前からアドレスへのマッピングルーチンが格納されている共有オブジェクトのファイル名をコンマで区切って指定する。共有オブジェクトは、環境変数 LD_LIBRARY_PATH のパスに格納される。このフィールドに「-」を指定すると、ホストおよびサービスに関するネームサービス切り換えポリシーが使用されることを意味する

例 4-1 に、netconfig(4) ファイルのサンプルを示します。inet トランスポートについては、このサンプルファイルのコメント部分に示すように、netconfig(4) ファイルの使用方法が変更されました。この変更については、「名前からアドレスへのマッピング」も参照してください。


例 4-1 netconfig(4) サンプルファイル

# The "Network Configuration" File.
#
# Each entry is of the form:
#
#<net <semantics>  <flags> <proto    <proto   <device>    	<nametoaddr_libs>
# id>                       family>   name>
#
# The "-" in <nametoaddr_libs> for inet family transports indicates redirection
# to the name service switch policies for "hosts" and "services. The "-" may be
# replaced by nametoaddr libraries that comply with the SVR4 specs, in which
# case the name service switch will be used for netdir_getbyname, netdir_
# getbyaddr, gethostbyname, gethostbyaddr, getservbyname, and getservbyport.
# There are no nametoaddr_libs for the inet family in Solaris anymore.
#
udp       tpi_clts     v   inet       udp      /dev/udp        -
#
tcp       tpi_cots_ord v   inet       tcp      /dev/tcp        -
#
icmp      tpi_raw      -   inet       icmp     /dev/icmp       -
#
rawip     tpi_raw      -   inet       -        /dev/rawip      -
#
ticlts    tpi_clts     v   loopback   -        /dev/ticlts     straddr.so
#
ticots    tpi_cots     v   loopback   -        /dev/ticots     straddr.so
#
ticotsord tpi_cots_ord v   loopback   -        /dev/ticotsord  straddr.so
#

ネットワーク選択ライブラリルーチンは、netconfig エントリへのポインタを返します。例 4-2 に、netconfig 構造体を示します。


例 4-2 netconfig 構造体

struct netconfig {
   char  *nc_netid;                /* ネットワーク識別子 */
   unsigned  int   nc_semantics;   /* プロトコルの意味 */
   unsigned  int   nc_flag;        /* プロトコルのフラグ */
   char *nc_protofmly;             /* ファミリ名 */
   char *nc_proto;                 /* プロトコル固有 */
   char *nc_device;                /* ネットワーク ID に相当するデバイス名 */
   unsigned  int   nc_nlookups;    /* nc_lookups 内のエントリ数 */
   char **nc_lookups;              /* ルックアップライブラリのリスト */
   unsigned  int   nc_unused[8];
};

有効なネットワーク ID は、システム管理者が定義します。システム管理者は、必ず、ネットワーク ID をローカルに一意にしなければなりません。一意でないと、一部のネットワーク選択ルーチンが正しく機能しません。たとえば、udp というネットワーク ID が指定された netconfig エントリが 2 つあると、getnetconfigent ("udp") がどちらのネットワークを使用するかがわかりません。

システム管理者は、netconfig(4) データベース内のエントリの順序も設定します。/etc/netconfig 内のエントリを見つけるルーチンは、ファイルの先頭から順番に走査し、エントリを返します。netconfig(4) ファイル内のトランスポートの記述順序は、ルーチンがトランスポートを検索する際のデフォルト順序になります。ループバックエントリは、ファイルの終わりに設定する必要があります。

netconfig(4) ファイルおよび netconfig 構造体については、netconfig(4) のマニュアルページでさらに詳細に説明しています。