kvm网络模式.docx

上传人:b****4 文档编号:3461132 上传时间:2022-11-23 格式:DOCX 页数:15 大小:160.61KB
下载 相关 举报
kvm网络模式.docx_第1页
第1页 / 共15页
kvm网络模式.docx_第2页
第2页 / 共15页
kvm网络模式.docx_第3页
第3页 / 共15页
kvm网络模式.docx_第4页
第4页 / 共15页
kvm网络模式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

kvm网络模式.docx

《kvm网络模式.docx》由会员分享,可在线阅读,更多相关《kvm网络模式.docx(15页珍藏版)》请在冰豆网上搜索。

kvm网络模式.docx

kvm网络模式

摘要:

KVM虚拟机网络配置的两种方式:

NAT方式和Bridge方式。

Bridge方式的配置原理和步骤。

Bridge方式适用于服务器主机的虚拟化。

Bridge模式

问题

客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。

事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。

KVM客户机网络连接有两种方式:

∙用户网络(UserNetworking):

让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。

NAT方式。

∙虚拟网桥(VirtualBridge):

这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。

Bridge方式。

本文主要解释Bridge方式的配置。

Bridge方式原理

Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。

可以使虚拟机成为网络中具有独立IP的主机。

桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。

网桥多用作高级设置,特别是主机多个网络接口的情况。

如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。

Bridge方式的适用围

服务器主机虚拟化。

网桥方式配置步骤

1、编辑修改网络设备脚本文件,增加网桥设备br0

vi/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=static

IPADDR=10.0.112.39

NETMASK=255.255.255.0

GATEWAY=10.0.112.1

DEFROUTE=yes

上述配置将虚拟网卡配置在了10.0.112.*网段。

如果不需要静态地址,可以把配置地址的相关项屏蔽。

如:

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=dhcp

2、编辑修改网络设备脚本文件,修改网卡设备eth0

DEVICE="eth0"

NM_CONTROLLED="no"

ONBOOT="yes"

TYPE=Ethernet

BOOTPROTO=none

BRIDGE="br0"

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,增加如下容

54:

00:

da:

c3:

dc'/>

虚拟机启动后,验证网络接口是否正常:

#brctlshow

bridgenamebridgeidSTPenabledinterfaces

br08000.4437e64a62adnoeth0

vnet0

NAT方式的影响

网桥方式的配置与虚拟机支持模块安装时预置的虚拟网络桥接接口virbr0没有任何关系,配置网桥方式时,可以把virbr0接口(即NAT方式里面的default虚拟网络)删除。

#virshnet-destroydefault

#virshnet-undefinedefault

#servicelibvirtdrestart

NAT模式

问题

客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。

事实上,如果要在安装时使用网络通信,需要提前设置客户机的网络连接。

KVM客户机网络连接有两种方式:

∙用户网络(UserNetworking):

让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。

NAT方式。

∙虚拟网桥(VirtualBridge):

这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。

Bridge方式。

本文主要解释NAT方式的配置。

NAT方式原理

NAT方式是kvm安装后的默认方式。

它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。

检查当前的网络设置:

#virshnet-list--all

NameStateAutostart

-----------------------------------------

defaultactiveyes

default是宿主机安装虚拟机支持模块的时候自动安装的。

检查当前的网络接口:

#ifconfig

eth0Linkencap:

EthernetHWaddr44:

37:

E6:

4A:

62:

AD

inet6addr:

fe80:

:

4637:

e6ff:

fe4a:

62ad/64Scope:

Link

UPBROADCASTRUNNINGMULTICASTMTU:

1500Metric:

1

RXpackets:

987782errors:

0dropped:

0overruns:

0frame:

0

TXpackets:

84155errors:

0dropped:

0overruns:

0carrier:

0

collisions:

0txqueuelen:

1000

RXbytes:

109919111(104.8MiB)TXbytes:

12695454(12.1MiB)

Interrupt:

17

loLinkencap:

LocalLoopback

inetaddr:

127.0.0.1Mask:

255.0.0.0

inet6addr:

:

:

1/128Scope:

Host

UPLOOPBACKRUNNINGMTU:

16436Metric:

1

RXpackets:

4errors:

0dropped:

0overruns:

0frame:

0

TXpackets:

4errors:

0dropped:

0overruns:

0carrier:

0

collisions:

0txqueuelen:

0

RXbytes:

240(240.0b)TXbytes:

240(240.0b)

virbr0Linkencap:

EthernetHWaddr52:

54:

00:

B9:

B0:

96

inetaddr:

192.168.122.1Bcast:

192.168.122.255Mask:

255.255.255.0

UPBROADCASTRUNNINGMULTICASTMTU:

1500Metric:

1

RXpackets:

0errors:

0dropped:

0overruns:

0frame:

0

TXpackets:

2126errors:

0dropped:

0overruns:

0carrier:

0

collisions:

0txqueuelen:

0

RXbytes:

0(0.0b)TXbytes:

100387(98.0KiB)

virbr0-nicLinkencap:

EthernetHWaddr52:

54:

00:

B9:

B0:

96

BROADCASTMULTICASTMTU:

1500Metric:

1

RXpackets:

0errors:

0dropped:

