OSDN Git Service

(split) LDP: Update release pages
[linuxjm/LDP_man-pages.git] / release / man7 / ip.7
index 874cb87..4e307dd 100644 (file)
@@ -1,20 +1,59 @@
 .\" t
-.\" Don't change the line above. it tells man that tbl is needed.
 .\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
+.\"
+.\" %%%LICENSE_START(VERBATIM_ONE_PARA)
 .\" Permission is granted to distribute possibly modified copies
 .\" of this page provided the header is included verbatim,
 .\" and in case of nontrivial modification author and date
 .\" of the modification is added to the header.
+.\" %%%LICENSE_END
+.\"
 .\" $Id: ip.7,v 1.19 2000/12/20 18:10:31 ak Exp $
 .\"
-.\" FIXME: Document IP_MINTTL, added in Linux 2.6.34
+.\" FIXME: The following socket options are yet to be documented
+.\"    IP_XFRM_POLICY (2.5.48)
+.\"        Needs CAP_NET_ADMIN
+.\"    IP_IPSEC_POLICY (2.5.47)
+.\"        Needs CAP_NET_ADMIN
+.\"    IP_PASSSEC (2.6.17)
+.\"        Boolean
+.\"        commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
+.\"        Author: Catherine Zhang <cxzhang@watson.ibm.com>
+.\"    IP_MINTTL (2.6.34)
+.\"        commit d218d11133d888f9745802146a50255a4781d37a
+.\"        Author: Stephen Hemminger <shemminger@vyatta.com>
+.\"    MCAST_JOIN_GROUP (2.4.22 / 2.6)
+.\"    MCAST_BLOCK_SOURCE (2.4.22 / 2.6)
+.\"    MCAST_UNBLOCK_SOURCE (2.4.22 / 2.6)
+.\"    MCAST_LEAVE_GROUP (2.4.22 / 2.6)
+.\"    MCAST_JOIN_SOURCE_GROUP (2.4.22 / 2.6)
+.\"    MCAST_LEAVE_SOURCE_GROUP (2.4.22 / 2.6)
+.\"    MCAST_MSFILTER (2.4.22 / 2.6)
+.\"    IP_UNICAST_IF (3.4)
+.\"        commit 76e21053b5bf33a07c76f99d27a74238310e3c71
+.\"        Author: Erich E. Hoover <ehoover@mines.edu>
 .\"
 .\"*******************************************************************
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH IP 7 2011\-09\-22 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1999 NAKANO Takeo all rights reserved.
+.\" Translated 1999-12-06, NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated 2001-02-14, Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2001-04-04, Yuichi SATO <ysato@h4.dion.ne.jp>
+.\" Updated & Modified 2003-10-16, Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated & Modified 2005-01-22, Yuichi SATO
+.\" Updated & Modified 2005-09-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated & Modified 2005-10-06, Akihiro MOTOKI
+.\" Updated 2007-01-05, Akihiro MOTOKI, Catch up to LDP man-pages 2.43
+.\" Updated 2007-05-28, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.48
+.\" Updated 2008-12-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.14
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH IP 7 2013\-09\-17 Linux "Linux Programmer's Manual"
 .SH 名前
 ip \- Linux IPv4 プロトコルの実装
 .SH 書式
