En

XR60系列

XR60系列

 > 产品技术>网络产品>XR60系列 >相关资源 >技术白皮书 >DPtech FRRP快速环网恢复协议技术白皮书
DPtech FRRP快速环网恢复协议技术白皮书

\ 白皮书下载

1  概述

随着工业以太网技术和标准的快速发展,以太网逐步替换传统现场总线技术成为工业网络主流传输技术,并提供灵活、高速和标准化的传输服务。鉴于工业应用场景对可靠性的苛刻要求,提高以太网传输的可靠性和保护能力是工业以太网技术发展和普及的核心环节。本白皮书提出了一种可显著提高以太网可靠性和健壮性的链路层环网技术,也就是FRRP(Fast Ring Recovery Protocol)快速环网恢复协议。FRRP技术可以防止以太网环路上的广播风暴,并实现链路故障时的快速收敛,确保网络的持续可用性。

2  FRRP协议介绍

FRRP协议是一种专门应用于以太网环的链路层协议,当以太环网上链路或设备发生故障时,能迅速切换到备份链路,保证业务的快速恢复。FRRP协议支持环网内的VLAN划分,并利用专用的控制通道(VLAN)传递环网控制信息,实现控制信息和业务数据的隔离;支持单环、双环、多环等多种拓扑的混合组网方式;支持单环多域技术实现环网链路负载分担;支持链路聚合的方式弹性扩展环网带宽;支持实时环网健康状态检测,能够快速发现网络故障,实现快速故障链路倒换,整个FRRP网络的收敛时间不超过20ms,并且具有收敛时间与环网上节点数无关的显著优势。

2.1  FRRP基本概念

■ FRRP域
FRRP域是一组协议VLAN和业务VLAN配置相同的设备组成的群体。同一台设备,可以配置不同的FRRP域,但多个域之间的不允许配置相同的VLAN。在同一网络环境中,域与域之间通过域ID加以区分,不同的FRRP域转发不同VLAN的流量,用以实现不同的VLAN的数据流量在以太环网链路上有不同的转发路径,进而可以达到负载分担的目的。一个组网中,最大支持配置16个FRRP域。

■ FRRP环
FRRP域中的设备,通过链路衔接组成环形拓扑结构,构成一个FRRP环。一个FRRP逻辑环上的节点,必须同属于一个域。每个FRRP域,最多支持配置16个FRRP逻辑环,环间通过环ID加以区分。一个FRRP域中可以包含多个FRRP环,但是这些FRRP环中只能有一个主环,主环由用户自行配置决定。在选定主环后,剩下的FRRP环就称其为子环。

FRRP协议支持单环、相切环和相交环等组网模式,支持多种拓扑。在相交环组网中,为防止因多环网导致的环路可能,相交的两个环需保证其中一个环为主环。子环的协议报文通过主环传播,主环的协议报文只在主环内部传播,两者协议VLAN不同,互不干扰。

\
图1  FRRP组网示意图

如图1所示,FRRP域Domain 1中包含了两个相交的以太网环Ring 1和Ring 2,把Ring 1配置为该域的主环,Ring 2配置为该域的子环,这样Ring 1和Ring 2就会分别计算出一个无环路的拓扑,从而消除了组网中的环路,并保证了各节点的全连通性。

FRRP协议把主环看作是子环的一个传输节点,子环的协议报文通过主环传播,主环将子环的协议报文(除了COMMON-HEALTH报文)视为数据报文。因此,当主环上的端口被阻塞时,数据报文和子环协议报文(除了COMMON-HEALTH报文)都不能通过。

■ FRRP协议VLAN
协议VLAN是用来传递FRRP协议报文的VLAN。为了支持相交环组网,每个FRRP域配有主协议VLAN和子协议VLAN两种协议VLAN,分别用于传输主环和子环的协议报文。主环协议报文和子环COMMON-HEALTH报文在主协议VLAN中传播,其它的子环协议报文在子协议VLAN中传播。

■ FRRP业务VLAN
业务VLAN用来传递数据报文。业务VLAN的转发状态由其所对应的FRRP域控制,它可以包含FRRP端口,也可以包含非FRRP端口。FRRP环上的设备会有两个或两个以上的接口接入这个环,这些接口被统称为FRRP端口。在同一环网上不同的FRRP域配置不同的业务VLAN,各FRRP域分别独立计算自己环上端口的转发状态。

■ FRRP端口角色 
FRRP端口又分为三种端口,主端口、从端口以及边缘端口。主环上对于传输节点来说主端口和从端口并无区别,而针对主节点,协议报文从主端口发送,到从端口接收,并阻塞从端口。

