Amazon Linux 2 EC2インスタンスにOpenVPNがあり、それを介してパケットを転送する必要があります。インスタンスでdocker
を起動するまで機能します。次に、FORWARDポリシーがDROPに変わり、VPNが機能しなくなります。
[root@ip-... ~]# iptables -L FORWARD
Chain FORWARD (policy ACCEPT) <<< See it's ACCEPT
target prot opt source destination
次に、Dockerを起動してもう一度確認します。
[root@ip-... ~]# systemctl start docker
[root@ip-... ~]# iptables -L
Chain FORWARD (policy DROP) <<<< Turned to DROP
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
/etc/sysconfig/iptables
でポリシーを設定しようとしましたが、役に立ちません。
これはAmazon Linux 2に固有のようですが、Ubuntuではこの問題は発生していないようです。
何か案は?
これは既知の動作であり、ここに記載されています: ルーター上のDocker
解決策は、ACCEPT
ルールをDOCKER-USER
チェーンに追加することです。
~ # iptables -I DOCKER-USER -j ACCEPT
この変更を永続的にするには、それを/etc/sysconfig/iptables
に配置します。
*filter
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ACCEPT
COMMIT
これにより、ACCEPT
ルールが事前に作成され、Dockerが起動してFORWARD
ポリシーがDENY
に変更されても、パケット転送は引き続き機能します。
それが役に立てば幸い:)