docker因iptables規則清空而網絡故障解決一例

環境:html

刪除了docker的默認網橋docker0,自建了一個br0網橋(具體參考 https://blog.51cto.com/11804445/2048022 ),依次啓動了三個容器,分別是server1,server2,server3,當建立了前兩個容器後經過pipework分配了ip,分別是docker


server1 -> 192.168.1.2bash

server2 -> 192.168.1.3ide


這時候ping是通暢的,再去建立了server3並設置了ip 192.168.1.100,三個容器忽然不能訪問百度了...server


一臉尷尬...htm



解決:blog

參考 https://www.cnblogs.com/CloudMan6/p/7107407.html?utm_source=itdadao&utm_medium=referralip


在另一臺機器上面執行get

# iptables -a nat -S

獲得了it

-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 192.168.1.0/24 ! -o br0 -j MASQUERADE
-A DOCKER -i br0 -j RETURN


發現四條防火牆的轉發規則...

# iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
# iptables -t nat -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -o br0 -j MASQUERADE
# iptables -t nat -A DOCKER -i br0 -j RETURN


挨個執行一遍,回到容器,一切恢復正常...


之後別亂清空防火牆規則了...

相關文章
相關標籤/搜索