之前说过kvm具有三种网络模式,当然最好还是选择功能最为强大的Linux Bridge模式,于是我们创建了一个名为br0的Linux-birdge的网桥,而虚拟化网络管理其实就是管理这个网桥。
brctl网桥管理工具
我们可以使用brctl管理网桥
brctl show | 显示网桥列表 |
brctl addbr | 添加网桥 |
brctl delbr | 删除网桥 |
brctl addif | 添加接口到网桥 |
brctl delif | 从网桥删除接口 |
Linux Bridge实现Vlan架构原理
VLAN是什么大家都很熟悉了,以前我尝试过在物理环境下搭建VLAN,现在我要在kvm虚拟化环境下实现VLAN架构。
原理差不多就是这样:
ens33是宿主机上的物理网卡,有一个名为ens33.10的vlan设备与其相连,ens33.10挂在名为brvlan10的Linux Bridge上,虚拟机的虚拟网卡也挂在brvlan10上。这样所有网卡挂在brvlan10上的虚拟机就相当于被划入了vlan10中,我们还可以增加vlan20、vlan30……组成一个个vlan,然后根据需要将虚拟机放入相应的bridge中。
具体实现
准备工作
检查核心是否提供vlan功能:
查看宿主机是否存在/proc/net/vlan目录,如果不提供vlan功能,这个目录就不存在。
比如我就没有这个目录,那么我就需要将8021q模块导入系统。
modprobe 8021q
之后这个目录自动生成了
cd /proc/net/vlan
安装vconfig工具:
vconfig是一个查看vlan配置的工具
rpm -ivh vconfig-1.9-16.el7.x86_64.rpm
搭建vlan
创建vlan接口千最好先在宿主机上添加一块网卡ens37,将BOOTPROTO改成static
接下来基于ens37搭建vlan10和vlan20
vconfig add ens37 10
vconfig add ens37 20
添加ens37.10,ens37.20的配置文件类似:
NAME=ens37.10
DEVICE=ens37.10
ONBOOT=yes
VLAN=yes
TYPE=vlan
VLAN_ID=10
PHYSDEV=ens37
ZONE=trusted
BRIDGE=brvlan-10
搭建网桥
创建网桥brvlan-10,brvlan-20
brctl addbr brvlan-10
brctl addbr brvlan-20
编辑网桥brvlan-10,brvlan-20配置文件类似:
NAME=brvlan-10
DEVICE=brvlan-10
ONBOOT=yes
TYPE=bridge
BOOTPROTO=static
将网桥接入对应vlan
将网桥brvlan-10接入网口ens37.10,网桥brvlan-20接入网口ens37.20
brctl addif brvlan-10 ens37.10
brctl addif brvlan-20 ens37.20
添加虚拟机网卡到对应网桥
重启network
通过virtual-manager将对应的虚拟网卡挂到网桥上