Ubuntu 16.04. 后路由上的 Iptables 无法识别 docker0 网桥

Ubuntu 16.04. 后路由上的 Iptables 无法识别 docker0 网桥

请帮助。

POSTROUTING 上的 Iptables 无法识别 docker0 网桥。可能存在其他问题,但似乎数据包没有通过 docker 网桥作为数据包来源的规则。

1)net.ipv4.ip_forward = 1

2)主机网络接口:

docker0 172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0 #docker 桥接       
eno1 zzz186 #真实接口

3)Docker容器网络接口:

eth0 172.17.0.2 Bcast:0.0.0.0 掩码:255.255.0.0

4)主机路由表:

目标网关 Genmask 标志 指标参考使用 Iface  
0.0.0.0 zzz185 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  
zzz184 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 表:

链转发(策略接受 0 个数据包,0 字节)
 pkts 字节数 目标 协议 选择加入 退出 源 目标         
    0 0 接受所有 -- 任何 docker0 任何地点 任何地点            
 3145 264K 接受全部 -- docker0 任何地点任何地点        

和 NAT 表

链 POSTROUTING(策略接受 0 个数据包,0 字节)

 pkts 字节数 目标 协议 选择加入 退出 源 目标         
  0 0 MASQUERADE 全部 -- * eno1 172.17.0.0/16 !172.17.0.0/16      
  0 0 MASQUERADE 全部 -- * eno1 172.17.0.1 0.0.0.0/0           
  0 0 MASQUERADE 全部 -- * eno1 172.17.0.2 0.0.0.0/0          
  0 0 MASQUERADE 全部 -- * eno1 172.17.0.0/16 0.0.0.0/0           
  105 6769 MASQUERADE 全部 -- * eno1 0.0.0.0/0 0.0.0.0/0

因此,docker 容器 (172.17.0.2) 可以与主机 (zzz186) 通信,但无法进一步与互联网通信。它没有从主机的默认网关 (zzz185) 获得 ping 响应。

我将很高兴接受任何想法。

相关内容