NETCONFIG(5)

名称
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)