我在 RHEL6 上运行 KVM,并在其中创建了多个虚拟机。向主机系统命令行发出ifconfig
命令会显示 virbr0、virbr1... 和 vnet0、vnet2... 的列表,它们是来宾操作系统的 IP 地址吗? virbr# 和 vnet# 之间有什么区别?
答案1
这些是网络接口,而不是 IP 地址。网络接口可以交换任何协议的数据包,包括 IPv4 或 IPv6,在这种情况下,可以为它们提供一个或多个 IP 地址。
virbr
是桥接口。它们是虚拟的,因为没有与它们关联的网络接口卡。它们的作用就像一个真正的网桥或交换机,即在连接到它的接口(真实或其他)之间交换数据包(在第 2 层),就像真正的以太网交换机一样。
您可以为该设备分配一个 IP 地址,这基本上为主机提供了网桥连接到的子网上的 IP 地址。然后它将使用连接到网桥的接口之一的 MAC 地址。
它们的名称以 开头的事实vir
并不使它们与任何其他桥接接口有任何不同,只是这些接口是通过为接口libvirt
保留名称空间而创建的bridge
vnet
接口是其他类型的虚拟接口,称为tap
接口。它们附加到一个进程(在本例中是在模拟器中运行的进程qemu-kvm
)。进程写入该接口的内容将显示为已由主机在该接口上接收,并且主机在该接口上传输的内容可供该进程读取。qemu
通常将其用于来宾中的虚拟化网络接口。
通常,vnet
将添加到桥接接口,这意味着将虚拟机插入交换机。
答案2
病毒#是虚拟网桥(交换机)。
虚拟网#是运行虚拟机的网卡,从主机(物理机)来看。这意味着,从您的物理机上,您可以看到正在运行的虚拟机网卡。
你可以通过执行来检查“ipa”来自物理机和虚拟机的命令。