diff --git a/ja_JP.eucJP/man/man5/ipnat.5 b/ja_JP.eucJP/man/man5/ipnat.5 index b074a4e8e5..36643617bf 100644 --- a/ja_JP.eucJP/man/man5/ipnat.5 +++ b/ja_JP.eucJP/man/man5/ipnat.5 @@ -1,194 +1,194 @@ .TH IPNAT 5 .\" jpman %Id: ipnat.5,v 1.3 1998/09/22 14:16:13 horikawa Stab % .SH 名称 ipnat, ipnat.conf \- IP NAT ファイルの形式 .SH 解説 ipnat が受け付けるファイルの形式は、以下の文法で記述されるものです。 .LP .nf ipmap :: = mapblock | redir | map . map ::= mapit ifname ipmask "->" ipmask [ mapport ] . map ::= mapit ifname fromto "->" ipmask [ mapport ] . mapblock ::= "map-block" ifname ipmask "->" ipmask [ ports ] . redir ::= "rdr" ifname ipmask dport "->" ip [ "," ip ] [ ports ] options . dport ::= "port" portnum [ "-" portnum ] . ports ::= "ports" numports | "auto" . mapit ::= "map" | "bimap" . fromto ::= "from" object "to" object . ipmask ::= ip "/" bits | ip "/" mask | ip "netmask" mask . mapport ::= "portmap" tcpudp portnumber ":" portnumber . options ::= [ tcpudp ] [ rr ] . object = addr [ port-comp | port-range ] . addr = "any" | nummask | host-name [ "mask" ipaddr | "mask" hexnumber ] . port-comp = "port" compare port-num . port-range = "port" port-num range port-num . rr ::= "round-robin" . tcpudp ::= "tcp" | "udp" | "tcp/udp" . portnumber ::= number { numbers } | "auto" . ifname ::= 'A' - 'Z' { 'A' - 'Z' } numbers . numbers ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' . .fi .PP 標準的な NAT 機能では、ひとつのルールは \fBmap\fP で始まり、 その後にインタフェースの指定が続きます。そのインタフェースから パケットが出て行く際にソースアドレスが書き換えられます。 .PP 書き換えられるパケットの選択は、もとのソースアドレスとの照合のみで 行なわれます。IP アドレスの指定にはネットマスクを指定する必要が あります。 .PP もとのアドレスと置き換えられるアドレスは、IP番号/ネットマスクの組から 選ばれます。すべて 1 のネットマスクは、ホスト名が正しいことを表します。 1 が 31 個からなるネットマスク (255.255.255.254) は、ブロードキャスト アドレスとネットワークアドレスを取ったあとでホスト IP 番号を割り当てる 余裕がないため、正しくないと見なされます。 .PP TCP パケットと UDP パケットの再マップの際には、ソースポート番号の変更 も可能です。TCP, UDP パケットともども、それぞれの規則で選択が可能です。 これらは、規則のうしろに再マップ先のポート番号の範囲を、 \fBport-number:port-number\fP の形式で指定します。 .SH コマンド .\" There are found commands recognised by IP Filter's NAT code: .\" この部分、There are four commands ... の間違いではないかと send-pr 済み .\" (2000-1-19, by kuma) IP フィルタの NAT コードが認識するコマンドが 4 個あります: .TP .B map アドレスもしくはネットワークひとつを、統制なしのラウンドロビン法で 他のアドレスに写像するときに用います。 .TP .B rdr ある IP アドレスとポートの組から別の組に、パケットをリダイレクトする ときに用います。 .TP .B bimap 外部 IP アドレスと内部 IP アドレスとの間で双方向 NAT を設定するときに 用います。 .TP .B map-block IP アドレスに基づく静的な変換を設定します。アドレスを絞り込み、目的の範囲に 収まるように変換するアルゴリズムに基づくものです。 .SH 照合処理 .PP 基本的な NAT 機能とパケットのリダイレクトにおいては、プロトコルとともに 変更可能性のあるアドレスを用いて、あるパケットを変更せねばならないか どうかをチェックします。 それぞれの規則の "->" の左辺は、その規則のパケット\fI照合処理\fP 部分です。 .PP パケットの照合処理は、より複雑な比較が可能なように拡張されました。 変換されるアドレス部分においては、 IP アドレスとポート番号の比較は、\fBipf\fP で使用可能な式を使用可能です。 単純な NAT ルールは次のように記述可能です: .LP .nf map de0 10.1.0.0/16 -> 201.2.3.4/32 .fi .LP または .LP .nf map de0 from 10.1.0.0/16 to any -> 201.2.3.4/32 .fi .LP IP アドレスとポート番号のみ、比較対象にできます。 これは、すべての NAT ルールで使用可能です。 .SH 変換処理 .PP "->" の右辺は、それ以前の制約条件との照合が既に成功している場合に、その パケットに書き込まれるアドレスとポートを指定する部分です。リダイレクトの 場合 (\fBrdr\fP) が最も単純です。新しいデスティネーションアドレスを その中で指定します。 \fBmap\fP 規則に対しては、デスティネーションアドレスは、新しいアドレス の組 (ソースとデスティネーション) が一意的であると知られているアドレス になります。パケットが TCP か UDP パケットの場合、デスティネーション ポートとソースポートもこの等式に含めます。 アドレスの組が既に存在する場合、IP フィルタは、まず \fBportmap\fP で 指定した有効範囲内でポート番号を 1 つ増やします。そうしても一意的な アドレスの組が得られない場合、指定されたネットマスクの範囲内で ソースアドレスを 1 つ増やします。一意的なアドレスの組が決して得られない 場合、パケットは変換されません。\fBmap-block\fP では、新規アドレスの組、 フリーなアドレスの組、一意的なアドレスの組を検索するやりかたがより限定 されます。ここでは、ポートの有効範囲に加えて、新しいソースアドレスを 何にするかを決定するアルゴリズムを使用します。IP アドレスは決して 変更されませんし、ポート番号も割り当てられた範囲を越えるものは 変更されません。 .SH カーネルプロキシ .PP IP フィルタには、カーネルにロードされるコードの中に組み込まれた単純な プロキシがいくつか付いてきます。これにより、パケットをユーザプログラムを 通させずに 2 番目のチャネルを開けておくことが可能となります。 .SH 透過型プロキシ .PP 真の透過型プロキシ処理 (transparent proxying) は、実際の発信元と コネクションのアドレスを決定するため、\fB/dev/ipnat\fP 経由で検索を 行なうプロキシプログラムを用いて、localhost (127.0.0.1) のポートに 対応付けるリダイレクト (\fBrdr\fP) 規則を用いて行なう必要があります。 .SH 負荷分散 .PP \fBrdr\fP と組み合わせて 2 個のオプションを使用可能です。 これにより、原始的な\fIラウンドロビン\fPベースの負荷分散をサポートします。 最初のオプションは、\fBrdr\fP 用に 2 番目の終点を、次のように指定します: .LP .nf rdr le0 203.1.2.3/32 port 80 -> 203.1.2.3,203.1.2.4 port 80 tcp .fi .LP これにより、203.1.2.3 と 203.1.2.4 へ交互に接続を送ります。 -より多くのサーバに不可を分散したい場合には、次のようにします: +より多くのサーバに負荷を分散したい場合には、次のようにします: .LP .nf rdr le0 203.1.2.3/32 port 80 -> 203.1.2.3,203.1.2.4 port 80 tcp round-robin rdr le0 203.1.2.3/32 port 80 -> 203.1.2.5 port 80 tcp round-robin .fi .LP この場合、接続は 203.1.2.3 にまず向けられ、次に 203.1.2.4 に向けられ、 そして 203.1.2.5 に向けられ、最後に 203.1.2.3 に戻ります。 これを実現する際、必要に応じて自動的に、 ルールがリストの先頭から取り除かれて最後に追加されます。 これは、"ipnat -l" を使用したルール表示には影響せず、 内部的な適用順序にのみ影響します。 .SH 使用例 .PP 本セクションでは、\fBmap\fP コマンドとその変形を扱います。 .PP ppp0 インタフェース経由で、内部で使用する IP 番号がネットワーク 10 の パケットを、ISP (インターネットサービスプロバイダ) が提供してくれた 209.1.2.0 (8 ビットサブネット) に変更する場合、以下の規則を使います。 .LP .nf map ppp0 10.0.0.0/8 -> 209.1.2.0/24 .fi .PP ここで、16,000,000 個以上の IP アドレスを 254 個に絞り込もうとすること が問題なのは明らかでしょう。スコープを広げるために、TCP と UDP については ポート再マップを使うこともできます。 .LP .nf map ppp0 10.0.0.0/8 -> 209.1.2.0/24 portmap tcp/udp 1025:65000 .fi .PP これで、ネットワーク 10 で利用可能な空間のうち、不足分は ``アドレス'' 527,566 個分だけになります。これらの規則を結合させるとすると、以下のよ うな指定が必要となります。 .LP .nf map ppp0 10.0.0.0/8 -> 209.1.2.0/24 portmap tcp/udp 1025:65000 map ppp0 10.0.0.0/8 -> 209.1.2.0/24 .fi .PP これで、TCP/UDP パケットのすべてはポートマップが行なわれ、IP アドレス のみが変更されるのは ICMP など他のプロトコルだけとなります。 .SH 関連ファイル /dev/ipnat .br /etc/services .br /etc/hosts .SH 関連項目 ipnat(4), hosts(5), ipf(5), services(5), ipf(8), ipnat(8)