【CATV線でNAT BOXを作る】
前提環境:
ケーブルモデムにはEthernetで接続し、IPが通る
CATV局(ISP)側でMAC縛りを導入しておりNICを登録する必要がある
登録しているMACとは違うNICでISPに接続する
IPアドレスはDHCPで取得する
NAT BOXのOSはFreeBSD 4.x系
便宜上、WAN側NICはdc0、LAN側NICはdc1とする
流すプロトコルはIPv4とする
LAN側NICの設定:
以降の設定は外からtelnetした方が楽なので先にdc1を設定すると吉。
インストール時にセットアップするか、/stand/sysinstall。
kernel再構築:
FreeBSDでNATを利用するにはkernel再構築が必要。
インストール時又は/stand/sysinstallからsrc/sysを展開しとく。
/sys/i386/confに移動し、GENERICを適当な名前(便宜上NATBOX)でコピー。
NATBOXし、以下の2行(*1)を適当な場所に挿入。
options IPFIREWALL #firewall
options IPDIVERT #divert sockets
そうしたらば、config NATBOXする。
でもって、指事通り../../compile/NATBOXに移動し、make depend、make。
エラー無くmakeし終わったら、make installし再起動する。
/etc/rc.confの手動設定:
以下は、/stand/sysinstallで生成できない部分なので手で編集する。
ifconfig_dc0="" #dc0はstart_if.dc0スクリプトで設定させる
firewall_enable="YES" #ipfwを使う
firewall_type="open" #ipfwのルールはrc.firewallのopenルールを使う
natd_enable="YES" #natdを使う
natd_interface="dc0" #WAN側NICにdc0を指定
natd_flags="-dynamic" #WAN側IP設定は動的である
gateway_enable="YES" #NIC間でIP転送を行う
/etc/start_if.dc0を作る:
このファイルが、実は今回の肝。とりあえず以下参照。
ifconfig dc0 lladdr 00:00:f4:5a:8c:67
dhclient dc0
MACアドレスは、当然ながらISPに登録してる番号を記述。
登録してるNICをそのまま使う場合やMACが変更できるNICの場合はrc.confでdc0="DHCP"を宣言しても構わない。