四种网络模式(如何设置网络)
在QEMU中,主要给客户机提供了以下4种不同模式的网络配置方案:
- 基于网桥(Bridge)的虚拟网卡模式
- 基于NAT(Network Addresss Translation)的虚拟网络模式
- QEMU内置的用户模式网络
- 直接分配网络设备模式(例如,VT-d)
网桥和NAT是基于linux-bridge实现的软件虚拟网络模式,QEMU内置的用户模式网络是QEMU软件虚拟的网络模式。第四种模式是直接物理网卡分配给客户机使用,比方说有eth0和eth1两块网卡,直接把eth0这块网卡给某一客户机使用。
虚拟化网络设备(创建网卡)
在QEMU命令行中,采用前三种网络配置方案对客户机网络的配置都是用“-net
”参数来进行配置的。
QEMU命令行中基本的“-net
”参数如下:
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]
主要参数说明:
- -net nic:这个是必须的参数,表明为客户机创建客户机网卡。
- vlan=n:表示将建立一个新的网卡,并把网卡放入到编号为n的VLAN,默认为0。
- macaddr=mac:设置网卡的MAC地址,默认会根据宿主机中网卡的地址来分配;若局域网中客户机太多,建议自己设置MAC地址以防止MAC地址冲突。
- model=type:设置模拟的网卡的类型,默认为rtl8139。
- name=name:设置网卡的名字,该名称仅在QEMU monitor中可能用到,一般由系统自动分配。
- addr=addr:设置网卡在客户机中的PCI设备地址为addr。
- vectors=v:设置该网卡设备的MSI-X向量的数量为v,该选项仅对使用virtio驱动的网卡有效,设置为“vectors=0”是关闭virtio网卡的MSI-X中断方式。
如果没有配置任何的“net”参数,则默认是用“-net nic -net user
”参数,即指示QEMU使用一个QEMU内置的用户模式网络,这种模式是默认的。因此,下面两行命令是等价的:
qemu-system-x86_64 -drive file=./ubuntu14.04.img -net nic -net user
qemu-system-x86_64 -drive file=./ubuntu14.04.img
Virtio驱动(网络设备的虚拟化方式)
在为客户机选择网络设备时,一般来说优先选择半虚拟化的网络设备而不是纯软件模拟的设备。Virtio_net半虚拟化驱动,可以提高网络吞吐量和降低网络延迟,从而让客户机网络达到几乎和原生网卡差不多的性能。使用virtio_net需要两部分的支持,宿主机QEMU工具支持和客户机virtio_net驱