DRNI基本概念与流量转发

本文摘自新华三服务公众号,用于自己学习。

一、 DRNI产生背景与优势

    普通聚合的链路只能够在一台设备上,只能提供链路级的保护,当设备故障以后,普通聚合将无法工作,所以需要设备级保护的技术。DRNI(Distributed Resilient Network Interconnect,分布式弹性网络互连)作为一种跨设备链路聚合的技术,除了具备增加带宽、提高链路可靠性、负载分担的优势外,还具备以下优势:

   1. 更高的可靠性

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

   2. 简化组网及配置

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

   3. 独立升级

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

 

二、DRNI基本原理

DRNI是基于IEEE P802.1AX协议的跨设备链路聚合技术。DRNI将两台物理设备虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。DRNI主要应用于双归接入组网,将可靠性从链路级提高到设备级。

 

1、DRNI网络模型

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

pastedGraphic.png

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

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

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

DR设备间通过Keepalive链路检测邻居状态。

如果一台外部设备仅接入DR系统的其中一台DR设备,则该设备称为单挂设备,这种接入方式称为单归接入。

DRNI组网中,部分业务功能(例如生成树)需要统一在一台设备上处理,DRNI对DR设备进行了角色划分:

1. None:设备启动时的状态,无设备角色。

2. Primary设备:主设备,负责处理业务模块报文。

3. Secondary设备:从设备,将业务模块报文透传到主设备。

 

2、DRCP协议

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

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

DRCP超时时间是指IPP口或者DR接口等待接收DRCPDU的超时时间。在DRCP超时时间之前,如果本端IPP口或者DR接口未收到来自对端DR设备的DRCPDU,则认为对端DR设备IPP口或者DR接口已经失效。DRCP超时时间同时也决定了对端DR设备发送DRCPDU的速率。DRCP超时有短超时(3秒)和长超时(90秒)两种:

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

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

 

3、Keepalive和MAD机制

DR设备间需要提供一条专有的Keepalive链路,用于检测对端设备是否故障。Keepalive报文主要用于IPL故障时的双主检测。如果在指定时间内,未收到邻居设备发送的Keepalive报文时:

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

2. 如果IPL链路状态为up,则认为Keepalive链路状态为down。此时主从设备正常工作,同时设备打印日志信息,提醒用户检查Keepalive链路,避免无法检测到对端设备故障。

Keepalive相关日志:

pastedGraphic_1.png

IPL故障后,为了防止从设备继续转发流量,此时将从设备上除DRNI保留接口以外的接口置于DRNI MAD DOWN状态。

DRNI保留接口包括系统保留接口和用户配置的保留接口。系统保留接口包括:

1. IPP口

2. IPP口所对应的二层聚合接口的成员接口

3. DR口(支持情况跟版本相关)

4. 管理以太网接口

当IPL故障恢复后,为了防止丢包,从设备需要在延迟恢复时间内完成表项(MAC地址表、ARP表等)同步,其后该设备上处于DRNI MAD DOWN状态的接口将恢复为up状态。

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

MAD状态查看:

pastedGraphic_2.png

 

4、DR系统建立

DR系统建立过程如下:

1.通过IPL定期发送DRCP报文,判断这两台设备是否可以组成DR系统。

    a.DR设备的系统MAC地址必须相同

    b.DR设备的系统编号必须不同

    c.DR设备的系统优先级必须相同

2.配对成功后,两端设备会确定出主从状态。先比较DR设备角色优先级,值越小优先级越高,优先级高的为主设备。如果优先级相同,则比较两台设备的桥MAC地址,桥MAC地址较小的为主设备。

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

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

pastedGraphic_3.png

如果系统已经建立:

1. 修改影响DR建立的参数(系统优先级、系统编号、系统mac地址),超时时间后生效

2. 修改影响角色选举的立即生效(角色优先级)

 

5、一致性检查功能

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

目前DRNI支持对两种类型的配置一致性检查:

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

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

查看配置一致性检查结果:

pastedGraphic_4.png

查看接口type1配置一致性信息:

pastedGraphic_5.png

查看全局type1配置一致性检查结果:

pastedGraphic_6.png

 

 

以上是DRNI的基本概念,两台设备形成DR系统实现设备级冗余,那DRNI系统是如何进行流量转发的呢?接下来让我们探究一下DRNI对不同流量的转发过程。

 

 DRNI流量转发

 

1、用户侧广播

非DR广播流量:

pastedGraphic_7.png

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

 

DR广播流量:

pastedGraphic_8.png

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

设备通过广播流程,学习MAC/ARP等表项;DR设备间会实时平滑表项,最终DR设备间转发表项将一致。

根据IPP和DR单向隔离机制,不管是非DR侧设备发起的广播流量还是DR侧设备发起的广播流量,广播到IPL口的流量都不会从对端设备的DR口再次广播出去,可以去单挂口

 

2、用户侧单播

非DR单播流量:

pastedGraphic_9.png

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

 

DR单播流量:

pastedGraphic_10.png

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

 

DR设备对已知单播做本地转发,正常情况下不会跨IPL链路转发,两边会同步DR侧表项。

DR设备按照本地转发优先原则将其转发。本地转发优先是指当接收流量的DR设备上存在对应的转发表项,则只在该设备上转发流量,不向IPL链路上转发。

为了保证L3流量的本地转发,VLAN虚接口MAC和VRRP实MAC都会同步给Peer DR设备。

 

3、网络侧流量

网络侧广播流量:

pastedGraphic_11.png

Device D会将外网的广播流量发送到每一个用户侧端口,且由于IPP与DR组成员端口存在单向隔离机制,到达Device E的流量不会向Device B转发。

 

网络侧单播流量:

pastedGraphic_12.png

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

 

 

总结

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

posted @ 2022-06-02 17:06  爱壮壮的小帅  阅读(3090)  评论(0)    收藏  举报