Ubuntu Desktop 8.10 をルータ化
目的は達成できたけど、例によって未完*1の情報。いつかまとめる…
以下のようなネットワーク構成を想定。
インターネット | | (PPP) ブロードバンドルータ | (DHCP) | | (xxx.xxx.xxx.xxx @ WAN) LANルータ (192.168.1.1 @ LAN) | | | | (DHCP) | | | +->他マシン(192.168.1.xxx) | +Ubuntu (192.168.1.2 @ eth0) | (192.168.0.1 @ eth1) | (DHCP) | +->Ubuntu にぶら下がる他マシン(192.168.0.xxx)
上記でUbuntu にぶら下がるマシンが
- インターネットに接続できる
- IPアドレスが自動で割り当てられる
ことを想定して、以下を実施。
ちなみに Ubuntu 機は NAS を2つ持ってます。
eth1 -> WAN 側
eth0 -> LAN 側
として設定。
iptables を設定
iptables設定をクリア
$ sudo iptables -F $ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
これで全部許可されてるからOK、と思ったらダメらしい。
Ubuntu下のネットワーク(192.168.0.xxx) から WAN側のネットワーク (192.168.1.xxx) にパケットを転送できるよう設定。
$ sudo vi /etc/sysctl.conf ... 以下のコメントアウトを解除 #net.ipv4.conf.default.forwarding=1 ↓ net.ipv4.conf.default.forwarding=1 ... $ sudo /sbin/sysctl $ sudo /etc/init.d/networking restart
iptablesも通るように設定。これやらんでも良いの?よくわからなかった。
$ sudo iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/24 -j ACCEPT $ sudo iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
IPマスカレードは必要な気がしたので実行。
結果を確認。
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all -- 192.168.0.0/24 anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination
とりあえずインターネット共有はコレでOK、のはず。
DHCPサーバを構築
先ずはDHCPサーバをインストール
$ sudo apt-get install dhcp3-server
/etc/dhcp3/dhcpd.conf を編集。PXEサーバを目的としています。
ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.1.1; option domain-name "ubuntu"; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.0.2 192.168.0.3; default-lease-time 21600; max-lease-time 43200; filename "pxelinux.0"; }
で、DHCPサーバを起動
$ sudo /etc/init.d/dhcp3-server start
あっさり終了。
でもここに至るまでが長かった…方針決めるのに半日かかった。
*1:ネットワーク解放し過ぎでセキュリティ的に NG。