最新更新日 '99.03.02.
+---------+ ------------------|Provider |--------------- InterNet +----+----+ | +---+---+ +-----------+Router | | +-------+ | NIC1:xl0 203.137.154.151 +----+----+ 外部セグメント ==| FreeBSD | ======================== +----+----+ 内部セグメント | NIC2:ed1 192.168.1.1 | +------+ +---------+ HUB | +-+--+-+ +-----------+ +------------+ +----+----+ +---+---+ | FreeBSD | | Win95 | +---------+ +-------+ 192.168.1.10 192.168.1.11 HostName:shiro HostName:bossこんな感じの図でしょうか。プロバイダと専用線接続を想定しています。外部セグメントにはグローバル IP 分のサーバを構築できますが、今回は、nat するマシンに全て載せると仮定します。
nat するマシン名は、pochi といいます。 NIC が二枚刺してあります。ed1 の方はローカル IP を利用します。xl0 は 203.137.154.151 でグローバル IP を利用します。
と、言う事はつまり、192.168.1.10 から出て行くパケットは、192.168.1.1 を通って、203.137.154.151 のパケットとして外に出て行きます。
戻って来たパケットはその逆で、203.137.154.151 から、192.168.1.1 に変換されて元のマシンの 192.168.1.10 にに届きます。
では、早速設定してみましょう。まず第一になんと言ってもカーネルに認識させる事です。今回、僕は面倒したくないので、PCI のカード二枚ざしです。
--- config ----- device xl0 device ed0 ---------------- --- dmesg ------ Feb 25 20:05:15 pochi /kernel: ed1これでカーネルの準備は整いました。さささ、今度は、NIC に IP を付けて上げる事にしましょう。/usr/local/etc/rc.d/alias_ed1.sh とか言うのを作って、rev 0 int a irq 9 on pci0:9:0 Feb 25 20:05:15 pochi /kernel: CI Ethernet (RealTek 8029)> rev 0 int a irq 9 on pci0:9:0 Feb 25 20:05:15 pochi /kernel: ed1: address 00:00:b4:56:30:55, type NE2000 (16 bit) Feb 25 20:05:15 pochi /kernel: ed1: address 00:00:b4:56:30:55, type NE2000 (16 bit) Feb 25 20:05:15 pochi /kernel: xl0 <3Com 3c905 Fast Etherlink XL 10/100BaseTX> rev 0 int a irq 9 on pci0 :10:0 Feb 25 20:05:15 pochi /kernel: xl0 <3Com 3c905 Fast Etherlink XL 10/100BaseTX> rev 0 int a irq 9 on pci0 :10:0 Feb 25 20:05:15 pochi /kernel: xl0: Ethernet address: 00:60:08:42:be:ab Feb 25 20:05:15 pochi /kernel: xl0: Ethernet address: 00:60:08:42:be:ab Feb 25 20:05:15 pochi /kernel: xl0: autoneg complete, link status good (half-duplex, 100Mbps) Feb 25 20:05:15 pochi /kernel: xl0: autoneg complete, link status good (half-duplex, 100Mbps) ----------------
---------------- #!/bin/csh ifconfig ed1 inet 192.168.1.1 netmask 255.255.255.0 alias route add -host 192.168.1.1 127.0.0.1 ----------------とかしても全然問題無いですし、/etc/rc.conf に
---------------- network_interfaces="xl0 ed1 lo0" # List of network interfaces (lo0 is loopback). ifconfig_xl0="inet 203.137.154.151 netmask 255.255.255.0" ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0" ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. ----------------と、追加しても全然これっぽっちも問題ないです。はい。これでネットワークカードに付いての設定はおしまい。後は、ifconfig -a とかして、二枚の NIC に IP が付いている事を確認しましょう。
続いて、nat 部分の設定の設定に移ります。以下の行が必要になります。
---------------- firewall_enable="YES" # Set to YES to enable firewall functionality firewall_type="open" # Firewall type (see /etc/rc.firewall) gateway_enable="YES" natd_enable="YES" # Enable natd if firewall_enable. natd_interface="xl0" # Public interface to use with natd if natd_enable. natd_flags="" # Additional flags for natd. ----------------これだけの設定を /etc/rc.conf に追加します。上の NIC の設定と合わせるとずいぶんな量ですね。この中で注意する点ですが、natd_interface="xl0" です。これは、外部と接続する方の NIC を指定してあげます。firewall_type="open" はま、これで良いでしょ(^^;;。
と、まぁ、こんな感じに設定したらマシンをリブートしてみましょう。そして、いよいよ動作検証です。内部セグメントに繋げるマシンのデェフォルトゲートウェイを 192.168.1.1 に設定します。 Win95 では Network の設定にあります。FreeBSD の場合は、defaultrouter="192.168.1.1" と指定してあげます。これで、まず ping を打ちます。ping 192.168.1.1 して返って来るか? 外部の IP に対し、ping を打って返って来るか?はたまた Netscape を見てちゃんと見えるか?
ね?ちゃんと見えたでしょぉ?ふふふ(^^)。簡単なのだ。良かったよぉぉ。ネットワークが見える様になると楽しいですね。ふふふ(^^)。そしてあなたは自分でルータを作ってしまったと言う事になります。ラッキー;-)。
後は、pochi に bind-8.1.2 とかを立ち上げればもうばっちり。外部用 DNS と、内部用 DNS を立ち上げればもう、OK です。ふふふ;-)。
火の壁設定とかに付いてはここでは書きません。多分今後も書く事は無いと思います。他の web を見るか自分で頑張ってください。