FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | 書式 | 解説 | 関連項目 | 歴史
ROUTE(4)           FreeBSD カーネルインタフェースマニュアル           ROUTE(4)

名称
     route -- カーネルパケット転送データベース

書式
     #include <sys/types.h>
     #include <sys/time.h>
     #include <sys/socket.h>
     #include <net/if.h>
     #include <net/route.h>

     int
     socket(PF_ROUTE, SOCK_RAW, int family);

解説
     FreeBSD は、いくつかのパケット経路制御機能を提供しています。カーネルは、
     パケットを送信するとき、適切なネットワークインタフェースを選択するために
     に使用される、経路制御 (routing) 情報データベースを保守します。

     ユーザプロセス (またはことによると複数の協同プロセス) は、特別な種類のソ
     ケット上にメッセージを送信することによって、このデータベースを保守しま
     す。これは、初期のリリースで使用される固定サイズの ioctl(2) に取って代わ
     ります。経路制御テーブルの変更は、スーパユーザによってのみ実行されます。

     オペレーティングシステムは、リダイレクトの受信か、または要求に対して適切
     な経路 (route) を見つけることに失敗するような、外部のイベントに応答する経
     路制御メッセージを自然に発行します。メッセージタイプは、下記により詳しく
     記述されています。

     経路制御データベースエントリは、次の 2 つの特色の形で提供されます: 特定の
     ホストのために、または、 (ビットマスクとマスクされた値によって指定される
     ような) 一般的なサブネットワークですべてのホストのためです。ワイルドカー
     ドかデフォルト経路の効果は、すべて 0 のマスクを使用することによって達成さ
     れ、それらは、階層的な経路になります。

     システムがブートされ、アドレスがネットワークインタフェースに割り当てられ
     るとき、各プロトコルファミリは、トラフィックの準備ができているとき、イン
     タフェースごとに経路制御テーブルエントリをインストールします。通常、プロ
     トコルは、宛先ホストまたはネットワークに ``直接'' 接続するような各インタ
     フェースを通して経路を指定します。経路が直接であるなら、プロトコルファミ
     リの転送レイヤは、通常、パケットで指定される同じホストに送信されるパケッ
     トを要求します。そうでなければ、インタフェースは、経路制御エントリにリス
     トされたゲートウェイへのパケットを処置するように要求されます (すなわち、
     パケットは、転送されます)。

     パケットを経路制御するとき、カーネルは、宛先に一致する最も明確な経路を見
     つけようと試みます。(一致する 2 つの異なったマスクとマスクされた値
     (value-under-the-mask) のペアがあるなら、より特殊なものは、より多くのビッ
     トがあるものです。ホストへの経路は、宛先中のビットがあるものと同数のマス
     クが供給されると見なされます)。エントリが見つけられないなら、宛先は、到達
     不能であると宣言され、以下に記述される経路制御の制御ソケットでいくらかの
     listener (接続を受け付けるプログラム) があるなら、経路制御ミス (rout
     ing-miss) メッセージが生成されます。

     ワイルドカードの経路制御エントリは、0 の宛先アドレス値とすべて 0 のマスク
     で指定されます。ワイルドカードの経路は、システムが宛先に一致する他の経路
     を見つけるのに失敗するとき、使用されます。ワイルドカードの経路と経路制御
     リダイレクトの組み合わせは、経路制御トラフィックのための安価な仕組みを提
     供することができます。

     上記の概要で示されるソケットコールを使用することによって経路制御の制御
     メッセージを渡すためにチャネルをオープンします。

     family パラメータは、すべてのアドレスファミリのための経路制御の情報を提供
     する AF_UNSPEC であるかもしれません、または、どのアドレスファミリが要求さ
     れているかを指定することによって特定のアドレスファミリに制限することがで
     きます。システムごとにオープンされた 2 つ以上の経路制御ソケットを指定でき
     ます。

     メッセージは、ヘッダに続く sockaddrs の小さな数 (現在、特に ISO の場合に
     可変長) によって形成され、位置によって解釈され、そして sockaddr の新しい
     length (長さ) エントリによって区切られます。4 つのアドレスがあるメッセー
     ジの例は、ISO リダイレクトになるかもしれません: 宛先、ネットマスク、ゲー
     トウェイ、とリダイレクトの作者。どのアドレスが存在しているかの解釈は、
     ヘッダ内のビットマスクで与えられ、シーケンスは、ベクタ内の最下位ビットか
     ら最上位ビットです。

     カーネルに送られたあらゆるメッセージは、返され、コピーが、すべての関係が
     あるリスナに送られます。カーネルは、送信側のためのプロセス ID を提供し、
     送信側は、未解決のメッセージを区別するために追加のシーケンスフィールドを
     使用します。しかしながら、メッセージの応答は、カーネルバッファが使い果た
     されるとき、失われるかもしれません。

     カーネルは、特定のメッセージを拒否し、rtm_errno フィールドに記入すること
     によってこれを示します。経路制御コードは、存在するエントリを複製するよう
     に要求されるなら EEXIST を返し、実在しないエントリを削除するように要求さ
     れるなら ESRCH を返し、新しい経路をインストールするために利用可能なリソー
     スが不足しているなら、ENOBUFS を返します。現在の実装で、すべての経路制御
     プロセスは、ローカルに実行し、rtm_errno のための値は、たとえ経路制御の応
     答メッセージが失われても、通常の errno メカニズムを通して利用可能です。

     プロセスは、SOL_SOCKET レベルで SO_USELOOPBACK オプションがオフにされるこ
     とを示す setsockopt(2) 呼び出しを発行することによって、それ自体のメッセー
     ジへの応答を読み込むコストを避けます。プロセスは、さらなる入力のために
     shutdown(2) システムコールを行なうことによって、経路制御ソケットからのす
     べてのメッセージを無視します。

     経路が削除されるとき、それが使用中であるなら、経路制御エントリは、ダウン
     (停止中) とマークされ、経路制御テーブルから削除されますが、それに関連して
     いるリソースは、すべての参照が解除されるまで再利用されません。ユーザプロ
     セスは、RTM_GET メッセージを使用することによってか、または sysctl(3) を呼
     び出すことによって、特定の宛先への経路制御エントリに関する情報を取得する
     ことができます。

     メッセージは、次のものを含んでいます:

     #define RTM_ADD         0x1    /* 経路を追加 */
     #define RTM_DELETE      0x2    /* 経路を削除 */
     #define RTM_CHANGE      0x3    /* メトリック, フラグまたはゲートウェイを変更 */
     #define RTM_GET         0x4    /* 情報を報告 */
     #define RTM_LOSING      0x5    /* カーネル容疑分割 */
     #define RTM_REDIRECT    0x6    /* 異なった経路を使用するように伝える */
     #define RTM_MISS        0x7    /* このアドレスで失敗した検索 */
     #define RTM_LOCK        0x8    /* 指定されたメトリックを修正 */
     #define RTM_RESOLVE     0xb    /* 宛先を LL アドレスに解決要求 - 未使用 */
     #define RTM_NEWADDR     0xc    /* iface に追加されるアドレス */
     #define RTM_DELADDR     0xd    /* iface から削除されるアドレス */
     #define RTM_IFINFO      0xe    /* iface を up/down するその他 */
     #define RTM_NEWMADDR    0xf    /* if に追加される mcast グループ
                                       メンバシップ */
     #define RTM_DELMADDR    0x10   /* 削除される mcast グループメンバシップ */
     #define RTM_IFANNOUNCE  0x11   /* iface 到着/出発 */
     #define RTM_IEEE80211   0x12   /* IEEE80211 無線イベント */

     メッセージヘッダは、次の 1 つで構成されています:

     struct rt_msghdr {
         u_short rtm_msglen;         /* 理解されないメッセージをスキップする */
         u_char  rtm_version;        /* 将来のバイナリ互換性 */
         u_char  rtm_type;           /* メッセージタイプ */
         u_short rtm_index;          /* 関連する ifp のインデックス */
         int     rtm_flags;          /* フラグ, incl. kern & message,
                                        例えば DONE */
         int     rtm_addrs;          /* メッセージ中のビットマスク識別
                                        sockaddrs */
         pid_t   rtm_pid;            /* 送信者識別 */
         int     rtm_seq;            /* 動作を識別する送信者に対して */
         int     rtm_errno;          /* 何故失敗したか */
         int     rtm_fmask;          /* RTM_CHANGE メッセージで使用される
                                        ビットマスク */
         u_long  rtm_inits;          /* どのメトリックを初期化しているか */
         struct  rt_metrics rtm_rmx; /* メトリック自体 */
     };

     struct if_msghdr {
         u_short ifm_msglen;         /* 理解されないメッセージをスキップする */
         u_char  ifm_version;        /* 将来のバイナリ互換性 */
         u_char  ifm_type;           /* メッセージタイプ */
         int     ifm_addrs;          /* rtm_addrs に似たもの */
         int     ifm_flags;          /* if_flags の値 */
         u_short ifm_index;          /* 関連する ifp のインデックス */
         struct  if_data ifm_data;   /* if に関する統計と他のデータ */
     };

     struct ifa_msghdr {
         u_short ifam_msglen;        /* 理解されないメッセージをスキップする */
         u_char  ifam_version;       /* 将来のバイナリ互換性 */
         u_char  ifam_type;          /* メッセージタイプ */
         int     ifam_addrs;         /* rtm_addrs に似たもの */
         int     ifam_flags;         /* ifa_flags の値 */
         u_short ifam_index;         /* 関連する ifp のインデックス */
         int     ifam_metric;        /* ifa_metric の値 */
     };

     struct ifma_msghdr {
         u_short ifmam_msglen;       /* 理解されないメッセージをスキップする */
         u_char  ifmam_version;      /* 将来のバイナリ互換性 */
         u_char  ifmam_type;         /* メッセージタイプ */
         int     ifmam_addrs;        /* rtm_addrs に似たもの */
         int     ifmam_flags;        /* ifa_flags の値 */
         u_short ifmam_index;        /* 関連する ifp のインデックス */
     };

     struct if_announcemsghdr {
             u_short ifan_msglen;    /* 理解されないメッセージをスキップする */
             u_char  ifan_version;   /* 将来のバイナリ互換性 */
             u_char  ifan_type;      /* メッセージタイプ */
             u_short ifan_index;     /* 関連する ifp のインデックス */
             char    ifan_name[IFNAMSIZ]; /* 名前があるなら, 例えば "en0" */
             u_short ifan_what;      /* どんなアナウンスのタイプ */
     };

     RTM_IFINFO メッセージは、if_msghdr ヘッダを使用し、RTM_NEWADDR と
     RTM_DELADDR メッセージは、ifa_msghdr ヘッダを使用し、RTM_NEWMADDR と
     RTM_DELMADDR メッセージは、ifma_msghdr ヘッダを使用し、RTM_IFANNOUNCE
     メッセージは、if_announcemsghdr ヘッダを使用し、そして、他のすべてのメッ
     セージは、rt_msghdr ヘッダを使用します。

     ``struct rt_metrics'' とフラグビットは、rtentry(9) で定義されています。

     rmx_locks と rtm_inits のメトリック値のための指定子は、次の通りです:

     #define RTV_MTU       0x1    /* _mtu を初期化またはロック */
     #define RTV_HOPCOUNT  0x2    /* _hopcount を初期化またはロック */
     #define RTV_EXPIRE    0x4    /* _expire を初期化またはロック */
     #define RTV_RPIPE     0x8    /* _recvpipe を初期化またはロック */
     #define RTV_SPIPE     0x10   /* _sendpipe を初期化またはロック */
     #define RTV_SSTHRESH  0x20   /* _ssthresh を初期化またはロック */
     #define RTV_RTT       0x40   /* _rtt を初期化またはロック */
     #define RTV_RTTVAR    0x80   /* _rttvar を初期化またはロック */
     #define RTV_WEIGHT    0x100  /* _weight を初期化またはロック */

     メッセージに提示されるアドレスの指定子は、次の通りです:

     #define RTA_DST       0x1    /* 宛先 sockaddr 提示 */
     #define RTA_GATEWAY   0x2    /* ゲートウェイ sockaddr 提示 */
     #define RTA_NETMASK   0x4    /* ネットマスク sockaddr 提示 */
     #define RTA_GENMASK   0x8    /* クローニングマスク sockaddr 提示 - 未使用*/
     #define RTA_IFP       0x10   /* インタフェース名 sockaddr 提示 */
     #define RTA_IFA       0x20   /* インタフェースアドレス sockaddr 提示 */
     #define RTA_AUTHOR    0x40   /* リダイレクトの作者のための sockaddr */
     #define RTA_BRD       0x80   /* NEWADDR のための, ブロードキャストまたは
                                     p-p 宛先アドレス */

関連項目
     sysctl(3), route(8), rtentry(9)

     rtm_flags フィールドのための定数は、route(8) ユーティリティのためのマニュ
     アルページに文書化されています。

歴史
     PF_ROUTE プロトコルファミリは、4.3BSD-Reno ではじめて登場しました。

FreeBSD 12.2                   November 4, 2004                   FreeBSD 12.2

Table of Contents

FreeBSD マニュアル検索