VLAN间互访
划分VLAN后,由于广播报文只在同VLAN内转发,所以不同VLAN的用户间不能二层互访,这样能起到隔离广播的作用。但实际应用中,不同VLAN的用户又常有互访的需求,此时就需要实现不同VLAN的用户互访,简称VLAN间互访。
同VLAN内互访一样,VLAN间互访也会经过用户主机的报文转发、设备内部的以太网交换、设备之间交互时VLAN标签的添加和剥离三个环节。同样,根据以太网交换原理,广播报文只在同一VLAN内转发,不同VLAN内的用户则不能直接二层互访,需要借助三层路由技术或VLAN转换技术才能实现互访。
VLAN间互访技术
VLANIF接口
VLANIF接口是一种三层的逻辑接口。在VLANIF接口上配置IP地址后,设备会在MAC地址表中添加VLANIF接口的MAC地址+VID表项,并且为表项的三层转发标志位置位。当报文的目的MAC地址匹配该表项后,会进行三层转发,进而实现VLAN间的三层互通。
通过VLANIF接口实现VLAN间互访,必须要求VLAN间的用户都只能处于不同的网段(因为相同网段,主机会封装目的主机的MAC地址,设备判断进行二层交换,二层交换只在同VLAN内,广播报文无法到达不同的VLAN,获取不到目的主机的MAC地址,也就无法实现互通)。但每个VLAN需要配置一个VLANIF,并在接口上指定一个IP子网网段,比较浪费IP地址。现网中,也存在不同VLAN相同网段的组网需求,此时可通过VLAN聚合实现。
VLAN聚合(又称Super VLAN)通过引入Super-VLAN和Sub-VLAN,将一个Super-VLAN和多个Sub-VLAN关联,多个Sub-VLAN共享Super-VLAN的IP地址作为其网关IP,实现与外部网络的三层互通;并通过在Sub-VLAN间启用Proxy ARP,实现Sub-VLAN间的三层互通,进而即节约IP地址资源,又实现VLAN间的三层互通。
VLAN聚合通常用于多个VLAN共用一个网关的组网场景。有关VLAN聚合的详细描述,请参见“VLAN聚合配置”,本节不再赘述。
Dot1q终结子接口
子接口也是一种三层的逻辑接口。跟VLANIF接口一样,在子接口上配置Dot1q终结功能和IP地址后,设备也会添加相应的MAC表项并置位三层转发标志位,进而实现VLAN间的三层互通。
Dot1q终结子接口适用于通过一个三层以太网接口下接多个VLAN网络的环境。由于不同VLAN的数据流会争用同一个以太网主接口的带宽,网络繁忙时,会导致通信瓶颈。
有关Dot1q终结子接口的详细描述,请参见“VLAN终结配置”中的Dot1q终结子接口相关内容,本节不再赘述。
同设备VLAN间互访
如图3-12所示,互访的源主机Host_1和目的主机Host_2连接在同一台设备Router上,分别属于VLAN2和VLAN3,并位于不同的网段。在Router上分别创建VLANIF2和VLANIF3并配置其IP地址,然后将用户主机的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。
当用户主机Host_1发送报文给用户主机Host_2时,报文的发送过程如下(假设Router上还未建立任何转发表项)。
- Host_1判断目的IP地址跟自己的IP地址不在同一网段,因此,它发出请求网关MAC地址的ARP请求报文,目的IP为网关IP 10.1.1.1,目的MAC为全F。
- 报文到达Router的接口IF_1,Router给报文添加VID=2的Tag(Tag的VID=接口的PVID),然后将报文的源MAC地址+VID与接口的对应关系(1-1-1, 2, IF_1)添加进MAC表。
- Router检查报文是ARP请求报文,且目的IP是自己VLANIF2接口的IP地址,给Host_1应答,并将VLANIF2接口的MAC地址3-3-3封装在应答报文中,应答报文从IF_1发出前,剥掉VID=2的Tag。同时,Router会将Host_1的IP地址与MAC地址的对应关系记录到ARP表。
- Host_1收到Router的应答报文,将Router的VLANIF2接口的IP地址与MAC地址对应关系记录到自己的ARP表中,并向Router发送目的MAC为3-3-3、目的IP为Host_2的IP地址 10.2.2.2的报文。
- 报文到达Router的接口IF_1,同样给报文添加VID=2的Tag。
- Router根据报文的源MAC地址+VID与接口的对应关系更新MAC表,并比较报文的目的MAC地址与VLANIF2的MAC地址,发现两者相等,进行三层转发,根据目的IP查找三层转发表,没有找到匹配项,上送CPU查找路由表。
- CPU根据报文的目的IP去找路由表,发现匹配了一个直连网段(VLANIF3对应的网段),于是继续查找ARP表,没有找到,Router会在目的网段对应的VLAN3的所有接口发送ARP请求报文,目的IP是10.2.2.2。从接口IF_2发出前,根据接口配置,剥掉VID=2的Tag。
- Host_2收到ARP请求报文,发现请求IP是自己的IP地址,就发送ARP应答报文,将自己的MAC地址包含在其中。同时,将VLANIF3的MAC地址与IP地址的对应关系记录到自己的ARP表中。
- Router的接口IF_2收到Host_2的ARP应答报文后,给报文添加VID=3的Tag,并将Host_2的MAC和IP的对应关系记录到自己的ARP表中。然后,将Host_1的报文转发给Host_2,发送前,同样剥离报文中的Tag。同时,将Host_2的IP、MAC、VID及出接口的对应关系记录到三层转发表中。
至此,Host_1完成对Host_2的单向访问。Host_2访问Host_1的过程与此类似。这样,后续Host_1与Host_2之间的往返报文,都先发送给网关Router,由Router查三层转发表进行三层转发。
跨设备VLAN间互访
由于VLANIF接口的IP地址只能在设备上生成直连路由,当不同VLAN的用户跨多台设备互访时,除配置VLANIF接口的IP地址外,还需要配置静态路由或运行动态路由协议。
如图3-13所示,互访的源主机Host_1和目的主机Host_2连接在不同的设备Router_1和Router_2上,分别属于VLAN2和VLAN3,并位于不同的网段。在Router_1上分别创建VLANIF2和VLANIF4,配置其IP地址为10.1.1.1和10.1.4.1;在Router_2上分别创建VLANIF3和VLANIF4,配置其IP地址为10.1.2.1和10.1.4.2,并在Router_1和Router_2上分别配置静态路由。Router_1上静态路由的目的网段是10.1.2.0/24,下一跳是10.1.4.2;Router_2上静态路由的目的网段是10.1.1.0/24,下一跳是10.1.4.1。
当用户主机Host_1发送报文给用户主机Host_2时,报文的发送过程如下(假设Router_1和Router_2上还未建立任何转发表项)。
- 与同设备VLAN间互访的步骤1~6一样,经过“Host_1比较目的IP地址—>Host_1查ARP表—>Host_1获取网关MAC地址—>Host_1将发给Host_2的报文送到Router_1—>Router_1查MAC表—>Router_1查三层转发表”的过程,Router_1上送CPU查找路由表。
- Router_1的CPU根据报文的目的IP 10.1.2.2去找路由表,发现匹配了一个路由网段10.1.2.0/24(VLANIF3对应的网段),下一跳IP地址为10.1.4.2,于是继续查找ARP表,没有找到,Router_1会在下一跳IP地址对应的VLAN4的所有接口发送ARP请求报文,目的IP是10.1.4.2。报文从Router_1的接口IF_2发出前,根据接口配置,直接透传该报文到Router_2的IF_2接口,不剥除报文的Tag。
- ARP请求报文到达Router_2后,发现目的IP为VLANIF4接口的IP地址,给Router_1回应,填写VLANIF4接口的MAC地址。
- Router_2的ARP响应报文从其IF_2接口直接透传到Router_1,Router_1接收后,记录VLANIF4的MAC地址与IP地址的对应关系到ARP表项。
- Router_1将Host_1的报文转发给Router_2,报文的目的MAC修改为Router_2的VLANIF4接口的MAC地址,源MAC地址修改为自己的VLANIF4接口的MAC地址,并将刚用到的转发信息记录在三层转发表中(10.1.2.0/24, 下一跳IP的MAC地址, 出口VLAN, 出接口)。同样,报文是直接透传到Router_2的IF_2接口。
- Router_2收到Router_1转发的Host_1的报文后,与同设备VLAN间互访的步骤6~9一样,经过“查MAC表—>查三层转发表—>送CPU—>匹配直连路由—>查ARP表并获取Host_2的MAC地址—>将Host_1的报文转发给Host_2”的过程,同时将Host_2的IP地址、MAC地址、出口VLAN、出接口记录到三层转发表项。
VLAN Damping
如果指定VLAN已经创建对应的VLANIF接口,当VLAN中所有接口状态变为Down而引起VLAN状态变为Down时,VLAN会向VLANIF接口上报接口Down状态,从而引起VLANIF接口状态变化。
为避免由于VLANIF接口状态变化引起的网络震荡,可以在VLANIF接口上启动VLAN Damping功能,抑制VLANIF接口状态变为Down的时间。
当使能VLAN Damping功能,VLAN中最后一个处于Up状态的接口变为Down后,会抑制一定时间(抑制时间可配置)再上报给VLANIF接口。如果在抑制时间内VLAN中有接口Up,则VLANIF接口状态保持Up状态不变。即VLAN Damping功能可以适当延迟VLAN向VLANIF接口上报接口Down状态的时间,从而抑制不必要的路由震荡。