kvm学习---虚拟机(客户机)网络配置

本文详细介绍了在KVM中为虚拟机配置网络的方法,包括四种网络模式(基于网桥、NAT、QEMU内置、直接分配设备)、虚拟化网络设备创建、Virtio驱动的使用以及通过网桥方式配置客户机网络的详细步骤,如创建桥接、配置IP等。通过这些步骤,确保了虚拟机能够通过宿主机访问外部网络并与其他设备进行通信。
摘要由CSDN通过智能技术生成

今天学习了 在QEMU中,如何给客户机进行网络配置

1、四种网络模式(如何配置网络)

  • 基于网桥(Bridge)的虚拟网卡模式
  • 基于NAT的虚拟网络模式
  • QEMU内置的用户模式网络
  • 直接分配网络设备模式

网桥NAT是基于linux-bridge实现的软件虚拟网络模式,QEMU内置是QEMU软件虚拟的网络模式。第四种模式是直接物理网卡分配给客户机使用,比方说有eth0和eth1两块网卡,直接把eth0这块网卡给某一客户机使用。

2、虚拟化网络设备(创建网卡)

在QEMU命令行中,采用前三种网络配置方案对客户机网络的配置都是用“-net”参数来进行配置的。QEMU命令行中基本的“-net nic”参数:

-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 

3、Virtio驱动

在为客户机选择网络设备时,一般来说优先选择半虚拟化的网络设备而不是纯软件模拟的设备。Virtio_net半虚拟化驱动,可以提高网络吞吐量和降低网络延迟,从而让客户机网络达到几乎和原生网卡差不多的性能。

使用virtio_net需要两部分的支持,宿主机QEMU工具支持和客户机virtio_net驱动的支持。(现在流行的Linux发行版已经将virtio_net作为模块嵌入到系统中)

通过“qemu-system-x86_64 -net nic,model=?”命令查询当前的QEMU工具实现了哪些网卡的模拟

root@ubuntu:/home/img# qemu-system-x86_64 -net nic,model=?
warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu: Supported NIC models: ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

4、网络Tap设备

QEMU中,网桥模式是一种比较常见的网络连接模式。在这种模式下,客户机和宿主机共享一个物理网络,客户机的IP是独立的,它和宿主机是在同一个网络里面。客户机可以访问外部网络,外部网络也可以访问这台客户机 .TUN和TAP设备是Linux内核虚拟网络设备,纯软件实现。

在QEMU命令行中,创建网络tap设备“-net tap”的参数

-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]

主要参数说明
-net tap:这个参数是必须的,表示创建一个tap设备。
vlan=n:设置该设备VLAN编号,默认值为0。
name=str:设置网卡的名字。在QEMU monitor里面用到,一般由系统自动分配。
fd=h:连接到现在已经打开着的TAP接口的文件描述符,一般让QEMU会自动创建一个TAP接口。
ifname=name:表示tap设备接口名字。
script=file:表示host在启动guest时自动执行的脚本,默认为/etc/qemu-ifup;如果不需要执行脚本,则设置为“script=no”。
downscript=dfile:表示host在关闭guest时自动执行的脚本,默认值为/etc/qemu-ifdown;如果不需要执行,则设置为“downscript=no”。
helper=helper:设置启动客户机时在宿主机中运行的辅助程序,包括去建立一个TAP虚拟设备,它的默认值为/usr/local/libexec/qemu-bridge-helper,一般不用自定义,采用默认值即可。
sndbuf=nbytes:限制TAP设备的发送缓冲区大小为n字节,当需要流量进行流量控制时可以设置该选项。其默认值为“sndbuf=0”,即不限制发送缓冲区的大小。

5、使用网桥方式配置客户机网络

5.1、安装所需软件包

采用网桥模式的网络配置,需要在宿主机中,安装两个配置网络所需的软件包,`uml-utilities`和`bridge-utils`,前者是含有建立虚拟网络设备(TAP interfaces)的工具,后者是虚拟网桥桥接工具,
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值