• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

09-BIER配置指导

目录

01-BIER配置

本章节下载 01-BIER配置  (821.57 KB)

01-BIER配置

  录

1 BIER概述

1.1 BIER简介

1.1.1 产生背景

1.1.2 定义

1.1.3 BIER技术优势

1.2 BIER网络结构

1.3 BIER基本概念

1.3.1 BIER域和BIER子域

1.3.2 BFR ID

1.3.3 BFR prefix

1.3.4 Bit String

1.3.5 SI和Max-SI

1.3.6 BIRT

1.3.7 F-BM

1.3.8 BIFT

1.4 BIER三层架构

1.4.2 Underlay层

1.4.3 BIER层

1.4.4 Overlay层

1.5 BIER控制平面

1.5.2 IGP扩展方案

1.5.3 BGP MVPN扩展方案

1.6 BIER报文封装

1.6.1 概述

1.6.2 G-BIER封装

1.6.3 BIERv6封装

1.6.4 MSR6封装

1.7 BIER数据转发

1.7.2 BIRT与BIFT

1.7.3 转发过程

1.8 BIER跨域

1.8.1 BIER静态跨域穿越

1.8.2 通过BGP实现BIER跨域

1.9 BIER典型应用场景

1.10 协议规范

2 配置BIER

2.1 BIER配置限制和指导

2.2 BIER配置任务简介

2.3 开启BIER功能

2.4 配置设备所属的BIER子域

2.5 配置BIER边缘设备的BFR ID

2.6 配置BFR前缀

2.7 配置BIER封装

2.7.1 配置BIER承载报文的封装类型、BSL和Max-SI

2.7.2 配置G-BIER封装中BFR的组播策略保留地址

2.7.3 配置BIERv6封装中BFR的End.BIER SID

2.7.4 配置MSR6封装中BFR的End.RGB SID

2.8 配置BIER边缘设备的TTL处理模式

2.9 配置通过BFD会话检测主下一跳是否可达

2.10 配置BIER静态跨域穿越

2.11 配置通过BGP实现BIER跨域

2.11.1 开启BGP进程的BIER能力

2.11.2 使能与指定对等体/对等体组交换携带BIER路径属性路由的能力

2.11.3 开启BGP BFR前缀代理功能

2.11.4 配置BGP引入IGP路由协议BIER信息

2.12 BIER显示和维护

2.13 BIER典型配置举例

2.14 BIER常见故障处理

2.14.1 BIER域内BFR ID冲突

 



1 BIER概述

1.1  BIER简介

1.1.1  产生背景

传统IP组播和组播VPN技术中,设备需要为每条组播流量分别建立组播分发树,分发树中的每一个节点都需要感知组播业务,并保留组播流状态。例如,公网PIM组播中,需要为每条组播流量建立一个PIM的组播分发树;在NG MVPN中,需要为每条组播流量建立P2MP隧道,也相当于建立一个P2MP组播树。随着组播业务的大规模部署,待维护的组播分发树的数量也急剧增加,组播节点上需要保留大量的组播流状态,当网络发生变化的时候,会导致组播表项收敛缓慢。

同时,单播路由协议、组播路由协议、MPLS协议等多协议在承载网络上并存,增加了承载网络控制平面的复杂度,使得故障收敛速度慢,运维困难,难以向SDN架构网络演进。

1.1.2  定义

BIER(Bit Index Explicit Replication,位索引显式复制技术)是一种新的组播技术,通过将组播报文要发送到的目的节点的集合以BS(Bit String,比特串)的方式封装在报文头部发送,使得网络的中间节点无需感知组播业务和维护组播流状态,只需要根据比特串来实现组播业务的复制和转发,具有良好的业务扩展性。

1.1.3  BIER技术优势

·     降低控制平面的复杂度:中间节点无需运行PIM等专用组播控制协议,控制平面仅需运行单播路由协议如IGP和BGP,从而简化了网络的控制平面。

·     提升组播业务的扩展性:BIER技术能够建立一种独立于具体组播业务的公共转发表,公网组播和私网组播报文均可通过该表转发。这使得中间节点无需维护组播流状态、不必感知组播业务,从而提高了组播业务的扩展性。

