web-dev-qa-db-ja.com

DockerはIPtables FORWARDポリシーをDROPに変更します

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ではこの問題は発生していないようです。

何か案は?

2
KeepLearning

これは既知の動作であり、ここに記載されています: ルーター上の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に変更されても、パケット転送は引き続き機能します。

それが役に立てば幸い:)

2
MLu