У меня есть 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
пересылка пакетов по-прежнему будет работать.
Надеюсь, это поможет :)