IP Network Address Transformation ( IP ネットワークアドレス変換 )の 略です。読んで字のとおり、ネットワークアドレスを変換します。 例えば private address から global network に通信する際に 外部に private address を見せないようなところに使います。 (というか私にはそれしか思いつきません。(^^;) Linux 地方の「方言」では IP masquerade とも呼ばれているようです。
割り当てられた global IP address よりもたくさんの計算機を ネットワークにつなげます。例えばGlobal address は一つしかないのに 計算機を3台つなぎ、各々の計算機から外部につなぎたい場合、 下図の様に接続し、[machine A] に IPNAT の設定を行なえば すべての計算機から外部にアクセスすることができます。 Global address は固定でもその都度変わっても構いません。 また、他の計算機上では特別な設定は必要ありません。
IPNAT を使用するためには kernel の再構築と設定ファイルを 書く必要があります。
options GATEWAY # packet forwarding # IP packet Filtering options PFIL_HOOKS # pfil(9) packet filter hooks options IPFILTER_LOG # logging of IP packets using ip-filter #options IPFILTER_DEFAULT_BLOCK # make ipf default policy block pseudo-device ipfilter # IP filter (firewall) and NAT位があればいいでしょう。ちなみに NetBSD/i386 の GENERIC には GATEWAY以外の必要なオプションは入っています。 GATEWAY に関しては boot した後に
sysctl -w net.inet.ip.forwarding=1
とすれば
変わるので「取りあえず試す」分には十分でしょう。
NAT を有効にするためには ipf(8), ipnat(8)
を使います。
いろいろな設定の例が /usr/share/examples/ipf にあるので参考にしてください。
ここでは、私が使っているものを例題として書いておきます。
まずは/etc/ipf.conf
です。素通しです。FireWall として
使うつもりはありません。
# pass all output packets pass out quick from any to any # pass all from loopback (not logged) pass in quick on lo0 from localhost to localhost # pass all input packets pass in log body from any to any
次に/etc/ipnat.conf
です。ここでは「外側」のネットワーク
インターフェースが ep0、それに与えられた IP address が 192.168.84.21、
内側のネットワークが 10.1.129.0/24 となっています。ダイアルアップで
つなぐような「外側の IP address」が決まっていないような場合には
192.168.84.21
の代わりに0/32
を使えば
うまく動きます。
map ep0 10.1.129.0/24 -> 192.168.84.21/32 proxy port ftp ftp/tcp map ep0 10.1.129.0/24 -> 192.168.84.21/32 portmap tcp/udp 10000:20000 map ep0 10.1.129.0/24 -> 192.168.84.21/32一行目がない場合、内側から外側への「passive でない」ftp(1)が通りません。 これらが起動時に自動的に設定されるようにするためには
/etc/rc.conf
で
ipfilter=YES と ipnat=YES
が必要です。
Return to Comfortable Life With NetBSD
Accesses to this page:
This page's author
tacha@tack.fukui-med.ac.jp
$Tera: ipnat.html,v 1.1 2001/08/23 08:46:28 tacha Exp $