01-BIER配置
本章节下载: 01-BIER配置 (821.57 KB)
目 录
2.7.1 配置BIER承载报文的封装类型、BSL和Max-SI
2.7.3 配置BIERv6封装中BFR的End.BIER SID
2.7.4 配置MSR6封装中BFR的End.RGB SID
2.11.2 使能与指定对等体/对等体组交换携带BIER路径属性路由的能力
传统IP组播和组播VPN技术中,设备需要为每条组播流量分别建立组播分发树,分发树中的每一个节点都需要感知组播业务,并保留组播流状态。例如,公网PIM组播中,需要为每条组播流量建立一个PIM的组播分发树;在NG MVPN中,需要为每条组播流量建立P2MP隧道,也相当于建立一个P2MP组播树。随着组播业务的大规模部署,待维护的组播分发树的数量也急剧增加,组播节点上需要保留大量的组播流状态,当网络发生变化的时候,会导致组播表项收敛缓慢。
同时,单播路由协议、组播路由协议、MPLS协议等多协议在承载网络上并存,增加了承载网络控制平面的复杂度,使得故障收敛速度慢,运维困难,难以向SDN架构网络演进。
BIER(Bit Index Explicit Replication,位索引显式复制技术)是一种新的组播技术,通过将组播报文要发送到的目的节点的集合以BS(Bit String,比特串)的方式封装在报文头部发送,使得网络的中间节点无需感知组播业务和维护组播流状态,只需要根据比特串来实现组播业务的复制和转发,具有良好的业务扩展性。
· 降低控制平面的复杂度:中间节点无需运行PIM等专用组播控制协议,控制平面仅需运行单播路由协议如IGP和BGP,从而简化了网络的控制平面。
· 提升组播业务的扩展性:BIER技术能够建立一种独立于具体组播业务的公共转发表,公网组播和私网组播报文均可通过该表转发。这使得中间节点无需维护组播流状态、不必感知组播业务,从而提高了组播业务的扩展性。
· 提升组播网络的稳定性:因为中间节点不感知组播业务,所以组播业务的变化不会影响到中间节点。这提高了组播网络的稳定性,简化了业务部署和网络运维。
· 降低业务与网络的耦合度:采用分层架构,降低BIER技术与传统链路状态路由协议层之间的耦合度。这不仅促进了现有网络向BIER技术平滑过渡,也有利于业务网络向SDN架构网络演进。
BIER网络的基本元素为支持BIER转发的BFR(Bit Forwarding Router,位转发路由器)。如图1-1所示,BIER网络由以下三类BFR组成:
· BFIR(Bit Forwarding Ingress Router,位转发入口路由器):组播数据流量进入BIER域的节点,负责对进入BIER网络的报文进行BIER封装。
· Transit BFR:组播数据流量在BIER域中转发的中间节点,负责对BIER报文进行转发。
· BFER(Bit Forwarding Egress Router,位转发出口路由器):组播数据流量出BIER域的节点,负责对BIER报文进行解封装,并转发给组播数据流量接收者。
图1-1 BIER网络结构
网络中所有BFR的集合称为BIER域(Domain)。一个BIER域可以划分为一个或者多个BIER子域SD(Sub-domain)。通过Sub-domain ID来区分不同的BIER子域。一个BIER子域内的所有BFIR和BFER统称为BIER边缘设备。
BFR ID用来在一个BIER子域中唯一标识一台BIER边缘设备,Transit BFR无需BFR ID进行标识。
BFR prefix相当于路由协议中的Router ID,用来在BIER子域中标识一个BFR。在同一个BIER子域中,每个BFR必须配置唯一的BFR前缀,且该前缀必须是BIER子域内路由可达的。
BIER用一个特定长度的比特串(Bit String)来表示一组BIER边缘设备,比特串的长度用BSL(Bit String Length)来表示。
Bit String从最右边开始,每一个比特位对应一个BFR ID,如果某个比特位取值为1,则表示报文需要往该BFR ID对应的BIER边缘设备发送。比如,一个BSL为3的比特串最多标识一个BIER子域内三个BIER边缘设备,BFR ID取值分别为1、2和3,那么BFR ID为1的BIER边缘设备可以用“001”来表示。
在BIER中,当使用的BSL长度不足以表示一个BIER子域内配置的BFR ID的最大值时,需要将Bit String分成不同的集合,每个集合通过SI(Set Identifier,集标识)来标识,SI的取值从0开始。
在实际使用中,可以通过指定Max-SI(Max-Set Identifier,最大集标识)来设置SI的数量,Max-SI的取值为“(BFR ID最大值-1)/BSL”的计算结果向下取整。如果BFR ID为从1开始的连续值,那么BFR ID最大值即边缘设备的数量。
比如,BIER子域内有10台边缘设备,BFR ID为从1开始的连续值,则BFR ID最大值为10。如果将BSL配置为4,那么需要分为3个集,分别为SI 0,SI 1和SI 2。其中,Max-SI的取值为2,即“(BFR ID最大值-1)/BSL”的计算结果向下取整部分。
BIRT(Bit Index Routing Table,位索引路由表)是通过IGP协议携带BIER信息(Sub-domain、BSL、BFR ID)在网络上进行泛洪,并根据IGP传递的BIER信息和路由信息生成。该路由表用来指导BIER报文在BIER子域内的转发。
F-BM(Forwarding-Bit Mask,转发比特串掩码)用来表示BFR向下一跳邻居复制发送组播报文时,通过该邻居能到达的BIER子域边缘节点的集合。它通过将该邻居所能到达的所有BIER子域边缘节点的Bit String进行“或”操作后得到。
BIER子域内的组播流量通过查询BIFT(Bit Index Forwarding Table,位索引转发表)来实现逐跳转发,用于建立F-BM与邻居之间的映射关系。BFR上可存在多张BIFT,每张BIFT都由三元组(BSL、SD、SI)唯一确定。
在IETF RFC8279中,BIER架构分为Underlay、BIER和Overlay三层,如图1-2所示。
图1-2 BIER三层架构
Underlay层为传统链路状态路由协议层,通过IGP协议(目前仅支持IS-IS)的扩展TLV属性携带本节点的BIER属性信息在BIER子域内进行泛洪。BFR根据IGP算法生成到本子域内其它BFR前缀的路由,也就是到每个BFR ID的路由,从而建立BIER子域内节点之间的邻居关系以及节点之间的最佳转发路径。
BIER层作为BIER转发的核心层,对BIER转发所需的IGP协议进行了扩展,并指导组播报文在BIER域内完成转发。组播报文的BIER转发过程如下:
(1) BFR将BIER层配置的BIER信息通过IGP协议进行通告。
(2) 基于这些BIER信息的泛洪,沿路BFR生成BIRT,进而生成BIFT。
(3) 当封装有BIER头的组播报文在BIER域进行转发时,BFR根据BIER头中的信息查找BIFT表完成组播报文复制转发。
Overlay层主要负责组播业务控制面信息交互,比如收集BFIR和BFER之间用户组播组的加入和离开信息,当组播报文到达BFIR节点时根据需要到达的BFER组合,并完成该组播报文对应的BIER头的封装;当携带有BIER头的组播报文到达BFER节点时,解封装BIER头并完成后续的组播报文转发。
在BFR上配置的BIER信息(SD、BFR prefix、BFR ID等),通过IGP协议在BIER域内泛洪。IGP根据邻居泛洪的BIER信息计算BIER最短路径树(以BFIR为根,Transit BFR和BFER为叶子)。BFR根据BIER最短路径树,生成BIRT,最终进一步生成用于指导BIER转发的BIFT。
如图1-3所示,当BIER域不支持BIER的节点(Device G)时。该节点会将其所有的子节点作为叶子节点加入到BIER最短路径树,如果子节点不支持BIER,则继续往下迭代到支持BIER的子节点。比如,Device G不支持BIER,Device G会将子节点Device C和Device E的BIER信息传递给Device B,在Device B上生成下一跳邻居为非直连邻居Device C和Device E的BIFT表项信息。
图1-3 BIER控制平面BIFT
对于BIER来说,需要依赖在BFR上配置的BIER信息(SD、BFR prefix、BFR ID等),借助Underlay层的IGP(如OSPF、IS-IS协议)在BIER域内泛洪。IGP根据邻居泛洪的BIER信息计算BIER最短路径树(以BFIR为根,Transit BFR和BFER为叶子)。BFR根据BIER最短路径树,生成BIRT,最终进一步生成用于指导BIER转发的BIFT。
IETF先后通过RFC 8401和RFC 8444分别定义了BIER控制平面的IS-IS和OSPF扩展,用于传递BFR上配置的BIER信息,并于2022年发布RFC 9272更新了相关说明。本文以IS-IS扩展为例进行介绍。
BIER信息(BFR prefix、Sub-domain、BFR ID等信息)通过IS-IS BIER扩展,并在BIER子域中进行发布。收到BIER信息的节点,若支持BIER转发,IS-IS将识别出BIER信息并生成对应的BIFT;若不支持BIER转发,则IS-IS无需识别所收到的BIER信息,直接进行泛洪。
BIER的IS-IS扩展逻辑如表1-1所示,根据RFC 8401定义的BIER信息的发布机制,在应用IS-IS协议时,具体则是通过在某几个TLV中携带一个BIER Info Sub-TLV的方式实现。
表1-1 BIER信息的发布机制
类型 |
说明 |
TLV |
TLV用于发布节点的BFR Prefix,应用IS-IS协议时,所有BIER相关的信息都应该携带在以下TLV中: · 由RFC 5305定义的TLV 135:Extended IP Reachability TLV · 由RFC 5308定义的TLV 236:IPv6 Reachability TLV · 由RFC 5120定义的TLV 235和TLV 237:Multi-Topology Reachable IPv4 Prefixes TLV和Multi-Topology Reachable IPv6 Prefixes TLV |
Sub-TLV |
由RFC 8401定义的BIER Info Sub-TLV,用于发布节点的Sub-domain ID、BFR ID等信息 |
BIER Info Sub-TLV格式如图1-4所示,各字段的含义如表1-2所示。
字段 |
长度 |
说明 |
Type |
8 bits |
Sub-TLV的类型,取值为32,表示BIER Info Sub-TLV |
Length |
8 bits |
BIER Info Sub-TLV长度 |
BAR |
8 bits |
BIER路由算法 |
IPA |
8 bits |
IGP路由算法 |
Sub-domain ID |
8 bits |
BIER子域的ID |
BFR ID |
16 bits |
用来在一个BIER子域中唯一标识一台BIER边缘设备 |
Sub-sub-TLVs |
可变长度 |
可选的Sub-sub-TLV |
在实现的过程中,对于G-BIER、BIERv6和MSR6三种封装类型,新增的Sub-sub-TLV类型如下:
· BIER能力类Sub-sub-TLV:用于发布节点的BIER能力,通告节点的Max-SI和BSL信息。三种封装类型所使用的BIER能力类Sub-sub-TLV形式类似。
· 地址标识类Sub-sub-TLV:用于通告BIER的地址信息,以通知其它邻居在向本节点发送BIER报文时,使用某IPv6地址作为IPv6目的地址。在三种封装类型间有所不同。
¡ G-BIER:用于通告专门用于G-BIER转发的组播策略保留地址MPRA,因此G-BIER所使用的地址标识类Sub-sub-TLV也称作MPRA Sub-sub-TLV;
¡ BIERv6:用于通告End.BIER SID,因此BIERv6所使用的地址标识类Sub-sub-TLV也称作End.BIER Sub-sub-TLV;
¡ MSR6:用于通告End.RGB SID,因此MSR6所使用的地址标识类Sub-sub-TLV也称作End.RGB Sub-sub-TLV。
通过在BIER Info Sub-TLV中新增BIER能力类Sub-sub-TLV发布本节点的BIER能力。该类型的Sub-sub-TLV主要通过携带表1-3所示的字段来通告Max-SI、BSL等信息。
表1-3 BIER能力类Sub-sub-TLV字段说明
字段 |
说明 |
Type |
Sub-sub-TLV的类型 |
Length |
Sub-sub-TLV的长度 |
Max-SI |
SI的最大值,SI的取值从0开始,Max-SI的取值为“(边缘设备数量-1)/BSL”的计算结果向下取整 举例:BIER子域内有10台边缘设备,假如BSL为4,那么需要分为3个集(SI 0,SI 1和SI 2),此时Max-SI取值为2 |
BSL |
比特串长度 |
通过在BIER Info Sub-TLV中新增地址标识类Sub-sub-TLV发布本节点的地址信息,以通知其它邻居在向本节点发送BIER报文时,使用该IPv6地址作为IPv6目的地址。
该类型的Sub-sub-TLV主要通过表1-4所示的字段来通告G-BIER的MPRA、BIERv6的End.BIER或MSR6的End.RGB。
表1-4 BIER MPLS Encapsulation Sub-sub-TLV字段说明
字段 |
长度 |
说明 |
Type |
8 bits |
Sub-sub-TLV的类型 |
Length |
8 bits |
Sub-sub-TLV的长度 |
MPRA |
128 bits |
长度为16字节的MPRA |
End.BIER SID |
128 bits |
长度为16字节的End.BIER SID |
End.RGB SID |
128 bits |
长度为16字节的End.RGB SID |
BFIR需要借助BGP MVPN收集以下信息,用于构建BIER隧道与BIER基本信息的映射关系,并为BFIR提供进行BIER转发的依据。
· SI:根据4类路由中携带的BFR ID和对应BIER子域内配置的BSL的值,计算得到SI。
· BS:借助BGP MVPN收集用户加入和离开消息,生成指定(S,G)对应的BS。
为了更好地规范BIER隧道在BGP MVPN业务的应用,IETF通过RFC 8556定义了该场景下所需要的信息。
对于BIER而言,在应用BGP MVPN时,其信息发布机制也与IS-IS扩展类似,是通过Sub-TLV与Sub-sub-TLV来携带相关信息。
· Sub-TLV:由于BIER模式MVPN场景中,源地址与MVPN实例一一绑定,Sub-TLV通过携带源地址来标识不同的MVPN实例。
· Sub-sub-TLV则主要包括以下几类:
¡ BIER能力类Sub-sub-TLV:与IS-IS扩展类似,用于发布节点的BIER能力,通告节点的Max-SI和BSL信息。三种封装类型所使用的BIER能力类Sub-sub-TLV形式类似。
¡ 地址标识类Sub-sub-TLV:与IS-IS扩展类似,用于通告BIER的地址信息,以通知其它邻居在向本节点发送BIER报文时,使用某IPv6地址作为IPv6目的地址。在三种封装类型间有所不同。
¡ BFR ID范围Sub-sub-TLV:用于通告本AS内已知BFR ID范围的,主要包括如表1-5所示的主要字段。
表1-5 BFR ID范围Sub-sub-TLV字段说明
字段 |
说明 |
Type |
Sub-sub-TLV的类型 |
Length |
Sub-sub-TLV的长度 |
BFR ID start |
BFR ID范围的起始值 |
BFR ID end/BFR ID range |
BFR ID范围的最大值或BFR ID的连续范围 |
对BIER报文进行封装时,会在组播数据报文前面添加新的IPv6基本头。如图1-5所示,IPv6基本头中Next Header取值为60,表明下一个报文头为DOH(Destination Options Header,目的选项头),该DOH中将包含BIER头部,该DOH中,包含DOH的基本四个基本字段和BIER头部,四个基本字段的含义如表1-6所示。
图1-5 BIER报文封装示意图
表1-6 DOH基本字段含义
字段 |
长度 |
说明 |
Next Header |
8 bits |
用来标识下一个报文头的类型 |
Hdr Ext Len |
8 bits |
IPv6扩展头长度 |
Option Type |
8 bits |
用来标识DOH的选项类型,此处指BIER头部的封装类型,H3C目前支持如下三种: · G-BIER(Generalized BIER,通用位索引显式复制) · BIERv6(Bit Index Explicit Replication IPv6 Encapsulation,IPv6封装的比特索引显式复制) · MSR6(Multicast Source Routing over IPv6,IPv6 上的组播源路由) |
Option Length |
8 bits |
选项长度,单位为字节,对BIER而言,即BIER头部的长度 |
BIER头部存在多种封装类型,不同封装类型报文头部的格式略有不同。截止至目前,如表1-7所示,目前支持G-BIER、BIERv6和MSR6三种封装类型。
封装类型 |
简介 |
G-BIER |
G-BIER是中国移动提出的一种通用BIER封装方案,它根据IPv6网络的特点对BIER头进行适配性修改,与IPv6更好地进行融合 |
BIERv6 |
BIERv6是基于Native IPv6的组播方案,结合了IPv6和BIER的优势,可以无缝融入SRv6网络,简化了协议复杂度 |
MSR6 |
MSR6是基于IPv6数据平面的组播方案,将MSR6 BE Domain内的单播和组播业务统一到IPv6数据平面 |
G-BIER是中国移动提出的一种通用BIER封装方案,它根据IPv6网络的特点对BIER头进行适配性修改,与IPv6更好地进行融合。
对于G-BIER报文,IPv6基本头中有如下约定:
· Source Address:源地址需要配置为BFIR的组播服务源地址,该源地址由BFIR的前缀地址和组播服务ID值共同生成。BFIR的前缀地址用来标识BFIR的网络位置,组播服务ID用来标识不同的MVPN实例。组播报文在转发过程中,该源地址保持不变。
· Destination Address:目的地址需要配置为专门用于BIER转发的MPRA(Multicast Policy Reserved Address,组播策略保留地址),该地址要求在子域内路由可达。当BFR收到IPv6报文中的目的地址为本地配置MPRA,则表示需要对该报文进行G-BIER转发。
DOH中包含的G-BIER头部如图1-6所示,其主要字段含义如表1-8所示。其中,Rsv表示保留字段,发送时应设置为全0,接收时应忽略。
图1-6 G-BIER的报文封装示意图
表1-8 G-BIER头部字段介绍
字段 |
长度 |
说明 |
BSL |
4 bits |
取值用1~7来代表不同比特串长度,取值与比特串长度的对应关系如下: · 1:表示比特串长度为64 bits · 2:表示比特串长度为128 bits · 3:表示比特串长度为256 bits · 4:表示比特串长度为512 bits · 5:表示比特串长度为1024 bits · 6:表示比特串长度为2048 bits · 7:表示比特串长度为4096 bits |
SD |
8 bits |
BIER子域ID |
SI |
8 bits |
集标识 |
TTL |
8 bits |
和IP报文中的TTL意义相同,可以用来防止环路 |
Version |
4 bits |
版本号,目前只支持0 |
Entropy |
20 bits |
用来在存在等价路径时,进行路径的选择。拥有相同Bit String和Entropy值的报文,选择同一条路径 |
OAM |
2 bits |
缺省值为0,可用于OAM功能 |
DSCP |
6 bits |
报文自身的优先等级,决定报文传输的优先程度 |
Bit String |
与BSL字段取值有关 |
比特串 |
BIERv6是基于Native IPv6的全新组播方案,BIERv6结合了IPv6和BIER的优势,可以无缝融入SRv6网络,简化了协议复杂度。
将BIER承载报文的封装类型配置为BIERv6时,需要BIER子域内的所有的BFR均支持SRv6。有关SRv6的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
对于BIERv6报文,IPv6基本头中有如下约定:
· Source Address:源地址需要配置为BIERv6隧道的源地址,在组播报文在公网中转发时,该源地址保持不变。
· Destination Address:目的地址需要配置为专门用于BIER转发的End.BIER SID,该地址要求在子域内路由可达。当BFR收到IPv6报文中的目的地址为End.BIER SID,则表示需要对该报文进行BIERv6转发。
对应DOH中包含的BIERv6头部如图1-7所示,其结构遵循RFC 8296中定义的Non-MPLS BIER Header规范,图中使用较深的颜色标注BIERv6头部与G-BIER头部的差异字段。
图1-7 BIERv6的报文封装示意图
BIERv6头部各主要字段含义如表1-9所示。
表1-9 BIERv6头部字段介绍
字段 |
长度 |
说明 |
BIFT ID |
20 bits |
位索引转发表ID,用来唯一标识一张BIFT |
TC |
3 bits |
Traffic Class,流量等级,用于QoS |
S |
1 bit |
可视为保留字段,发送时本字段应设置为1,接收时应忽略本字段 |
TTL |
8 bits |
· 表示报文经过BIERv6转发处理的跳数 · 每经过一个BIERv6转发节点后,TTL值减1 · 当TTL为0时,报文被丢弃 |
Nibble |
4 bits |
可视为保留字段,发送时本字段应设置为0000,接收时应忽略本字段 |
Version |
4 bits |
版本号,目前只支持0 |
BSL |
4 bits |
取值用1~7来代表不同比特串长度,取值与比特串长度的对应关系如下: · 1:表示比特串长度为64 bits · 2:表示比特串长度为128 bits · 3:表示比特串长度为256 bits · 4:表示比特串长度为512 bits · 5:表示比特串长度为1024 bits · 6:表示比特串长度为2048 bits · 7:表示比特串长度为4096 bits |
Entropy |
20 bits |
用来在存在等价路径时,进行路径的选择,拥有相同Bit String和Entropy值的报文,选择同一条路径 |
OAM |
2 bits |
缺省值为0,可用于OAM功能 |
Rsv |
2 bits |
保留字段,发送时应设置为全0,接收时应忽略 |
DSCP |
6 bits |
报文自身的优先等级,决定报文传输的优先程度 |
Proto |
6 bits |
下一层协议标识,用于标识BIERv6头部后面的Payload类型 |
BFIR ID |
16 bits |
BFIR的BFR ID值 |
Bit String |
与BSL字段取值有关 |
比特串 |
MSR6基于IPv6数据平面,将MSR6 BE Domain内的单播和组播业务统一到IPv6数据平面。
利用IPv6路由单播可达的特性,MSR6 BE具备穿透non-BIER节点的能力。如果在MSR6 BE早期部署中,某些路由器不支持MSR6 BE转发但支持IPv6转发,则不支持MSR6 BE转发的路由器将按照IPv6目的地址转发。
对于MSR6报文,IPv6基本头中有如下约定:
· Source Address:源地址需要配置为MSR6隧道的源地址,在组播报文在公网中转发时,该源地址保持不变。
· Destination Address:目的地址需要配置为专门用于BIER转发的End.RGB SID,该地址要求在子域内路由可达。当BFR收到IPv6报文中的目的地址为End.RGB SID,则表示需要对该报文进行MSR6转发。
DOH中包含的MSR6头部如图1-8所示,其结构与RFC 8296中定义的Non-MPLS BIER Header相似,复用了其中一些字段,但部分字段(如Nibble、Proto等)被替换为保留字段,保留字段应设置为0,并在接收时必须被忽略,图中使用较深的颜色标注MSR6头部与BIERv6头部的差异字段。
图1-8 MSR6的报文封装示意图
MSR6头部各主要字段含义如表1-10所示。
表1-10 MSR6头部字段介绍
字段 |
长度 |
说明 |
BIFT ID |
20 bits |
位索引转发表ID,用来唯一标识一张BIFT |
TTL |
8 bits |
· 表示报文经过BIERv6转发处理的跳数 · 每经过一个BIERv6转发节点后,TTL值减1 · 当TTL为0时,报文被丢弃 |
Version |
4 bits |
版本号,目前只支持0 |
BSL |
4 bits |
取值用1~7来代表不同比特串长度,取值与比特串长度的对应关系如下: · 1:表示比特串长度为64 bits · 2:表示比特串长度为128 bits · 3:表示比特串长度为256 bits · 4:表示比特串长度为512 bits · 5:表示比特串长度为1024 bits · 6:表示比特串长度为2048 bits · 7:表示比特串长度为4096 bits |
Entropy |
20 bits |
用来在存在等价路径时,进行路径的选择,拥有相同Bit String和Entropy值的报文,选择同一条路径 |
OAM |
2 bits |
缺省值为0,可用于OAM功能 |
DSCP |
6 bits |
报文自身的优先等级,决定报文传输的优先程度 |
Proto |
6 bits |
下一层协议标识,用于标识BIERv6报文头后面的Payload类型 |
Bit String |
与BSL字段取值有关 |
比特串 |
为了方便描述和理解,本节以Max-SI为0且BSL为4 bits的情况为例进行介绍BIER的转发平面。
根据RFC 8279的定义,如果设备需要转发BIER封装的组播数据,则设备应执行以下动作:
(1) 确定对应的BIER子域、BSL、BS和SI,并根据这些信息获悉需要送达哪些BFER。
(2) 由Underlay层来确认通往每个BFER的下一跳。
(3) 按照下一跳对目标BFER集合进行划分,将下一跳相同的BFER分为一组。
(4) 为每组BFER复制一份组播数据,并将数据转发给下一跳,如果下一跳为空(如路由不可达或)则丢弃数据包。
为了设备能够顺利执行转发动作,RFC 8279定义了BIRT和BIFT。
BIRT即位索引路由表,记录了BFR ID信息和目的节点BFR Prefix及下一跳BFR邻居(BFR-NBR)的映射关系。如图1-9所示,BFR E可以根据BIER组播数据中的BFR ID、SI与BS信息来查找BIRT,获取相应目的节点BFR Prefix和下一跳BFR邻居信息。
图1-9 BIRT示意图
假设BIRT中某几行的SI与BFR-NBR都相同,为了方便的统计转发,BIER将把它们分为一组。因此,可以将这几行对应的BS按照比特位依次进行“或”运算,得到F-BM,用来指导下一步的转发动作。BIFT记录的就是BFR ID信息和F-BM及BFR-NBR的映射关系,是BIRT的衍生品。
比如,对于图1-9所示BFR E上保存的BIRT,第二行和第三行的SI与BFR-NBR都相同,所以通过计算F-BM的方式来将它们分为一组,那么BFR E上就可以创建如图1-10所示的BIFT。
图1-10 BIRT示意图
以图1-11所示组网为例,Device A为BFIR,Device B、C和D则是BFER,Device E与F为Transit BFR。Device A、B、C、D的BFR ID依次为1、2、3、4。
图1-11 BIER转发过程组网示意图
每台BFER的下游都存在接收者,且3个Receiver属于同一个组播组。BIER子域中的每台设备上,都根据IGP协议泛洪的信息建立了BIFT。此外,BFIR还根据以下信息构建了BIER隧道与BIER信息(BSL、SD、SI、BS)之间的映射关系:
· BIER隧道的配置信息:创建选择性隧道或相容性隧道时,配置的BSL与SD。
· 通过BGP MVPN路由学习到的信息:
¡ 根据4类路由中携带的BFR ID和对应BIER子域内配置的BSL的值,计算得到的SI。
¡ 借助BGP MVPN路由,收集用户加入和离开消息,并生成的BS。BS标识的接收设备,也对应BIER隧道目的节点。
如图1-12所示,当作为BFIR的Device A收到由组播源发往该组播组的IP组播报文时,将执行如下动作:
(1) 根据IPv6基本头中的信息,查找组播转发表项,确认对应的出接口和BIER隧道,并根据BIER隧道与BIER信息的映射关系,获悉BIFT ID(由BSL、SD、SI三元组唯一确定)和BS。本例中该BS为1110,记作BS(a0)。
(2) 根据BIFT ID查找对应的BIFT,得知通往三台BFER的下一跳邻居都是Device F。
(3) 将BS(a0)与表中的F-BM逐行进行“位与”计算。逐行计算时,“位与”计算后取值为1的位不再参与后续“位与”计算。如果使用“x”来表示无需参与计算的位,那么逐行计算的详细步骤如下:
¡ 第一行(BFR ID=2):将BS(a0)本行的F-BM进行“位与”计算,得到的结果为1110,记作BS(a1)。
¡ 第二行(BFR ID=3):得到的结果为xxx0。将无需参与计算的位置0后,得到0000,全0结果忽略即可。
¡ 第三行(BFR ID=4):得到的结果为xxx0。将无需参与计算的位置0后,得到0000,全0结果忽略即可。
(4) 按照BIER报文格式,使用BS(a1)封装组播报文,并将组播报文转发给下一跳邻居Device F。
图1-12 BFIR的转发过程示意图
如图1-13所示,当作为Transit BFR的Device F收到Device A转发的IP组播报文时,将执行如下动作:
(1) 通过查看BIER头部中封装的信息,获悉BIFT ID和BS。本例中该BS为1110,记作BS(b0)。需要注意的是,BIERv6和MSR6头部中直接包含BIFT ID,而G-BIER头部中不直接含有BIFT ID,需要根据BS、BSL、SI三元组唯一确定BIFT ID。
(2) 根据BIFT ID查找对应的BIFT,得知通往Device C和D的下一跳邻居是Device E,通往Device B的下一跳邻居为Device B。
(3) 将BS(b0)与表中的F-BM逐行进行“位与”计算。逐行计算时,“位与”计算后取值为1的位不再参与后续“位与”计算。如果使用“x”来表示无需参与计算的位,那么逐行计算的详细步骤如下:
¡ 第一行(BFR ID=2):将BS(b0)与本行的F-BM进行“位与”计算,得到的结果为0010,记作BS(b1)。
¡ 第二行(BFR ID=3):得到的结果为11x0。将无需参与计算的位置0后,得到1100,记作BS(b2)。
¡ 第三行(BFR ID=4):得到的结果为xxx0。将无需参与计算的位置0后,得到0000,全0结果忽略即可。
(4) 将组播报文复制为两份,并按照BIER报文格式分别使用BS(b1)和BS(b2)封装这两份组播报文。
(5) 将两份组播报文分别发送给下一跳邻居Device B和Device E。
图1-13 Transit BFR的转发过程示意图
同为Transit BFR的Device E在收到Device F转发的IP组播报文时,所进行的操作与Device F类似,此处不再赘述。
当作为BFER的Device B收到Device F转发的IP组播报文时,将执行如下动作:
(1) 通过查看BIER头部中封装的信息,获悉BIFT ID和BS。本例中该BS为0010。
(2) 根据BIFT ID查找对应的BIFT,发现只有本节点对应的F-BM与上游发送的BIER报文中的BS进行“位与”操作后不为0,表明本节点为BFER,需要结束BIER转发。
(3) Device B从BIER头部解封装出组播报文后,根据组播转发表项继续转发给下游接收者。
同为BFER的Device C和Device D在收到Device E转发的IP组播报文时,所进行的操作与Device B类似,此处不再赘述。
BIER跨域指BIER网络跨越AS域部署,在进行BIER转发时组播流量会经过多个AS域。IGP协议只能在AS域内泛洪BIER信息,无法使BIER节点形成跨AS域的BIER转发表项。要实现BIER跨域,需要确保BIER节点能够获得其他AS域BIER节点的BIER信息(如BFR ID等信息)。设备支持通过静态配置和BGP路由发布两种方式实现BIER跨域。
通过在BIER节点上手工指定域外BFR邻居以及通过该邻居可到达BIER边缘设备的BFR ID范围,来实现BIER的静态跨域穿越。
利用EBGP可以跨域传递路由信息的优势,使用BGP协议在Underlay网络中跨域传递BIER信息,这些信息可用于指导BIER报文的跨域转发。BGP将BIER信息封装在BGP Update消息中,BGP报文中携带的BIER信息分为两部分:
· BFR prefix:封装在Update消息的NLRI字段中。
· BIER Path Attribute(BIER路径属性):一种新定义的路由属性,该路由属性包含了BIER的BIER子域、BFR ID、BSL、目的地址等信息。
如图1-14所示,BIER网络跨越AS 10和AS 20进行部署,AS 20域内的BIER信息通过IS-IS协议进行泛洪,AS 10域内的BIER信息通过IBGP协议进行泛洪。
(1) ASBR 2将AS 20域内IS-IS协议搜集的BIER信息引入到BGP协议中,通过EBGP会话发布给ASBR 1。
(2) ASBR 1将EBGP路由直接转发给BFIR。
(3) BFIR根据接收到的IBGP路由中携带的BIER信息,生成跨域BIRT转发表项,表项中BFER节点BFR ID对应的BFR前缀是ASBR 2的BFR前缀2::2。在BIER报文转发过程中,BFIR的组播转发下一跳是ASBR 2。
在图1-14所示的跨AS域BIER转发场景中,BFR ID range信息用来帮助BIER节点学习域外的BFR ID,被携带在BGP路由中发布。
图1-14 通过BGP实现BIER跨域示意图
图1-14所示的网络中,BFIR必须获得ASBR 2的路由信息,否则可能会导致BFIR转发BIER报文失败。开启BGP BFR前缀代理功能,可以解决这一问题。在BIER跨域网络中,开启了BGP BFR前缀代理功能的节点称为BFR代理节点。BFR代理节点代理发布跨域的BFR ID range信息,使得域内节点在进行跨域BIER转发时,组播转发下一跳为BFR前缀代理节点,无需获得域外节点的路由信息。
BGP BFR前缀代理功能开启后,BFR代理节点从BGP对等体学习到的携带BIER信息的路由不会直接转发给其他BGP对等体,而是通过以下过程发布:
(4) BGP收到携带BIER信息的路由后,会将BIER信息(包括其中的BFR ID range信息)通告给BIER模块。
(5) BIER模块将BIER信息中的BFR前缀修改为本地节点的BFR前缀,并将从BGP收到的BFR ID range信息进行汇总。
通过修改BFR前缀,BFR代理节点过滤了BFR前缀信息,可以有效防止BFR前缀信息的泄露。例如,运营商部署了跨越省干网和城域网的BIER网络,在省干网的边缘设备上开启BGP BFR前缀代理功能后,城域网内的设备均只能获得BFR代理节点的BFR前缀信息,避免了省干网内其他节点的BFR前缀信息泄露到城域网。
(6) BIER模块将修改后的BIER信息通告给BGP模块,BGP根据该BIER信息重新生成一条携带修改后BIER信息(包括BFR ID range信息)的BGP路由,发送给BGP对等体。
(7) IBGP或EBGP对等体接收到携带BIER信息的BGP路由后,生成跨域BIRT表项。表项中域间边界节点的BFR前缀为BFR代理节点的BFR前缀。
通过上述过程完成路由的发布后,设备在发送跨域BIER报文时,会为报文封装BFR代理节点的地址,将报文先发送给BFR代理节点。BFR代理节点接收到与本节点地址匹配的报文后,根据BIFT表转发该跨域BIER报文。
如图1-15所示,在ASBR 1上开启BGP BFR前缀代理功能后,ASBR 1将作为BFR代理节点,保留从ASBR 2接收到的BGP路由中携带的BFR ID range信息,将该路由中的BFR前缀替换为本节点的BFR前缀封装在NLRI中,重新生成IBGP路由发布给BFIR。BFIR生成的跨域BIRT转发表项中,BFER节点BFR ID对应的BFR前缀是ASBR 1的BFR前缀1::2。在BIER报文转发过程中,BFIR的组播转发下一跳是ASBR 1。
图1-15 开启BGP BFR前缀代理功能后跨域BIER信息发布示意图
使用BIER构建组播网络,可以应用于以下场景:
· 大规模的组播业务场景:BIER不需要为每条组播流量建立组播转发树及保存组播流状态,减少对资源的占用。BIER隧道作为公网隧道替代了传统的P2MP隧道或公网PIM,用来承载私网组播流量,适合组播VPN大规模业务的部署。有关BIER模式组播VPN详细介绍,可参见“IP组播配置指导”中的“组播VPN”。
· SDN网络场景:组播用户加入不再需要逐跳加入组播树,只需要从叶子节点发送给头节点,从而提高组播用户的加入效率,更适合SDN网络中控制器收集组播业务流量的目的地后直接下发。
与BIER相关的协议规范有:
· RFC 8279:Multicast Using Bit Index Explicit Replication (BIER)
· RFC 8296:Encapsulation for Bit Index Explicit Replication (BIER) in MPLS and Non-MPLS Networks
· RFC 8401:Bit Index Explicit Replication (BIER) Support via IS-IS
· RFC 8556:Multicast VPN Using Bit Index Explicit Replication
· draft-ietf-bier-idr-extensions-07
表2-1 单板信息一览表
单板类型 |
单板丝印 |
CEPC单板 |
CEPC-CQ8L、CEPC-CQ8LA、CEPC-CQ8L1A、CEPC-CQ8L3A、CEPC-CQ16L1、CEPC-DQ2L1-G |
CSPEX单板 |
CSPEX-1502XA、CSPEX-1802X、CSPEX-1802XA、CSPEX-1812X-E、CSPEX-2304X-G、CSPEX-2304X-LG、CSPEX-2612XA、CSPEX-2612X3A |
SPE单板 |
RX-SPE200-E |
BIER的配置任务如下:
(1) 开启BIER功能
(2) 配置设备所属的BIER子域
(4) 配置BFR前缀
(5) 配置BIER封装
(6) (可选)配置BIER边缘设备的TTL处理模式
(7) (可选)配置通过BFD会话检测主下一跳是否可达
(8) (可选)配置BIER静态跨域穿越
(9) (可选)配置通过BGP实现BIER跨域
¡ 使能与指定对等体/对等体组交换携带BIER路径属性路由的能力
¡ (可选)开启BGP BFR前缀代理功能
¡ (可选)配置BGP引入IGP路由协议BIER信息
在设备上开启BIER功能后,设备才能进行BIER转发。通常在BIER模式的MVPN组网中,需要开启公网中BFR设备的BIER功能,以便在公网中通过BIER隧道承载组播流量。
(1) 进入系统视图。
system-view
(2) 开启BIER功能,并进入BIER视图。
bier
缺省情况下,BIER功能处于关闭状态。
在BIER域中,BIER转发是以BIER子域为单位进行的。因此,在设备上开启BIER功能后,必须先将该设备加入BIER子域,否则BIER功能无法正常使用。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
缺省情况下,设备未配置所属的BIER子域。
在同一个BIER子域中,BFIR和BFER必须配置唯一的BFR ID来标识。如果一个BFR边缘设备属于多个BIER子域,则在不同的BIER子域中,可以为该设备配置相同的BFR ID,也可以配置不同的BFR ID,只要保证在同一BIER子域内BFR ID唯一即可。
在配置BFR ID时,建议尽量取连续的值,避免中间有空洞,以此减少SI的个数要求和封装报文的数量。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置BIER边缘设备的BFR ID。
bfr-id bfr-id
缺省情况下,BIER边缘设备上未配置BFR ID。
BFR前缀相当于路由协议中的Router ID,用来标识BIER节点。在同一个BIER子域中,每个BFR必须配置唯一的BFR前缀,且该前缀必须是BIER子域内路由可达的。
BFR前缀目前只支持配置为Loopback口的地址。当将某个Loopback口的地址配置为BFR前缀后,不允许删除该接口。
对于同一个BFR,在不同的BIER子域下,BFR前缀可以相同,也可以不同。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置BFR前缀。
bfr-prefix interface interface-type interface-number
缺省情况下,未配置BFR前缀。
属于同一个BIER子域的BFR,必须配置相同的比特串长度。
max-si的取值为“(BFR ID最大值-1)/BSL”的计算结果向下取整部分。比如,BIER子域内BFR ID最大值为10,假如bsl配置为4,那么需要将Bit String分为三个子集,分别为SI 0,SI 1和SI 2。
在同一台设备中,不能同时配置MSR6封装类型与G-BIER/BIERv6封装类型。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
缺省情况下,设备未配置所属的BIER子域。
(4) 配置BIER承载报文的封装类型、BSL和Max-SI。
encapsulation-type { bierv6 | g-bier | msr6 } bsl bsl-value max-si max-si-value
缺省情况下,未配置BIER承载报文的封装类型、BSL和Max-SI。
当BIER承载报文的封装类型为G-BIER时,需要在BFR上配置专门用于BIER转发的子域内路由可达的IPv6地址,并通过在IS-IS sub-sub-TLV中携带该地址,以通知其他邻居在向本节点发送G-BIER报文的时候使用该IPv6地址作为目的IPv6地址。
当BFR收到的G-BIER报文后,将根据G-BIER报文的目的地址与本地配置的组播策略保留地址进行匹配,若能匹配成功,表示BFR需要对该报文进行BIER转发。如果匹配失败,则表示需要对该报文进行普通的IP转发。
在配置本功能前,需要通过encapsulation-type命令将BIER承载报文的封装类型配置为G-BIER。
同一个BIER子域内的不同的BFR上配置的组播策略保留地址必须唯一。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置G-BIER封装中BFR的组播策略保留地址。
g-bier mpra ipv6-address
缺省情况下,未配置G-BIER封装中BFRd的组播策略保留地址。
End.BIER SID是BIERv6网络中定义的一种新的SID,称为End.BIER地址。当BIER承载报文的封装类型为BIERv6时,需要在BFR上配置专门用于BIERv6转发的子域内路由可达的IPv6地址(End.BIER地址),并通过在IS-IS sub-sub-TLV中携带该地址,以通知其他邻居在向本节点发送BIERv6报文的时候使用该IPv6地址作为目的IPv6地址。
当BFR收到的BIERv6报文后,将根据BIERv6报文的目的地址与本地配置的End.BIER地址进行匹配,若能匹配成功,表示BFR需要对该报文进行BIERv6转发。若匹配失败,则表示需要对该报文进行普通的IPv6转发。
指定的Locator段的配置中必须指定静态段长度(即static static-length参数),否则sid ipv6-address指定的地址配置不生效。
指定的End.BIER SID必须在引用的Locator段所指定的静态SRv6 SID范围内,否则配置不生效。Locator的静态SRv6 SID起始值和静态SRv6 SID结束值可以通过display segment-routing ipv6 locator命令中的“Static SID start”和“Static SID end”字段查看。有关display segment-routing ipv6 locator命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6”。
同一个BIER子域内的不同的BFR上配置的End.BIER SID必须唯一。
配置本功能前,需要通过encapsulation-type命令将BIER承载报文的封装类型配置为BIERv6。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置BIERv6中BFR的End.BIER SID。
end-bier locator locator-name sid bierv6-sid
缺省情况下,未配置BIERv6中BFR的End.BIER SID。
End.RGB SID是MSR6网络中定义的一种新的SID,称为End.RGB地址。当BIER承载报文的封装类型为MSR6时,需要在BFR上配置专门用于MSR6转发的子域内路由可达的IPv6地址(End.RGB地址),并通过在IS-IS sub-sub-TLV中携带该地址,以通知其他邻居在向本节点发送MSR6报文的时候使用该IPv6地址作为目的IPv6地址。
当BFR收到的MSR6报文后,将根据MSR6报文的目的地址与本地配置的End.RGB地址进行匹配,若能匹配成功,表示BFR需要对该报文进行MSR6转发。若匹配失败,则表示需要对该报文进行普通的IPv6转发。
指定的Locator段的配置中必须指定静态段长度(即static static-length参数),否则sid ipv6-address指定的地址配置不生效。
指定的End.RGB SID必须在引用的Locator段所指定的静态SRv6 SID范围内,否则配置不生效。Locator的静态SRv6 SID起始值和静态SRv6 SID结束值可以通过display segment-routing ipv6 locator命令中的“Static SID start”和“Static SID end”字段查看。有关display segment-routing ipv6 locator命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6”。
同一个BIER子域内的不同的BFR上配置的End.RGB SID必须唯一。
配置本功能前,需要通过encapsulation-type命令将BIER承载报文的封装类型配置为MSR6。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置BIERv6中BFR的End.BIER SID。
end-rgb locator locator-name sid bierv6-sid
缺省情况下,未配置BIERv6中BFR的End.BIER SID。
使用BIER作为公网隧道的场景下,BIER对TTL的处理有两种模式:
· Uniform模式:公网隧道的入节点为组播报文添加BIER头时,将原组播报文中的TTL值复制到BIER的TTL字段。使用BIER转发报文时,对BIER头的TTL值逐跳减一。BFER设备解封装报文时,将BIER头的TTL值复制回组播报文。使用这种方式时,公网中的节点对用户网络的报文可见。报文沿着BIER隧道传输的过程中,TTL逐跳递减,Tracert的结果将反映报文实际经过的路径。
· Pipe模式:公网隧道的入节点为组播报文添加BIER头时,不会将原组播报文中的TTL值复制到BIER的TTL字段,而是由用户来通过本命令来指定TTL值。使用BIER隧道转发报文时,对BIER头的TTL值逐跳减一。BIER设备解封装报文时,不修改原组播报文的TTL值。使用这种方式时,公网中的节点对用户网络的报文不可见。Tracert的结果不包括公网中的每一跳,从而隐藏公网的结构。
配置TTL处理模式时,BFIR和BFER需要配置相同的处理模式。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置BIER边缘设备的TTL处理模式。
ttl-mode { pipe ttl ttl-value | uniform }
缺省情况下,BFIR的TTL处理模式为Pipe,BIER报文使用的TTL值为255;BFER的TTL处理模式为Pipe。
开启BIER快速重路由能力后,当某处链路或节点故障时,数据流量会快速切换到备份路径继续转发,从而最大程度上避免数据流量的丢失。在故障未发生时,进行数据流量转发的路径被称为主路径,设备在主路径上的下一跳设备被称为主下一跳。
此场景下,可以通过本命令来配置通过BFD会话检测主下一跳是否可达,并指定该BFD会话的工作方式为控制报文方式或echo报文方式。
配置本命令后,设备将自动创建一个BFD会话,通过该BFD会话对主下一跳进行检测,以提高主下一跳故障时流量切换的收敛速度。
· 在配置本功能前,请先通过bier fast-reroute enable命令开启BIER快速重路由能力。
有关开启BIER快速重路由能力的详细介绍,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
· 控制报文方式的BFD会话需要两端进行协商才能成功建立,因此,若指定通过控制报文方式的BFD会话检测主下一跳是否可达,则需在配置本功能前,先通过bfd static在主下一跳上创建满足如下要求的静态BFD会话:
¡ 工作方式为控制报文方式;
¡ 检测方式为单跳检测;
¡ 会话源IP地址为本端自动创建的BFD会话的目的IP地址;
¡ 会话目的IP地址为本端自动创建的BFD会话的源IP地址;
¡ 远端标识符为本端自动创建的BFD会话的本地标识符
¡ 有关创建静态BFD会话的详细介绍,请参见“可靠性配置指导”中的“BFD”。
· 多次执行本命令,最后一次配置的BFD会话工作方式(echo报文方式或控制报文方式)生效。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置通过BFD会话检测主下一跳是否可达,并指定该BFD会话的工作方式。
primary-path-detect bfd { ctrl | echo }
未配置通过BFD会话检测主下一跳是否可达。
BIER网络跨AS域部署时,当某一个AS域内的ASBR不支持BIER转发时,无法完成BIER报文的跨域转发。可以在不支持BIER转发的ASBR上游直连BFR上配置静态跨域穿越的BFR邻居,以及通过该邻居可到达BIER边缘设备的BFR ID范围,来实现BIER的静态跨域穿越。
图2-1 BIER静态跨域穿越组网图
在同一个BIER子域中,不同静态跨域BFR邻居可到达的BFR ID范围不能重叠,否则配置失败。
本配置只会对本节点上的BIRT生效,不会在节点所在的域内进行泛洪,不会对域内其他节点的BIRT造成影响。
设备上所有BIER子域内配置的静态跨域BFR邻居总数不能超过2000,且单个静态跨域邻居所能到达的BFR ID个数不能超过256个。
配置到达同一个BFR ID且链路优先级相同的静态跨域邻居最大数量为4。
(1) 进入系统视图。
system-view
(2) 进入BIER视图。
bier
(3) 进入BIER子域视图。
sub-domain sub-domain-id ipv6
(4) 配置静态跨域穿越的BFR邻居以及通过该邻居可到达BFR边缘设备的BFR ID范围和链路优先级。
bfr-neighbor { end-bier bierv6-sid | end-rgb msr6-sid | mpra ipv6-address } bfr-id bfr-id-start [ to bfr-id-end ] [ preference preference-value ]
缺省情况下,未配置静态跨域穿越的BFR邻居以及通过该邻居可到达BFR边缘设备的BFR ID范围。
配置本功能后,BGP会引入本地BIER模块的BFR ID和BFR前缀,生成携带BIER信息的BGP路由(不包含BFR ID range信息)。
配置本功能后,本地配置的组播策略保留地址和BFR前缀会作为NLRI字段的可达路由前缀信息,生成不带BIER信息的BGP IPv6单播路由通告给BGP IPv6单播对等体。这些信息可以指导BIER报文在不支持BIER转发的设备上进行IPv6组播转发。如果同时使能了与指定对等体/对等体组交换携带BIER路径属性路由的能力,则本地节点BFR前缀生成的BGP路由将会携带BIER路径属性,并可以发布给指定的对等体/对等体组。
只有先开启BGP进程的BIER能力,才允许在本地路由器上开启与指定对等体/对等体组交换携带BIER路径属性路由的能力、开启BGP BFR前缀代理功能以及将IGP路由协议的BIER信息引入到BGP路由表中,来生成、发布或接收携带BIER信息的BGP路由。
有关BGP实例及BGP实例下地址族的详细配置及配置命令,请分别参见“三层技术-IP路由配置指导”中的“BGP”,以及“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 创建BGP IPv6单播地址族,并进入该地址族视图。
address-family ipv6 [ unicast ]
(4) 开启BGP进程的BIER能力。
bier enable
缺省情况下,BGP进程的BIER能力处于关闭状态。
配置本功能后,BGP可以与指定对等体/对等体组交互携带BIER路径属性的路由,并对其中的BIER路径属性进行处理。BGP会将接收到的BIER信息通告给BIER模块,以便BIER模块根据该信息生成BIRT。
本地路由器只能和本命令指定的对等体/对等体组交互携带BIER路径属性的路由,以实现对BIER域内的BIER信息发布进行控制,使跨域BIER信息通过指定的设备发布出去。
配置本功能前,需要保证BGP进程的BIER能力处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6单播地址族。
address-family ipv6 [ unicast ]
(4) 开启与指定对等体/对等体组交换携带BIER信息路由的能力。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } capability bier
缺省情况下,设备不具有与对等体/对等体组交换携带BIER信息路由的能力。
EBGP会话的两端不能同时开启BGP BFR前缀代理功能,否则会产生环路,导致BFR代理节点生成的BIRT表项发生错误。
配置本功能前,需要保证BGP进程的BIER能力处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6单播地址族。
address-family ipv6 [ unicast ]
(4) 开启BGP BFR前缀代理功能。
bier bfr-prefix proxy
缺省情况下,BGP BFR前缀代理功能处于关闭状态。
配置本功能后,BGP可以将IGP路由协议的BIER信息引入到BGP路由表中,以便通过BGP发布引入的BIER信息。
通过本功能引入到BGP路由表的BIER信息中,会携带域内的BFR ID range信息。引入BIER信息生成的BGP路由在发布时是否包含BFR ID range信息,受以下情况影响:
· 设备未开启BGP BFR前缀代理功能时:
¡ 向IBGP对等体发送的路由不包含BFR ID range信息。
¡ 向EBGP对等体发送的路由包含BFR ID range信息。
· 设备开启BGP BFR前缀代理功能时,向IBGP和EBGP对等体发送的路由均包含BFR ID range信息。
配置本功能前,需要保证BGP进程的BIER能力处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6单播地址族。
address-family ipv6 [ unicast ]
(4) 配置将IGP路由协议的BIER信息引入到BGP路由表中。
import-bier isisv6 { process-id | all-processes }
缺省情况下,BGP不会引入IGP路由协议的BIER信息。
通过all-processes参数引入指定路由协议所有进程的BIER信息后,对此协议的任意进程配置本命令均不生效。
在完成上述配置后,在任意视图下执行display命令可以显示配置后BIER的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除BIER报文的转发统计信息。
表2-2 BIER显示和维护
操作 |
命令 |
显示BFR前缀上配置的BIER信息 |
display bier prefix [ prefix-ip ] [ sub-domain sub-domain-id [ bsl bsl-value ] ] |
显示BIER路由表的信息 |
display bier routing-table [ sub-domain sub-domain-id [ bsl bsl-value ] ] [ prefix prefix-ip ] [ verbose ] |
显示BIER子域的相关信息 |
display bier sub-domain [ sub-domain-id ] |
显示向BIER注册的单播路由协议 |
display bier protocol |
显示BIER报文的转发统计信息 |
(独立运行模式) display bier forward ipv6 statistics slot slot-number [ cpu cpu-number ] (IRF模式) display bier forward ipv6 statistics chassis chassis-number slot slot-number [ cpu cpu-number ] |
显示BIER跨域信息 |
display bier inter-as bfr-info [ sub-domain sub-domain-id ] |
显示跨域BIRT信息 |
display bier inter-as routing-table [ sub-domain sub-domain-id [ bfr-id bfr-id-start [ to bfr-id-end ] ] ] |
清除BIER报文的转发统计信息 |
(独立运行模式) reset bier forward ipv6 statistics [ slot slot-number [ cpu cpu-number ] ] (IRF模式) reset bier forward ipv6 statistics [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] |
BIER功能通常以BIER模式MVPN的形式进行部署。典型配置举例请参见“IP组播配置指导”中的“BIER模式MVPN”。
设备打印BFR ID冲突日志:
BIER/5/BIER_BFRID_CONFLICT_ACTIVE: -MDC=1; A BFR ID conflict exists. Address family=IPv6, Sub-domain=1, BFR ID=4, BFR prefixes=B::1,C::1.
同一个子域内,不同的BFR边缘节点配置了相同的BFR ID,导致出现BFR ID冲突。
通过BFR ID冲突日志中打印的BFR prefix,定位到发生冲突的BFR边缘节点,统一规划冲突BFR节点的BFR ID,登录需要修改配置的设备上进行重新配置。
冲突解除后,会收到对应的冲突解除日志:
BIERRIB/5/BIER_BFRID_CONFLICT_CLEAR: -MDC=1; The BFR ID conflict was removed. Address family=IPv6, Sub-domain=1, BFR ID=4, BFR prefix=B::1.
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!