WM×LI: Raspberry Pi をルーター&無線LANルーター化する
起動時の設定を cron の @reboot で読み込むのは,最終手段なので(というかダサいので),systemd を使用して iptables の設定を読み込むように修正する.
まず,今回設定したいiptablesの設定は以下の通りだ.
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j MASQUERADE |
iptables 設定の保存/再設定には,iptables-save コマンドと iptables-restore コマンドを使用する.
# iptables-save | tee /etc/iptables.settings # Generated by iptables-save v1.6.0 on Sun Oct 8 01:22:26 2017 *nat :PREROUTING ACCEPT [794:109487] :INPUT ACCEPT [183:35338] :OUTPUT ACCEPT [38:2648] :POSTROUTING ACCEPT [36:2369] -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE -A POSTROUTING -s 192.168.200.0/24 -j MASQUERADE COMMIT # Completed on Sun Oct 8 01:22:26 2017 |
保存した設定を読み込む場合は,以下のようにしてやる.
# iptables-restore /etc/iptables.settings |
このコマンドを起動時に自動で実行するための systemd で設定ファイルを作成する.
$ vim iptables-mysettings-restore.service |
[Unit] Description=IP Tables Settings Restore Before=isc-dhcp-server.service After=network.target remote-fs.target nss-lookup.target [Service] ExecStart=/sbin/iptables-restore /etc/iptables.settings KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target |
そして,systemd 用のディレクトリに移動し,有効にしてやる.
# mv iptables-mysettings-restore.service /etc/systemd/system/ |
# systemctl status iptables-mysettings-restore.service ● iptables-mysettings-restore.service - IP Tables Settings Restore Loaded: loaded (/etc/systemd/system/iptables-mysettings-restore.service; disabled; vendor preset: enabled) Active: inactive (dead) |
# systemctl enable iptables-mysettings-restore.service Created symlink /etc/systemd/system/multi-user.target.wants/iptables-mysettings-resto re.service → /etc/systemd/system/iptables-mysettings-restore.service. |
# systemctl is-enabled iptables-mysettings-restore.service enabled |
これで再起動してやれば,cron@rebootを使わずに自動起動できる.
0 件のコメント:
コメントを投稿