首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KVM客人和码头工人不能相互连接

KVM客人和码头工人不能相互连接
EN

Server Fault用户
提问于 2019-06-23 10:52:40
回答 1查看 1.5K关注 0票数 0

我有一个只有一个网络接口eno1和两个IP的盒子(x.100和x.101)。我的数据中心(Hetzner)对每个IP都需要不同的MACs。

/etc/网络/接口:

代码语言:javascript
复制
auto  br0
iface br0 inet static
  address x.x.x.100
  netmask 255.255.255.255
  gateway x.x.x.1
  bridge_ports eno1
  bridge_stp off
  bridge_fd 1
  bridge_hello 2
  bridge_maxage 12

在来宾内部,我有一个类型为"bridge“的接口与第二个IP的mac。

代码语言:javascript
复制
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether x:x:x:x:x:x brd ff:ff:ff:ff:ff:ff
inet x.x.x.101/27 brd x.x.x.x scope global dynamic ens3
   valid_lft 40300sec preferred_lft 40300sec
inet6 ...

码头正在自己的桥上运行"docker0“。

因为码头在我的主机上捣乱了iptables我跑了

代码语言:javascript
复制
iptables -A FORWARD -p all -i br0 -j ACCEPT

现在我的客人,主机和码头集装箱(在主机上)可以访问互联网。从主机,我可以平和tcp两个IP。从KVM的客人那里,我可以打开主机。

我不能在任何一个码头容器内平KVM客户,我也没有收到任何来自码头化的get服务器的答复。

如何将br0和docker0这两个桥连接起来?

iptables的编辑输出-S:

代码语言:javascript
复制
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-USER
-A INPUT -i docker0 -j ACCEPT
-A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o br-5acb826875b5 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o br-5acb826875b5 -j DOCKER
-A FORWARD -i br-5acb826875b5 ! -o br-5acb826875b5 -j ACCEPT
-A FORWARD -i br-5acb826875b5 -o br-5acb826875b5 -j ACCEPT
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i br0 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 443 -j ACCEPT
-A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT
-A DOCKER -d 172.17.0.19/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 9980 -j ACCEPT
-A DOCKER -d 172.17.0.25/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.17.0.28/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.17.0.30/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.17.0.33/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.17.0.36/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.17.0.39/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A DOCKER -d 172.17.0.44/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 22 -j ACCEPT
-A DOCKER -d 172.17.0.44/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT
-A DOCKER -d 172.18.0.8/32 ! -i br-5acb826875b5 -o br-5acb826875b5 -p tcp -m tcp --dport 9000 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-5acb826875b5 ! -o br-5acb826875b5 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-5acb826875b5 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
EN

回答 1

Server Fault用户

发布于 2019-06-23 20:21:00

在这两条规则之前:

代码语言:javascript
复制
-A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable

您需要允许从docker0到virbr0的通信量

代码语言:javascript
复制
-A FORWARD -i docker0 -o virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o docker0 -j ACCEPT
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/972551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档