·     提升组播网络的稳定性:因为中间节点不感知组播业务,所以组播业务的变化不会影响到中间节点。这提高了组播网络的稳定性,简化了业务部署和网络运维。

·     降低业务与网络的耦合度:采用分层架构,降低BIER技术与传统链路状态路由协议层之间的耦合度。这不仅促进了现有网络向BIER技术平滑过渡,也有利于业务网络向SDN架构网络演进。

1.2  BIER网络结构

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网络结构

 

1.3  BIER基本概念

1.3.1  BIER域和BIER子域

网络中所有BFR的集合称为BIER域(Domain)。一个BIER域可以划分为一个或者多个BIER子域SD(Sub-domain)。通过Sub-domain ID来区分不同的BIER子域。一个BIER子域内的所有BFIR和BFER统称为BIER边缘设备。

1.3.2  BFR ID

BFR ID用来在一个BIER子域中唯一标识一台BIER边缘设备,Transit BFR无需BFR ID进行标识。

1.3.3  BFR prefix

BFR prefix相当于路由协议中的Router ID,用来在BIER子域中标识一个BFR。在同一个BIER子域中,每个BFR必须配置唯一的BFR前缀,且该前缀必须是BIER子域内路由可达的。

1.3.4  Bit String

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”来表示。

1.3.5  SI和Max-SI

在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”的计算结果向下取整部分。

1.3.6  BIRT

BIRT(Bit Index Routing Table,位索引路由表)是通过IGP协议携带BIER信息(Sub-domain、BSL、BFR ID)在网络上进行泛洪,并根据IGP传递的BIER信息和路由信息生成。该路由表用来指导BIER报文在BIER子域内的转发。

1.3.7  F-BM

F-BM(Forwarding-Bit Mask,转发比特串掩码)用来表示BFR向下一跳邻居复制发送组播报文时,通过该邻居能到达的BIER子域边缘节点的集合。它通过将该邻居所能到达的所有BIER子域边缘节点的Bit String进行“或”操作后得到。

1.3.8  BIFT

BIER子域内的组播流量通过查询BIFT(Bit Index Forwarding Table,位索引转发表)来实现逐跳转发,用于建立F-BM与邻居之间的映射关系。BFR上可存在多张BIFT,每张BIFT都由三元组(BSL、SD、SI)唯一确定。

1.4  BIER三层架构

在IETF RFC8279中,BIER架构分为Underlay、BIER和Overlay三层,如图1-2所示。

图1-2 BIER三层架构

 

1.4.2  Underlay

Underlay层为传统链路状态路由协议层,通过IGP协议(目前仅支持IS-IS)的扩展TLV属性携带本节点的BIER属性信息在BIER子域内进行泛洪。BFR根据IGP算法生成到本子域内其它BFR前缀的路由,也就是到每个BFR ID的路由,从而建立BIER子域内节点之间的邻居关系以及节点之间的最佳转发路径。

1.4.3  BIER

BIER层作为BIER转发的核心层,对BIER转发所需的IGP协议进行了扩展,并指导组播报文在BIER域内完成转发。组播报文的BIER转发过程如下:

(1)     BFR将BIER层配置的BIER信息通过IGP协议进行通告。

(2)     基于这些BIER信息的泛洪,沿路BFR生成BIRT,进而生成BIFT。

(3)     当封装有BIER头的组播报文在BIER域进行转发时,BFR根据BIER头中的信息查找BIFT表完成组播报文复制转发。

1.4.4  Overlay

Overlay层主要负责组播业务控制面信息交互,比如收集BFIR和BFER之间用户组播组的加入和离开信息,当组播报文到达BFIR节点时根据需要到达的BFER组合,并完成该组播报文对应的BIER头的封装;当携带有BIER头的组播报文到达BFER节点时,解封装BIER头并完成后续的组播报文转发。

1.5  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

 

1.5.2  IGP扩展方案

对于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扩展为例进行介绍。

1. IS-IS的BIER通用扩展

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所示。

图1-4 BIER Info Sub-TLV

 

表1-2 BIER Info Sub-TLV字段说明

