相信很多小伙伴已经了解了什么是vlan,由于其隔离了广播域,使得不同的vlan之间的主机无法直接通信,今天我们来研究一下怎么让不同vlan之间的主机也可以互相进行访问。
首先来解答一下很多刚开始接触的小伙伴心里产生的疑问:昨天刚学了怎么让主机之间通过划分vlan的方式不能通信,今天为什么要让它们通信?如果一开始就是想让这些主机之间可以通信的话,为什么还要划分vlan?
答:因为当我们的网络达到了一定规模,设备量庞大的时候,我们的二层网络中会充斥着大量的广播报文,想象一下上千台设备一起发送ARP广播时的样子,交换机忙着广播泛洪都忙不过来,还哪有时间处理我们正常的数据流量,这无疑是对硬件资源的浪费。而vlan的一个最基本的作用就是隔离广播域,先用vlan将我们的广播域范围限制住,而后再利用三层技术实现不同vlan间的通信,从而解决大规模网络中广播报文数量过多占用资源的问题。
话不多说,这就开始我们今天的试验
实验一:利用单臂路由实现vlan间通信

实验拓扑:
基本配置:
switch1(config)#vlan 10
switch1(config-vlan)#vlan 20
switch1(config-vlan)#exit //创建vlan10和vlan20
switch1(config)#interface e0/0
switch1(config-if)#switchport mode access
switch1(config-if)#switchport access vlan 10
switch1(config-if)#exit
switch1(config)#interface e0/1
switch1(config-if)#switchport mode access
switch1(config-if)#switchport access vlan 20
switch1(config-if)#exit //将相应接口划入对应的vlan
switch1(config)#interface e0/2
switch1(config-if)#switchport trunk encapsulation dot1q
switch1(config-if)#switchport mode trunk
switch1(config-if)#exit //将两台交换机之间的链路设置为trunk链路
switch2的配置与switch1相同,vlan10的pc机使用192.168.1.0/24网段,vlan20的pc机使用192.168.2.0/24网段,网关地址为192.168.x.254。
验证配置:
使用show vlan brief命令验证相应vlan是否被创建,对应接口是否划分正确
使用show interface trunk命令查看trunk链路是否成功建立
在pc上进行连通性测试
同一vlan的主机可以正常通信,不同vlan的主机目前无法通信
接下来开始配置单臂路由,利用单臂路由实现vlan间通信的基本思想是,在交换机和路由器之间的链路上起trunk,然后将路由器的子接口封装IEEE802.1q,使其在转发相应的数据包时能打上对应vlan的标签,并将子接口的地址作为对应vlan的网关地址,利用路由器的路由功能实现不同vlan间的互相访问
单臂路由配置:
switch1(config)#int e0/3
switch1(config-if)#switchport trunk encapsulation dot1q
switch1(config-if)#switchport mode trunk
switch1(config-if)#exit //先将交换机和路由器之间的接口配置为trunk
router1(config)#interface e0/0
router1(config-if)#no shutdown
router1(config-if)#exit
router1(config)#interface e0/0.1
router1(config-subif)#encapsulation dot1Q 10
router1(config-subif)#ip add 192.168.1.254 255.255.255.0
router1(config-subif)#no shutdown
router1(config-subif)#exit
router1(config)#interface e0/0.2
router1(config-subif)#encapsulation dot1Q 20
router1(config-subif)#ip add 192.168.2.254 255.255.255.0
router1(config-subif)#no shutdown
router1(config-subif)#exit //启用子接口,封装相应的vlan标签,并配置IP地址
再次测试连通性
可以看到所有的ip地址均能互通,实现了vlan间的互相访问
实验二:利用三层交换机的SVI接口实现vlan间通信
实验拓扑:
背景介绍:
SVI接口即交换虚拟接口,它是三层交换机上给vlan虚拟出的三层接口,可以配置ip地址并利用三层交换机的路由功能实现vlan间的通信访问。此次实验的二层基本配置与实验一相同,我们主要关注三层交换机的SVI接口配置。
三层交换机配置:
switch2(config)#ip routing //在三层交换机上开启路由功能
switch2(config)#interface vlan 10
switch2(config-if)#ip address 192.168.1.254 255.255.255.0
switch2(config-if)#no shutdown
switch2(config-if)#exit //创建vlan10的SVI接口并配置ip地址
switch2(config)#interface vlan 20
switch2(config-if)#ip address 192.168.2.254 255.255.255.0
switch2(config-if)#no shutdown
switch2(config-if)#exit //创建vlan20的SVI接口并配置ip地址
验证SVI接口是否成功启用并配置正确的IP地址
这里要注意的是,SVI接口up的条件除了不能是管理性shutdown以外,还必须有一个交换机的接口在此vlan内,并且处于up状态。如果vlan内所有接口都是down状态或者没有任何接口划入vlan,SVI接口时不会up的。因此如果出现SVI接口down的现象可以参考这一思路进行排错。
验证连通性:
成功利用三层交换机的SVI接口实现不同vlan间的互相访问
总结:要做vlan间路由的原因是既要缩小广播域范围,又要保证网络内的主机互相可以通信。实现vlan间路由有两种方法,一种是当我们的交换机是二层交换机,可以使用单臂路由封装802.1q标签的方式实现vlan间通信;另一种是如果网络内存在三层交换机,可以利用三层交换机的SVI接口实现vlan间通信。无论哪种方法,基本思路都是在主机上配置网关地址,将数据包转发给网关后,由网关进行路由转发实现vlan间互访,所以这两种技术统称为vlan间路由技术。这里留下一个小思考:如果实验中主机只配置ip地址不配置网关,那么不同vlan间的主机还能正常通信吗?如果可以正常通信那么它转发的原理是什么呢?快在评论区讨论起来吧!