根据我的理解,如果网络流量可以到达主机而不必先通过防火墙,则存在安全风险.
我已经看到主NIC(例如eth0)被设置为虚拟机NIC,但这是否排除主机访问eth0?
想到的另一个选择是NIC的PCI直通,但是我遇到了该方法的问题.
解决方法
第二个想法是,您可以为主机和虚拟机使用不同的802.1q VLAN.我建立了一个网络,我们在三个不同的VLAN中拥有虚拟机,有时一个虚拟机可以参与多个VLAN(通过创建多个虚拟网卡并在主机上桥接多个不同的VLAN)
注意服务器hadrware ofter有一个BMC,用于对主机进行带外控制.基本上这是一台可以访问主机传感器的小型计算机,它可以看到值(温度,风扇转速),电源开/关/重置主机,就像按下按钮一样,甚至具有IP KVM功能等等,它具有网络地址本身.它通常也实现IPMI协议.它经常与LAN1共享(即像一个小型交换机,不是交换机 – 主机和BMC无法通信,但它们都与外部设备进行通信)或独立的以太网插孔,它只被路由到BMC.刀片系统每个笼子可以有一个或两个(冗余)BMC,而不是每个刀片服务器.
安全设置如下所示:
bond0是(eth0,eth1)由LACP组合而成,它在主机中具有IP地址,用于控制主机.
bond1是(eth2,eth3)由LACP组合而成.它与vlans分开,即主机有bond1.10,bond1.552虚拟子接口等.
创建了桥接:br10桥接bond1.10和VM的所有VM主机端接口,参与vlan 10,br552桥接bond1.552,所有VM主机端桥接vlan 522,依此类推.这些接口都没有IP地址,因此VM无法与主机通信.
bond2是(eth4,eth5)组合并用于通过iSCSI,CEPH访问VM磁盘映像,以同步DRBD等.它在主机中具有IP,但是根据其特殊要求连接到完全独立的存储网络.
建议将bond0和bond1物理上分开,以便VM不仅不能与主机通信,甚至还会使主机的控制网络饱和.该网络例如用于在实时迁移到其他主机的情况下传输虚拟机的存储器内容,并且没有VM可以使该过程的性能饱和.
即使您只构建一个具有一个物理接口的小型系统来托管五个虚拟机并且必须组合bond0和bond1的功能,您也可以只在物理接口上使用IP地址(可以作为默认/本地vlan访问)和参与桥接的子接口使用VM主机端适配器,全部标记.仍然虚拟机无法直接访问主机,智能L2交换机和单独的防火墙设备或L3交换机单独可以进行VLAN间路由和流量过滤.