0overruns:

0frame:

0

TXpackets:

0errors:

0dropped:

0overruns:

0carrier:

0

collisions:

0txqueuelen:

500

RXbytes:

0(0.0b)TXbytes:

0(0.0b)

其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把容分发到各虚拟机。

几个虚拟机管理模块产生的接口关系如下图:

从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。

virbr0是一个桥接器,接收所有到网络192.168.122.*的容。

从下面命令可以验证:

#brctlshow

bridgenamebridgeidSTPenabledinterfaces

virbr08000.525400b9b096yesvirbr0-nic

#route

KernelIProutingtable

DestinationGatewayGenmaskFlagsMetricRefUseIface

192.168.122.0*255.255.255.0U000virbr0

同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:

#iptables-tnat-L-nv

ChainPREROUTING(policyACCEPT16924packets,2759Kbytes)

pktsbytestargetprotoptinoutsourcedestination

ChainPOSTROUTING(policyACCEPT2009packets,125Kbytes)

pktsbytestargetprotoptinoutsourcedestination

42131847MASQUERADEall--**192.168.122.0/24!

192.168.122.0/24----------->这条是关键,它配置了NAT功能。

ChainOUTPUT(policyACCEPT2011packets,125Kbytes)

pktsbytestargetprotoptinoutsourcedestination

#iptables-tfilter-L-nv

ChainINPUT(policyACCEPT0packets,0bytes)

pktsbytestargetprotoptinoutsourcedestination

174ACCEPTudp--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)

pktsbytestargetprotoptinoutsourcedestination

37263485KACCEPTall--*virbr00.0.0.0/0192.168.122.0/24stateRELATED,ESTABLISHED---->由libvirt脚本自动写入

3491399KACCEPTall--virbr0*192.168.122.0/240.0.0.0/0---->由libvirt脚本自动写入

00ACCEPTall--virbr0virbr00.0.0.0/00.0.0.0/0---->由libvirt脚本自动写入

00REJECTall--*virbr00.0.0.0/00.0.0.0/0reject-withicmp-port-unreachable---->由libvirt脚本自动写入

00REJECTall--virbr0*0.0.0.0/00.0.0.0/0reject-withicmp-port-unreachable---->由libvirt脚本自动写入

00REJECTall--**0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited---->iptables的系统预设

ChainOUTPUT(policyACCEPT181Kpackets,138Mbytes)

pktsbytestargetprotoptinoutsourcedestination

如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。

NAT方式的适用围

桌面主机虚拟化。

创建步骤

#virshnet-define/usr/share/libvirt/networks/default.xml

此命令定义一个虚拟网络,default.xml的容:

default

也可以修改xml,创建自己的虚拟网络。

标记为自动启动:

#virshnet-autostartdefault

Networkdefaultmarkedasautostarted

启动网络:

#virshnet-startdefault

Networkdefaultstarted

网络启动后可以用命令brctlshow查看和验证。

修改/etc/sysctl.conf中参数,允许ip转发:

net.ipv4.ip_forward=1

客户机安装

客户机安装时注意,网络要选择用NAT方式。

图形化的方式:

文本方式:

编辑修改虚拟机配置文件/etc/libvirt/qemu/v1.xml,增加如下容

54:

00:

4f:

1b:

07'/>

虚拟机启动后,验证网络接口是否正常:

#brctlshow

bridgenamebridgeidSTPenabledinterfaces

virbr08000.525400b9b096yesvirbr0-nic

vnet0

Bridge方式的影响

Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。

但作为客户机,只能选择其中的一种。

 

客户机动态迁移

源机和目的机rhel版本必须一致

1源端建立nfs

Vi/etc/exports

/var/lib/libvirt/images*.example.(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:

//host2.example./system

客户机自动启动

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

NameStateAutostart

-----------------------------------------

defaultactiveyes

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..

#virshpool-list--all

NameStateAutostart

-----------------------------------------

defaultactiveyes

guest_images_fsinactiveno

4启动存储池

#virshpool-startguest_images_fs

Poolguest_images_fsstarted

#virshpool-list–all

NameStateAutostart

-----------------------------------------

defaultactiveyes

guest_images_fsactiveno

5自动启动

#virshpool-autostartguest_images_fs

Poolguest_images_fsmarkedasautostarted

#virshpool-list--all

NameStateAutostart

-----------------------------------------

defaultactiveyes

guest_images_fsactiveyes

6确认存储池

#virshpool-infoguest_images_fs

Name:

guest_images_fs

UUID:

c7466869-e82a-a66c-2187-dc9d6f0877d0

State:

running

Capacity:

458.39GB

Allocation:

197.91MB

Available:

458.20GB

#mount|grep/guest_images

/dev/sdc1on/guest_imagestypeext4(rw)

#ls-la/guest_images

total24

drwxr-xr-x.3rootroot4096May3119:

47.

dr-xr-xr-x.25rootroot4096May3119:

38..

drwx------.2rootroot16384May3114:

18lost+found

 

基于目录

1定义存储池

#virshpool-define-asguest_images_dirdir----"/guest_images"

Poolguest_images_dirdefined

2确认

#virshpool-list--all

NameStateAutostart

-----------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1