选择区域语言: EN CN HK

DRNI技术白皮书

Copyright © 2018 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,

并不得以任何形式传播。本文档中的信息可能变动,恕不另行通知。

H3C_彩色.emf


1 概述·· 1

1.1 产生背景·· 1

1.2 技术优点·· 1

2 DRNI技术实现·· 1

2.1 DRNI网络模型·· 1

2.2 DRNI系统建立和维护·· 2

2.2.1 DR系统建立及工作过程·· 2

2.2.2 DRCP协议·· 3

2.2.3 Keepalive机制·· 4

2.2.4 MAD机制·· 4

2.2.5 配置一致性检查功能·· 4

2.3 流量转发·· 6

2.3.1 来自非DR组成员端口的BUM流量·· 6

2.3.2 来自DR组成员端口的BUM流量·· 6

2.3.3 来自非DR组成员端口单播流量·· 7

2.3.4 来自DR组成员端口的单播流量·· 7

2.3.5 来自外网侧的BUM流量·· 7

2.3.6 来自外网侧的单播流量·· 8

2.4 DRNI故障处理机制·· 9

2.4.1 DR接口故障处理机制·· 9

2.4.2 IPL故障处理机制·· 9

2.4.3 设备故障处理机制·· 10

2.4.4 上行链路故障处理机制·· 10

3 EVPN支持DRNI 11

3.1 功能简介·· 11

3.2 工作机制·· 11

3.2.1 共用虚拟VTEP地址·· 11

3.2.2 使用不同的BGP对等体地址·· 12

3.2.3 同步MAC地址和ARP信息·· 12

3.2.4 通告BGP EVPN路由·· 12

3.2.5 备份用户侧链路·· 12

3.3 流量转发·· 13

3.4 故障处理机制·· 13

4 典型组网应用·· 15

4.1 单级DRNI场景·· 15

4.2 多级DRNI互联场景·· 15

4.3 DRNI与STP结合应用场景·· 16

4.4 DRNI与VRRP结合应用场景·· 17

4.5 EVPN支持DRNI 18

5 参考文献·· 19


1 概述

1.1 产生背景

普通聚合的链路只能够在一台设备上,只能提供链路级的保护,当设备故障以后,普通聚合将无法工作,所以需要设备级保护的技术。

1.2 技术优点

DRNI(Distributed Resilient Network Interconnect,分布式弹性网络互连)作为一种跨设备链路聚合的技术,除了具备增加带宽、提高链路可靠性、负载分担的优势外,还具备以下优势:

· 更高的可靠性

把链路可靠性从单板级提高到了设备级。

· 简化组网及配置

提供了一个没有环路的二层拓扑,同时实现冗余备份,不再需要繁琐的生成树协议配置,极大地简化了组网及配置。

· 独立升级

两台设备可以分别进行升级,保证有一台设备正常工作即可,对正在运行的业务几乎没有影响。

2 DRNI技术实现

DRNI是一种跨设备链路聚合技术,将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。

2.1 DRNI网络模型

图1所示,Device A与Device B形成负载分担,共同进行流量转发,当其中一台设备发生故障时,流量可以快速切换到另一台设备,保证业务的正常运行。

图1 DRNI网络模型示意图

DR设备在DR系统中互为邻居,其中Device A为主设备,Device B为从设备。DRNI为每个DR设备定义了以下几个接口角色:

· DR接口(Distributed Relay interface,分布式聚合接口):与外部设备相连的二层聚合接口。与外部设备上相同聚合组相连的DR接口属于同一DR组(Distributed-Relay group,分布式聚合组)。如图1所示,Device A上的二层聚合接口1和Device B上的二层聚合接口2属于同一DR组。DR组中的DR接口由多条链路聚合组成,且具有相同的DR组编号。

· IPP(Intra-Portal Port,内部控制链路端口):连接对端DR设备用于内部控制的接口。每台DR设备只有一个IPP口。IPP间的链路为IPL(Intra-Portal Link,内部控制链路),DR设备通过IPL交互协议报文及传输数据流量。一个DR系统只有一条IPL。

2.2 DRNI系统建立和维护

