浅谈VLAN间路由的方式及工作过程
2020-01-04刘易
刘易
北京信息职业技术学院 北京 100018
1 VLAN间路由的必要性
VLAN的作用是隔离二层广播域,也就严格地隔离了各个VLAN之间的任何流量,分属于不同VLAN的用户不能互相通信。VLAN虽然在很大意义上提高了网络的安全性,但是从另一个角度来说,VLAN又阻隔了不同分组之间的连通性。为了在保证网络安全性的基础上实现不同VLAN之间的连通,这就需要VLAN间路由技术。
网络上的数据包都必须要有四个地址才能进行通信,即源IP地址、目的IP地址,源MAC地址和目的MAC地址。其中,前三个地址是发送方能够确定的。为了能够通信,还必须要知道目的MAC地址,而获取目的MAC的方式是ARP请求。因为ARP请求数据包是广播报文,不能在分属不用VLAN的不同广播域中传播。因此需要借助VLAN间路由来实现不同广播域之间的数据包传输[1]。
2 VLAN间通信的实现方式
为了实现VLAN间的通信,总共有三种方式:物理接口;子接口;三层交换。
(1)物理接口的方式是指为每个VLAN提供一个物理接口,从而为每个VLAN都提供一个网关。但是这样的方法每个VLAN都需要增加一个接口,增加了更多的投资。为了解决如上问题,可以通过在路由器的一个物理接口上创建多个子接口来解决。
(2)子接口的方式是指将路由器上的一个物理端口分割为多个虚拟端口(逻辑接口),分别对应不同的VLAN,为每个VLAN提供一个网关。但是,如果使用路由器进行VLAN间通信的话,随着VLAN之间流量的不断增加,很可能导致汇聚链路成为整个网络的瓶颈。
(3)三层交换的方式是指在三层交换机中为每一个VLAN都创建一个VLANIF的虚接口,从而为每个VLAN提供一个网关。三层交换机就相当于在一台交换机中,分别设置了交换机模块和路由模块。而内置的路由模块与交换模块相同,都使用硬件处理路由。因此,与传统的路由器通过软件路由相比,可以实现高速路由。并且,路由模块与交换模块的汇聚链接是内部链接,可以确保相当大的带宽。
3 子接口的工作原理
通过一个实例来了解子接口的工作过程,属于VLAN 2的PC1和属于VLAN3的PC2分别连接到交换机S1,交换机的G0/0再与路由器R1的一个物理接口G0/1相连接。
为了实现VLAN间通信,需要在路由器上设置物理接口的逻辑接口,即子接口G0/1.1和G0/1.2分别作为VLAN 2和VLAN 3的网关。
首先计算机PC1向PC2发送数据,发现PC2与PC1不属于同一个网段,因此会将数据发送给默认网关。交换机S1在端口上收到PC1的数据帧后,会附加上VLAN 2 的tag信息,然后查看MAC地址表,通过汇聚接口G0/0发现给路由器R1。路由器收到数据帧后,确认是属于VLAN2的数据帧,去除tag后,交由负责VLAN2的子接口G0/1.1处理。
路由器查看数据包,发现目的IP所在网段与路由表中的G0/1.2子接口相匹配,找到与之匹配的端口G0/1.2,并将数据包发送给该端口。子接口G0/1.2收到数据包后,将目的Mac地址修改为PC2的MAC地址,源MAC修改为G0/1的MAC地址,并打上VLAN3的tag,从G0/1.2发送出去。
交换机收到数据帧后,查看MAC地址表,找到目标计算机PC2连接的端口,然后将数据帧的VLAN信息去除后,从该端口转发,最终计算机PC2成功地收到PC1的数据帧。
VLAN间通信时,即使通信双方都连接在同一台交换机上,也必须经过:发送方——交换机——路由器——交换机——接收方五个步骤。
4 三层交换的工作原理
通过一个实例来了解三层交换的工作过程,属于VLAN 2的PC1和PC2,属于VLAN3的PC3分别连接到三层交换机CS上。
(1)在三层交换机中如果相同VLAN进行通信,计算机PC1发送数据包,交换机收到数据包后,查看MAC地址表,发现计算机PC2属于同一VLAN 2,于是交换机将数据帧转发给PC2所连接的端口,最终计算机PC2收到该帧。相同VLAN内的通信在交换模块完成。
(2)三层交换机中不同VLAN间通信需要通过路由模块。需要在三层交换机上设置虚接口VLANIF2和VLANIF3分别作为VLAN 2和VLAN 3 的网关。
计算机PC1向PC3发送数据,判断出PC3与本机不属于同一个网段,因此会将数据发送给默认网关。交换机CS收到数据帧,添加VLAN2的tag信息,并查看MAC地址表,将数据帧转发给路由模块。
路由模块在收到数据帧时,分辨出tag信息是VLAN2,据此判断由VLANIF2接口负责接收,去掉tag后,进行路由处理。路由模块查看数据包,发现目的IP所在网段与路由表中的VLANIF3所在的网段相匹配,找到相对应的端口VLANIF 3,并将数据包发送给VLANIF 3。
虚接口VLANIF 3收到数据包,将目的Mac地址修改为PC3的MAC地址,源MAC修改为VLANIF 3的MAC地址,并打上VLAN3的tag。交换模块收到数据帧后,查看MAC地址表,确认需要将它转发给PC3所连接的端口。由于该端口是ACCESS类型,因此转发前会先将VLAN3的tag去除。最终,计算机PC3成功地收到PC1发来的数据帧。
通过三层交换机实现VLAN间通信,也必须经过:发送方-交换模块-路由模块-交换模块-接收方的过程。
5 结束语
VLAN间路由的三种方法中,物理接口的方式会造成资源浪费,且很难扩展,因此一般不使用该方法。路由器子接口使用软件实现路由,当并发流量大时,单链路容易造成网络的瓶颈。三层交换机是使用硬件进行路由和转发,速度更快。在实际工程中可根据设备情况进行相应的规划。