第5章KVM网络管理 虚拟机是需要连网的,否则就失去了意义。虚拟机连网有很多方法,常见的有NAT方式和桥接方式两种,每一种的意义又不一样,因此,本章重点介绍这两种方式的原理以及相应的配置。 学习目标: 掌握通过NAT方式与外界通信。 掌握通过桥接方式与外界通信。 5.1NAT网络 5.1.1NAT网络的原理 NAT即为网络地址转换,在网络里主要是解决内网访问外网的通信问题的,通常设置了NAT之后,内网可以访问外网,但是外网无法访问内网。如图51所示,虚拟机连接在宿主机上,进行NAT转换之后,才能访问物理网络,而物理网络是不能访问虚拟机的。 图51NAT连网方式 KVM默认的连网方式是NAT。当安装好KVM虚拟机后,就会在宿主机上安装一个网桥virbr0,如图52所示,此网桥会把虚拟机都连接起来,处在同一个网段,并且KVM会修改iptables规则,让连接到此网桥的虚拟机访问外网时做一个网络地址转换。 图52NAT连网的宿主机内部结构 5.1.2NAT网络的图形配置方法 NAT网络的配置有两种方法,一是通过图形的方式来进行配置。二是通过配置文件的方式来进行配置。图形配置方法直观,下面介绍一下其具体的操作步骤: (1) 打开配置网络的界面,如图53所示,选择虚拟机管理器Edit菜单下的Connection Details选项,将弹出如图54所示的对话框,选择里面的Virtual Networks选项卡来对虚拟网络进行配置。 图53选择Connection Details选项 图54选择Virtual Networks选项卡 (2) 在Virtual Networks选项卡中,先删除KVM自己创建的NAT网络default,结果如图55所示,然后再创建自己的网络。 图55删除默认的网络default (3) 在图55中,单击左下角的“+”按钮,新建一个虚拟网络,如图56所示,在Network Name的文本框中输入WYLNAT。 图56输入网络名字 (4) 在图56中,单击Forward按钮,将弹出如图57所示的对话框,在图中输入虚拟网络的网段地址192.168.200.0/24,并且启动DHCP,指定DHCP地址池的范围,单击Forward按钮,弹出如图58所示的对话框,不启用IPv6的网络。 图57配置IPv4网络 图58配置IPv6网络 (5) 在图58中,单击Forward按钮,弹出如图59所示的对话框,选择Forwarding to physical network,目标网卡为ens33,模式为NAT,也就意味着虚拟机如果选择WYLNAT网络后,将通过ens33网卡进行地址转换后再转发给外网。单击Finish按钮,完成网络的配置。 图59选择转换的物理网络 (6) 在如图59所示的对话框中,单击Finish按钮,可以看到一个新生成的虚拟网络WYLNAT,如图510所示。 (7) 虚拟机如果要使用WYLNAT网络,可以打开虚拟机的详情页面,如图511所示,选择网卡,在虚拟网络接口页面中,选择网络源WYLNAT。 (8) 启动虚拟机vm01clone,查看网卡的情况,发现eth0获取到WYLNAT网络提供的IP地址192.168.200.195/24,如图512所示。 (9) 从宿主机上可以通过虚拟网络WYLNAT访问到虚拟机vm01clone,如图513所示。 (10) 查看在虚拟机vm01clone是否可以访问外网中的其他主机,先查看一下外网 图510新生成的WYLNAT网络 图511虚拟机选择使用WYLNAT网络 图512使用WYLNAT网络启动后的网卡情况 图513宿主机可以访问虚拟机 中的一台Windows主机的IP地址,如图514所示,其IP地址为192.168.100.1,然后在虚拟机vm01clone中去ping这台Windows主机,发现是通的,如图515所示。 图514外网中的一台Windows主机 图515虚拟机可以访问外网 (11) 在宿主机上查看网络的情况,发现新建WYLNAT网络后,多了一个virbr0的网桥,并且virbr0中内置了一个网络接口virbr0nic,以及网桥上的另一个接口vnet0,此接口是连接虚拟机vm01clone的,如图516所示。 图516宿主机网卡信息 5.1.3NAT网络的字符配置方法 如果没有图形的情况下或者在进行自动化部署的时候,就需要了解字符界面下的配置,具体操作如下: (1) 查看当前的虚拟网络,如图517所示。图中显示了网络的名字(Name),状态(State)是激活的,宿主机启动时是自动(Autostart)开启网络的,此网络是永久(Persistent)有效的。 图517查看虚拟网络状态 (2) 查看WYLNAT网络中的网桥情况,如图518所示,网桥名字为virbr0,此网桥有两个接口,一个是网桥内置的接口virbr0nic,另一个是连接虚拟机vm01clone的接口vnet0。 图518查看网桥virbr0 (3) 查看路由情况,如图519所示,所有前往网段192.168.200.0/24的数据包,都从virbr0发出去。 图519查看宿主机路由表 (4) 通过配置文件新建网络,要用到配置文件,配置文件有一个模板,在/usr/share/libvirt/network/目录下,名字为default,可以复制并修改此配置文件,来创建新的网络。如图520所示,生成一个新的网络配置文件nat.xml。 图520生成新的配置文件nat.xml (5) 修改网络配置文件nat.xml,如图521所示,一是修改网络名字为WJHNAT,二是修改网桥的名字为virbr1,三是修改网桥的IP地址为192.168.201.1,四是修改此网络提供的IP地址池,范围为192.168.201.101~192.168.201.200。 图521修改网络配置文件nat.xml (6) 配置文件生成之后,就可以通过virsh netdefine命令定义此网络,如图522所示,定义完成后,并没有发现此网络,通过all选项才能看到,是因为此网络没有激活。 图522定义网络WJHNAT (7) 如图523所示,通过netstart来激活此网络,发现此时状态为active了。 图523激活网络WJHNAT (8) 图523中显示网络激活了,但是并不会随着宿主机启动而启动此网络,因此,需要通过netautostart命令来实现自动启动WJHNAT网络,如图524所示,至此WJHNAT网络配置完成了。 图524自动启动WJHNAT网络 (9) 网络WJHNAT配置完成后,如果虚拟机要使用此网络,需要在虚拟机的详情页面进行设置,如图525所示,让虚拟机使用WJHNAT网络。 图525配置虚拟机网络源 (10) 启动虚拟机后,发现虚拟机获取了WJHNAT网络的相关信息,如图526所示。 图526虚拟机获取WJHNAT的网络信息 5.2桥接 5.2.1桥接网络的原理 网桥方式连接网络就是虚拟机与宿主机接在同一个交换机上,如图527所示,此时虚拟机与宿主机以及其他的主机都是在同一个网段,相互间可以直接通信。虚拟机与宿主机之前通过网桥通信,而虚拟机与外部主机之间则通过外部的物理交换机通信。 图527网桥连网方式 默认情况下KVM是没有网桥的,因此,需要管理员对其进行配置,生成一个网桥br0,如图528所示,然后将宿主机网卡eth0、连接虚拟机的网卡vnet0、vnet1连接到网桥br0,此时,虚拟机配置的IP地址,需要与物理机的IP地址以及外部主机的IP地址在同一个网段,这样虚拟机就可以与宿主机以及外部主机之间进行通信了。 图528网桥连网的宿主机内部结构 5.2.2桥接网络的字符配置方法 (1) 在网卡的配置文件目录中,生成一个新的配置文件ifcfgbr0,如图529所示,并在其上配置好IP地址,每个选项的具体含义如表51所示。 图529网桥的配置方法 表51网桥br0配置文件选项含义 选项 含义 DEVICE 设备名称,br0为网桥的名字 NAME 连接名 ONBOOT 系统启动时启动此网桥 TYPE 设备类型,此处为网桥 BOOTPROTO 获得IP的方式,static为手工配置 IPADDR 设备IP地址 PREFIX 设备掩码 GATEWAY 设置网关地址 DNS1 设置DNS服务器1的IP地址 br0配置完成后,需要修改物理网卡的配置文件,其中BRIDGE=br0选项比较特殊,其含义是将此物理网卡桥接到br0网桥上,使得物理网卡也连接到网桥上,实现了虚拟机与宿主机之间的连接。 (2) 网桥br0与网卡ens33配置完成后,必须重启网络使其生效,如图530所示,查看网桥的信息,确认ens33是否已经连接到网桥br0上了。 图530重启网络 (3) 查看网卡ens33与网桥br0,发现现在的IP地址等信息配置在网桥br0上了,如图531所示。 图531查看IP地址 (4) 如果虚拟机vm01要使用网桥br0进行连网,必须在虚拟机vm01的详情页面中设置网络源为Bridge br0,如图532所示。 图532设置虚拟机的网络源 (5) 启动虚拟机vm01,查看网桥br0的信息,发现虚拟机vm01是采用网卡vnet0来连接网桥的,如图533所示。 图533查看网桥 (6) 虚拟机vm01启动后,可以将虚拟机vm01的IP地址设置为与宿主机同一个网段192.168.100.0/24,并测试是否可以访问到宿主机,如图534所示,发现虚拟机vm01与宿主机之间可以正常通信了。 图534测试是否可以通过桥接与宿主机通信 5.3本章实验 5.3.1实验目的 了解使用图形界面的方式来创建NAT网络。 掌握使用字符界面的方式来创建NAT网络。 掌握使用字符界面的方式来创建桥接网络。 5.3.2实验环境 在安装KVM的宿主机node1上安装虚拟机vm01与vm02。 5.3.3实验拓扑 实验拓扑图如图535所示。 图535实验拓扑图 5.3.4实验内容 如图535所示,创建NAT网络与桥接网络。 (1) 在宿主机上创建一个NAT的网络NAT1,网段地址为192.168.200.0/24,此时会生成一个新的网桥virbr1。虚拟机vm01选择此网络,将vm01重启后,查看虚拟机vm01的IP地址,并且测试是否可以访问外网,以及外网中的PC是否可以访问此虚拟机vm01。 (2) 在宿主机上创建一个网桥br0,将物理网卡ens33连接至br0。虚拟机vm02选择此网桥,将vm02重启后,查看虚拟机vm02的IP地址,并且测试是否可以访问外网以及外网是否可以访问此虚拟机vm02。 说一说: NAT网络与桥接网络的原理,它们分别适应什么场合? 想一想: 实验中vm02会自动获取到IP地址吗?如果能获取到,它的IP地址是谁提供的呢?