DR设备间通过交互DRCP报文和Keepalive报文建立和维护DR系统。在DR系统正常工作时,DR系统的主从设备负载分担共同进行流量转发。如果DR系统中出现故障(无论是接口故障、链路故障还是设备故障),DR系统都可以保证正常的业务不受影响。

2.2.1 DR系统建立及工作过程

如图2所示,Device A和Device B之间DR系统建立及工作过程如下:

(1) 当DR设备完成DR系统参数配置后,两端设备通过IPL链路定期发送DRCP报文。当本端收到对端的DRCP协商报文后,会判断DRCP协商报文中的DR系统配置是否和本端相同。如果两端的DR系统配置相同,则这两台设备组成DR系统。

(2) 配对成功后,两端设备会确定出主从状态。先比较DR设备角色优先级,值越小优先级越高,优先级高的为主设备。如果优先级相同,则比较两台设备的桥MAC地址,桥MAC地址较小的为主设备。主从协商后,DR设备间会进行配置一致性检查。

(3) 两端设备通过Keepalive链路周期性地发送Keepalive报文检测邻居状态。

(4) DR系统开始工作后,两端设备之间会实时同步对端的信息,例如MAC地址表项、ARP表项,这样任意一台设备故障都不会影响流量的转发,保证正常的业务不会中断。

图2 DRNI建立及工作过程示意图

2.2.2 DRCP协议

DRNI通过在IPL上运行DRCP来交互分布式聚合的相关信息,以确定两台设备是否可以组成DR系统。运行该协议的设备之间通过互发DRCPDU(Distributed Relay Control Protocol Data Unit,分布式聚合控制协议数据单元)来交互分布式聚合的相关信息。

1. DRCPDU的交互

两端DR设备通过IPL链路定期交互DRCP报文。当本端DR设备收到对端DR设备的DRCP协商报文后,会判断DRCP协商报文中的DR接口编号及DRNI系统配置是否和本端相同。如果两端的DRNI系统配置均相同,则这两台设备可以组成DR系统。

2. DRCP超时时间

DRCP超时时间是指IPP口或者DR接口等待接收DRCPDU的超时时间。在DRCP超时时间之前,如果本端IPP或者DR接口未收到来自对端DR设备的DRCPDU,则认为对端DR设备IPP口或者DR接口已经失效。

DRCP超时时间同时也决定了对端DR设备发送DRCPDU的速率。DRCP超时有短超时(3秒)和长超时(90秒)两种:

· 若本端DRCP超时时间为短超时,则对端DR设备将快速发送DRCPDU(每1秒发送1个DRCPDU)。

· 若本端DRCP超时时间为长超时,则对端DR设备将慢速发送DRCPDU(每30秒发送1个DRCPDU)。

2.2.3 Keepalive机制

DR设备间通过Keepalive链路检测邻居状态,即通过交互Keepalive报文来进行IPL故障时的双主检测。

如果在指定时间内,本端DR设备收到对端DR设备发送的Keepalive报文:

· 如果IPL链路状态为down,则本端和对端DR设备根据收到的Keepalive报文选举主从设备,保证DR系统中仅一台DR设备转发流量,避免两台DR设备均升级为主设备。

· 如果IPL链路状态为up,则DR系统正常工作。

如果在指定时间内,本端DR设备未收到对端DR设备发送的Keepalive报文:

· 如果IPL链路状态为down,则认为对端DR设备状态为down,此时从设备升级为主设备。

· 如果IPL链路状态为up,则认为Keepalive链路状态为down。此时主从设备正常工作,同时设备打印日志信息,提醒用户检查Keepalive链路。

2.2.4 MAD机制

IPL故障后,为了防止从设备继续转发流量,DRNI提供MAD(Multi-Active Detection,多Active检测)机制,将从设备上除DRNI保留接口和IRF保留接口以外的接口置于DRNI MAD DOWN状态。当IPL故障恢复后,为了防止丢包,从设备尽可能在延迟恢复时间内完成表项(MAC地址表、ARP表等)同步,其后该设备上处于DRNI MAD DOWN状态的接口将恢复为up状态。

