这里描述的方法是允许虚拟机和主机通过networking相互通信。 它包括在主机中设置macvlan接口,脚本分配与绑定的物理适配器相同的IP地址。
事实上,这个脚本因为dhcp而失败了(我在这里发布了: 在主机上创buildmacvlan桥的脚本不能工作,除非它运行两次 – Unix.SE),但是这已经被整理出来了。
现在我发现端口转发到主机没有工作。 我只是通过禁用 rp_filter接口的rp_filter来解决它(从如何使iptables DNAT与macvlan -Serverfault 一起工作 )。
[更新]当为macvlan0接口使用不同的IP地址时,端口转发问题仍然存在,因此与问题无关。
不过,我现在不确定是否应继续使用与物理适配器( enp10s0 )相同的IP地址,或不同的IP地址。 信息似乎有所不同: Guest和主机上的答案使用linux-kvm和macvtap (超级用户) 无法看到彼此
解决方法是在pipe理程序上configuration一个macvlan接口,使用与真实硬件接口相同的IP地址(非常重要),并在主机上configuration路由以使用它。 (……)
而在macvlan (Serverfault) 上的一个networking适配器上的两个IP地址的另一个答案说
(…)但是,最好的做法是将相同的子网/ IP分配给虚拟接口,我build议使用单独的vlan,如192.168.2.x
那么…应该遵循哪些build议?
(注意:我当前的脚本使用预定义的MAC地址创build了macvlan0设备 – 与物理适配器地址不同)。