您好,欢迎访问三七文档
摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。Bridge模式问题客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。KVM客户机网络连接有两种方式:用户网络(UserNetworking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。虚拟网桥(VirtualBridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。本文主要解释Bridge方式的配置。Bridge方式原理Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。Bridge方式的适用范围服务器主机虚拟化。网桥方式配置步骤1、编辑修改网络设备脚本文件,增加网桥设备br0vi/etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0ONBOOT=yesTYPE=BridgeBOOTPROTO=staticIPADDR=10.0.112.39NETMASK=255.255.255.0GATEWAY=10.0.112.1DEFROUTE=yes上述配置将虚拟网卡配置在了10.0.112.*网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:DEVICE=br0ONBOOT=yesTYPE=BridgeBOOTPROTO=dhcp2、编辑修改网络设备脚本文件,修改网卡设备eth0DEVICE=eth0NM_CONTROLLED=noONBOOT=yesTYPE=EthernetBOOTPROTO=noneBRIDGE=br0NAME=Systemeth0HWADDR=44:37:E6:4A:62:ADNM_CONTROLLED这个属性值,根据redhat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。3、重启网络服务#servicenetworkrestart4、校验桥接接口#brctlshowbridgenamebridgeidSTPenabledinterfacesbr08000.4437e64a62adnoeth0客户机配置客户机安装时注意,网络要选择用br0桥接方式。图形化的方式:文本方式:编辑修改虚拟机配置文件/etc/libvirt/qemu/v1.xml,增加如下内容interfacetype='bridge'macaddress='52:54:00:da:c3:dc'/sourcebridge='br0'/modeltype='virtio'/addresstype='pci'domain='0x0000'bus='0x00'slot='0x03'function='0x0'//interface虚拟机启动后,验证网络接口是否正常:#brctlshowbridgenamebridgeidSTPenabledinterfacesbr08000.4437e64a62adnoeth0vnet0NAT方式的影响网桥方式的配置与虚拟机支持模块安装时预置的虚拟网络桥接接口virbr0没有任何关系,配置网桥方式时,可以把virbr0接口(即NAT方式里面的default虚拟网络)删除。#virshnet-destroydefault#virshnet-undefinedefault#servicelibvirtdrestartNAT模式问题客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。KVM客户机网络连接有两种方式:用户网络(UserNetworking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式。虚拟网桥(VirtualBridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。Bridge方式。本文主要解释NAT方式的配置。NAT方式原理NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。检查当前的网络设置:#virshnet-list--allNameStateAutostart-----------------------------------------defaultactiveyesdefault是宿主机安装虚拟机支持模块的时候自动安装的。检查当前的网络接口:#ifconfigeth0Linkencap:EthernetHWaddr44:37:E6:4A:62:ADinet6addr:fe80::4637:e6ff:fe4a:62ad/64Scope:LinkUPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:987782errors:0dropped:0overruns:0frame:0TXpackets:84155errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:1000RXbytes:109919111(104.8MiB)TXbytes:12695454(12.1MiB)Interrupt:17loLinkencap:LocalLoopbackinetaddr:127.0.0.1Mask:255.0.0.0inet6addr:::1/128Scope:HostUPLOOPBACKRUNNINGMTU:16436Metric:1RXpackets:4errors:0dropped:0overruns:0frame:0TXpackets:4errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:240(240.0b)TXbytes:240(240.0b)virbr0Linkencap:EthernetHWaddr52:54:00:B9:B0:96inetaddr:192.168.122.1Bcast:192.168.122.255Mask:255.255.255.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:2126errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:0RXbytes:0(0.0b)TXbytes:100387(98.0KiB)virbr0-nicLinkencap:EthernetHWaddr52:54:00:B9:B0:96BROADCASTMULTICASTMTU:1500Metric:1RXpackets:0errors:0dropped:0overruns:0frame:0TXpackets:0errors:0dropped:0overruns:0carrier:0collisions:0txqueuelen:500RXbytes:0(0.0b)TXbytes:0(0.0b)其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。几个虚拟机管理模块产生的接口关系如下图:从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证:#brctlshowbridgenamebridgeidSTPenabledinterfacesvirbr08000.525400b9b096yesvirbr0-nic#routeKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface192.168.122.0*255.255.255.0U000virbr0同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:#iptables-tnat-L-nvChainPREROUTING(policyACCEPT16924packets,2759Kbytes)pktsbytestargetprotoptinoutsourcedestinationChainPOSTROUTING(policyACCEPT2009packets,125Kbytes)pktsbytestargetprotoptinoutsourcedestination42131847MASQUERADEall--**192.168.122.0/24!192.168.122.0/24-----------这条是关键,它配置了NAT功能。ChainOUTPUT(policyACCEPT2011packets,125Kbytes)pktsbytestargetprotoptinoutsourcedestination#iptables-tfilter-L-nvChainINPUT(policyACCEPT0packets,0bytes)pktsbytestargetprotoptinoutsourcedestination174ACCEPTudp--virbr0*0.0.0.0/00.0.0.0/0udpdpt:53----由libvirt脚本自动写入00ACCEPTtcp--virbr0*0.0.0.0/00.0.0.0/0tcpdpt:53----由libvirt脚本自动写入3984ACCEPTudp--virbr0*0.0.0.0/00.0.0.0/0udpdpt:67----由libvirt脚本自动写入00ACCEPTtcp--virbr0*0.0.0.0/00.0.0.0/0tcpdpt:67----由libvirt脚本自动写入178K195MACCEPTall--**0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHED----iptables的系统预设2168ACCEPTicmp--**0.0.0.0/00.0.0.0/0----iptables的系统预设1148216KACCEPTall--lo*0.0.0.0/00.0.0.0/0----iptables的系统预设160ACCEPTtcp--**0.0.0.0/00.0.0.0/0stateNEWtcpdpt:22----iptables的系统预设165642721KREJECTall--**0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited----iptables的系统预设ChainFORWARD(policyACCEPT0packets,0bytes)pktsbytestargetprotoptinoutsourcedestination37263485KAC
本文标题:kvm网络模式
链接地址:https://www.777doc.com/doc-7024215 .html