来自主机但不来自名称空间的基于Macvlan的接口ping


10

[编辑]

生产系统当前是基于物理和ESXi的混合系统。显然,即使在预生产环境中,我们也绝对不会使用virtualbox!它仅在此处用于直接在我的桌面上快速缩小问题范围。

感谢您对meta的“保留”的解释!

[/编辑]

我的设置:

  1. 专用网络vboxnet110.0.7.0/24
  2. 1个主机,ubuntu桌面
  3. 1个VM,Ubuntu服务器(VirtualBox)

地址布局:

  1. 主机:10.7.0.1
  2. 虚拟机:10.0.7.101
  3. VM MAC名称空间:10.0.7.102

在上VM,我运行了以下命令:

ip netns add mac                        # create a new nmespace
ip link add link eth0 mac0 type macvlan # create a new macvlan interface
ip link set mac0 netns mac

在mac名称空间中,在VM内部:

ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0

这样,我们基本上可以得出以下结论:(例如Inception?)

+------------------------+
| Host: 10.0.7.1         |
|                        |
| +--------------------+ |
| | VM: 10.0.7.101     | |
| |                    | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | |                | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+

什么有效:

  • 平之间Host和VM
  • 平之间NS和NS
  • dhclient来自 NS

什么不起作用:

  • 平之间NS和VM
  • 平之间NS和Host

我开始发疯的地方:

  • host(在真实计算机上)的tcpdump 实际上显示了ARP请求和答复
  • tcpdump on NS显示发送到主机的ARP请求
  • tcpdump on VM使整个混乱工作(!)->在VM上启动tcpdump时,ping开始获取答案了!

所以,我敢打赌,您渴望它,我的问题是:我该如何使其工作?我怀疑NS内macvlan上的ARP出了点问题,但无法弄清楚到底是什么...

顺便说一句,我对mac0直接在VM上的接口(没有名称空间)进行了相同的实验,并且可以完美地工作。


4
我不明白为什么这个问题被标记为题外话。这绝对是一个与多个虚拟化环境相关的sysadmin / netadmin问题,而不是一个琐碎的问题(或者,如果是的话,StackOverflow上的问题中有90%也是不合时宜的)。如果将其标记为“离题”的人们不愿意解释原因,而不是复制粘贴一条显然不适用于此的规则,我将非常高兴。谢谢!
— jpetazzo

@jpetazzo这不是题外话,我只能假设结账的人是基于问题的组织性不佳/表示的问题(可能是由于OP并非系统/网络管理员)。另外,Server Fault的范围(不仅仅是主题)与Stack Overflow不同-您的论据使我认为您没有访问过我们的帮助中心,因为这没有任何意义。
— 克里斯·S

Answers:


13

好了,因此,对于后代来说,tcpdump使所有突然的工作正常的事实应该使我步入正轨。它在内部所做的是切换eth0到混杂模式。也就是说,eth0将产生所有的网络流量,而不仅仅是与服务器主MAC

但是,这恰好是这样macvlan工作的:它添加了一个新的辅助虚拟MAC地址,“物理”(即VM)网络适配器不知道该地址。

因此,简单的解决方法是手动: ifconfig eth0 promisc

希望对您有所帮助!


因此,我想您也必须在该VM上取消选中“ no promisc模式”?
— Nils,

确实,它是未经检查的。
— yadutaf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.