过去,我曾使用 libvirt/KVM 和 IPtables 设置虚拟机管理程序,以便虚拟机可以通过 IPv4 上的 NAT(在 iptables 中进行转发和伪装)以及直接通过 IPv6(在 libvirt 中配置的路由网络)访问,根据本教程合集(例 1)。
因为我想切换到 CentOS 7,它现在默认带有 firewalld,所以我认为使用 firewalld 而不是 iptables 是合理的。
我可以使用firewalld作为此目的的“替代品”吗,或者libvirt是否存在限制或问题?
答案1
当 libvirtd 启动时,它会自动探测防火墙是否可用。如果它正在运行,那么 libvirtd 将使用防火墙 DBus API,而不是直接运行 iptables。因此从 POV 的角度来看,如果您启用了防火墙,libvirt 针对防火墙规则所做的一切应该继续“正常工作”。
如果您自己添加自定义防火墙规则(与 libvirtd 添加的规则分开),那么您可以使用firewall-cmd --direct
允许直接通过模式的选项 - 几乎您在命令中使用的每个选项都iptables
适用于firewall-cmd --direct