在 KVM 中暂时阻止虚拟机与主机之间的网络

在 KVM 中暂时阻止虚拟机与主机之间的网络

我正在尝试对正在运行的虚拟机的 MAC 地址进行一些更改并获取新的 IP 地址。目前,虚拟机通过主机的桥接接口连接到外部网络。我想暂时(10-20 秒)阻止虚拟机与主机的网络连接,但与 dhcp 相关的数据包除外。

是否可以?

答案1

当然,您可以断开虚拟机与主机网络的连接,或者只应用相关iptables规则ebtables来阻止数据包去往任何地方。

如果没有有关网络设置方式的更多详细信息,就不可能给您提供更详细的命令,但它们都是基本的管理任务。

答案2

如果您正在为虚拟机使用桥接网络,只需从桥接适配器中删除虚拟机的接口,执行更改,然后重新添加即可。如果主机是 Linux 操作系统,则需要安装 bridge-utils 包(可能已经安装了)。运行以下命令:

brctl show

要查看哪些桥接设备已启动并正在运行,请识别桥接设备名称和虚拟机网络适配器,然后将其从桥接设备中删除:

brctl delif brdev0 vmdev0 

在虚拟机上执行您需要执行的操作,完成后将其添加回桥接器:

brctl addif brdev0 vmdev0

PS:以上命令应以root身份运行。

答案3

我猜你的目的是找到一种方法来从主机端应用每个特定 VM 实例的过滤器?将过滤器应用于主机的传出接口与任何正常的iptables设置,但随后虚拟机将能够不受过滤地相互通信。

您是否尝试过应用正常iptablesebtables规则对应虚拟网络主机中是否有接口?我自己还没有尝试过,但我认为它很有可能会起作用。

如果你正在使用虚拟器要管理您的 QEMU/KVM 实例,您可以执行virsh dumpxml VMNAME并查找一行以<target dev='vnet0'/>查看相关的 vnet 接口。

相关内容