虚拟化技术-KVM网络配置
# 虚拟化技术-KVM网络
KVM虚拟机网络配置的两种方式:NAT方式和Bridge桥接方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。
# Bridge方式原理
在该模式下,宿主机会虚拟出来一张虚拟网卡作为宿主机本身的通信网卡,而宿主机的物理网卡则成为桥设备(交换机),所以虚拟机相当于在宿主机所在局域网内的一个单独的主机,他的行为和宿主机是同等地位的,没有依存关系。 Bridge设备其实就是网桥设备,也就相当于二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备ens33配置成br0,此时ens33就成为了所谓的交换机设备,我们虚拟出来的宿主机的网卡br0也是连接在上面的。 Bridge方式配置出来的接口对NAT方式没有影响。但作为客户机,只能选择其中的一种。
宿主机ens33配置信息
DEVICE=ens33
ONBOOT=yes
NAME=ens33
BOOTPROTO=none
BRIDGE=br0
2
3
4
5
br0网卡配置信息
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
2
3
4
5
6
7
8
9
10
# 网桥方式配置步骤
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
2
3
4
5
6
7
8
9
上述配置将虚拟网卡配置在了10.0.112.* 网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp
2
3
4
2、编辑修改网络设备脚本文件,修改网卡设备ens33
DEVICE="ens33"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
BRIDGE="br0"
NAME="System ens33"
HWADDR=44:37:E6:4A:62:AD
2
3
4
5
6
7
8
NM_CONTROLLED这个属性值,根据RedHat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。
3、重启网络服务
service network restart
4、校验桥接接口
#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.4437e64a62ad no ens33
2
3
# NAT 的网络原理
NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。 其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。
# 网桥绑定
- 创建网桥
brctl addbr br0
- 将br0与你的物理网卡进行绑定
brctl addif br0 ens33
(注:你的物理网卡不一定是ens33,可以使用ifconfig查看,一般来说第一个就是)
- 如果要打开STP协议:
brctl stp br0 on
- 修改ifcfg文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
sudo vim ifcfg-br0
2
3
DEVICE=br0
TYPE=Bridge
BOOTRPOTO=static
IPADDR=192.168.1.108 # 你物理网卡的IPADDR
NETMASK=255.255.255.0 # 物理网卡的掩码
GATEWAY= 192.168.12.2 # 网关
DNS1=192.168.211.103
ONBOOT=yes
2
3
4
5
6
7
8
9
然后还需要修改ifcfg-ens33文件,主要需要追加BRIDGE=br0,以及修改BOOTRPOTO=none:
DEVICE=ens33
TYPE=Ethernet
BOOTRPOTO=none
# IPADDR=192.168.1.108
# NETMASK=255.255.255.0
# GATEWAY= 192.168.12.2
# DNS1=192.168.211.103
ONBOOT=yes
BRIDGE=br0
2
3
4
5
6
7
8
9
- 重启网络服务
service network restart
- 查看是否成功
# ifconfig
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29587d7f yes ens33
virbr0 8000.525400debd5c yes virbr0-nic
2
3
4
5
6
7
删除网桥
brctl delif br0 ens33 #解除绑定
ifconfig br0 down #关闭br0,不关闭删不掉
brctl delbr br0 #删除br0
2
3