VLAN虚拟局域网知识笔记之(四)VLAN间路由原理与配置方法
VLAN虚拟局域网知识笔记之(四)
VLAN间路由原理与配置方法
部署了VLAN的传统交换机不能实现不同VLAN间的二层报文转发,因此必须引入路由技术来实现不同VLAN间的通信。VLAN路由可以通过二层交换机配合路由器来实现,也可以通过三层交换机来实现。
本次笔记主要介绍VLAN间路由的原理以及不同的实现方式,以及对应的配置方法。
VLAN的局限性
VLAN在分割广播域的同时也限制了不同VLAN间的主机进行二层通信。
VLAN隔离了二层广播域,也严格地隔离了各个VLAN之间的任何二层流量,属于不同VLAN的用户之间不能进行二层通信。
那么,可以用什么方法解决这个问题,使不同VLAN间可以进行通信呢?接下来将会介绍三种方法实现VLAN间路由。
VLAN间路由实现方法之一:每个VLAN一个物理连接
在二层交换机上配置VLAN,每一个VLAN使用一条独占的物理链路连接到路由器的一个接口上。
因为不同VLAN之间的主机是无法实现二层通信的,所以必须通过三层路由才能将报文从一个VLAN转发到另外一个VLAN。
解决VLAN间通信问题的第一种方法是:
在路由器上为每个VLAN分配一个单独的接口,并使用一条物理链路连接到二层交换机上。当VLAN间的主机需要通信时,数据会经由路由器进行三层路由,并被转发到目的VLAN内的主机,这样就可以实现VLAN之间的相互通信。
然而,随着每个交换机上VLAN数量的增加,这样做必然需要大量的路由器接口,而路由器的接口数量是极其有限的。并且,某些VLAN之间的主机可能不需要频繁进行通信,如果这样配置的话,会导致路由器的接口利用率很低。因此,实际应用中一般不会采用这种方案来解决VLAN间的通信问题。
本笔记不着重介绍这种极少使用的方法。
VLAN间路由实现方法之二:单臂路由
(1)基本原理
将交换机和路由器之间的链路配置为Trunk链路,并且在路由器上创建子接口以支持VLAN路由。
解决VLAN间通信问题的第二种方法是:
在交换机和路由器之间仅使用一条物理链路连接。在交换机上,把连接到路由器的端口配置成Trunk类型的端口,并允许相关VLAN的帧通过。在路由器上需要创建子接口,逻辑上把连接路由器的物理链路分成了多条。一个子接口代表了一条归属于某个VLAN的逻辑链路。
事实上单臂路由的实现方法与上面的第一种方法是相似的。区别在于第一种方法是用实际的多条物理链路对VLAN数据进行区分,通过路由转发。而单臂路由是在此基础上,将一条实际的物理链路割分为多条逻辑存在的链路(也就是创建端口的子接口),再对其VLAN数据进行区分。从而解决了第一种方法需要耗费大量端口资源的难题。
配置子接口时,需要注意以下几点:
①必须为每个子接口分配一个IP地址。该IP地址与子接口所属VLAN位于同一网段,且是作为该VLAN中主机的网关而存在。
②需要在子接口上配置802.1Q封装,来剥掉和添加VLAN Tag,从而实现VLAN间互通。
③在子接口上执行命令arp broadcast enable使能子接口的ARP广播功能。
本例中,主机A发送数据给主机B时,RTA会通过G0/0/1.1子接口收到此数据,然后查找路由表,将数据从G0/0/1.2子接口发送给主机B,这样就实现了VLAN2和VLAN3之间的主机通信。
(2)配置步骤
拓扑如上图所示。属于VLAN 2的PC A和属于VLAN 3的PC B连接在交换机SWA上。正常来说不同VLAN间的设备是相互不能通信的,所以加入路由设备RA,通过三层路由功能实现跨VLAN间的通信。
Step 1:创建VLAN 2和VLAN 3,并将PC A和PC B分别加入各自的VLAN中
G0/0/2加入VLAN 2
G0/0/3加入VLAN 3
Step 2:在交换机SWA上配置与路由器RA连接的端口G0/0/1为Trunk端口,并允许VLAN 2和VLAN 3通过。
通过配置我们可以知道,当携带有VLAN 2或VLAN 3的标签的报文通过G0/0/1时,Trunk端口不会对其做任何处理而是直接进行转发。
Step 3:在路由器上配置单臂路由
(1)创建子接口。将一个物理端口划分为两个或多个的逻辑端口(即子接口),每个子接口分别处理不同VLAN发送来的数据包。
命令:interface interface-type interface-number.sub-interface number
用来创建子接口。其中sub-interface number代表物理接口内的逻辑接口通道。
Tips:就是将路由器上的接口G0/0/0在逻辑上分为G0/0/0.1和G0/0/0.2两个子接口
(2)为子接口配置dot1Q封装
命令:dot1q termination vid
用来配置子接口dot1q封装的单层VLAN ID。缺省情况,子接口没有配置dot1q封装的单层VLAN ID。
本命令执行成功后,子接口对报文的处理如下:接收报文时,剥掉报文中携带的Tag后进行三层转发。
转发出去的报文是否带Tag由出接口决定。发送报文时,将相应的VLAN信息添加到报文中再发送。
(3)使能子接口的ARP广播功能
命令:arp broadcast enable
用来使能子接口的ARP广播功能。
缺省情况下,子接口的ARP广播功能是关闭的,所以子接口不能转发广播报文,在收到广播报文后它们直接把该报文丢弃。为了允许子接口能转发广播报文,可以通过在子接口上执行此命令。
(4)为子接口配置IP地址
由于这个子接口是作为对VLAN三层路由所使用的网关而存在的,这个IP地址必须与对应的VLAN同处于一个网段。
作为对VLAN 2主机(192.168.2.1)的网关,将该子接口配置的IP为192.168.2.254/24。
同理,也要为VLAN 3配置对应的子接口,接口IP配置为与VLAN 3同网段的网关,配置的IP为192.168.3.254/24。
Step 4:配置验证
PC A配置如下:
PC B配置如下:
配置完成单臂路由后,可以使用ping命令来验证主机之间的连通性。如上所示,VLAN2中的主机A(IP地址:192.168.2.1)可以Ping通VLAN 3中的主机B(IP地址:192.168.3.1)。
最后我们查看路由表,可以发现192.168.2.0/24网段的路由下一跳为子接口G0/0/0.1,192.168.3.0/24网段的路由下一跳为G0/0/0.2。
综上所述:我们就可以大概还原出数据包的转发过程:
①首先数据包从主机PC A发出,交换机SWA从端口G0/0/2(配置为Access端口)接收,则为该数据包打上VLAN 2的标签并转发给端口G0/0/1(配置为Trunk端口)。
②根据Trunk端口的定义,由于其配置了允许携带VLAN 2标签的报文通过,则G0/0/1会不剥离Tag的情况下对该数据包进行转发给路由器RA。
③路由器接收到该数据包,根据数据包的VLAN 2标签确定因为交给子接口G0/0/0.1进行处理,子接口将数据包的VLAN 2标签去除。
④路由器查看数据包的目的地址为192.168.3.1,则查看路由表,发现应该交给子接口G0/0/0.2处理。
⑤子接口G0/0/0.2会为数据包打上VLAN 3的标签,并转发给SWA,最后从SWA的G0/0/3(配置为Access端口)转发给主机B。
Tips:子接口为什么要开启ARP广播?
刚开始主机A(192.168.2.1)并不知道主机B(192.168.3.1)的MAC地址,则发送ARP Request广播出去询问,若子接口不开启ARP广播功能,则该ARP Request就不可能转发到不同VLAN的主机B。
VLAN间路由实现方法之三:三层交换
解决VLAN间通信问题的第三种方法是:
在三层交换机上配置VLANIF接口来实现VLAN间路由。如果网络上有多个VLAN,则需要给每个VLAN配置一个VLANIF接口,并给每个VLANIF接口配置一个IP地址。用户设置的缺省网关就是三层交换机中VLANIF接口的IP地址。
拓扑图如下所示:有一台三层交换机SWA和两台主机PC A和PC B。其中PC A属于VLAN 2,PC B属于VLAN 3。他们的网关分别对应三层交换机SWA的两个VLANIF接口的IP地址。
配置步骤如下所示:
Step 1:基础配置,选择一台三层交换机(只要可以进行三层路由的交换机均可。这里使用的是eNSP的s5700),配置相对应的所属VLAN。
创建VLAN 2和VLAN 3。并将PC A和PC B连接交换机的端口加入到对应的VLAN中。
Step 2:创建VLANIF接口并配置IP地址
命令:interface vlanif vlan-id
用来创建VLANIF接口并进入到VLANIF接口视图。vlan-id表示与VLANIF接口相关联的VLAN编号。VLANIF接口的IP地址作为主机的网关IP地址,和主机的IP地址必须位于同一网段。
=
Step 3:配置PC A和PC B的IP地址
Step 4:配置验证
配置三层交换后,可以用ping命令验证主机之间的连通性。如上所示,VLAN2中的主机A(IP地址:192.168.2.2)可以Ping通VLAN 3中的主机B(IP地址:192.168.3.2)。
Tips:一些小知识
①配置命令dot1q termination vid <vlan-id> 的目的是什么?
dot1q termination vid vlan-id命令有两个功能:
(1)第一个功能是删除VLAN标签。接口在收到VLAN报文后,剥掉报文中携带的Tag后进行三层转发。
(2)第二个功能是添加VLAN标签。接口在发送VLAN报文时,将相应的VLAN信息添加到报文中再发送。
②配置单臂路由时,交换机连接路由器的接口需要哪些配置?
必须把接口配置成Trunk口,并允许相应VLAN的数据通过。
至此,VLAN间路由的原理和配置基本介绍完毕。而更进一步的了解设计VLAN的高级特性,VXLAN等都会在以后有时间时再做笔记。敬请期待。