Ubuntuをufw + dnsmasqでルータ化
研究室で,大学NW(グローバル)と研究室内NW(ローカル)を繋ぐルータを運用している.
本日,そのルータのファイルシステムが逝ったので,再インストールした.
せっかくなので,ブログにも構築手順を書いてみる.
環境
ルータ機は,2NICのマシン(i3, 8G, SSD64G)にUbuntu Server 14.04を入れたもの.
インストール時にOpenSSHは入れたけど,それ以外は,何もしていない.
NW構成は以下の通りで,もちろんIPはダミー.
GW(ルータ)のNICは,p1p1を大学側,p3p1を研究室側をしている.
GWの下にL3スイッチがあり,そこから実験用のマシンに繋っている.
university network │ gw [192.168.0.1] ───┬──┴────────── 192.168.0.0/24 │ p1p1 [192.168.0.241] ┌─┴─┐ │ gw │ └─┬─┘ │ p3p1 [10.0.0.1] ┌─┴─┐ │ sw │ └─┬─┘ ───┴──┬────────── 10.0.0.0/24 │ laboratory network
ufwの設定
今回は,iptablesのラッパであるufwを使ってNATを行う.
- /etc/network/interfaces
auto p1p1 iface p1p1 inet static address 192.168.0.241 netmask 255.255.255.0 gateway 192.168.0.1 auto p3p1 iface p3p1 inet static address 10.0.0.1 netmask 255.255.255.0
- /etc/default/ufw
#DEFAULT_FORWARD_POLICY="DROP" DEFAULT_FORWARD_POLICY="ACCEPT"
- /etc/ufw/sysctl.conf: 8行目をコメントイン
net/ipv4/ip_forward=1
- /etc/ufw/before.rules: ファイルの先頭に追記
# NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic from p3p1 through p1p1. -A POSTROUTING -s 10.0.0.0/24 -o p1p1 -j MASQUERADE # Don't delete the 'COMMIT' line or these rules won't be processed COMMIT
$ sudo ufw disable && sudo ufw enable $ sudo ufw default allow
dnsmasqの設定
研究室内NWから名前解決ができるように,ルータにキャッシュDNSも用意する.
今回は,軽量で設定が簡単なdnsmasqを使う.
$ sudo apt-get install dnsmasq
- /etc/dnsmasq.conf
interface=p3p1 no-dhcp-interface=p1p1 no-dhcp-interface=p3p1 cache-size=500
OS起動時にdnsmasqも起動するようにしておく.
$ sudo service dnsmasq restart $ sudo update-rc.d dnsmasq defaults