1) 主端口和从端口

控制节点和转发节点各自有两个端口接入FRRP环中,一个为主端口,另一个为从端口,端口的角色由用户的配置决定。

控制节点的主端口和从端口在功能上是有区别的。控制节点从其主端口发送HEALTH报文,如果能够从从端口收到该报文,说明本节点所在FRRP环网完整,阻塞从端口以防止数据环路;如果在规定时间内收不到该报文,说明环网故障,放开从端口以保证环上所有节点的正常通信。

转发节点的主端口和从端口在功能上没有区别,端口的角色同样由用户的配置决定。

2)公共端口和边缘端口

主公共结点(辅公共结点)接入子环的端口为边缘端口,接入主环的两个端口为公共端口,主公共结点上公共端口与辅公共结点上公共端口之间的链路被称为公共链路,公共端口和边缘端口的角色由用户的配置决定。由于FRRP协议将整个主环看作是子环上的一个传输节点,从而公共链路被看成是主环的内部链路,链路的状态变化只通知主环控制节点进行处理。

■ FRRP节点角色

1) 控制节点

FRRP环上每台设备都称为一个FRRP节点,每个FRRP环上必须有且仅有一个控制节点,如图1中的SW1是主环的控制节点,SW4是子环的控制节点。控制节点会主动发送探测报文来检查链路状态。控制节点有如下两种状态:

SUCCESSFUL State(完整状态)
当环网上所有的链路都处于UP状态,控制节点可以从从端口收到自己发送的HELLO报文,说明链路处于无故障状态,此时控制节点会阻塞从端口以防止数据报文在环形拓扑上形成广播环路。

FAULT State(故障状态)
当环网上有链路处于故障状态时,控制节点处于FAULT状态,此时控制节点的从端口放开对数据报文的阻塞,以保证环网上的通信不中断。

2) 转发节点

FRRP环上除控制节点外的所有其它节点是转发节点。转发节点负责传播协议报文,并监测自己的邻近链路的状态。若探测到链路故障,则主动向环网发送协议报文,把链路DOWN事件通知控制节点。转发节点有如下两种状态:

Link-Up State(UP 状态)
转发节点的主端口和从端口均处于UP状态时,就说转发节点处于Link-Up状态。

Link-Down State(Down 状态)
转发节点的主端口或从端口处于Down状态时,就说转发节点处于Link-Down状态。

PRE-RECOVER State(临时阻塞状态)
转发节点的主端口或副端口处于阻塞状态时,就说传输节点处于Pre-forwarding状态。

3) 主公共结点 和 辅公共结点  

子环和主环相交时有两个交点,这两个交点处的设备其中一个叫做主公共结点,另外一个叫做辅公共结点。主公共结点与辅公共结点必须成对配置。主公共结点或辅公共结点是设备在子环上的角色,其在主环上的角色为控制节点或转发节点。主公共结点和辅公共结点都是特殊的转发节点,具有三种状态,具体如下:

Link-Up State(UP 状态)
边缘端口是指不直接与任何交换机连接,也不通过端口所连接的网络间接与任何交换机相连的端口。

因此,边缘端口处于UP状态时,就说主公共结点(辅公共结点)处于Link-Up状态。

Link-Down State(Down 状态)
边缘端口处于Down状态时,就说主公共结点(辅公共结点)处于Link-Down状态。

PRE-RECOVER State(临时阻塞状态)
边缘端口处于阻塞状态时,就说主公共结点(辅公共结点)处于PRE-RECOVER状态。

FRRP主要报文类型如下:

报文类型

说明

HEALTH

健康检测报文,由控制节点发起,对网络进行环路完整性检测。

LINK-OK

链路UP报文,由发生直连链路状态UP的转发节点、主公共结点或者辅公共结点发起,通知控制节点环路上有链路恢复。

LINK-FAULT

链路DOWN报文,由发生直连链路状态DOWN的转发节点、主公共结点或者辅公共结点发起,通知控制节点环路上有链路DOWN,物理环路消失。

LINK-DOWN-FLUSH-FDB

刷新FDB报文,由控制节点发起,通知转发节点、主公共结点或者辅公共结点更新各自MAC地址转发表。

SUCCESSFUL-FLUSH-FDB

环网恢复刷新FDB报文,由控制节点发起,通知转发节点、主公共结点或者辅公共结点更新各自MAC地址转发表,同时通知转发节点放开临时阻塞端口。

COMMON-HEALTH

主环完整性检查报文,由子环的主公共结点发起,同子环的辅公共结点接收,子环通过此报文检查其所在域主环的环路完整性。

