实验环境:centos7
实验目的:配置vlan10和vlan20,分别连接网桥brvlan10和brvlan20,新建虚拟机vm1和vm2分别选择网桥brvlan10和brvlan20
一、实例
物理网卡:ens33(本实验用的centos7 网卡为ens33)
linux bridge:brvlan10,brvlan20
vlan接口:ens33.10,ens33.20
二、配置过程
1、下载vconfig、加载8021q模块并验证
[root@localhost ~]# yum install -y vconfig
[root@localhost ~]# modprobe 8021q
[root@localhost ~]# lsmod | grep 802
8021q 33208 0
garp 14384 1 8021q
mrp 18542 1 8021q
2、添加网卡接口
[root@localhost ~]# vconfig add ens33 10
[root@localhost ~]# vconfig add ens33 20
3、检查/proc/net/vlan目录
[root@localhost ~]# ls /proc/net/vlan/
config ens33.10 ens33.20
[root@localhost ~]#
4、配置brvlan10、brvlan20
进入/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cat ifcfg-brvlan10
TYPE=Bridge
BOOTPROTO=static
PROXY_METHOD=none
BROWSER_ONLY=no
IPV4_FAILURE_FATAL=no
NAME=brvlan10
DEVICE=brvlan10
ONBOOT=yes
[root@localhost network-scripts]# cat ifcfg-brvlan20
TYPE=Bridge
BOOTPROTO=static
PROXY_METHOD=none
BROWSER_ONLY=no
IPV4_FAILURE_FATAL=no
NAME=brvlan20
DEVICE=brvlan20
ONBOOT=yes
5、配置eth0.10,eth0.20
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33.10
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33.20
具体配置:
[root@localhost network-scripts]# cat ifcfg-ens33.10
TYPE=Vlan
VLAN=yes
NAME=ens33.10
DEVICE=ens33.10
ONBOOT=yes
BRIDGE=brvlan10
BOOTPROTO=static
[root@localhost network-scripts]# cat ifcfg-ens33.20
TYPE=Vlan
VLAN=yes
BOOTPROTO=static
NAME=ens33.20
DEVICE=ens33.20
ONBOOT=yes
BRIDGE=brvlan20
6、重启网络服务
[root@localhost network-scripts]# systemctl restart network
三、新建虚拟机vm1、vm2、vm3
vm1 网络源选择brvlan10 ip 192.168.1.111/24
vm2 网络源选择brvlan10 ip 192.168.1.112/24
vm3 网络源选择brvlan20 ip 192.168.1.113/24
vm1可以ping通vm2
vm1不可以ping通vm3
总结:
Linux Bridge + VLAN = 虚拟交换机
物理交换机存在多个 VLAN,每个 VLAN 拥有多个端口。
同一 VLAN 端口之间可以交换转发,不同 VLAN 端口之间隔离。
所以交换机其包含两层功能:交换与隔离。
Linux 的 VLAN 设备实现的是隔离功能,但没有交换功能。
一个 VLAN 母设备(比如 eth0)不能拥有两个相同 ID 的 VLAN 子设备,因此也就不可能出现数据交换情况。
Linux Bridge 专门实现交换功能。
将同一 VLAN 的子设备都挂载到一个 Bridge 上,设备之间就可以交换数据了。
总结起来,Linux Bridge 加 VLAN 在功能层面完整模拟现实世界里的二层交换机。
参考: