kvm网络模式Word文档格式.docx
《kvm网络模式Word文档格式.docx》由会员分享,可在线阅读,更多相关《kvm网络模式Word文档格式.docx(15页珍藏版)》请在冰点文库上搜索。
BOOTPROTO=static
DEFROUTE=yes
BOOTPROTO=dhcp
2、编辑修改网络设备脚本文件,修改网卡设备eth0
eth0"
NM_CONTROLLED="
no"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="
NAME="
Systemeth0"
HWADDR=44:
37:
E6:
4A:
62:
AD
NM_CONTROLLED这个属性值,根据redhat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。
NetworkManager服务不支持桥接,所以要设置为“no”。
),但实际上发现设置为“yes”没有问题。
通讯正常。
3、重启网络服务
#servicenetworkrestart
4、校验桥接接口
#brctlshow
bridgenamebridgeidSTPenabledinterfaces
br08000.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>
虚拟机启动后,验证网络接口是否正常:
#brctlshow
vnet0
NAT方式的影响
网桥方式的配置与虚拟机支持模块安装时预置的虚拟网络桥接接口virbr0没有任何关系,配置网桥方式时,可以把virbr0接口(即NAT方式里面的default虚拟网络)删除。
#virshnet-destroydefault
#virshnet-undefinedefault
#servicelibvirtdrestart
NAT模式
本文主要解释NAT方式的配置。
NAT方式原理
NAT方式是kvm安装后的默认方式。
它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
检查当前的网络设置:
#virshnet-list--all
NameStateAutostart
-----------------------------------------
defaultactiveyes
default是宿主机安装虚拟机支持模块的时候自动安装的。
检查当前的网络接口:
#ifconfig
eth0Linkencap:
EthernetHWaddr44:
AD
inet6addr:
fe80:
:
4637:
e6ff:
fe4a:
62ad/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
987782errors:
0dropped:
0overruns:
0frame:
TXpackets:
84155errors:
0carrier:
collisions:
0txqueuelen:
1000
MiBMiB)
Interrupt:
17
loLinkencap:
LocalLoopback
inet
:
1/128Scope:
Host
UPLOOPBACKRUNNINGMTU:
16436Metric:
4errors:
0
RXbytes:
240(240.0b)TXbytes:
240(240.0b)
virbr0Linkencap:
EthernetHWaddr52:
B9:
B0:
96
0errors:
2126errors:
0(0.0b)TXbytes:
100387(98.0KiB)
virbr0-nicLinkencap:
BROADCASTMULTICASTMTU:
500
0(0.0b)
其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。
几个虚拟机管理模块产生的接口关系如下图:
从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。
virbr0是一个桥接器,接收所有到网络的内容。
从下面命令可以验证:
virbr08000.525400b9b096yesvirbr0-nic
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:
#iptables-tnat-L-nv
ChainPREROUTING(policyACCEPT16924packets,2759Kbytes)
pktsbytestargetprotoptinoutsourcedestination
ChainPOSTROUTING(policyACCEPT2009packets,125Kbytes)
pktsbytestargetprotoptinoutsourcedestination
这条是关键,它配置了NAT功能。
ChainOUTPUT(policyACCEPT2011packets,125Kbytes)
#iptables-tfilter-L-nv
ChainINPUT(policyACCEPT0packets,0bytes)
174ACCEPTudpudpdpt:
53---->
由libvirt脚本自动写入
00ACCEPTtcptcpdpt:
3984ACCEPTudpudpdpt:
67---->
iptables的系统预设
2168ACCEPTicmpiptables的系统预设
160ACCEPTtcptcpdpt:
22---->
icmp-host-prohibited---->
ChainFORWARD(policyACCEPT0packets,0bytes)
00ACCEPTall--virbr0virbr0由libvirt脚本自动写入
icmp-port-unreachable---->
ChainOUTPUT(policyACCEPT181Kpackets,138Mbytes)
如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。
NAT方式的适用范围
桌面主机虚拟化。
创建步骤
#virshnet-define/usr/share/libvirt/networks/default.xml
此命令定义一个虚拟网络,default.xml的内容:
network>
name>
default<
/name>
bridgename="
virbr0"
/>
forward/>
ipnetmask
dhcp>
/dhcp>
/ip>
/network>
也可以修改xml,创建自己的虚拟网络。
标记为自动启动:
#virshnet-autostartdefault
Networkdefaultmarkedasautostarted
启动网络:
#virshnet-startdefault
Networkdefaultstarted
网络启动后可以用命令brctlshow查看和验证。
修改/etc/sysctl.conf中参数,允许ip转发:
客户机安装
客户机安装时注意,网络要选择用NAT方式。
network'
4f:
1b:
07'
sourcenetwork='
default'
Bridge方式的影响
Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。
但作为客户机,只能选择其中的一种。
客户机动态迁移
源机和目的机rhel版本必须一致
1源端建立nfs
Vi/etc/exports
/var/lib/libvirt/images*(rw,no_root_squash,sync)
2在目的端mountnfs
#mountstorage_host:
/var/lib/libvirt/images/var/lib/libvirt/images
3在目的端执行virsh
#virshmigrate--liveGuestNameDestinationURL
DestinationURL指的是目的机的主机名或ip
例如:
#virshmigrate--liveguest1-rhel6-64qemu+ssh
客户机自动启动
virshautostartTestServer
DomainTestServermarkedasautostarted
#virshautostart--disableTestServer
DomainTestServerunmarkedasautostarted
改变diskimage大小
#qemu-imgresizefilename[+|-]size[K|M|G|T]
查看vol信息
#virshvol-info/images/secondimage.img
Name:
secondimage.img
Type:
file
Capacity:
20.00GB
Allocation:
136.00KB
创建存储池
基于分区
先分区,格式化
1定义分区
#virshpool-define-asguest_images_fsfs--/dev/sdc1-"
/guest_images"
Poolguest_images_fsdefined
guest_images_fspool名称
/devsdc1分区
/guest_imagesmount点
2确认
#virshpool-list--all
guest_images_fsinactiveno
3建立mount点
#virshpool-buildguest_images_fs
Poolguest_images_fsbuilt
#ls-la/guest_images
total8
drwx------.2rootroot4096May3119:
38.
dr-xr-xr-x.25rootroot4096May3119:
38..
4启动存储池
#virshpool-startguest_images_fs
Poolguest_images_fsstarted
#virshpool-list–all
guest_images_fsactiveno
5自动启动
#virshpool-autostartguest_images_fs
Poolguest_images_fsmarkedasautostarted
guest_images_fsactiveyes
6确认存储池
#virshpool-infoguest_images_fs
guest_images_fs
UUID:
c7466869-e82a-a66c-2187-dc9d6f0877d0
State:
running
458.39GB
197.91MB
Available:
458.20GB
#mount|grep/guest_images
/dev/sdc1on/guest_imagestypeext4(rw)
total24
drwxr-xr-x.3rootroot4096May3119:
47.
drwx------.2rootroot16384May3114:
18lost+found
基于目录
1定义存储池
#virshpool-define-asguest_images_dirdir----"
Poolguest_images_dirdefined
guest_images_dirinactiveno
3创建本地目录
#virshpool-buildguest_images_dir
Poolguest_images_dirbuilt
drwx------.2rootroot4096May3002:
44.
dr-xr-xr-x.26rootroot4096May3002:
44..
#virshpool-startguest_images_dir
Poolguest_images_dirstarted
guest_images_diractiveno
#virshpool-autostartguest_images_dir
Poolguest_images_dirmarkedasautostarted
guest_images_diractiveyes
#virshpool-infoguest_images_dir
guest_images_dir
779081bf-7a82-107b-2874-a19a9c51d24c
49.22GB
12.80GB
36.41GB
创建vol
#virshvol-create-asguest_images_diskvolume18G
Volvolume1created
#virshvol-create-asguest_images_