有一种方法,描述这里,旨在允许虚拟机和主机通过网络相互通信。它包括在主机中设置 macvlan 接口,并且脚本会分配与其绑定到的物理适配器相同的 IP 地址。
事实上,这个脚本因为 dhcp 而失败了(我在这里发布:在主机上创建 macvlan 桥接的脚本除非运行两次,否则不起作用-Unix.SE),但已经解决了。
现在我发现端口转发到主机不起作用。我刚刚通过禁用 更新:当接口使用不同的 IP 地址时,端口转发问题仍然存在rp_filter
macvlan 接口解决了这个问题(来自如何使 iptables DNAT 与 macvlan 协同工作- 服务器故障)。macvlan0
。
无论如何,我现在不确定我是否应该继续使用与物理适配器相同的 IP 地址(enp10s0
),还是使用不同的 IP 地址。信息似乎有所不同:答案在使用 linux-kvm 和 macvtap 时,客户机和主机无法互相看到对方(超级用户)说
解决方案是在虚拟机管理程序上配置一个 macvlan 接口,其 IP 地址与真实硬件接口相同(非常重要),并在主机上配置路由以使用它。(...)
而另一个答案通过 macvlan 在同一个网络适配器上有两个 IP 地址(Serverfault)说
(...) 但是,将相同的子网/IP 分配给虚拟接口并不是最佳做法,我建议使用单独的 vlan,如 192.168.2.x
那么...应该遵循哪些建议?
(注意:我当前的脚本macvlan0
在启动时使用预定义的 MAC 地址创建设备 - 与物理适配器的地址不一样)。