字段

长度

说明

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

 

2. G-BIER、BIERv6和MSR6的IS-IS扩展

在实现的过程中,对于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能力类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

比特串长度

 

地址标识类Sub-sub-TLV

通过在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

 

1.5.3  BGP MVPN扩展方案

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的连续范围

 

1.6  BIER报文封装

1.6.1  概述

对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三种封装类型。

表1-7 封装类型简介

封装类型

简介

G-BIER

G-BIER是中国移动提出的一种通用BIER封装方案,它根据IPv6网络的特点对BIER头进行适配性修改,与IPv6更好地进行融合

BIERv6

BIERv6是基于Native IPv6的组播方案,结合了IPv6和BIER的优势,可以无缝融入SRv6网络,简化了协议复杂度

MSR6

MSR6是基于IPv6数据平面的组播方案,将MSR6 BE Domain内的单播和组播业务统一到IPv6数据平面

 

1.6.2  G-BIER封装

G-BIER是中国移动提出的一种通用BIER封装方案,它根据IPv6网络的特点对BIER头进行适配性修改,与IPv6更好地进行融合。

1. 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转发。

2. 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字段取值有关

比特串

 

1.6.3  BIERv6封装

BIERv6是基于Native IPv6的全新组播方案,BIERv6结合了IPv6和BIER的优势,可以无缝融入SRv6网络,简化了协议复杂度。

将BIER承载报文的封装类型配置为BIERv6时,需要BIER子域内的所有的BFR均支持SRv6。有关SRv6的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。

1. IPv6基本头约定

对于BIERv6报文,IPv6基本头中有如下约定:

·     Source Address:源地址需要配置为BIERv6隧道的源地址,在组播报文在公网中转发时,该源地址保持不变。

·     Destination Address:目的地址需要配置为专门用于BIER转发的End.BIER SID,该地址要求在子域内路由可达。当BFR收到IPv6报文中的目的地址为End.BIER SID,则表示需要对该报文进行BIERv6转发。

2. 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字段取值有关

比特串

 

1.6.4  MSR6封装

MSR6基于IPv6数据平面,将MSR6 BE Domain内的单播和组播业务统一到IPv6数据平面。

利用IPv6路由单播可达的特性,MSR6 BE具备穿透non-BIER节点的能力。如果在MSR6 BE早期部署中,某些路由器不支持MSR6 BE转发但支持IPv6转发,则不支持MSR6 BE转发的路由器将按照IPv6目的地址转发。

1. IPv6基本头约定

对于MSR6报文,IPv6基本头中有如下约定:

·     Source Address:源地址需要配置为MSR6隧道的源地址,在组播报文在公网中转发时,该源地址保持不变。

·     Destination Address:目的地址需要配置为专门用于BIER转发的End.RGB SID,该地址要求在子域内路由可达。当BFR收到IPv6报文中的目的地址为End.RGB SID,则表示需要对该报文进行MSR6转发。

2. 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字段取值有关

比特串

 

1.7  BIER数据转发

为了方便描述和理解,本节以Max-SI为0且BSL为4 bits的情况为例进行介绍BIER的转发平面。

根据RFC 8279的定义,如果设备需要转发BIER封装的组播数据,则设备应执行以下动作:

(1)     确定对应的BIER子域、BSL、BS和SI,并根据这些信息获悉需要送达哪些BFER。

(2)     由Underlay层来确认通往每个BFER的下一跳。

(3)     按照下一跳对目标BFER集合进行划分,将下一跳相同的BFER分为一组。

(4)     为每组BFER复制一份组播数据,并将数据转发给下一跳,如果下一跳为空(如路由不可达或)则丢弃数据包。

1.7.2  BIRT与BIFT

为了设备能够顺利执行转发动作,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.7.3  转发过程

图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隧道目的节点。

2. BFIR的转发过程

图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的转发过程示意图

 

3. Transit BFR的转发过程

图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类似,此处不再赘述。

4. BFER的转发过程

当作为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类似,此处不再赘述。

1.8  BIER跨域

