Używam hosta Gentoo z kontenerem Ubuntu w Dockerze. Komunikują się przez most automatycznie utworzony przez Docker. Chciałbym zrzucić cały ruch dla 192.168.0.0/16, który może wyjść z kontenera.Wyłącz dostęp do sieci LAN z kontenera docker
$sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
$sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N DOCKER
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 172.17.0.2:443
Proszę dać mi znać, jeśli muszę dostarczyć dodatkowych informacji
iptables nie ma żadnego efektu (zakładając -o docker0). --icc = false, jak rozumiem, zapobiega komunikacji między kontenery, ale nie z hostem. W każdym razie, nadal otrzymuję udane pingi od execer exec -t -i cont1/bin/bash –
Przepraszam, że poprawiłem regułę iptables – DRC
Dzięki, fajny efekt. Nie mogę pingować hosta, ale mogę pingować inne fizyczne maszyny w sieci. Zakładam, że spedycja działa –