Назад | Перейти на главную страницу

Docker меняет политику IPtables FORWARD на DROP

У меня есть OpenVPN в инстансе Amazon Linux 2 EC2, и мне нужно пересылать пакеты через него. Работает пока не начну docker по экземпляру. Тогда политика FORWARD изменится на DROP, и VPN перестанет работать.

[root@ip-... ~]# iptables -L FORWARD
Chain FORWARD (policy ACCEPT)                             <<< See it's ACCEPT
target     prot opt source               destination         

Потом запускаю докер и снова проверяю:

[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.

Любые идеи?

Это известное поведение, описанное здесь: Докер на роутере

Решение состоит в том, чтобы добавить ACCEPT править в DOCKER-USER цепочка:

~ # iptables -I DOCKER-USER -j ACCEPT

Чтобы сделать это изменение постоянным, вы можете поместить его в /etc/sysconfig/iptables:

*filter
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ACCEPT
COMMIT

Это предварительно создаст ACCEPT правило и когда докер запускается и меняет FORWARD политика к DENY пересылка пакетов по-прежнему будет работать.

Надеюсь, это поможет :)