使用ip6tables编写规则使得docker容器的内部网络可以和外部网络通信,注意,docker内部容器使用的是自定义的bms网络,驱动是overlay
时间: 2024-03-09 09:48:32 浏览: 96
要使得Docker容器的内部网络可以和外部网络通信,需要在IP6Tables中添加规则来允许流量通过overlay网络。
以下是示例规则:
```
# 允许从overlay网络中的Docker容器发送的IPv6流量
sudo ip6tables -A FORWARD -i overlay+ -o overlay+ -j ACCEPT
# 允许从overlay网络中的Docker容器接收的IPv6流量
sudo ip6tables -A FORWARD -i overlay+ -o overlay+ -m state --state RELATED,ESTABLISHED -j ACCEPT
# 允许从Docker宿主机发出的IPv6流量
sudo ip6tables -A FORWARD -i eth0 -o overlay+ -j ACCEPT
# 允许从overlay网络中的Docker容器发出的ping请求
sudo ip6tables -A INPUT -i overlay+ -p icmpv6 --icmpv6-type echo-request -j ACCEPT
# 允许从Docker宿主机接收的ping请求
sudo ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type echo-request -j ACCEPT
```
其中,overlay+是Docker overlay网络的名称。这些规则将允许从Docker容器发送和接收IPv6流量,并允许从Docker宿主机发送和接收IPv6流量。此外,还允许从overlay网络中的Docker容器发送ping请求,并允许从Docker宿主机接收ping请求。
请注意,这些规则仅作为示例。具体规则应根据你的网络配置和安全需求进行调整。
阅读全文