kvm虚拟机的桥接网络配置

   

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

002UASMrzy7605pjKJv15&690.jpg

-host-only:虚拟机使用的是当前计算机中的虚拟网卡,如VMWare Network Adaptor(这是VMWare的),仅主机模式,意思就是将所有的虚拟机组成一个局域网,不能和外界通信,不能访问Internet,其他主机也不能访问虚拟主机,安全性高,只能与本台真实机通信。

-NAT方式:

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

-Bridge方式:

- 虚拟网桥(Virtual Bridge):这网络模式下客户机与宿主机处于同一网络环境,类似于一台真实的宿主机,直接访问网络资源,设置好后客户机与互联网,客户机与主机之间的通信都很容易。

环境配置说明

在物理机上,利用KVM安装虚拟机,实现网桥通信

物理机:Centos 7 操作系统,CPU支持虚拟化,自带KVM,0.10.2版本的virsh 虚拟机:Centos 7.0 操作系统 物理机IP地址为 10.6.2.136,虚拟机IP地址为10.6.2.137,网关地址为10.6.2.254

物理机配置:

1. 在物理机上创建文件

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

TYPE=Bridge BOOTPROTO=static IPADDR=10.0.2.136 //设置为物理机所占有的ip地址 NETMASK=255.255.255.0 GATEWAY=10.0.2.254 DELAY=0 DNS1=202.201.133.30 DEVICE=br0 ONBOOT=yes

2. 编辑修改网络设备脚本文件,修改网卡设备eno1(entos7上默认网卡),可以先使用ifconfig或者ip a查看默认网卡,然后到 /etc/sysconfig/network-scripts/ 中修改对应文件。

#vi /etc/sysconfig/network-scripts/ifcfg-eno1

HWADDR=24:37:E7:29:85:09 TYPE=Ethernet BOOTPROTO=none #IPADDR=*.*.*.* //不需要再手动分配地址 #GATEWAY=*.*.*.* #DNS1=*.*.*.* NM_CONTROLLED=no DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eno1 UUID=c0b648e4-9203-490a-b12e-fd41a5d374ea ONBOOT=yes //此处记得设置为yes BRIDGE=br0 //绑定网桥

主要是把IPADDR,GATEWAY,DNS,NETMASK注释掉,并加上 BRIDGE=br0,将eno1绑定到网桥接口br0上。

3. 重启网络服务

systemctl restart network.service

4. 校验桥接网口

[root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.4437e6608506 no eno1 vnet0

 

虚拟机配置:

1. 用libvirt命令修改虚拟机xml配置文件 (t1是我创建的一台虚机),将虚拟机网络模式改为桥接。虚拟机先关机。

virsh edit t1

...... ...... <interface type=\'bridge\'> <!--虚拟机网络连接方式--> <mac address=\'32:24:00:8b:f5:4c\'/> <source bridge=\'br0\'/> <!-- 当前物理机网桥的名称--> <model type=\'virtio\'/> <address type=\'pci\' domain=\'0x0000\' bus=\'0x00\' slot=\'0x03\' function=\'0x0\'/> </interface> ...... ......

2.重启虚拟机后,修改虚拟机的网卡配置文件。先用ifconfig或者ip add命令查看默认的网卡

[root@localhost network-scripts]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ...... ...... TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 ...... ...... TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

以上显示说明默认网卡为eth0,因此修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0, 如果没有该文件,则创建一个。

TYPE=Ethernet BOOTPROTO=static IPADDR=10.0.2.137 //与物理机处于同一局域网 NETMASK=255.255.255.0 GATEWAY=10.0.2.254 //网关为物理机所在局域网网关 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth0 ONBOOT=yes //不要忘记修改为yes

至此,kvm虚拟机便可上网