将Keepalive接口设置为DRNI保留接口,避免Keepalive接口的状态变为DRNI MAD DOWN导致Keepalive链路down,从而造成错误检测。同时,如果以Tunnel接口作为IPP口,则必须将隧道出接口配置为DRNI保留接口,避免该接口的状态变为DRNI MAD DOWN,导致Tunnel处于down状态,IPL无法收发DRCP协议报文。

2.2.5 配置一致性检查功能

DR系统建立过程中会进行配置一致性检查,以确保两端DR设备配置一致,不影响DR设备转发报文。DR设备通过交换各自的配置信息,检查配置是否一致。目前DRNI支持对两种类型的配置一致性检查:

· Type 1类型配置:影响DR系统转发的配置。如果Type 1类型配置不一致,则将从设备上DR接口置为down状态。

· Type 2类型配置:仅影响业务模块的配置。如果Type 2类型配置不一致,从设备上DR接口依然为up状态,不影响DR系统正常工作。由Type 2类型配置对应的业务模块决定是否关闭该业务功能,其他业务模块不受影响。

1. Type 1类型配置

Type 1类型配置一致性检查分为全局配置和DR接口配置。

表1 全局Type 1类型配置

配置

一致性检查内容

IPP口链路类型

Access、Hybrid和Trunk

IPP口的PVID

IPP口的PVID

生成树功能

全局生成树功能是否开启和VLAN内生成树功能是否开启

生成树模式

STP、RSTP、PVST和MSTP

MST域相关配置

MST域的域名、MSTP的修订级别和MSTI与VLAN的映射关系

表2 DR接口Type 1类型配置

配置

一致性检查内容

聚合组的工作模式

静态聚合组和动态聚合组

接口生成树功能

接口上的生成树功能是否开启

接口的链路类型

Access、Hybrid和Trunk

接口的PVID

DR接口的PVID

2. Type 2类型配置

Type 2类型配置一致性检查分为全局配置和DR接口配置。Type 2类型配置仅影响对应的业务模块。

表3 全局Type 2类型配置

配置

一致性检查内容

VLAN接口

VLAN接口处于up状态,且IPP口加入该VLAN

IPP口实际可以通过的携带Tag的VLAN或实际可以通过PVID

IPP口实际可以通过的携带Tag的VLAN或实际可以通过PVID

表4 DR接口Type 2类型配置

配置

一致性检查内容

DR口实际可以通过的携带Tag的VLAN

DR口实际可以通过的携带Tag的VLAN

DR口实际可以通过的不携带Tag的VLAN

DR口实际可以通过的不携带Tag的VLAN

2.3 流量转发

2.3.1 来自非DR组成员端口的BUM流量

如图3所示,Device D收到来自Device A的BUM(Broadcast/Unknown unicast/Unknown Multicast,广播/未知单播/未知组播)流量后,将向相连设备转发。当流量到达Device E时,由于IPP与DR组成员接口存在单向隔离机制,到达Device E的流量不会向Device B转发。单向隔离机制是指从IPL收到的报文不再从DR接口转发。

图3 来自非DR组成员端口的BUM流量转发示意图

2.3.2 来自DR组成员端口的BUM流量

如图4所示,Device B发送的BUM流量会在Device D、Device E之间采用负载分担方式进行转发,此处以Device D转发为例进行说明。Device D收到BUM流量后将向相连设备转发,当流量到达Device E时,由于IPP与DR成员接口存在单向隔离机制,到达Device E的流量不会向Device B转发。

图4 来自DR组成员端口的BUM流量转发示意图

2.3.3 来自非DR组成员端口单播流量

如图5所示,Device A向Device D发送单播流量,Device D按照本地转发优先原则将其转发。本地转发优先是指当接收流量的DR设备上存在对应的转发表项,则只在该设备上转发流量,不向IPL链路上转发。

图5 来自非DR组成员端口的单播流量转发示意图

2.3.4 来自DR组成员端口的单播流量

如图6所示,Device D与Device E形成负载分担,共同对来自DR组成员端口的单播流量进行转发。单播流量按本地转发优先原则,避免对IPL链路造成压力。

图6 来自DR组成员端口的单播流量转发示意图

2.3.5 来自外网侧的BUM流量

