.\"
.\" $Id: ip.7,v 1.19 2000/12/20 18:10:31 ak Exp $
.\"
-.\" FIXME: The following socket options are yet to be documented
+.\" 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)
.\" 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"
+.TH IP 7 2014\-05\-10 Linux "Linux Programmer's Manual"
.SH 名前
ip \- Linux IPv4 プロトコルの実装
.SH 書式
.br
\fIraw_socket\fP\fB = socket(AF_INET, SOCK_RAW, \fP\fIprotocol\fP\fB);\fP
.SH 説明
-.\" FIXME has someone verified that 2.1 is really 1812 compliant?
+.\" FIXME . has someone verified that 2.1 is really 1812 compliant?
Linux は RFC\ 791 と RFC\ 1122 で記述されている Internet Protocol, version 4 を実装している。
\fBip\fP には RFC\ 1112 に準拠した level 2 マルチキャストの実装が含まれている。 またパケットフィルタ機能を含む IP
ルーターも実装されている。
MTU discovery の進行中には、データグラムソケットからの初期パケットは 到着しないかもしれない。 UDP を用いるアプリケーションでは、
このことを気にかけておき、 パケットの再送アルゴリズムにこの分を除外させるべきである。
-.\" FIXME this is an ugly hack
+.\" FIXME . this is an ugly hack
接続していないソケットに対して path MTU discovery プロセスを立ち上げるには、 大きなデータグラムサイズ (最大 64K
ヘッダバイト長) からはじめて、 path MTU が更新されるまでサイズを縮めていくことも可能である。
.fi
.in
.IP
-.\" FIXME elaborate on that.
+.\" FIXME . elaborate on that.
.\" This field is grossly misnamed
\fIipi_ifindex\fP はパケットが受信されたインターフェースの、他と重ならないインデックスである。 \fIipi_spec_dst\fP
はパケットのローカルアドレスである。 \fIipi_addr\fP はパケットヘッダにある宛先アドレスである。 \fBIP_PKTINFO\fP が
.\" will make the IPv4 routing omit the non-local source address check on
.\" output. Setting IP_TRANSPARENT requires NET_ADMIN capability.
.\" http://lwn.net/Articles/252545/
-このブール値のオプションを有効にすると、
-このソケットで透過プロキシ (transparent proxy) ができるようになる。
-このソケットオプションを使うと、呼び出したアプリケーションは、
-ローカルではない IP アドレスをバインドして、ローカルの端点として自分以外の
-アドレス (foreign address) を持つクライアントやサーバの両方として
-動作できるようになる。
-\fB注意\fP: この機能が動作するためには、自分以外のアドレス宛のパケットが
-透過プロキシが動作するマシン (TProxy box) 経由で転送されるように、
-ルーティングが設定される必要がある。
-このソケットオプションを有効にするには、スーパーユーザ特権
-(\fBCAP_NET_ADMIN\fP ケーパビリティ) が必要である。
+このブール値のオプションを有効にすると、 このソケットで透過プロキシ (transparent proxy) ができるようになる。
+このソケットオプションを使うと、呼び出したアプリケーションは、 ローカルではない IP アドレスをバインドして、ローカルの端点として自分以外のアドレス
+(foreign address) を持つクライアントやサーバの両方として動作できるようになる。 \fB注意\fP:
+この機能が動作するためには、自分以外のアドレス宛のパケットが透過プロキシが動作するマシン (すなわちソケットオプション
+\fBIP_TRANSPARENT\fP を利用するアプリケーションが動作しているシステム) 経由で転送されるように、 ルーティングが設定される必要がある。
+このソケットオプションを有効にするには、スーパーユーザ特権 (\fBCAP_NET_ADMIN\fP ケーパビリティ) が必要である。
.IP
iptables の TPROXY ターゲットで透過プロキシリダイレクション
(TProxy redirection) を行うには、リダイレクトされるソケットに対して
送出されるパケットの time\-to\-live 値のデフォルトをセットする。 これは \fBIP_TTL\fP
オプションを用いれば、パケットごとに変えることもできる。
.TP
-\fIip_dynaddr\fP (Boolean; default: disabled; Linux 2.0.31 以降)
+\fIip_dynaddr\fP (ブール値; デフォルト: 無効; Linux 2.0.31 以降)
.\"
動的ソケットアドレスと、インターフェースアドレスが変更された際の マスカレードエントリの再書き込みを有効にする。 ダイアルアップインターフェースで、
IP アドレスが変更される場合に便利である。
.TP
-\fIip_forward\fP (Boolean; default: disabled; Linux 1.2 以降)
+\fIip_forward\fP (ブール値; デフォルト: 無効; Linux 1.2 以降)
.\"
IP forwarding を有効にするかどうかのブール値フラグ。 IP forwarding するかどうかはインターフェースごとにも設定できる。
.TP
\fIip_local_port_range\fP (Linux 2.2 以降)
.\" Precisely: since 2.1.68
+このファイルには、 ポート番号に明示的にバインドされないソケットに割り当てられるデフォルトのローカルポートの範囲 \(em つまり「一時ポート
+(\fIephemeral ports\fP)」に使用される範囲 \(em を定める 2 つの整数が入っている。
+一時ポートは以下の場合にソケットに割り当てられる。
+.RS
+.IP * 3
+\fBbind\fP(2) の呼び出し時にソケットアドレスのポート番号に 0 が指定されている。
+.IP *
+バインドされていないストリームソケットに対して \fBlisten\fP(2) が呼び出された。
+.IP *
+バインドされていないソケットに対して \fBconnect\fP(2) が呼ばれた。
+.IP *
+バインドされていないデータグラムソケットに対して \fBsendto\fP(2) が呼ばれた。
+.RE
+.IP
+一時ポートに割り当てられるポート番号の範囲は、 \fIip_local_port_range\fP の最初の数字から始まり、 2 番目の数字で終わる。
+一時ポートの範囲を使い切った場合、 関連するシステムコールはエラーを返す (バグの節を参照)。
+.IP
.\"
-ソケットに割り当てられているデフォルトのローカルポートの範囲を定める 二つの整数を与える。割り当ては 1 番目の番号から始まり、 2
-番目の番号で終わる。 これらはマスカレードで用いられているポートと重なってはならない (その場合も取り扱われるが)。
-ファイアウォールのパケットフィルターが「利用中のローカルポート」 について何らかの仮定をしている場合には、
+\fIip_local_port_range\fP で指定するポート番号の範囲は、 マスカレードで用いられているポートと重なってはならない
+(その場合も取り扱われるが)。 ファイアウォールのパケットフィルターが「利用中のローカルポート」 について何らかの仮定をしている場合には、
番号を勝手に決めてしまうと問題が起きるかもしれない。 1 番目の番号は少なくとも 1024 より大きくすべきである。
良く使われるポートとの衝突を避けたり、ファイアウォールの問題を 回避したければ、 4096 よりも大きくするほうが良いだろう。
.TP
-\fIip_no_pmtu_disc\fP (Boolean; default: disabled; Linux 2.2 以降)
+\fIip_no_pmtu_disc\fP (ブール値; デフォルト: 無効; Linux 2.2 以降)
.\" Precisely: 2.1.15
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
をグローバルに無効にするよりは、 壊れているルータを直すほうが良い。 Path MTU Discovery を無効にするとネットワークのコストが
大きくなってしまうからである。
.TP
-\fIip_nonlocal_bind\fP (Boolean; default: disabled; Linux 2.4 以降)
+\fIip_nonlocal_bind\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
.\" Precisely: patch-2.4.0-test10
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
.TP
\fIneigh/*\fP
.\" FIXME Document the conf/*/* interfaces
+.\"
.\" FIXME Document the route/* interfaces
-.\" FIXME document them all
\fBarp\fP(7) を見よ。
.SS ioctl
.\" 2006-04-02, mtk
.SH バグ
エラーの値がまったく首尾一貫していない。
.PP
-IP 固有のインターフェースオプションを指定するための ioctl と ARP テーブルのことが記述されていない。
+一時ポートの範囲の枯渇を示すのに使われるエラーは、 一時ポートの割り当てを行えるシステムコール (\fBconnect\fP(2), \fBbind\fP(2),
+\fBlisten\fP(2), \fBsendto\fP(2)) により異なる。
.PP
-glibc のバージョンによっては \fIin_pktinfo\fP の定義を忘れているものがある。 現時点でのとりあえずの対策としては、この man
-ページにある定義をプログラム中に コピーすることである。
+.\" .PP
+.\" Some versions of glibc forget to declare
+.\" .IR in_pktinfo .
+.\" Workaround currently is to copy it into your program from this man page.
+IP 固有のインターフェースオプションを指定するための ioctl と ARP テーブルのことが記述されていない。
.PP
.\" .SH AUTHORS
.\" This man page was written by Andi Kleen.
\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
-.\" FIXME autobind INADDR REUSEADDR
RFC\ 791: 元々の IP 仕様。 RFC\ 1122: IPv4 ホストの要件。 RFC\ 1812: IPv4 ルータの要件。
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。