.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 :: = mapit ifname ipmask "->" ipmask [ mapport ] . mapit ::= "map" | "rdr" . ipmask ::= ip "/" bits | ip "/" mask | ip "netmask" mask . mapport ::= "portmap" tcpudp portnumber ":" portnumber . tcpudp ::= "tcp" | "udp" | "tcp/udp" . portnumber ::= number { numbers } . 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 使用例 .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)