PC趣味

【メモ】2023年に作成したOCIのUbuntuでiptablesが反映されない時の対処

前置き

本記事の内容は参考程度にとどめておいてください。
後半は雑。

結論から

2022年前半ごろのサーバー

2022年前半ごろに作成したインスタンスでは「iptables restart」が有効、

sudo service iptables restart

2023年3月付近のサーバー(Canonical-Ubuntu-22.04-Minimal-2023.02.14-0)

2023年3月に作成した際は「iptables restart」を行っても効かない
以下のコマンドを実行することで、iptablesファイルに記載した設定が反映される。

sudo iptables-restore < /etc/iptables/rules.v4

上記コマンドを実行すると/etc/iptables/rules.v4に記載の情報が反映される。
そのため、Docker等が行う自動設定が上書きされてしまうためこんな感じのメッセージが表示される。

Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: ~

その際は以下のコマンドでDockerの設定を復元させる必要あり。

sudo systemctl restart docker

以降は調査時のメモ

2022年前半時点

2023年前半時点ではiptablesの反映方法は以下の流れでできていた。

iptablesの設定ファイルを変更

sudo vi /etc/iptables/rules.v4

iptablesの設定ファイルを反映

sudo service iptables restart

上記の2手順で反映されていた。

2023年3月時点

2023年3月に作成したUbuntuサーバーに対して2022年前半時点のコマンドを実行しても
設定が反映されなかった。
どうやら以下のコマンドで設定が反映される様子。

iptablesの設定ファイルを反映

sudo iptables-restore < /etc/iptables/rules.v4

また、以下コマンドで現在設定されているiptablesを/etc/iptables/rules.v4に反映できる。

iptablesの設定ファイルに現在の設定を保存

sudo /etc/init.d/netfilter-persistent save
sudo /etc/init.d/netfilter-persistent reload

上記のコマンドを実行すると、Docker等で自動追加された設定等も
/etc/iptables/rules.v4に反映される。
なので、実行するとrules.v4の中身がすごいことになるため、
実行前に設定ファイルを退避させたほうがよさそう。

結論

調べると通常のUbuntuでは現在の設定でiptablesを上書きしなければ設定が反映されないらしい。
しかし、OCIで建てたUbuntuサーバーでは設定ファイルの反映をしなければならない。

なので、今回の場合だと現在の設定でiptablesを上書きはrules.v4ファイルが汚れる&不要なので実行せず、
設定ファイルの反映を実行し、Docker等の動的にルールを作成しているものについては、
対象のサービス再起動することで再度ルールを作成してもらい対処することにした。

TODO的なもの

おそらく現在の設定でiptablesを上書き設定ファイルの反映を行うのが正しい運用方法だと思うのだが、
Docker使用時にはrules.v4ファイルの中身がすごいことになるためDockerを使用する場合のiptablesについて調査が必要。

コメント

タイトルとURLをコピーしました