MOTHER-FAULT

主环故障通知报文,当子环的辅公共结点在规定时间内收不到主公共结点发送的COMMON-HEALTH报文时发起,向主公共结点报告其所在域主环发生故障。

表1 FRRP协议报文类型列表

2.2  FRRP协议特点

健康监测机制
环上的控制节点会周期性(由控制节点的health定时器设定)的从主端口发送HEALTH报文,依次经过各传输节点在环上传播,检测环网状态。如果在规定时间内,控制节点在从端口接收到HEALTH报文,说明环上所有链路正常,环网状态完整。为了防止形成广播环路,控制节点阻塞其从端口,如下图2所示。

\
图2  环网完整状态检测机制示意图

如果在规定时间内收不到HEALTH报文,认为环上链路发生故障。控制节点将状态切换到Fault状态,放开从端口,并从主、从端口发送LINK-DOWN-FLUSH-FDB报文通知环上所有转发节点刷新MAC和ARP表项。

这种机制保证了环网在任何异常的情况下都能被检查出来,保证了环网发生异常后的连通性和快速处理机制。

端口事件高速处理
环路上各节点监测环上端口状态, 一旦发现端口状态变更,环上节点以快速中断的形式将事件上报,并且上报控制平面后,控制平面会以最高优先级处理,整个过程不超过1ms,这样就保证的事件处理的及时性,加快了环网的收敛速度,具体的处理过程如下:

端口Down 事件:
当控制节点主端口Down 后,控制节点立即放开从端口,并从从端口发送LINK-DOWN-FLUSH-FDB报文,通知环上所有转发节点刷新MAC和ARP表项。当转发节点上的FRRP端口DOWN时,该节点将从其他状态为UP的FRRP端口发送LINK-FAULT报文通知(LINK-FAULT上报过程如图3所示)。控制节点收到LINK-FAULT报文后,放开从端口,将状态切换到Fault状态。由于网络拓扑发生改变,为避免报文定向错误,控制节点还需要刷新MAC和ARP表项,并从主、从端口发送LINK-DOWN-FLUSH-FDB报文通知所有转发节点刷新MAC和ARP表项。

\
图3 转发节点链路中断上报示意图

端口Up 事件:
转发节点端口恢复的瞬间,将从其他状态为UP的FRRP端口发送LINK-OK报文通知控制节点(如图4所示)。控制节点收到后,将阻塞从端口,将状态迁移回SUCCESSFUL状态。由于FRRP环拓扑已经改变,控制节点要刷新MAC和ARP表项。

\
图4 转发节点链路恢复处理过程示意图

协议报文快速传递
传统的协议报文都要能过控制平面处理后转发,为了提高收敛速度,FRRP协议报文使用控制平面主动复制接收,数据平面高速传递的方式来处理, 如果设备结点需要对某个类型的协议报文进行处理,就通过配置策略的方式来复制一份协议报文到控制平面,同时,协议报文通过数据平面的高速转发机制传递到其它的相关环上结点处理。FRRP协议的LINK-DOWN-FLUSH-FDB报文和SUCCESSFUL-FLUSH-FDB报文均是采用这种机制处理,这样保证了FRRP协议的高速收敛。

以上协议处理机制使FRRP环网具备了收敛时间不超过20ms、环网无最大节点数限制以及环网收敛速度和节点数无关的特点。

2.3  FRRP协议工作机制

在实际的组网过程中,往往需要通过添加子环,来备份主环链路;主环遇到链路故障时,子环可以在很短的时间内检测到主环链路异常,通过将阻塞端口开放,使业务报文通过子环完成正常转发,保护网络环境畅通。FRRP协议的工作机制通过如下图5的组网详细说明:

子环周期检测,保障环网畅通
在拓扑结构上,主环与子环相交,形成相交环组网,但在逻辑上,子环作为一个独立的FRRP环存在,因此环的自我检查机制与单环组网相同。

图5所示的组网中,Ring1为主环,由SW1-SW2-SW3构成,两个子环Ring 2和Ring 3借助主公共结点和辅公共结点相互连接,本身就形成了一个环路。每个子环的协议报文在主环中有2条通路,分别为SW2-SW3和SW2-SW1-SW3。在主环完整时,Ring2控制节点从端口处于阻塞状态,只有SW2-SW3是通的。主环故障时,如果故障发生在SW2-SW1-SW3上,则SW2-SW3是通的;如果故障发生在SW2-SW3上,则SW2-SW1-SW3是通的,因此,在任意时刻,RING2的两条通路中,最多只有一条是通的,这样就避免了子环协议报文在主环中形成环路。如果RING2的两条通路全部中断时,RING2的控制节点收不到自己发出的HEALTH报文,于是Fault定时器超时,控制节点放开从端口,这样RING2可以获得最大的通信通路,且不会形成环路。