如图7所示,对于外网侧发往Device D、Device E的BUM流量,不会在Device D、Device E之间采用负载分担方式转发。以Device D为例,Device D会将外网的BUM流量发送到每一个用户侧端口,且由于IPP与DR组成员端口存在单向隔离机制,到达Device E的流量不会向Device B转发。

图7 来自外网侧的BUM流量转发示意图

2.3.6 来自外网侧的单播流量

如图8所示,对于外网侧发往DR组成员端口的单播流量,流量会负载分担到Device D和Device E,然后发送至Device B。

图8 来自外网侧发往DR组成员端口的单播流量转发示意图

如图9所示,对于网络侧发往非DR组成员端口的单播流量,以发往Device A为例,流量直接发到Device D,由Device D发往Device A。单播流量都按本地转发优先原则,避免对IPL链路造成压力。

图9 来自外网侧发往非DR组成员端口的单播流量转发示意图

2.4 DRNI故障处理机制

2.4.1 DR接口故障处理机制

如图10所示,某DR接口故障,来自外网侧的流量会通过IPL发送给另外一台设备,所有流量均由另外一台DR设备转发,具体过程如下:

(1) Device B的某DR接口故障,外网侧不感知,流量依然会发送给所有DR设备。

(2) Device A的相同DR接口正常,则Device B收到外网侧访问Device C的流量后,通过IPL将流量交给Device A后转发给Device C。

(3) 故障恢复后,Device B的该DR接口up,流量正常转发。

图10 DR接口故障处理机制示意图

2.4.2 IPL故障处理机制

如图11所示,IPL故障但Keepalive链路正常会导致从设备上除DRNI保留接口和IRF保留接口以外的接口处于DRNI MAD DOWN状态。主设备上的DR接口所在聚合链路状态仍为up,从设备上的DR接口所在聚合链路状态变为down,从而保证所有流量都通过主设备转发。一旦IPL故障恢复,处于DRNI MAD DOWN状态的接口经过延迟恢复时间自动恢复为up状态。

图11 IPL故障处理机制示意图

2.4.3 设备故障处理机制

如图12所示,Device A为主设备,Device B为从设备。当主设备故障后,主设备上的聚合链路状态变为down,不再转发流量。从设备将升级为主设备,该设备上的聚合链路状态为up,流量转发状态不变,继续转发流量。主设备故障恢复后,DR系统中由从状态升级为主状态的设备仍保持主状态,故障恢复后的设备成为DR系统的从设备。

如果是从设备发生故障,DR系统的主从状态不会发生变化,从设备上的聚合链路状态变为down。主设备上的聚合链路状态为up,流量转发状态不变,继续转发流量。

图12 设备故障处理机制示意图

2.4.4 上行链路故障处理机制

上行链路故障并不会影响DR系统的转发。如图13所示,Device A上行链路虽然故障,但是外网侧的转发相关表项由Device B通过IPL同步给Device A,Device A会将访问外网侧的流量发送给Device B进行转发。而外网侧发送给Device C的流量由于接口故障,自然也不会发送给Device A处理。

上行链路故障时,如果通过Device A将访问外网侧的流量发送给Device B进行转发,会降低转发效率。此时用户可以配置Monitor Link功能,将DR组成员端口和上行端口关联起来,一旦上行链路故障了,会联动DR组成员端口状态,将其状态变为donw,提高转发效率。

图13 上行链路故障处理机制示意图

3 EVPN支持DRNI

3.1 功能简介

EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)采用DRNI技术将两台物理设备连接起来虚拟成一台设备,使用该虚拟设备作为VTEP(既可以是仅用于二层转发的VTEP,也可以是EVPN网关),可以避免VTEP单点故障对网络造成影响,从而提高EVPN网络的可靠性。目前,本功能仅支持IPv4站点网络,不支持IPv6站点网络。

图14 EVPN支持分布式聚合组网图

3.2 工作机制

3.2.1 共用虚拟VTEP地址

分布式聚合的两台VTEP具有相同的虚拟VTEP地址,对外表现为一台虚拟VTEP设备。其他VTEP使用该地址与这台虚拟设备自动建立VXLAN隧道。

