首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法通过macvlan网络从主机访问码头容器

无法通过macvlan网络从主机访问码头容器
EN

Stack Overflow用户
提问于 2017-05-18 13:19:27
回答 2查看 8.2K关注 0票数 9

在我的Linux网络中,我无法通过专用的macvlan网络从正在运行的主机上到达我的坞容器。从这个macvlan网络到其他所有连接都是安全的。

基本上,设置是:

代码语言:javascript
运行
复制
DOCKER1       eth0  172.0.0.1 (default)
  |           eth1  10.0.0.1  (macvlan)
  CONTAINER1        10.0.0.11 (macvlan)

DOCKER2       eth0  172.0.0.2 (default)
  |           eth1  10.0.0.2  (macvlan)
  CONTAINER2        10.0.0.12 (macvlan)
  • 主机DOCKER1无法到达CONTAINER1
  • 主机DOCKER2无法到达CONTAINER2
  • 主机DOCKER1可以达到DOCKER2
  • 主机DOCKER1可以达到CONTAINER2
  • 主机DOCKER2可以达到DOCKER1
  • 主机DOCKER2可以达到CONTAINER1
  • 所有的集装箱都能到达对方。
  • 物理网络中的所有其他设备都可以到达所有
  • 所有人都可以到达网关/因特网。

如何使主机通过macvlan网络到达自己的容器?

我需要特定的应用程序来通过这个网络进行交互,所以使用docker exec不会解决我的问题;)

EN

回答 2

Stack Overflow用户

发布于 2019-07-15 11:27:00

您可以通过执行以下操作来做到这一点:

代码语言:javascript
运行
复制
ip link add foobar link enp7s0 type macvlan mode bridge
ip addr add 192.168.9.252/32 dev foobar
ip link set foobar up
ip route add 192.168.9.228/32 dev foobar

其中:

enp7s0 -物理适配器的名称

192.168.9.252/32 -网络上真正的新IP

使用macvlan的容器的192.168.9.228/32-IP

请注意,这将无法在重新启动后存活下来,因此您需要编写脚本来运行每次重新启动,或者使用其他方法使其保持

票数 12
EN

Stack Overflow用户

发布于 2017-05-18 13:41:34

如果没有外部交换机的特殊支持,主机无法与本地macvlan设备通信。参见这是红帽文件,其中讨论了虚拟机使用macvlan设备的问题:

但是,当客户虚拟机被配置为使用类型=“直接”网络接口(如macvtap )时,尽管能够与网络上的其他来宾和其他外部主机通信,但来宾无法与自己的主机通信。 这种情况实际上不是错误--这是macvtap定义的行为。由于主机的物理以太网连接到macvtap桥的方式,从转发到物理接口的来宾到该网桥的通信量不能反弹回主机的IP堆栈。此外,发送到物理接口的主机IP堆栈的通信量不能反弹回macvtap桥,以便转发给来宾。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44048915

复制
相关文章

相似问题

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