\
图5  双子环组网图

子环辅助主环检测,保障环网畅通

(1)检测主环链路状态:
子环的主公共结点通过和主环相连的两个端口周期性向主环内发COMMON-HEALTH报文,依次经过环上各节点发往辅公共结点,如图6所示。如果辅公共结点在规定时间内能够收到COMMON-HEALTH报文,表明至少有1条子环在主环中的通路正常,子环报文可以正常通过。否则,辅公共结点如果收不到COMMON-HEALTH报文,说明2条子环在主环中的通路全部中断,子环报文无法通过。

\
图6  主公共结点向辅公共结点发送COMMON-HEALTH示意图

(2)主环链路异常:
辅公共结点检测到2条子环在主环中的通路全部中断后,立即从边缘端口通过子环链路向主公共结点发送MOTHER-FAULT报文。如图7所示,如果此时子环上无故障,主公共结点能够收到MOTHER-FAULT,立即阻塞自己的边缘端口,如果子环上存在故障,主公共结点的边缘端口不会被阻塞。MOTHER-FAULT报文是周期性发送的,如果主公共结点收到,其边缘端口继续阻塞;如果在规定时间内收不到报文,边缘端口自行放开。

\
图7 主环链路异常导致子环Failed示意图

(3)子环故障,状态变化:
由于两条子环在主环中的通路全部中断,因此子环协议报文无法在主环中传输,控制节点收不到自己发出的HEALTH报文,于是,放开从端口,迁移到Fault状态。

(4)主环链路恢复:
主环故障恢复的同时,子环在主环中的通路得到恢复,辅公共结点不再报告MOTHER-FAULT报文。如果子环本身没有故障,其控制节点重新收到自己发出的HEALTH报文,于是阻塞从端口,切换到Successful状态,如图8所示。子环恢复后,控制节点会从主端口发送SUCCESSFUL-FLUSH-FDB报文。主公共结点收到报文后,如果其边缘端口处于阻塞状态,立即放开边缘端口,全网通信恢复。如图9所示。

子环在主环中的通路恢复时,如果此时子环存在故障,则子环无法恢复。此种情况下子环控制节点不会发送SUCCESSFUL-FLUSH-FDB报文,如果主公共结点的边缘端口处于阻塞状态,该端口只能在Fault定时器超时后自行放开。

\
图8 主环链路恢复示意图

\
图9 子环主公共结点放开边缘端口示意图

3  FRRP典型组网

3.1  单环多域,实现环网负载分担

网络拓扑中只有一个环,在一个环网中可能同时存在多个VLAN的数据流量,在环上配置多个FRRP域,各个域上的FRRP环配置相应的业务VLAN。不同的FRRP域发送不同VLAN的流量,实现不同VLAN的数据流量在这个FRRP环网中的拓扑不同。FRRP域的保护VLAN必然与环上FRRP端口VLAN相同,在转发的过程中,报文会根据自身VLAN查找相应端口并与之匹配,进行转发。因而,就会自动选择与之匹配的FRRP域进行转发操作。如图10所示,由SW1-SW5组成的环网上配置了两种环。若从SW2上来的流量,从SW4转出。如果该流量吻合域1的业务VLAN,则走顺时针方向;若吻合域2的业务VLAN,则走逆时针方向,因而实现链路负载分担的效果。 

\
图10 单环多域环网示意图

 

3.2  相切环组网,提供高可靠接入

网络拓扑中,两个环通过一个节点衔接,构成了相切环组网。相切的两个环需属于不同的FRRP域。这种组网的典型的应用就是高可靠接入,例如企业环网中的汇聚环和接入环相连。通过搭建相切环组网,可以实现环网之间链路备份的效果。当出现链路故障时,迅速切换链路,保证环网间的流量正常转发。

\
图11 相切环典型组网

3.3  相交环组网,提供重点链路备份

网络拓扑中有两个及两个以上的环,但是各个环之间有两个公共节点。相交的两个环位于同一FRRP域中,其中的一个环需为主环,这种组网对典型的应用就是提供对重要链路备份。如图12所示,若从SW2上来的流量,从SW4转出,如果SW3-SW5之间一旦发生链路故障,子环在短时间内发现异常并放开从端口,保证流量正常转发。

 \
图12 相切环典型组网

迪普订阅号 迪普服务号