3.2.2 使用不同的BGP对等体地址

两台VTEP使用不同的地址作为BGP对等体地址,分别与其它VTEP建立BGP EVPN邻居。

利用Underlay网络的等价路由机制,其他VTEP可以将发往虚拟VTEP地址的流量负载分担到两台VTEP,从而实现负载分担和冗余备份。

3.2.3 同步MAC地址和ARP信息

作为DR设备的两台VTEP通过IPL连接,在IPL上同步MAC地址和ARP信息,以确保两台VTEP上的MAC地址和ARP信息保持一致。IPL连接既可以是以太网聚合链路,也可以是VXLAN隧道。作为IPL的VXLAN隧道自动与设备上的所有VXLAN关联。

3.2.4 通告BGP EVPN路由

在EVPN中,VTEP之间通过BGP EVPN路由实现自动发现邻居、自动建立/关联VXLAN隧道、通告MAC/IP的可达性。以不同链路作为IPL时,通告的BGP EVPN路由有如下的区别:

· IPL为以太网聚合链路时,DR设备通告的IMET(Inclusive Multicast Ethernet Tag Route,包含性组播以太网标签路由)路由中的下一跳为虚拟VTEP地址,该路由在DR设备上表现为一条源IP为虚拟VTEP地址、目的IP为远端VTEP地址的VXLAN隧道。DR设备通告的MAC/IP发布路由、IP前缀路由的下一条均为虚拟VTEP地址。

· IPL为VXLAN隧道时,DR设备通告两个IMET路由,下一跳分别为虚拟VTEP地址和本设备的BGP对等体地址,该路由在DR设备上表现为两条VXLAN隧道:

¡ 一条源IP为虚拟VTEP地址、目的IP为远端VTEP IP地址;

¡ 一条源IP为BGP对等体地址、目的IP为远端VTEP IP地址。

· 从DR设备的不同接口学习到的MAC地址和ARP信息,在通告MAC/IP发布路由时有所不同:

¡ 从除DR口以外的其他接口学习到的MAC地址和ARP信息,在通告的MAC/IP发布路由时采用BGP对等体地址作为下一跳;

¡ 对于从DR口学习到的MAC地址和ARP信息,在通告MAC/IP发布路由时则采用虚拟VTEP地址作为下一跳。通告IP前缀路由时均以BGP对等体地址作为下一跳。

3.2.5 备份用户侧链路

在用户侧,两台VTEP均通过以太网链路接入同一台虚拟机,跨设备在多条链路间建立二层聚合接口,将该聚合接口配置为AC(Attachment Circuit,接入电路),从而避免单个AC故障导致虚拟机无法访问网络。

· IPL为以太网聚合链路时,用户侧链路备份机制为:将二层聚合接口配置为AC后,VTEP会在IPL上自动创建具有相同报文匹配规则、关联相同VSI的AC。当一台VTEP上的AC故障后,从VXLAN隧道上接收到的、发送给该AC的报文将通过IPL转发到另一台VTEP,该VTEP根据IPL上配置的AC判断报文所属VSI,并转发该报文,从而保证转发不中断。

· IPL为VXLAN隧道时,用户侧链路备份机制为:如果一台VTEP上的AC故障,则该VTEP从VXLAN隧道上接收到发送给故障AC的报文后,为报文添加VXLAN封装(封装的VXLAN ID为故障AC所属VSI对应的VXLAN ID),并通过作为IPL的VXLAN隧道将其转发到另一台VTEP。该VTEP根据VXLAN ID判断报文所属的VSI,并转发该报文。

3.3 流量转发

在EVPN支持DRNI组网中,VTEP对于已知单播流量的转发与DRNI组网中DR设备的处理一致。在转发从IPL接收的BUM流量时,VTEP的处理与DRNI组网中DR设备的处理略有不同。如图15所示,VTEP 1判断数据帧所属的VXLAN,通过该VXLAN内除接收接口外的所有本地接口、VXLAN隧道和IPL转发该数据帧,VTEP 2从IPL收到该数据帧后将只会转发给相同VXLAN内非DR成员接口的AC。

图15 转发BUM流量示意图

3.4 故障处理机制

