Справка.
Iptables на POSTROUTING не распознают мост docker0. Может ли быть существует некоторая другая проблема, но кажется, что пакеты не проходят правила, в которых мост докера является источником пакетов.
1) сеть ipv4.ip_forward = 1
2) Сеть хоста. интерфейсы:
docker0 172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0 #docker bridge eno1 z.z.z.186 #real interface
3) Сеть контейнера докера. интерфейс:
eth0 172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
4) Таблица маршрутизации хоста:
Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 z.z.z.185 0.0.0.0 UG 0 0 0 eno1 10.10.49.0 0.0.0.0 255.255.255.0 U 0 0 0 eno2 z.z.z.184 0.0.0.0 255.255.255.248 U 0 0 0 eno1 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
5) Таблица Iptables FILTER:
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- any docker0 anywhere anywhere 3145 264K ACCEPT all -- docker0 any anywhere anywhere
и таблица NAT
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 MASQUERADE all -- * eno1 172.17.0.0/16 !172.17.0.0/16 0 0 MASQUERADE all -- * eno1 172.17.0.1 0.0.0.0/0 0 0 MASQUERADE all -- * eno1 172.17.0.2 0.0.0.0/0 0 0 MASQUERADE all -- * eno1 172.17.0.0/16 0.0.0.0/0 105 6769 MASQUERADE all -- * eno1 0.0.0.0/0 0.0.0.0/0
Таким образом, контейнер докера (172.17.0.2) может общаться с хостом (z.z.z.186), но не далее к Интернету. Это не получает ответа ping от шлюза хоста по умолчанию (z.z.z.185).
Я буду радоваться любым идеям.