目录
1.7.1 SBFD的由来
目前BFD技术相对成熟,但BFD for Locator需要手工静态部署,需要人工收集各节点的Locator路由信息,然后部署BFD for Peer-IPv6(Locator)会话,当业务发生变更时也需要人工增删改对应的配置。当设备的Locator数量较多或者VPN互访业务的相关设备数量很多时,人工收集信息和配置的工作量很大,业务变更繁琐,运维困难。SBFD(Seamless Bidirectional Forwarding Detection)是BFD的一种简化机制,SBFD简化了BFD的状态机,缩短了协商时间,支持业务动态触发按需创建SBFD for Locator,提高了整个网络的灵活性,能够支撑SRv6 BE检测。
1.7.2 SBFD工作原理
SBFD工作原理如下图所示,SBFD分为发起端和反射端,在链路检测之前,发起端和反射端通过互相发送SBFD控制报文(SBFD Control Packet)通告SBFD描述符(Discriminator)等信息。链路检测时,发起端主动发送SBFD报文,反射端根据本端情况环回此报文,发起端根据反射报文决定本端状态。
发起端作为检测端,有SBFD状态机机制和检测机制。发起端状态机只有Up和Down状态,发出的报文也只有Up和Down状态,只能接收Up或Admin Down状态报文。
SBFD报文由发起端首先向反射端发送,报文初始状态为Down,报文目的端口号为7784。
反射端无SBFD状态机,无检测机制,不会主动发送SBFD Echo报文,仅用于构造环回SBFD报文。
反射端接收到发起端的SBFD报文,检查报文中SBFD描述符是否与本地配置的全局SBFD描述符匹配,不匹配则丢弃;如果匹配并且反射端处于工作状态,则构造环回SBFD报文,反射端不处于工作状态,则将报文状态置为Admin Down。
1.7.3 BFD for SRv6 BE实现过程
SBFD应用到SRv6 BE场景检测时,主要有SBFD for BGP公网IPv4/IPv6 over SRv6 BE、L3VPNv4/L3VPNv6 over SRv6 BE、EVPN L3VPNv4/EVPN L3VPNv6 over SRv6 BE和EVPN L2VPN over SRv6 BE这几种场景。
以CE1到CE2方向转发数据为例,SBFD for SRv6 BE的实现过程描述如下:
- 在各个PE上配置SRv6 Locator信息和SBFD的描述符(Discriminator)信息。PE2和PE3收到CE2发布的路由后,会通过BGP邻居关系发布给PE1,此时BGP携带SRv6 Locator信息和SBFD的描述符信息。
- PE1上分别从PE2和PE3上接收到1条BGP路由。当PE1上使能SBFD for SRv6 BE检测后,PE1上自动创建两个SBFD for Locator会话,反射端分别是PE2和PE3。
- 当某条链路或者某台设备发生故障时,PE1会快速检测到故障发生,使数据流量切换到其他路径,比如FRR保护路径。
1.7.4 BGP BFD描述符属性携带SBFD的描述符
BGP路由通过BFD描述符属性携带SBFD反射端的描述符,该BFD描述符属性的格式如下图
字段名 |
长度 |
含义 |
---|---|---|
Attr Flags |
8比特 |
公共属性。 |
Type(38) |
8比特 |
BFD Discriminator。 |
Length |
16比特 |
BFD描述符属性长度。 |
Type(176) |
8比特 |
用于检测Locator。 |
SBFD Discriminator |
32比特 |
SBFD反射端描述符。 |
Type(1) |
8比特 |
源IP地址。 |
Length(16) |
8比特 |
Locator的长度为16字节。 |
Locator |
32比特 |
Locator信息。 |