Ubuntu Server 10.04 + bridge-utils + dhcp3-server 設定メモ
※この記事は過去の記事「Ubuntu Server 9.04 + bridge-utils + dhcp3-server 設定メモ - 新芽の手、ほんとの手」を加筆修正したものです。こちらのがより正確な情報です。
背景
自宅のサーバを Ubuntu Server 9.04 から 10.04 へアップグレードしたので環境を入れ直し。その過程で表題の環境も入れ直した。ちなみに自分で書いた過去記事は驚くほど適当で役に立たず、結局また情報を探し回るハメになった。ので今度こそ備忘録。
参考
今回はドンピシャな記事を見つけたので、これが最も参考になりました。
Internet/ConnectionSharing - Community Help Wiki
前回は説明していなかった dhcp3-server の設定ですが、こちらが参考になります。
dhcp3-server - Community Help Wiki
前回参考にした記事も断片的に参考になる。
Ubuntuルーター構築 : sa-sa-ki.jpのblog
VirtualBox on Ubuntu でブリッジ接続のまとめ (簡単設定)
構成
WAN: eth0 IP: 192.168.1.2/24 GW: 192.168.1.1 LAN: br0 IP: 192.168.100.1/24 GW: 192.168.1.2 bridge_ports: eth1
必要なパッケージのインストール
apt-get で以下のパッケージをインストール。
sudo apt-get install bridge-utils dhcp3-server
これでそれぞれブリッジの設定、dhcpd サービスの開始が出来るようになる。
IP マスカレード(NAPT)
マスカレードを設定し、内側の LAN から外側の WAN へ通信が行えるようにする。
;; iptables でマスカレードを設定 $> sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT $> sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT $> sudo iptables -A POSTROUTING -t nat -j MASQUERADE ;; 設定した iptables を保存 $> sudo iptables-save | sudo tee /etc/iptables ;; 設定を反映 $> iptables-restore < /etc/iptables
設定が反映されているか確認する。
$> sudo iptables -t nat -L ---- Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 192.168.100.0/24 anywhere MASQUERADE all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination
sysctlファイルにあるIPv4パケット転送を有効にする。
$> vim /etc/sysctl.conf (以下の宣言をコメント解除) net.ipv4.ip_forward=1 ---- (設定が反映されているか確認) $> sysctl -p net.ipv4.ip_forward = 1
network サービス開始時、interface の up 前に iptables の設定を読み込むようスクリプトを追加
$> vi /etc/network/if-pre-up.d/iptables ---- #!/bin/sh sudo /sbin/iptables-restore < /etc/iptables ---- $> chmod 755 /etc/network/if-pre-up.d/iptables
/etc/network/interface の設定
ブリッジ br0 の記述を /etc/network/interface に追加し、Ubuntu 起動時に自動でブリッジが利用可能になるよう設定する。
$> vim /etc/network/interfaces
----
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
iface eth1 inet manual
auto br0
iface br0 inet static
address 192.168.100.1
netmask 255.255.255.0
bridge_ports eth1
----
dhcp3-server, dhcpd の設定
- dhcp3-server
$> sudo nano -w /etc/default/dhcp3-server # 以下の一行を追加 INTERFACES="br0"
- dhcpd
nano -w /etc/dhcp3/dhcpd.conf # 以下の記述を追加 ddns-update-style none; log-facility local7; subnet 192.168.100.0 netmask 255.255.255.0 { option routers 192.168.100.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.100.255; option domain-name lan; option domain-name-servers 192.168.1.1; range dynamic-bootp 192.168.100.2 192.168.100.254; default-lease-time 21600; max-lease-time 43200; }
サービスの再起動
ネットワークと dhcp3-server を再起動する。
$> /etc/init.d/networking restart $> /etc/init.d/dhcp3-server restart # 再起動後に route コマンドで状態を確認できる $> route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
ifconfig -a などを実行して ネットワークの設定を確認するのもよい。
終わり
おかげさまでまた自前ルータが動くようになりました。費用対効果は悪いですが知識量の増加と充実感は結構あります。まぁ一度設定してしまうとまた次のクリーンインストール時くらいまでやらないので忘れちゃうんですが。
結論
お金を出して有線LANルータを買いましょう。時間・電気代などを考えると総合的に得です。*1
*1:この結論は変わりなし