@@ -50,14 +89,13 @@ IP ソケットは、 \fBsocket\fP(2) 関数を \fBsocket(AF_INET, \fP\fIsocket_
 されている有効な IANA IP プロトコルを、 割り当てられている番号で指定する
 ことができる。
 .PP
-.\" FIXME ip current does an autobind in listen, but I'm not sure
-.\" if that should be documented.
 あるプロセスで、やってくるパケットを受信したり 接続要求を受けたりしたい場合には、 そのプロセスはローカルなインターフェースアドレスに、
-\fBbind\fP(2)  を用いてソケットをバインドしなければならない。 あるローカルな「アドレスとポート」のペアに対してバインドできる IP
-ソケットは一つに限られる。 \fBbind\fP(2)  の呼び出しで \fBINADDR_ANY\fP
-が指定されていた場合は、ソケットはローカルなインターフェースの \fIすべて\fPにバインドされる。 \fBlisten\fP(2)  または
-\fBconnect\fP(2)  がバインドされていないソケットでコールされると、 そのソケットは自動的にローカルなアドレスを \fBINADDR_ANY\fP
-にセットし、空いているポートをランダムに選んでバインドする。
+\fBbind\fP(2) を用いてソケットをバインドしなければならない。 この場合、 ローカルの「アドレスとポート」のペアに対してバインドできる IP
+ソケットは一つだけである。 \fBbind\fP(2) の呼び出しで \fBINADDR_ANY\fP が指定されていた場合は、 ソケットは \fIすべて\fP
+のローカルインターフェースにバインドされる。 \fBlisten\fP(2) がバインドされていないソケットに対してコールされると、 そのソケットは、
+ローカルポートはランダムに選択された空いているポートで、 ローカルアドレスは \fBINADDR_ANY\fP で自動的にバインドされる。
+\fBconnect\fP(2) がバインドされていないソケットに対してコールされると、 そのソケットは、
+ローカルポートはランダムに選択された空いているポートか未使用の共有ポートで、 ローカルアドレスは \fBINADDR_ANY\fP で自動的にバインドされる。
 
 \fBSO_REUSEADDR\fP フラグがセットされていない場合には、 バインドされていた TCP ローカルソケットアドレスは
 クローズされた後しばらくの間使えなくなる。 \fBSO_REUSEADDR\fP フラグを使うと TCP の信頼性を低下させるので、
@@ -87,8 +125,8 @@ struct in_addr {
 にはポート番号をネットワークバイトオーダーで指定する。 1024 未満のポート番号は \fI特権ポート (privileged ports)\fP と呼ばれる
 (\fI予約ポート (reserved ports)\fP とも時々呼ばれる)。 特権プロセス (\fBCAP_NET_BIND_SERVICE\fP
 ケーパビリティを持つプロセス) 以外のプロセスは、これらのポートには \fBbind\fP(2)  できない。 IPv4
-プロトコルそのものにはポートに関する概念がない。 ポートは、 \fBtcp\fP(7)  や \fBudp\fP(7)
-といった、上位のプロトコルにおいて実装される。
+プロトコルそのものにはポートに関する概念がない。ポートが実装されるのは、 \fBtcp\fP(7)  や \fBudp\fP(7)
+といった、上位のプロトコルにおいてのみである。
 .PP
 \fIsin_addr\fP は IP ホストアドレスである。 \fIstruct in_addr\fP の \fIs_addr\fP
 メンバには、ホストのインターフェースアドレスを ネットワークバイトオーダーで
@@ -133,23 +171,60 @@ struct ip_mreqn {
 .in
 .sp
 .\" (i.e., within the 224.0.0.0-239.255.255.255 range)
-\fIimr_multiaddr\fP には、アプリケーションが参加または退したい マルチキャストグループのアドレスが入る。
+\fIimr_multiaddr\fP には、アプリケーションが参加または退したい マルチキャストグループのアドレスが入る。
 指定するアドレスは有効なマルチキャストアドレスでなければならない (さもなければ \fBsetsockopt\fP(2)  がエラー \fBEINVAL\fP
 で失敗する)。 \fIimr_address\fP はシステムがマルチキャストグループに参加する際に用いる ローカルなインターフェースのアドレスである。
 これが \fBINADDR_ANY\fP であった場合には、適切なインターフェースがシステムによって選択される。 \fIimr_ifindex\fP は
-\fIimr_multiaddr\fP グループに参加/退するインターフェースの interface index である。
+\fIimr_multiaddr\fP グループに参加/退するインターフェースの interface index である。
 どのインターフェースでもよい場合は 0 にする。
 .IP
 .\"
-\fIip_mreqn\fP 構造体は Linux 2.2 以降でのみ利用可能である。互換性のため、
-古い \fIip_mreq\fP 構造体 (Linux 1.2 以降で存在する) もまだサポートされている。
-\fIip_mreqn\fP との違いは、 \fIimr_ifindex\fP フィールドを含まないことだけである。
+\fIip_mreqn\fP 構造体は Linux 2.2 以降でのみ利用可能である。互換性のため、 古い \fIip_mreq\fP 構造体 (Linux 1.2
+以降で存在する) もまだサポートされている。 \fIip_mreqn\fP との違いは、 \fIimr_ifindex\fP フィールドを含まないことだけである。
 \fBsetsockopt\fP(2) でのみ使える。
 .TP 
+\fBIP_ADD_SOURCE_MEMBERSHIP\fP (Linux 2.4.22 以降 / 2.5.68 以降)
+マルチキャストグループに参加、指定された送信元からのデータの受信のみを許可する。 引き数は \fIip_mreq_source\fP 構造体である。
+.sp
+.in +4n
+.nf
+struct ip_mreq_source {
+    struct in_addr imr_multiaddr;  /* IP multicast group
+                                      address */
+    struct in_addr imr_interface;  /* IP address of local
+                                      interface */
+    struct in_addr imr_sourceaddr; /* IP address of
+                                      multicast source */
+};
+.fi
+.in
+.sp
+\fIip_mreq_source\fP 構造体は \fBIP_ADD_MEMBERSIP\fP の項で説明した \fIip_mreqn\fP に似ている。
+\fIimr_multiaddr\fP フィールドには、アプリケーションが参加または脱退したいマルチキャストグループのアドレスが入る。
+\fIimr_interface\fP フィールドは、 マルチキャストグループに参加する際に システムが使用すべきローカルインターフェースのアドレスである。
+\fIimr_sourceaddr\fP フィールドには、アプリケーションがデータを受信したい送信元のアドレスが入る。
+.IP
+このオプションを複数回使うことで、 複数の送信元からのデータ受信を許可することができる。
+.TP 
+\fBIP_BLOCK_SOURCE\fP (since Linux 2.4.22 以降 / 2.5.68 以降)
+指定したグループで、指定した送信元からのマルチキャストデータの受信を停止する。 このオプションは、アプリケーションが
+\fBIP_ADD_MEMBERSHIP\fP か \fBIP_ADD_SOURCE_MEMBERSHIP\fP
+のいずれかを使ってマルチキャストグループに参加した後でのみ有効である。
+.IP
+引き数は \fIip_mreq_source\fP 構造体である。 \fBIP_ADD_SOURCE_MEMBERSHIP\fP の項に説明がある。
+.TP 
 \fBIP_DROP_MEMBERSHIP\fP (Linux 1.2 以降)
 マルチキャストグループから抜ける。引き数は \fBIP_ADD_MEMBERSHIP\fP と同様に \fIip_mreqn\fP または \fIip_mreq\fP
 構造体である。
 .TP 
+\fBIP_DROP_SOURCE_MEMBERSHIP\fP (Linux 2.4.22 以降 / 2.5.68 以降)
+送信元を指定してグループから抜ける。 つまり、 指定したマルチキャストグループの指定された送信元からのデータ受信を停止する。
+アプリケーションは同じマルチキャストグループで複数の送信元を購読 (subscribe) している場合には、
+残りの送信元からのデータの受信は引き続き配信される。 すべての送信元からのデータ受信を一度で停止するには \fBIP_LEAVE_GROUP\fP
+を使うこと。
+.IP
+引き数は \fIip_mreq_source\fP 構造体である。 \fBIP_ADD_SOURCE_MEMBERSHIP\fP の項に説明がある。
+.TP 
 \fBIP_FREEBIND\fP (Linux 2.4 以降)
 .\" Precisely: 2.4.0-test10
 このブール値のオプションを有効にすると、ローカルではない IP アドレスや存在
@@ -161,13 +236,36 @@ struct ip_mreqn {
 のソケット単位の設定である。
 .TP 
 \fBIP_HDRINCL\fP (Linux 2.0 以降)
-.\"
-.\" FIXME Document IP_IPSEC_POLICY
-.\" Since Linux 2.5.47
-.\" Needs CAP_NET_ADMIN
 有効になっていると、ユーザは IP ヘッダをユーザーデータの前に与える。 \fBSOCK_RAW\fP ソケットでのみ有効である。詳細は \fBraw\fP(7)
 を見よ。このフラグが有効になっていると、 \fBIP_OPTIONS\fP, \fBIP_TTL\fP, \fBIP_TOS\fP は無視される。
 .TP 
+\fBIP_MSFILTER\fP (since Linux 2.4.22 以降 / 2.5.68 以降)
+このオプションを使うと、 高度なフィルタリング API へアクセスできる。 この API ではすべての状態にアクセスできる。 引き数は
+\fIip_msfilter\fP 構造体である。
+.sp
+.in +4n
+.nf
+struct ip_msfilter {
+    struct in_addr imsf_multiaddr; /* IP multicast group
+                                      address */
+    struct in_addr imsf_interface; /* IP address of local
+                                      interface */
+    uint32_t       imsf_fmode;     /* Filter\-mode */
+
+    uint32_t       imsf_numsrc;    /* Number of sources in
+                                      the following array */
+    struct in_addr imsf_slist[1];  /* Array of source
+                                      addresses */
+};
+.fi
+.in
+.sp
+\fBMCAST_INCLUDE\fP と \fBMCAST_EXCLUDE\fP の 2 つのマクロがあり、 フィルタリングモードを指定するのに使用できる。
+また、 \fBIP_MSFILTER_SIZE\fP(n) マクロがあり、 送信元リストに \fIn\fP 個の送信元が入った \fIip_msfilter\fP
+構造体を格納するのに必要なメモリ量を判定することができる。
+.IP
+マルチキャスト送信元フィルタリングの全容は RFC\ 3376 を参照のこと。
+.TP 
 \fBIP_MTU\fP (Linux 2.2 以降)
 .\" Precisely: 2.1.124
 ソケットの、既知の path MTU を取得する。 ソケットが接続している場合のみ有効である。 \fBgetsockopt\fP(2)  でのみ使える。
@@ -191,7 +289,6 @@ RFC\ 1191 で定義されている Path MTU Discovery を行う。
 どちらかに設定することができる。設定の変更は、
 \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP ファイルに、0 (\fBIP_PMTUDISC_WANT\fP) か
 0 以外 (\fBIP_PMTUDISC_DONT\fP) を書き込むことで行う。
-
 .TS
 tab(:);
 c l
@@ -226,9 +323,17 @@ path MTU の値をまず見積もってみるには、宛先アドレスに \fBc
 \fBSOCK_RAW\fP のソケットで RFC 4821 の MTU 探索を実装することが可能である。 また、この機能は、 \fBtracepath\fP(8)
 のような診断ツールで特に有用である。これらのツールでは、 観測された Path MTU よりも大きな探索パケットを意図的に 送信しようとする。
 .TP 
+\fBIP_MULTICAST_ALL\fP (Linux 2.6.31 以降)
+このオプションを使って、 マルチキャストメッセージの、 ワイルドカードの \fBINADDR_ANY\fP アドレスにバインドされているソケットへの
+配送ポリシーを変更することができる。 引き数はブート値の整数で、 デフォルト値は 1 である。 このオプションを 1
+に設定されている場合、そのソケットでは、このシステムで参加しているすべてのグループからのメッセージが受信される。 それ以外の場合は、そのソケットでは、
+そのソケットに対して (\fBIP_ADD_MEMBERSHIP\fP などを使って) 明示的に参加が指定されたグループからのメッセージだけが受信される。
+.TP 
 \fBIP_MULTICAST_IF\fP (Linux 1.2 以降)
-ローカルデバイスをマルチキャストソケットとして設定する。引き数は \fBIP_ADD_MEMBERSHIP\fP と同様に \fIip_mreqn\fP または
-\fIip_mreq\fP 構造体である。
+.\" net: IP_MULTICAST_IF setsockopt now recognizes struct mreq
+.\" Commit: 3a084ddb4bf299a6e898a9a07c89f3917f0713f7
+ローカルデバイスをマルチキャストソケットとして設定する。引き数は \fBIP_ADD_MEMBERSHIP\fP と同様に \fIip_mreqn\fP 構造体か
+\fIip_mreq\fP 構造体 (Linux 3.5 以降) である。
 .IP
 不正なソケットオプションが渡されると、 \fBENOPROTOOPT\fP が返される。
 .TP 
@@ -247,11 +352,6 @@ TTL に設定することがとても重要である。デフォルトは 1 で
 .TP 
 \fBIP_OPTIONS\fP (Linux 2.0 以降)
 .\" Precisely: 1.3.30
-.\" FIXME Document IP_PASSSEC
-.\" Boolean
-.\" Since Linux 2.6.17
-.\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
-.\" Author: Catherine Zhang <cxzhang@watson.ibm.com>
 このソケットから送られるパケット全てに付随する IP オプションを 設定・取得する。オプションを保存しているメモリバッファへのポインタと
 オプションの長さとを引き数に取る。 \fBsetsockopt\fP(2)  を呼び出すと、ソケットに関連づけられる IP オプションを設定できる。 IPv4
 におけるオプションのサイズの最大値は 40 バイトである。 用いることのできるオプションについては RFC\ 791 を見よ。
@@ -439,10 +539,13 @@ iptables の TPROXY ターゲットで透過プロキシリダイレクション
 このオプションを設定する必要がある。
 .TP 
 \fBIP_TTL\fP (Linux 1.0 以降)
-.\" FIXME Document IP_XFRM_POLICY
-.\" Since Linux 2.5.48
-.\" Needs CAP_NET_ADMIN
 time\-to\-live フィールドの値を設定または取得する。 この値はこのソケットから送信されるすべてのパケットに用いられる。
+.TP 
+\fBIP_UNBLOCK_SOURCE\fP (Linux 2.4.22 以降 / 2.5.68 以降)
+それ以前はブロックされていたマルチキャストの送信元のブロックを解除する。 指定した送信元がブロックされていない場合は \fBEADDRNOTAVAIL\fP
+を返す。
+.IP
+引き数は \fIip_mreq_source\fP 構造体である。 \fBIP_ADD_SOURCE_MEMBERSHIP\fP の項に説明がある。
 .SS "/proc インタフェース"
 .\" FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
 .\"    ip_queue_maxlen
@@ -615,7 +718,8 @@ ICMP メッセージによって引き起こされることがある。
 .\" IP_PASSSEC is Linux-specific
 .\" IP_XFRM_POLICY is Linux-specific
 .\" IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
-\fBIP_FREEBIND\fP, \fBIP_MTU\fP, \fBIP_MTU_DISCOVER\fP, \fBIP_RECVORIGDSTADDR\fP,
+\fBIP_FREEBIND\fP, \fBIP_MSFILTER\fP, \fBIP_MTU\fP, \fBIP_MTU_DISCOVER\fP,
+\fBIP_RECVORIGDSTADDR\fP,
 \fBIP_PKTINFO\fP, \fBIP_RECVERR\fP, \fBIP_ROUTER_ALERT\fP, and \fBIP_TRANSPARENT\fP
 は Linux 固有である。
 
@@ -654,12 +758,12 @@ glibc のバージョンによっては \fIin_pktinfo\fP の定義を忘れて
 を指定して、受信パケットに入っていた宛先アドレスを取得する方法は 2.2 カーネルの一部でうまく動かない。
 .SH 関連項目
 \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBbyteorder\fP(3), \fBipfw\fP(4),
-\fBcapabilities\fP(7), \fBnetlink\fP(7), \fBraw\fP(7), \fBsocket\fP(7), \fBtcp\fP(7),
-\fBudp\fP(7)
+\fBcapabilities\fP(7), \fBicmp\fP(7), \fBipv6\fP(7), \fBnetlink\fP(7), \fBraw\fP(7),
+\fBsocket\fP(7), \fBtcp\fP(7), \fBudp\fP(7)
 .PP
-\fBRFC\ 791\fP: オリジナルの IP の仕様
-.br
-\fBRFC\ 1122\fP: IPv4 ホストの必要条件
-.br
-\fBRFC\ 1812\fP: IPv4 ルータの必要条件
 .\" FIXME autobind INADDR REUSEADDR
+RFC\ 791: 元々の IP 仕様。 RFC\ 1122: IPv4 ホストの要件。 RFC\ 1812: IPv4 ルータの要件。
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。