如图16所示,IPL为以太网聚合链路的EVPN组网中,某AC故障,来自网络侧的流量会通过IPL发送给另外一台设备,所有流量均由另外一台DR设备转发,具体过程如下:

(1) VTEP 2的用户侧链路故障,网络侧不感知,流量依然会发送给所有DR设备。

(2) VTEP 2收到网络侧访问Server 2的流量后,会通过IPL上自动创建的AC转发到VTEP 1,VTEP 1根据IPL上自动创建的AC判断报文所属VSI,并将该报文转发给Server 2。

(3) 故障恢复后,VTEP 2的AC up,流量正常转发。

图16 AC故障处理机制示意图一

如图17所示,IPL为VXLAN隧道的EVPN组网中,某AC故障,来自网络侧的流量会通过IPL发送给另外一台设备,所有流量均由另外一台DR设备转发,具体过程如下:

(1) VTEP 2的用户侧链路故障,网络侧不感知,流量依然会发送给所有DR设备。

(2) VTEP 2收到网络侧访问Server 2的流量后,为报文添加VXLAN封装(封装的VXLAN ID为故障AC所属VSI对应的VXLAN ID),然后通过作为IPL的VXLAN隧道将其转发到VTEP 1。VTEP 1根据接收到的报文中携带的VXLAN ID字段判断报文所属VSI,并将该报文转发给Server 2。

(3) 故障恢复后,VTEP 2的AC up,流量正常转发。

图17 AC故障处理机制示意图二

4 典型组网应用

4.1 单级DRNI场景

图18所示,为了保证可靠性,Device C在接入网络时需要考虑链路的冗余备份,虽然可以采用部署MSTP等环路保护协议的方式,但是这种方式下链路的利用率很低,浪费大量的带宽资源。为了实现冗余备份同时提高链路的利用率,在Device A与Device B之间部署DRNI,实现设备的双归属接入。这样Device A与Device B形成负载分担,共同进行流量转发,当其中一台设备发生故障时,流量可以快速切换到另一台设备,保证业务的正常运行。

图18 交换机双归接入组网图

4.2 多级DRNI互联场景

如图19所示,多级DRNI互联可以在保证可靠性、提供链路利用率的同时扩展双归属接入的网络规模,可以在大二层数据中心网络、服务器数量比较多时提供稳定网络环境。同时汇聚层设备作为双活网关,核心层设备和汇聚层设备之间采用DRNI组成聚合链路,保证设备级可靠性。

图19 多级DRNI互联组网图

4.3 DRNI与STP结合应用场景

如图20所示,在接入层设备上部署DRNI,提供接入设备的高可靠性和负载分担;在接入层与汇聚层设备间部署生成树,避免产生环路。

图20 DRNI与STP结合应用场景组网图

4.4 DRNI与VRRP结合应用场景

如图21所示,在接入层设备上部署DRNI,提供接入设备的高可靠性和负载分担;在汇聚层设备部署VRRP,为用户侧提供冗余备份的网关,保证了用户侧流量不中断。当用户侧的流量经过接入层时,通过部署的DRNI对流量进行负载分担,由DRNI决定转发路径,用户不用再在汇聚层的部署VRRP负载均衡模式以实现负载分担,简化了用户配置。

图21 DRNI与VRRP结合应用场景组网图

4.5 EVPN支持DRNI

EVPN支持DRNI组网中,两台VTEP虚拟为一台VTEP,在VTEP之间通过IPL同步MAC地址和ARP信息,以确保两台VTEP上的MAC地址和ARP信息保持一致。IPL连接既可以是以太网聚合链路,如图22所示,也可以是VXLAN隧道,如图23所示。

在下行方向,跨VTEP设备形成链路聚合,实现用户侧链路的备份,从而避免单条以太网链路故障导致虚拟机无法访问网络。

图22 EVPN支持DRNI组网图(以太网聚合链路作为IPL)

图23 EVPN支持DRNI组网图(VXLAN隧道作为IPL)

5 参考文献

· IEEE P802.1AX-REV™/D4.4c:Draft Standard for Local and Metropolitan Area Networks

· RFC 7432:BGP MPLS-Based Ethernet VPN

附件下载