Ubuntu 16.04をルーター化
はじめに
LANポートが2つついているFUJITSU PRIMERGY TX1310 M1でUbuntu 16.04をルーター化したメモです。
Ubuntu 14.04のルーター化 - Qiita を参考にしました。
ネットワークインターフェースの定義
- enp0s25: 外に繋がっているインタフェース
- enp2s0: 新規で切るセグメント
/etc/network/interfaces
で以下のように設定しました。
auto enp0s25
iface enp0s25 inet static
address 192.168.2.200
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 192.168.2.1
iface enp0s25 inet6 auto
auto enp2s0
iface enp2s0 inet static
address 192.168.3.1
netmask 255.255.255.0
gateway 192.168.2.1
iface enp2s0 inet6 auto
IPフォワードはすでに有効でした
/etc/sysctl.conf
では net.ipv4.ip_forward
の設定はコメントアウトされていました。
$ grep net.ipv4.ip_forward /etc/sysctl.conf
#net.ipv4.ip_forward=1
ですが設定自体は有効になっていました。
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
以前に Linux Containers - LXD - Getting started - command line の手順でsnapパッケージでLXDをインストールしていたので、そのときに自動で設定されたのかどこかで設定したのかもしれません。
IPマスカレードの設定
sudo iptables-save
で現状を確認するとlxd用の設定は -m comment --comment
で設定にコメントが
ついていたので、真似してコメント付きで設定してみました。
sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.3.0/255.255.255.0 \
-m comment --comment "Route back from outer network to enp2s0" -j MASQUERADE
実行したら sudo iptables-save
で結果を確認します。
設定を間違えていたなどで削除する場合は、追加時の -A
オプションを -D
に変えて
以下のようにします。
sudo /sbin/iptables -t nat -D POSTROUTING -s 192.168.3.0/255.255.255.0 \
-m comment --comment "Route back from outer network to enp2s0" -j MASQUERADE
iptables-persistentのインストールと設定保存
iptablesのルールを保存しておいて起動時に読み込むために iptables-persistent というパッケージが用意されているのでそれをインストールします。
sudo apt install iptables-persistent
dpkg -L iptables-persistent
でファイルリストを確認すると以下の2つのファイルが含まれていました。
- /usr/share/netfilter-persistent/plugins.d/15-ip4tables
- /usr/share/netfilter-persistent/plugins.d/25-ip6tables
中身を確認するとシェルスクリプトになっていて、それぞれ /etc/iptables/rules.v4
, /etc/iptables/rues.v6
を読み込むようになっていました。
以下のコマンドで IPv4 の設定を保存しました。
sudo iptables-save -c | sudo tee /etc/iptables/rules.v4