BIER跨域指BIER网络跨越AS域部署,在进行BIER转发时组播流量会经过多个AS域。IGP协议只能在AS域内泛洪BIER信息,无法使BIER节点形成跨AS域的BIER转发表项。要实现BIER跨域,需要确保BIER节点能够获得其他AS域BIER节点的BIER信息(如BFR ID等信息)。设备支持通过静态配置和BGP路由发布两种方式实现BIER跨域。

1.8.1  BIER静态跨域穿越

通过在BIER节点上手工指定域外BFR邻居以及通过该邻居可到达BIER边缘设备的BFR ID范围,来实现BIER的静态跨域穿越。

1.8.2  通过BGP实现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信息发布示意图

 

1.9  BIER典型应用场景

使用BIER构建组播网络,可以应用于以下场景:

·     大规模的组播业务场景:BIER不需要为每条组播流量建立组播转发树及保存组播流状态,减少对资源的占用。BIER隧道作为公网隧道替代了传统的P2MP隧道或公网PIM,用来承载私网组播流量,适合组播VPN大规模业务的部署。有关BIER模式组播VPN详细介绍,可参见“IP组播配置指导”中的“组播VPN”。

·     SDN网络场景:组播用户加入不再需要逐跳加入组播树,只需要从叶子节点发送给头节点,从而提高组播用户的加入效率,更适合SDN网络中控制器收集组播业务流量的目的地后直接下发。

1.10  协议规范

与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 配置BIER

2.1  BIER配置限制和指导

本功能仅在下表所列单板上配置生效。

表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

 

2.2  BIER配置任务简介

BIER的配置任务如下:

(1)     开启BIER功能

(2)     配置设备所属的BIER子域

(3)     配置BIER边缘设备的BFR ID

(4)     配置BFR前缀

(5)     配置BIER封装

¡     配置BIER承载报文的封装类型、BSL和Max-SI

¡     配置G-BIER封装中BFR的组播策略保留地址

¡     配置BIERv6封装中BFR的End.BIER SID

¡     配置MSR6封装中BFR的End.RGB SID

(6)     (可选)配置BIER边缘设备的TTL处理模式

(7)     (可选)配置通过BFD会话检测主下一跳是否可达

(8)     (可选)配置BIER静态跨域穿越

(9)     (可选)配置通过BGP实现BIER跨域

¡     开启BGP进程的BIER能力

¡     使能与指定对等体/对等体组交换携带BIER路径属性路由的能力

¡     (可选)开启BGP BFR前缀代理功能

¡     (可选)配置BGP引入IGP路由协议BIER信息

2.3  开启BIER功能

1. 功能简介

在设备上开启BIER功能后,设备才能进行BIER转发。通常在BIER模式的MVPN组网中,需要开启公网中BFR设备的BIER功能,以便在公网中通过BIER隧道承载组播流量。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启BIER功能,并进入BIER视图。

bier

缺省情况下,BIER功能处于关闭状态。

2.4  配置设备所属的BIER子域

1. 功能简介

在BIER域中,BIER转发是以BIER子域为单位进行的。因此,在设备上开启BIER功能后,必须先将该设备加入BIER子域,否则BIER功能无法正常使用。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BIER视图。

bier

(3)     进入BIER子域视图。

sub-domain sub-domain-id ipv6

缺省情况下,设备未配置所属的BIER子域。

 

2.5  配置BIER边缘设备的BFR ID

1. 功能简介

在同一个BIER子域中,BFIR和BFER必须配置唯一的BFR ID来标识。如果一个BFR边缘设备属于多个BIER子域,则在不同的BIER子域中,可以为该设备配置相同的BFR ID,也可以配置不同的BFR ID,只要保证在同一BIER子域内BFR ID唯一即可。

2. 配置限制和指导

在配置BFR ID时,建议尽量取连续的值,避免中间有空洞,以此减少SI的个数要求和封装报文的数量。

3. 配置步骤

