在KVM主机上configurationIPTables,使虚拟隔离networking上的数据包丢失

我有两个KVM来宾,都连接到KVM虚拟隔离networking(称为virbr1 ,地址空间10.0.0.0/24 )。 为了testing路由解决scheme,我想模仿客户之间物理链路的故障。 为此,我在KVM主机上插入iptables规则:

 iptables -A OUTPUT -s 10.0.0.0/24 -j DROP 

但它并不阻止交通。 主机上的tcpdump仍然在10.0.0.0/24networking中显示数据包。

我的下一个尝试是将所有数据包丢弃到虚拟网桥:

 iptables -m physdev -A OUTPUT --physdev-in virbr1 -j DROP 

但客人继续交换数据包,并在主机上显示tcpdump -i virbr1stream量。

为什么没有被主机丢弃?

总的来说,这是testing物理链路故障的合适解决scheme吗?

要改变KVM访客的networking连接状态,最好使用适当的工具,即pipe理程序

 virsh domif-setlink domain interface-device state 

修改域的虚拟接口的链接状态。 状态的可能值是“上”“下” 。 如果指定了--config ,则仅出于兼容目的修改域的持久configuration,– --persistent--config别名。 接口设备可以是接口的目标名称或MAC地址。