随着网络扁平化概念的提出,具有“大容量、少局所、高交换”性能的汇聚型OLT经过一个MSTP网络就可以接入骨干网[1]。根据运营局方的需求,当MSTP传输网内部故障时,不需要维护人员的直接干预,OLT能参与链路倒换并帮助实现网络自愈。理论上接入网OLT、MSTP传输网以及骨干网可以采用分段保护方案,例如OLT上联双归属保护OLT-MSTP的链路,MSTP内部链路的保护由MSTP本身负责,MSTP到上游骨干路由器的链路保护可以通过路由协议实现(收敛时间较长)。但是这种方法增加了网络维护的复杂度,而且现网业务已经部分开通,修改设备的配置存在一定风险。如果采用VRRP方案,由于只是MSTP网内部的链路状态发生改变,当VRRP发生主备切换时,原有主用接口状态并没有发生变化,接口还是处于UP状态,该路由还会继续宣告,从而导致下行流不通。基于OSPF协议的路由方案由于具有配置简单,风险可控,维护管理方便的特点,因而被本设计采用。
1 OLT上的三层接口设计
1.1 VLAN技术在OLT上的应用
作为交换式以太网设备的一种,EPON系统OLT对数据链路层技术有着强大的支持能力,例如二层VLAN技术的广泛应用。VLAN的划分方法有3种:802.1Q VLAN、基于端口的VLAN和基于MAC地址的VLAN[2]。OLT上的二层业务VLAN运用802.1Q实现VLAN标记(tag)从而将VLAN延伸到整个网络,而802.1Q VLAN的去标记(untagged)则使得OLT可以和所有合法的、无法识别VLAN标记的交换机一起工作;OLT还有一些内部保留VLAN是基于端口划分,加入同一个VLAN的端口形成一个广播域,可以实现二层互通,不在同一个VLAN内的端口之间在二层则不能直接通信。传统OLT上比较特殊的一个(或多个)VLAN是管理VLAN,这种VLAN可以配置IP地址来和网管服务器进行通信,方便网络管理员对OLT进行配置管理。
在传统意义的三层设备中,VLAN是指三层虚接口,它们可以配置IP地址形成路由接口。因此,在OLT上实现三层路由首先必须创建三层接口。本设计采用SUPER-VLAN技术来解决二层VLAN和三层接口的矛盾。SUPER-VLAN也叫VLAN聚合,由SUB-VLAN和SUPER-VLAN组成,它的SUB-VLAN是二层实VLAN,不同VLAN之间在二层不能互通;SUPER-VLAN是三层虚VLAN,多个SUB-VLAN可以添加到同一个SUPER-VLAN,然后在SUPER-VLAN上配置IP地址形成三层接口。路由接口是OSPF方案设计进行的基础。
1.2基于SUPER-VLAN技术的三层接口设计
OLT上的三层接口由SUPER-VLAN来提供,SU-PER-VLAN三层转发的基本原理如下[3]:如图1所示,PC1和PC3属于不同的SUPER-VLAN,即不同的网段。垮网段设备的通信需要通过三层接口交互。PC1与PC3通信的过程如下:
① 通过比较IP地址和掩码PC1知道PC3与自己不在同一个网段,PC1向网关发送一个ARP报文请求网关的MAC;
② 网关SUPER-VLAN 100回应自己的MAC 00-00-00-00-00-01给PC1;
③ PC1收到应答后发送目的MAC为00-00-00-00-00-01、目的IP为3.3.3.1的报文;
④ SUPER-VLAN 100收到报文后发现目的MAC是自己的MAC,就知道是三层转发,从而去查三层转发表;
⑤ 查找到下一跳的出口是SUPER-VLAN 200,就把报文发给SUPER-VLAN 200;
⑥ SUPER-VLAN 200收到报文,将报文转发给PC3。
现在考虑PC1和PC2的通信流程。比较PC1和PC2的IP地址可以知道二者同属于一个子网,PC1就会广播ARP报文请求PC2的MAC。而由于PC1和PC2不在同一个SUB-VLAN中,ARP广播报文不能到达PC2。此时,SUPER-VLAN就需要发挥它的另一个重要作用--ARP PROXY。SUPER-VLAN的ARPPROXY功能工作流程如下:
① PC1广播一个ARP报文请求PC2的MAC;
② SUPER-VLAN 100发现PC2不在SUB-VLAN1内,就代理接受该ARP报文;
③ SUPER-VLAN100在SUB-VLAN 2内广播ARP报文请求PC2的MAC地址;
④ PC2应答ARP请求,将自己的MAC 00-00-00-00-00-03发送给SUPER-VLAN 100;
⑤ SUPER-VLAN 100作为网关应答PC1的ARP请求,将自己的MAC 00-00-00-00-00-01当作PC2的MAC发送给PC1。后续PC1发送给PC2的报文就会将带上目的MAC 00-00-00-00-00-01、目的IP 1.1.1.2的报文发送给SUPER-VLAN网关,网关收到该报文后将自己的MAC替换成PC2的MAC 00-00-00-00-00-03,并把报文按照学习到的路由发送给PC2。