(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。

2.6  配置BFR前缀

1. 功能简介

BFR前缀相当于路由协议中的Router ID,用来标识BIER节点。在同一个BIER子域中,每个BFR必须配置唯一的BFR前缀,且该前缀必须是BIER子域内路由可达的。

2. 配置限制和指导

BFR前缀目前只支持配置为Loopback口的地址。当将某个Loopback口的地址配置为BFR前缀后,不允许删除该接口。

对于同一个BFR,在不同的BIER子域下,BFR前缀可以相同,也可以不同。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BIER视图。

bier

(3)     进入BIER子域视图。

sub-domain sub-domain-id ipv6

(4)     配置BFR前缀。

bfr-prefix interface interface-type interface-number

缺省情况下,未配置BFR前缀。

2.7  配置BIER封装

2.7.1  配置BIER承载报文的封装类型、BSL和Max-SI

1. 配置限制和指导

属于同一个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封装类型。

2. 配置步骤

(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。

2.7.2  配置G-BIER封装中BFR的组播策略保留地址

1. 配置简介

当BIER承载报文的封装类型为G-BIER时,需要在BFR上配置专门用于BIER转发的子域内路由可达的IPv6地址,并通过在IS-IS sub-sub-TLV中携带该地址,以通知其他邻居在向本节点发送G-BIER报文的时候使用该IPv6地址作为目的IPv6地址。

当BFR收到的G-BIER报文后,将根据G-BIER报文的目的地址与本地配置的组播策略保留地址进行匹配,若能匹配成功,表示BFR需要对该报文进行BIER转发。如果匹配失败,则表示需要对该报文进行普通的IP转发。

2. 配置准备

在配置本功能前,需要通过encapsulation-type命令将BIER承载报文的封装类型配置为G-BIER。

3. 配置限制和指导

同一个BIER子域内的不同的BFR上配置的组播策略保留地址必须唯一。

4. 配置步骤

(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的组播策略保留地址。

2.7.3  配置BIERv6封装中BFR的End.BIER SID

1. 功能简介

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转发。

2. 配置限制和指导

指定的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必须唯一。

3. 配置准备

配置本功能前,需要通过encapsulation-type命令将BIER承载报文的封装类型配置为BIERv6。

4. 配置步骤

(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。

2.7.4  配置MSR6封装中BFR的End.RGB SID

1. 功能简介

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转发。

2. 配置限制和指导

指定的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必须唯一。

3. 配置准备

配置本功能前,需要通过encapsulation-type命令将BIER承载报文的封装类型配置为MSR6。

4. 配置步骤

(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。

2.8  配置BIER边缘设备的TTL处理模式

1. 功能简介

使用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的结果不包括公网中的每一跳,从而隐藏公网的结构。

2. 配置限制和指导

配置TTL处理模式时,BFIR和BFER需要配置相同的处理模式。

3. 配置步骤

(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。

 

 

2.9  配置通过BFD会话检测主下一跳是否可达

1. 功能简介

开启BIER快速重路由能力后,当某处链路或节点故障时,数据流量会快速切换到备份路径继续转发,从而最大程度上避免数据流量的丢失。在故障未发生时,进行数据流量转发的路径被称为主路径,设备在主路径上的下一跳设备被称为主下一跳。

此场景下,可以通过本命令来配置通过BFD会话检测主下一跳是否可达,并指定该BFD会话的工作方式为控制报文方式或echo报文方式。

配置本命令后,设备将自动创建一个BFD会话,通过该BFD会话对主下一跳进行检测,以提高主下一跳故障时流量切换的收敛速度。

2. 配置限制和指导

·     在配置本功能前,请先通过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报文方式或控制报文方式)生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BIER视图。

bier

(3)     进入BIER子域视图。

sub-domain sub-domain-id ipv6

(4)     配置通过BFD会话检测主下一跳是否可达,并指定该BFD会话的工作方式。

primary-path-detect bfd { ctrl | echo }

未配置通过BFD会话检测主下一跳是否可达。

2.10  配置BIER静态跨域穿越

1. 功能简介

BIER网络跨AS域部署时,当某一个AS域内的ASBR不支持BIER转发时,无法完成BIER报文的跨域转发。可以在不支持BIER转发的ASBR上游直连BFR上配置静态跨域穿越的BFR邻居,以及通过该邻居可到达BIER边缘设备的BFR ID范围,来实现BIER的静态跨域穿越。

图2-1 BIER静态跨域穿越组网图

 

2. 配置限制和指导

在同一个BIER子域中,不同静态跨域BFR邻居可到达的BFR ID范围不能重叠,否则配置失败。

本配置只会对本节点上的BIRT生效,不会在节点所在的域内进行泛洪,不会对域内其他节点的BIRT造成影响。

设备上所有BIER子域内配置的静态跨域BFR邻居总数不能超过2000,且单个静态跨域邻居所能到达的BFR ID个数不能超过256个。

配置到达同一个BFR ID且链路优先级相同的静态跨域邻居最大数量为4。

3. 配置步骤

(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范围。

 

2.11  配置通过BGP实现BIER跨域

2.11.1  开启BGP进程的BIER能力

1. 功能简介

配置本功能后,BGP会引入本地BIER模块的BFR ID和BFR前缀,生成携带BIER信息的BGP路由(不包含BFR ID range信息)。

配置本功能后,本地配置的组播策略保留地址和BFR前缀会作为NLRI字段的可达路由前缀信息,生成不带BIER信息的BGP IPv6单播路由通告给BGP IPv6单播对等体。这些信息可以指导BIER报文在不支持BIER转发的设备上进行IPv6组播转发。如果同时使能了与指定对等体/对等体组交换携带BIER路径属性路由的能力,则本地节点BFR前缀生成的BGP路由将会携带BIER路径属性,并可以发布给指定的对等体/对等体组。

2. 配置限制和指导

只有先开启BGP进程的BIER能力,才允许在本地路由器上开启与指定对等体/对等体组交换携带BIER路径属性路由的能力、开启BGP BFR前缀代理功能以及将IGP路由协议的BIER信息引入到BGP路由表中,来生成、发布或接收携带BIER信息的BGP路由。

有关BGP实例及BGP实例下地址族的详细配置及配置命令,请分别参见“三层技术-IP路由配置指导”中的“BGP”,以及“三层技术-IP路由命令参考”中的“BGP”。

3. 配置步骤

(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能力处于关闭状态。

2.11.2  使能与指定对等体/对等体组交换携带BIER路径属性路由的能力

1. 功能简介

配置本功能后,BGP可以与指定对等体/对等体组交互携带BIER路径属性的路由,并对其中的BIER路径属性进行处理。BGP会将接收到的BIER信息通告给BIER模块,以便BIER模块根据该信息生成BIRT。

本地路由器只能和本命令指定的对等体/对等体组交互携带BIER路径属性的路由,以实现对BIER域内的BIER信息发布进行控制,使跨域BIER信息通过指定的设备发布出去。

2. 配置准备

配置本功能前,需要保证BGP进程的BIER能力处于开启状态。

3. 配置步骤

(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信息路由的能力。

2.11.3  开启BGP BFR前缀代理功能

1. 配置限制和指导

EBGP会话的两端不能同时开启BGP BFR前缀代理功能,否则会产生环路,导致BFR代理节点生成的BIRT表项发生错误。

2. 配置准备

配置本功能前,需要保证BGP进程的BIER能力处于开启状态。

3. 配置步骤

(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前缀代理功能处于关闭状态。

2.11.4  配置BGP引入IGP路由协议BIER信息

1. 功能简介

配置本功能后,BGP可以将IGP路由协议的BIER信息引入到BGP路由表中,以便通过BGP发布引入的BIER信息。

2. 配置限制和指导

通过本功能引入到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信息。

3. 配置准备

配置本功能前,需要保证BGP进程的BIER能力处于开启状态。

4. 配置步骤

(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信息后,对此协议的任意进程配置本命令均不生效。

2.12  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 ] ]

 

2.13  BIER典型配置举例

BIER功能通常以BIER模式MVPN的形式进行部署。典型配置举例请参见“IP组播配置指导”中的“BIER模式MVPN”。

2.14  BIER常见故障处理

2.14.1  BIER域内BFR ID冲突

1. 故障现象

设备打印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.

2. 故障分析

同一个子域内,不同的BFR边缘节点配置了相同的BFR ID,导致出现BFR ID冲突。

3. 处理过程

通过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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们