生产系统目前是混合物理和基于ESXi的系统.我们显然永远不会在预生产环境中使用virtualbox!这里使用它只是为了直接在桌面上快速缩小问题范围.
感谢meta的“暂停”解释!
[/编辑]
我的设置:
>专用网络vboxnet1 10.0.7.0/24
> 1台主机,ubuntu桌面
> 1个VM,ubuntu服务器(VirtualBox)
贴图布局:
>主持人:10.0.7.1
> VM:10.0.7.101
> VM MAC NAMESPACE: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 | | | | | | | | | | | +----------------+ | | | +--------------------+ | +------------------------+
什么有效:
>在主机和VM之间进行Ping
> NS和NS之间的Ping
>来自NS的dhclient
什么行不通:
>在NS和VM之间ping
>在NS和主机之间ping
我开始疯狂的地方:
> tcpdump on host(真机)实际显示ARP请求和回复
> NS上的tcpdump显示发送到主机的ARP请求
> VM上的tcpdump使整个混乱工作(!) – >在VM上启动tcpdump时ping开始获得答案?!?
所以,我敢打赌你渴望它,我的问题是:如何让它发挥作用?我怀疑在NS内部的macvlan上ARP有什么问题,但无法弄清楚到底是什么……
顺便说一下,我直接在VM(没有名称空间)上使用mac0接口进行了相同的表达,并且它运行良好.
解决方法
但是,这正是macvlan的工作原理:它添加了一个新的辅助虚拟MAC地址,即“物理”(即VM)网络适配器不知道.
所以简单的解决方法是手动:ifconfig eth0 promisc
我希望它有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。