netconfig

名称
     netconfig — ネットワーク設定データベース

書式
     /etc/netconfig

解説
     netconfig ファイルでは、 “トランスポート名” のリストを定義して、それぞれのセマンティクスやプロトコルを記述しています。 FreeBSD
     では、このファイルは RPC ライブラリのコードだけが使用しています。

     エントリは次のようなフォーマットになっています:

     network_id semantics flags family protoname device libraries

     エントリを構成するフィールドは次の通りです:

     network_id  記述するトランスポートの名称

     semantics   トランスポートのセマンティクスを記述します。 これは次のうちの一つです:

                       tpi_clts      コネクションレストランスポート

                       tpi_cots      コネクション指向トランスポート

                       tpi_cots_ord  コネクション指向順序付きトランスポート

                       tpi_raw       素のコネクション

     flags       このフィールドはブランクか( “-” と指定します)、 または “v” を含みます。 “v” を含むときは
                 getnetconfig(3) 関数で見ることが出来るということを表します。

     family      トランスポートのプロトコルファミリで、 現在は次のうちの一つです:

                       inet6     IPv6 (PF_INET6) プロトコルファミリ

                       inet      IPv4 (PF_INET) プロトコルファミリ

                       loopback  PF_LOCAL プロトコルファミリ

     protoname   トランスポートのプロトコル名で、 現在は udp, tcp のどちらかか、もしくは空です。

     device      FreeBSD では、このフィールドは常に空です。

     libraries   FreeBSD では、このフィールドは常に空です。

     このファイル内のエントリの順序によって、指定されたネットワークタイプに対する RPC ライブラリコードのトランスポートの優先順位が決まります。
     例えば、サンプルとしてネットワーク設定ファイルが下のようになっていたとします:

           udp6       tpi_clts      v     inet6    udp     -       -
           tcp6       tpi_cots_ord  v     inet6    tcp     -       -
           udp        tpi_clts      v     inet     udp     -       -
           tcp        tpi_cots_ord  v     inet     tcp     -       -
           rawip      tpi_raw       -     inet      -      -       -
           local      tpi_cots_ord  -     loopback  -      -       -

     このとき、ネットワークタイプとして udp を使用して RPC ライブラリ関数を呼び出すと (rpc(3) 参照)、 まず最初に udp6
     を試してから udp を試します。

     getnetconfig(3) や、その関連の関数はこのファイルを構文解析して次のようなフォーマットの 構造体を返します:

     struct netconfig {
         char *nc_netid;              /* ネットワーク ID */
         unsigned long nc_semantics;  /* セマンティクス (下記参照) */
         unsigned long nc_flag;       /* フラグ (下記参照) */
         char *nc_protofmly;          /* プロトコルファミリ */
         char *nc_proto;              /* プロトコル名 */
         char *nc_device;             /* ネットワークデバイスのパス名 (未使用) */
         unsigned long nc_nlookups;   /* 参照するライブラリの数 (未使用) */
         char **nc_lookups;           /* ライブラリ名の並び (未使用) */
         unsigned long nc_unused[9];  /* 予約 */
     };

関連ファイル
     /etc/netconfig

関連項目
     getnetconfig(3), getnetpath(3)