02-SRv6 TE Policy配置
本章节下载: 02-SRv6 TE Policy配置 (1.58 MB)
目 录
1.1.12 SRv6 TE Policy的智能策略路由功能
1.3.1 手工创建SRv6 TE Policy并配置相关属性
1.5.3 配置候选路径采用亲和属性方式计算的路径建立SID列表
1.5.4 配置候选路径采用Flex-Algo方式计算的路径建立SID列表
1.5.6 配置ODN创建的SRv6 TE Policy候选路径采用亲和属性方式计算的路径建立SID列表
1.5.7 配置ODN创建的SRv6 TE Policy候选路径采用Flex-Algo方式计算的路径建立SID列表
1.5.8 配置ODN创建的SRv6 TE Policy候选路径使用PCE计算SID列表
1.8 配置设备允许将SRv6 TE Policy的候选路径信息上报BGP-LS
1.10 配置BGP发布BGP IPv6 SR Policy路由
1.10.2 开启BGP发布BGP IPv6 SR Policy路由能力
1.10.3 配置BGP引入BGP IPv6 SR Policy路由
1.10.4 配置将BGP IPv6 SR Policy路由发布给EBGP对等体
1.10.6 控制BGP IPv6 SR Policy路由的优选和发布
1.11.11 配置SRv6 TE Policy自动引流功能
1.13 配置SRv6 TE Policy的智能策略路由功能
1.13.2 配置SRv6 TE Policy的iFIT测量功能
1.13.3 配置SRv6 TE Policy的IPR算路功能
1.15 开启SRv6 TE Policy的echo报文方式的BFD检测功能
1.19 配置SRv6 TE Policy路径连通性检查功能
1.21.4 配置远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI映射表的延迟删除时间
1.22 配置SRv6 TE Policy的候选路径重优化功能
1.24 配置SRv6 TE Policy对TTL的处理模式
1.27 开启SRv6 TE Policy在Policy失效时丢弃流量的功能
1.28 配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能
1.32 配置SRv6 TE Policy的流量转发统计功能
1.33.1 显示SRv6 TE Policy的运行状态和配置信息
1.33.2 显示SRv6 TE Policy组的运行状态和配置信息
1.33.3 显示BGP IPv6 SR Policy路由的运行状态和配置信息
1.33.4 显示SRv6 TE Policy的BFD和SBFD运行状态
1.33.5 显示SRv6 TE Policy尾节点保护的配置信息
1.33.6 显示和清除SRv6 TE Policy的流量转发统计信息
1.33.7 显示PCE进程SRv6 TE Policy的信息
1.33.8 显示SRv6 TE Policy的智能策略路由相关信息
1.34.2 SRv6 TE Policy尾节点保护配置举例
1.34.3 由ODN生成SRv6 TE Policy配置举例
1.34.4 SRv6 TE Policy的智能策略路由功能配置举例
SRv6 TE Policy提供了灵活的转发路径选择方法,可以满足用户不同的转发需求。当Segment Routing网络的源节点和目的节点之间存在多条路径时,合理利用SRv6 TE Policy选择转发路径,不仅可以方便管理员对网络进行管理和规划,还可以有效地减轻网络设备的转发压力。
SRv6 TE Policy由三部分标识:
· BSID:入节点的SID。
· Color:转发路径的Color属性,用于在相同的源和目的节点之间区分多个SRv6 TE Policy。
· End-point:SRv6 TE Policy目的节点的IPv6地址。
如图1-1所示,一个SRv6 TE Policy由多条具有不同优先级的Candidate Paths(候选路径)组成,每个候选路径包括由Segment List(SID列表)标识的一条或多条转发路径。
一个SRv6 TE Policy包含一条或多条候选路径。通过SRv6 TE Policy转发流量时,设备根据候选路径的优先级从多条候选路径中选择最优路径。
不同SRv6 TE Policy不能共享同一条候选路径。
· SID列表
SID列表包含报文转发路径信息,由转发路径上各个节点的SID(IPv6地址)组成。
候选路径由一个SID列表或者多个带权重的SID列表组成。SRv6 TE Policy选择某条候选路径后,会根据SID列表的权重,在候选路径的多个SID列表间进行负载分担。
SRv6 TE Policy可以通过如下方式创建:
· 通过命令行手工创建
采用该方式时,需要手工配置候选路径、候选路径的优先级、候选路径的SID列表及其权重。
· 通过BGP IPv6 SR Policy路由学习
为了支持SRv6 TE Policy,MP-BGP定义了新的子地址族——BGP IPv6 SR Policy地址族,并新增了NLRI(Network Layer Reachability Information,网络层可达性信息),即BGP IPv6 SR Policy路由。BGP IPv6 SR Policy路由中包含SRv6 TE Policy的相关配置,包括BSID、Color、Endpoint、候选路径优先级、SID列表和SID列表的权重等。
在设备间建立BGP IPv6 SR Policy对等体后,设备可以将本地配置的SRv6 TE Policy通过BGP IPv6 SR Policy路由发布到对端。对端设备根据接收到的BGP IPv6 SR Policy路由生成对应的SRv6 TE Policy。
· 通过ODN功能自动创建
创建ODN(On-Demand Next-Hop,按需下一跳)模板后,如果设备接收到的BGP路由携带的Color扩展团体属性与ODN模板的Color值相同,则以该BGP路由的下一跳地址作为SRv6 TE Policy的目的节点地址,以ODN模板的Color值作为SRv6 TE Policy的Color属性,自动创建一个SRv6 TE Policy。该SRv6 TE Policy会在指定Locator段内自动申请一个BSID。ODN自动创建SRv6 TE Policy后,会生成两条候选路径:
¡ Preference为200的候选路径,该候选路径下的SID列表需要通过亲和属性或Flex-Algo算法动态计算。
¡ Preference为100的候选路径,该候选路径下的SID列表需要由PCE计算。PCE计算的详细介绍,请参见“1.1.5 采用PCE计算的路径建立SID列表”。
由ODN功能自动创建的SRv6 TE Policy下还可以手工创建候选路径。
手工创建的SRv6 TE Policy和由ODN功能自动创建的SRv6 TE Policy,均支持在SRv6 TE Policy的源节点采用动态计算的路径建立SID列表。
SRv6 TE Policy支持采用如下方式动态计算路径:
· 根据亲和属性动态计算路径
· 根据Flex-Algo算法动态计算路径
SRv6 TE Policy根据亲和属性动态计算路径的过程为:
(1) 根据亲和属性规则决定SRv6 TE Policy可以使用哪些链路。
亲和属性规则可以通过引用亲和属性名称,来关联指定的亲和属性比特位,以实现SRv6 TE Policy根据亲和属性规则选择具有指定亲和属性比特位的链路。
¡ 链路属性:32位的二进制数,每一位二进制数代表一个属性,属性值为0或1。
¡ 亲和属性比特位:取值为0~31。当亲和属性比特位取值为N时,表示其与链路属性从右向左的第N+1位进行比较。仅当链路属性的第N+1位为1时,该链路才具有该亲和属性。
例如,亲和属性名称为blue,对应亲和属性比特位为1;亲和属性名称为red,对应亲和属性比特位为5。在不同亲和属性规则下,选择链路的方式为:
¡ 亲和属性规则为include-any,表示只有链路具有该规则中指定的任意一个亲和属性时,SRv6 TE Policy才可以使用该链路。如果链路的32位链路属性中第二位(blue对应的亲和属性比特位)或第六位(red对应的亲和属性比特位)为1,则该链路可用。
¡ 亲和属性规则为include-all,表示只有链路具有该规则中所有亲和属性时,SRv6 TE Policy才可以使用该链路。如果链路的32位链路属性中第二位(blue对应的亲和属性比特位)和第六位(red对应的亲和属性比特位)均为1,则该链路可用。
¡ 亲和属性规则为exclude-any时,表示只要链路具有该规则中指定的任意一个亲和属性时,SRv6 TE Policy不可以使用该链路。如果链路的32位链路属性中第二位(blue对应的亲和属性比特位)或第六位(red对应的亲和属性比特位)为1,则该链路不可用。
(2) 根据度量类型计算路径。
SRv6 TE Policy支持的度量类型及计算方式为:
¡ 以跳数作为度量值,选择跳数最少的链路。
¡ 以IGP链路开销值作为度量值,选择IGP链路开销值最低的链路。
¡ 以接口最小时延作为度量值,选择接口最小时延最低的链路。
¡ 以MPLS TE度量值作为度量值,选择TE度量值最低的链路。
路径计算完成后,设备将该路径上所有链路或节点对应的SID由近到远排列,组成SRv6 TE Policy的SID列表。选择SID时,优先选择End SID。如果设备上没有End SID,则选择End.X SID。
SRv6 TE Policy使用指定的Flex-Algo算法计算转发路径。通过Flex-Algo算法得到转发路径后,设备会将该路径上所有链路或节点对应的SID由近到远排列,组成SRv6 TE Policy的SID列表。选择SID时,优先选择End SID。如果设备上没有End SID,则选择End.X SID。
有关Flex-Algo算法计算路径的详细描述,请参见“三层技术-IP路由”中的“IS-IS”。
在SRv6 TE Policy网络中,SRv6节点可以作为PCC(Path Computation Client,路径计算客户端),根据PCE(Path Computation Element,路径计算单元)计算的路径建立SID列表。
· PCE:网络中的一个实体,用于为网络上的设备提供路径计算服务。可进行区域内的路径计算,也可在复杂的网络环境中计算完整的SID列表。PCE分为以下两种类型:
¡ Stateless PCE(Stateless Path Computation Element,无状态PCE):该类型PCE仅提供路径计算服务。
¡ Stateful PCE(Stateful Path Computation Element,有状态PCE):该类型PCE掌握了网络内所有PCC维护的路径信息,可以重新计算和优化域内的转发路径,以达到最大程度分配和使用网络资源的目的。Stateful PCE包括Active-Stateful PCE(Active-Stateful Path Computation Element,主动有状态PCE)和Passive-Stateful PCE(Passive-Stateful Path Computation Element,被动有状态PCE)两种类型。被动有状态PCE仅维护PCC的SID列表信息,不能实时根据网络状况优化路径,并通知PCC更新路径;主动有状态PCE可以实时根据网络状况优化路径,并通知PCC更新路径。
· PCC:请求PCE执行路径计算,并根据PCE返回的路径信息建立转发路径。PCC必须与PCE类型一致。因此,PCC分为以下两种类型:
¡ Stateless PCC(Stateless Path Computation Client,无状态PCC):该类型PCC仅向PCE发送路径计算请求。
¡ Stateful PCC(Stateful Path Computation Client,有状态PCC):该类型PCC的SID列表信息委托给PCE,由Stateful PCE维护PCC的路径信息。Stateful PCC包括Active-Stateful PCC(Active-Stateful Path Computation Client,主动有状态PCC)和Passive-Stateful PCC(Passive-Stateful Path Computation Client,被动有状态PCC)两种类型。被动有状态PCC的SID列表信息仅上报PCE,但不由PCE计算,不能实时更新路径;主动有状态PCC的SID列表信息上报PCE,并由PCE计算,可以实时更新路径。
· PCEP(Path Computation Element Protocol,路径计算单元通信协议):运行于PCC与PCE之间的通信协议,用于建立PCEP会话、交互PCEP消息。该协议基于TCP。
如图1-2所示,PCE路径计算过程如下:
(1) PCC向PCE发起路径计算请求。
(2) PCE收到该请求后,为PCC计算路径。
(3) PCE完成路径计算后,对PCC的路径请求进行应答,要求PCC创建路径信息。
(4) PCC根据PCE计算的路径信息在SRv6 TE Policy的候选路径下创建SID列表信息。
通过无效的SRv6 TE Policy转发流量,会导致流量转发失败。因此,只有SRv6 TE Policy有效时,才能通过该SRv6 TE Policy转发流量。
SRv6 TE Policy有效性判断规则如图1-3所示。
图1-3 SRv6 TE Policy有效性判断示意图
判断SID列表是否有效时,存在以下情况SID列表无效:
· SID列表为空;
· SID列表的权重为0;
· SR节点无法与SID列表中的第一跳IPv6地址互通。
SRv6 TE Policy组是一组具有相同End-point的SRv6 TE Policy的集合。通过SRv6 TE Policy组转发的流量可以根据报文的DSCP或Dot1p值等标识信息映射到SRv6 TE Policy组中不同Color值的SRv6 TE Policy中转发,根据业务的不同标识信息,实现差异化转发控制。
SRv6 TE Policy组由Group ID唯一标识,同时也存在BSID、Color和End-point属性:
· BSID:SRv6 TE Policy组入节点的SID,可以用于将流量引入SRv6 TE Policy组。
· Color:SRv6 TE Policy组携带的扩展团体属性,可以用于将携带相同Color属性的BGP路由可以迭代到该SRv6 TE Policy组。
· End-point:SRv6 TE Policy组目的节点的IPv6地址。End-point用于确认SRv6 TE Policy组中包含哪些SRv6 TE Policy,如果SRv6 TE Policy和SRv6 TE Policy组的End-point相同,则该SRv6 TE Policy属于这个SRv6 TE Policy组。
SRv6 TE Policy组可以通过如下方式创建:
· 通过命令行手工创建
采用该方式时,需要手工配置SRv6 TE Policy组的目的节点地址。
· 通过ODN功能自动创建
创建SRv6 TE Policy组的ODN模板后,当设备收到BGP路由时,如果该BGP路由携带的Color扩展团体属性与ODN模板的Color值相同,则以该BGP路由的下一跳地址作为SRv6 TE Policy组的目的节点地址,以ODN模板的Color值作为SRv6 TE Policy组的Color属性,生成一个SRv6 TE Policy组。设备将在未使用的组ID中,选择最小的组ID分配给该SRv6 TE Policy组。
可以通过如下方式将数据报文引流到SRv6 TE Policy,通过SRv6 TE Policy转发该报文:
· 基于BSID引流:如果接收到的报文的目的IPv6地址为某个SRv6 TE Policy或SRv6 TE Policy组的BSID,则通过该SRv6 TE Policy或SRv6 TE Policy组转发该报文。
· 基于Color引流:查找是否存在Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址完全相同的SRv6 TE policy。若存在,则将该BGP路由迭代到SRv6 TE Policy。当设备收到匹配该BGP路由的报文时,会通过SRv6 TE Policy转发该报文。
· 基于隧道策略引流:MPLS L3VPN、EVPN L3VPN、EVPN VPLS或EVPN VPWS组网中,通过部署隧道策略,将SRv6 TE Policy作为公网隧道来转发私网报文。隧道策略的详细介绍请参见“MPLS配置指导”中的“隧道策略”。
· 基于DSCP引流:通过以下方式引流到SRv6 TE Policy组(一组SRv6 TE Policy的集合)后,根据报文的DSCP值查找与其关联的Color属性,再通过Color属性匹配到SRv6 TE Policy组中的某个SRv6 TE Policy。这样,携带指定DSCP的报文可以通过指定SRv6 TE Policy转发。
¡ 根据报文的目的地址匹配隧道绑定策略,关联到SRv6 TE Policy组。
¡ 查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。
· 基于Dot1p引流:通过以下方式引流到SRv6 TE Policy组后,根据报文的802.1p优先级查找与其关联的Color属性,再通过Color属性匹配到SRv6 TE Policy组中的某个SRv6 TE Policy。这样,携带指定802.1p优先级的报文可以通过指定SRv6 TE Policy转发。
¡ 根据报文的目的地址匹配隧道绑定策略,关联到SRv6 TE Policy组。
¡ 查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。
· 基于service-class引流:service-class是一种设备的本地标识,可以通过remark service-class命令来标识流量的service-class。关于remark service-class命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。
基于service-class引流时,需要先通过以下方式将引流到SRv6 TE Policy组中:
¡ 根据报文的目的地址匹配隧道绑定策略,关联到SRv6 TE Policy组。
¡ 查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。
引流到SRv6 TE Policy组后,设备根据报文的service-class标识查找配置的service-class与Color或SRv6 BE的映射关系:
¡ 如果报文的service-class匹配到service-class与某个Color属性的映射关系,且该Color属性对应的SRv6 TE Policy有效,则采用这个SRv6 TE Policy转发流量。
¡ 如果报文的service-class匹配到service-class与SRv6 BE的映射关系,且SRv6 BE转发方式有效,则通过SRv6 BE方式转发报文。设备将为报文封装新的IPv6报文头,其中新IPv6报文头中的目的地址为SRv6 TE Policy组的尾节点为公网或私网路由分配的VPN SID,封装后的报文查找IPv6路由表转发。如果该VPN SID可达,表示SRv6 BE转发方式有效,可以采用这个SRv6 BE转发流量,否则SRv6 BE转发方式无效,不能采用SRv6 BE转发方式转发流量。
· 基于TE class ID引流:通过以下方式引流到SRv6 TE Policy组(一组SRv6 TE Policy的集合)后,根据报文的DSCP值查找与其关联的Color属性,再通过Color属性匹配到SRv6 TE Policy组中的某个SRv6 TE Policy。这样,指定TE class ID标识的报文可以通过指定SRv6 TE Policy转发。
¡ 根据报文的目的地址匹配隧道绑定策略,关联到SRv6 TE Policy组。
¡ 查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。
· 基于静态路由引流:配置静态路由迭代到SRv6 TE Policy,如果设备收到匹配该静态路由的报文,则通过指定SRv6 TE Policy转发该报文。
· 基于策略路由引流:通过策略路由将流量引流到SRv6 TE Policy,如果设备收到匹配该策略路由定义的匹配规则的报文,则通过指定SRv6 TE Policy转发该报文。有关策略路由的详细介绍,请参见“三层技术-IP路由配置指导”中的“策略路由”。
· 基于QoS策略引流:通过QoS策略将流量重定向到SRv6 TE Policy,如果设备收到匹配该QoS策略流分类规则的报文,则通过指定SRv6 TE Policy转发该报文。有关QoS策略的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。
· 基于Flowspec引流:通过Flowspec路由将流量重定向到SRv6 TE Policy,如果设备收到匹配该Flowspec路由规则的报文,则通过指定SRv6 TE Policy转发该报文。有关Flowspec的详细介绍,请参见“ACL和QoS配置指导”中的“Flowspec”。
· 自引流:SRv6 TE Policy的自动引流是指将SRv6 TE Policy隧道发布到IGP(OSPFv3或IS-IS)路由中,让SRv6 TE Policy参与IGP路由的计算,使得流量可以通过SRv6 TE Policy转发。
自动引流目前仅支持IGP Shortcut方式,也称为自动路由宣告(AutoRoute Announce),该功能将SRv6 TE Policy当作一条直接连接隧道Ingress节点(头节点)和Egress节点(尾节点)的链路,在隧道的Ingress节点上进行IGP路由计算时考虑该SRv6 TE Policy。
在隧道的Ingress节点上开启IGP Shortcut功能后,只有Ingress节点计算IGP路由时会考虑SRv6 TE Policy隧道。IGP Shortcut功能不会通过IGP路由协议将SRv6 TE Policy隧道作为一条链路发布出去。因此,其他设备在路由计算时不会考虑SRv6 TE Policy隧道。
数据报文引流到SRv6 TE Policy后,在SRv6 TE Policy中选择路径的过程为:
(1) 在SRv6 TE Policy中选择优先级取值最大的有效候选路径转发流量。
(2) 在优先级取值最大的有效候选路径的各个SID列表间进行WECMP(Weighted ECMP,权重负载分担),即基于权重对通过SRv6 TE Policy转发的流量进行负载分担。假设候选路径中包含n个有效SID列表,第x个SID列表的权重为Wight x,则第x个SID列表转发流量的比例为Weight x/(Weight 1+Weight 2+…+Weight n)。
如图1-4所示,根据BSID选择有效的SRv6 TE Policy转发流量,再选取优先级取值最大的有效候选路径转发流量。该候选路径中有两个有效的SID列表:SID List 1和SID List 2,其权重分别为20和80。通过该SRv6 TE Policy转发流量时,SID List 1和SID List 2转发的流量占比分别为1/5和4/5。
图1-4 SRv6 TE Policy转发流量时选路过程示意图
如图1-5所示,以基于BSID引流为例,SRv6 TE Policy的报文转发过程为:
(1) Device A收到目的地址为100::1的IPv6报文后,查找IPv6路由表,判断该报文的目的地址为BSID,需要通过SRv6 TE Policy转发。Device A根据SRv6 TE Policy为报文封装SRH头,SRH头携带的SID列表为{10::2, 20::2, 30::2}。其中,10::2为Device B的SID;20::2为Device C的SID;30::2为Device D的SID。
(2) Device A将封装后的报文发送给下一跳Device B。
(3) Device B收到报文后,根据SRH获取到下一跳为Device C,将报文发送给Device C。
(4) Device C收到报文后,根据SRH获取到下一跳为Device D,将报文发送给Device D。
(5) Device D收到报文后,检查SRH头中的SL值,发现SL=0。对报文进行解封装,删除封装报文头,根据原始报文的目的地址进行报文转发。
图1-5 SRv6 TE Policy转发过程示意图
SRv6 TE Policy CBTS(Class-based Tunnel Selection,基于服务类型的隧道选择)是一种SRv6 TE Policy隧道的选择方式。有别于传统的隧道选择方式,CBTS可以基于流量的隧道转发类选择对应的隧道进行转发,以便为不同的业务提供不同的转发服务。
SRv6 TE Policy CBTS工作原理为:
· 对需要经过SRv6 TE Policy转发的流量,通过流分类进行匹配,将不同业务的流量映射成不同的转发类。
· 配置SRv6 TE Policy的隧道转发类(Service-class属性),映射到指定转发类的业务流量可以通过具有对应转发类的SRv6 TE Policy隧道转发。
SRv6 TE Policy CBTS的优选规则为:
· 设备会优先选择与流量的转发类值相同的SRv6 TE Policy转发该流量。
· 如果存在多条与流量的转发类值相同的SRv6 TE Policy,只有一条流且为逐流负载分担则随机选择一个SRv6 TE Policy转发流量;有一条流但是为逐包负载分担或有多条流,则流量在相同转发类的SRv6 TE Policy间进行负载分担。
· 如果没有与流量的转发类值相同的SRv6 TE Policy,则选择隧道优先级最低的SRv6 TE Policy转发流量。SRv6 TE Policy转发类的取值越小,隧道转发的优先级越低,没有配置转发类的隧道优先级最低。
如图1-6所示,隧道的选择原则为:
· 从Device A到Device B隧道转发类值为3的流量通过SRv6 TE Policy B转发。
· 从Device A到Device B隧道转发类值为6的流量通过SRv6 TE Policy C转发。
· 从Device A到Device B隧道转发类值为4的流量通过SRv6 TE Policy A转发。
· 从Device A到Device B未配置隧道转发类的流量通过SRv6 TE Policy A转发。
如图1-7所示,网络中两个节点间建立一个SRv6 TE Policy组,该SRv6 TE Policy组中存在多个SRv6 TE Policy隧道,不同SRv6 TE Policy隧道的网络质量可能各不相同且实时变化。业务流量在SRv6 TE Policy组中转发时,用户希望业务流量可以根据SRv6 TE Policy隧道的网络质量情况自动切换转发路径,从而保证业务流量转发过程中始终达到网络质量标准。
SRv6 TE Policy的IPR功能(Intelligent Policy Route,智能策略路由)借助iFIT对SRv6 TE Policy隧道的网络质量进行实时检测的能力,根据iFIT的检测结果来排除不符合网络质量标准的SRv6 TE Policy隧道,并计算出当前优先级最高的SRv6 TE Policy隧道,并引导流量从该SRv6 TE Policy隧道转发。
图1-7 SRv6 TE Policy的智能策略路由功能示意图
SRv6 TE Policy的智能策略路由主要由三个功能协同完成:SRv6 TE Policy的iFIT测量功能、SRv6 TE Policy的IPR算路功能和业务流量引入IPR模板的功能。
(1) SRv6 TE Policy的iFIT测量功能:如图1-8所示,通过在SRv6 TE Policy的头节点和尾节点上部署iFIT功能,测量各个SRv6 TE Policy端到端的丢包率、时延和抖动,并在头节点上分析和计算得到每个SRv6 TE Policy的实时丢包率、时延和抖动数据。SRv6 TE Policy的iFIT测量功能详细工作流程如下:
a. SRv6 TE Policy头节点iFIT的工作模式设置为Analyzer,头节点将自动创建iFIT实例,并分配FlowID。
b. SRv6 TE Policy头节点作为数据发送端,当报文通过SRv6 TE Policy转发时,头节点为原始报文封装携带iFIT选项字段的DOH报文头和SRH报文头,iFIT选项字段中包括标识目标流的FlowID、丢包测量染色位L、时延测量染色位D及周期标识等信息。头节点按SRv6 TE Policy的iFIT检测周期为报文的丢包测量染色位L和时延测量染色位D染色,根据报文染色信息来统计周期内通过该SRv6 TE Policy转发的报文个数,并记录周期内从该SRv6 TE Policy发送的时延测量染色位D置1报文的时间戳。
c. 尾节点iFIT的工作模式设置为Collector,作为数据接收端,需要解析报文中iFIT选项字段,得到SRv6 TE Policy的iFIT检测周期等信息,根据报文染色信息来统计SRv6 TE Policy的iFIT检测周期内从SRv6 TE Policy接收到的报文个数,并记录SRv6 TE Policy的iFIT检测周期内从该SRv6 TE Policy接收的时延测量染色位D置1报文的时间戳。
d. 尾节点通过接收到报文的源地址与头节点建立UDP会话,并将统计到的报文计数和报文时间戳通过UDP会话按照SRv6 TE Policy的iFIT检测周期返回给头节点,由头节点分析和计算通过SRv6 TE Policy转发报文的丢包率、时延和抖动。
图1-8 SRv6 TE Policy的iFIT测量功能示意图
(2) SRv6 TE Policy的IPR算路功能:如图1-9所示,SRv6 TE Policy的头节点根据iFIT测量的不同SRv6 TE Policy的丢包率、时延和抖动数据,以及SRv6 TE Policy的选路优先级,周期性计算当前最优的SRv6 TE Policy。
IPR算路需要定义IPR模板,IPR模板代表一种基于SLA(Service Level Agreement,服务水平协议)的SRv6 TE Policy选路策略,IPR模板中可以定义如下内容:
¡ 不同的SLA(Service Level Agreement,服务水平协议)标准,包括业务流量的时延标准、丢包标准、抖动标准和综合度量指标CMI(Composite Measure Indicator)标准。其中,综合度量指标CMI=时延(毫秒)+抖动(毫秒)+丢包率(‰)。
¡ SRv6 TE Policy的Color值和选路优先级的映射关系。选路优先级的数值越小优先级越高。
¡ SRv6 TE Policy的切换时间和回切时间参数。
IPR算路功能的详细工作机制如下:
a. 头节点按照IPR计算周期定期进行路径计算。计算最优SRv6 TE Policy时,首先检查SRv6 TE Policy的时延、丢包率、抖动和综合度量指标是否全部不超过IPR模板中定义的SLA标准。如果任一指标不满足,则该SRv6 TE Policy不能作为备选的转发路径参与最优SRv6 TE Policy计算。需要注意的是SRv6 TE Policy的iFIT功能未能检测到某个SRv6 TE Policy的时延、丢包率、抖动和CMI参数,但该SRv6 TE Policy有效,则该SRv6 TE Policy仍可以作为备选路径参与路径优选。
b. 从备选的SRv6 TE Policy中选取选路优先级数值最小的SRv6 TE Policy,作为最优SRv6 TE Policy。如果存在多个不同SRv6 TE Policy具有相同的选路优先级,流量可以在这些SRv6 TE Policy上进行负载分担。
c. 当SRv6 TE Policy头节点计算出最优SRv6 TE Policy和业务当前使用的SRv6 TE Policy不同时,为了避免SRv6 TE Policy震荡导致业务频繁切换路径,业务流量将等待一定时间后再切换到最优的SRv6 TE Policy中转发。
图1-9 SRv6 TE Policy的IPR算路机制示意图
(3) 业务流量引入IPR模板的流程如下:
a. 将流量通过以下方式引入到SRv6 TE Policy组中,
- 根据报文的目的地址匹配隧道绑定策略,关联到SRv6 TE Policy组。
- 查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。
b. 设置SRv6 TE Policy组的转发类型为基于TE Class ID转发流量。
c. 配置指定TE Class ID和IPR模板的映射关系。此时,业务流量将在SRv6 TE Policy组动态选取最优SRv6 TE Policy转发。
echo报文方式的BFD对SRv6 TE Policy进行检测时,如果候选路径中存在多个SID列表,则SRv6 TE Policy会建立多个BFD会话分别用来检测每一个SID列表对应的转发路径。
如图1-10所示,在Device A上配置SRv6 TE Policy,并使用echo报文方式的BFD检测该SRv6 TE Policy,检测过程如下:
(1) 头节点发送BFD echo报文,BFD echo报文封装SRv6 TE Policy中的SID列表。
(2) 尾节点收到BFD echo报文后,通过IPv6路由的最短路径将BFD echo报文转发回头节点。
(3) 如果头节点在检测时间超时前能够收到尾节点转发回的BFD echo报文,则认为SRv6 TE Policy的SID列表正常。否则,头节点认为SID列表故障。如果主路径下的所有SID列表都发生故障,则BFD触发主备路径切换。
图1-10 echo报文方式的BFD会话检测SRv6 TE Policy
SRv6 TE Policy不会通过设备之间互相发送的消息来维持自身状态,所以SRv6 TE Policy路径故障检测需要依靠SBFD(Seamless BFD,无缝BFD)完成。通过SBFD检测SRv6 TE Policy的连通性,为其提供毫秒级的故障检测速度,并实现快速的故障切换。
如图1-11所示,在Device A上配置SRv6 TE Policy,并使用SBFD检测该SRv6 TE Policy。SBFD检测SRv6 TE Policy的过程如下:
(1) 头节点作为Initiator发送SBFD报文,SBFD报文封装SRv6 TE Policy中的SID列表。
(2) 作为Reflector的尾节点收到SBFD报文后,检查报文中携带的远端标识符是否与本地配置的标识符一致。如果一致,Reflector将通过IPv6路由向Initiator发送SBFD响应报文。如果不一致,Reflector将丢弃收到的SBFD报文。
(3) 如果头节点在检测时间超时前能够收到SBFD响应报文,则认为SRv6 TE Policy的SID列表正常。否则,头节点认为SID列表故障。
图1-11 SBFD for SRv6 TE Policy检测过程
对于同一源节点和目的节点之间不同的SRv6 TE Policy,由于SBFD回应报文时根据IP路由表进行转发,所以SBFD回应报文的转发路径是相同的。SBFD回应报文的转发路径故障将引起所有SBFD会话Down,进而导致无法通过SRv6 TE Policy转发流量。
当SRv6 TE Policy中存在多条有效候选路径时,设备通过优先级最大的候选路径转发报文。如果该候选路径发生故障,则SRv6 TE Policy需要重新选择有效候选路径转发报文。由于选择新的有效候选路径会耗费一些时间,所以在切换转发路径的过程中会造成丢包,影响业务流量转发。
SRv6 TE Policy的热备份功能可以解决上述问题。SRv6 TE Policy的热备份是指通过备份候选路径对主候选路径进行保护。如果一个SRv6 TE Policy下存在多条候选路径,则优先级最高的有效候选路径作为主路径,优先级次高的有效候选路径作为备份路径。如图1-12所示,如果主路径下所有SID列表对应的转发路径都发生故障,则将流量立即切换到备份候选路径转发,以减少对业务的影响。
图1-12 SRv6 TE Policy热备份示意图
SRv6 TE Policy热备份功能和SRv6 TE Policy与SBFD联动配合使用时,SBFD可以同时检测SRv6 TE Policy中优先级最高和次高的两条候选路径里的所有SID列表对应的转发路径。如果优先级最高的候选路径里所有SID列表对应的转发路径都发生故障,则将流量切换到备份路径。当流量切换到备份路径后,会再次重新计算主备路径。原备份路径将作为主路径,并重新选择一个有效的候选路径作为新的备份路径。当主备路径同时故障时,SRv6 TE Policy将重新计算主备路径。
SRv6 TE Policy的SID列表指定了报文沿途必须经过的节点或链路。如图1-13所示,节点A通过SRv6 TE Policy将报文转发到节点F,SRv6 TE Policy最优候选路径的SID列表中包含了节点D的End.SID和尾节点F的End.SID。因此,转发报文需要先通过节点D再抵达尾节点F。当节点D故障时,即使在上游节点B开启了TI-LFA FRR功能,但TI-LFA FRR计算备份路径时,仍然以节点D的End.SID作为目的地址,备份路径无法绕行节点D,没有达到保护的效果。
在必经节点D的上游节点B上开启中间节点保护(SRv6 TE FRR)功能,可以由节点B执行代理转发动作,通过绕行故障的中间节点D完成报文转发,从而解决必经的中间节点故障TI-LFA FRR无法绕行的问题,这个上游节点称之为代理转发节点。
在节点开启SRv6 TE FRR功能后,当报文中存在SRH,且SRH中SL>0时,在如下任一场景下,该节点将作为代理转发节点转发报文:
· 查询IPv6 FIB表,没有找到对应的转发表项。
· 报文的下一跳是报文目的地址,该目的地址对应的出接口状态为DOWN;
· 查询Local SID表匹配SRv6 SID为End.X SID,且End.X SID对应的出接口状态为DOWN。
· 从路由表中查到的路由为NULL0路由。
代理转发节点代替故障节点进行报文转发时,需要进行以下操作:
· 代理转发节点将报文中SRH的SL减1;
· 将下层要处理的SID更新到外层IPv6报文头,使其作为报文的目的地址;
· 根据目的地址查表转发。
代理转发节点通过执行以上操作使报文绕过故障节点,实现中间节点故障的保护。这种保护技术也称为SRv6 TE FRR。
以图1-14例,流量引入SRv6 TE Policy后,报文沿着SID列表{d, f}转发。节点D故障时,中间节点故障的保护过程如下:
(1) 节点D故障时,上游节点B快速感知到报文下一跳节点故障,此时,SL>0,且满足作为代理转发节点转发报文的条件,即下一跳报文目的地址d,该目的地址对应的出接口状态为DOWN。因此,节点B执行代理转发行为,将SL减1,并将下层SID f复制到外层IPv6报文头的目的地址字段。此时,由于SL=0,节点B可以去掉SRH扩展报文头,然后根据目的地址f查表转发。
(2) 节点B根据目的地f查表转发时,根据节点B的路由收敛情况,处理方式如下:
¡ 如果节点B上路由已经收敛(到达节点F的下一跳为节点C),则按照收敛后的最短路径转发报文,将报文转发到节点C。
¡ 如果节点B上路由未收敛(到达节点F的路由主下一跳为节点D),则按照TI-LFA计算的备份路径转发报文,备份路径的Repair List为<c1>。所以,节点B为报文封装SRH,添加备份路径Segment List c1,经过备份路径将报文转发到节点F。
如果SRv6 TE Policy的源节点A感知到节点D故障,即SRv6 TE Policy的SID列表中的第一个SID不可达,则源节点A会将SRv6 TE Policy置为down状态。此时,设备既无法通过该SRv6 TE Policy转发报文,也无法触发SRv6 TE FRR。
通过开启SRv6 TE Policy的备份路径功能,可以解决上述问题。开启SRv6 TE Policy的备份路径功能后,如果SRv6 TE Policy的SID列表中的第一个SID不可达,则设备生成一条目的地址为SID列表中第一个SID、出接口为NULL0的路由,保证该SRv6 TE Policy处于up状态,以触发SRv6 TE FRR。
当节点A触发SRv6 TE FRR后,节点A需要将SL减1,并将下层SID f更新到外层IPv6报文头作为报文的目的地址,然后根据目的地址查找路由表将报文转发到节点B。节点B收到报文后,处理方式如下:
· 如果节点B上路由已经收敛(到达节点F的下一跳为节点C),则按照收敛后的最短路径将报文转发到节点F。
· 如果节点B上路由未收敛(到达节点F的路由主下一跳为节点D),则按照TI-LFA计算的备份路径转发到节点F。
在IP L3VPN over SRv6/EVPN L3VPN over SRv6/EVPN VPLS over SRv6/EVPN VPWS over SRv6/公网IP over SRv6组网中,当公网隧道为SRv6隧道时,SRv6隧道的尾节点发生故障时,报文无法通过尾节点PE设备转发到CE设备,所以需要对SRv6隧道的尾节点提供保护。
SRv6尾节点保护是通过CE双归到PE设备实现的,因此,仅适用于双归属的网络场景,要求尾节点PE和对尾节点进行保护的另一个PE节点上具有相同的转发表项。
EVPN VPLS over SRv6/EVPN VPWS over SRv6双归属单活组网不支持SRv6 TE Policy尾节点保护功能。
SRv6尾节点保护不仅对SRv6 TE Policy作为隧道的场景有效,对SRv6 BE转发方式的组网场景也有效果。
如图1-15所示,以SRv6 TE Policy组网场景为例,在PE 1与PE 3之间部署SRv6 TE Policy,PE 3是SRv6 TE Policy的尾节点,为了增强可靠性,CE 2双归到PE 3和PE 4,PE 4为PE 3提供保护。
图1-15 SRv6尾节点保护示意图
在SRv6 TE Policy尾节点保护场景中,End.M SID用于保护指定的Locator,即保护指定Locator段内的SRv6 SID。如果远端设备发布的SRv6 SID在指定Locator段的范围内,则使用End.M SID对该SRv6 SID(称为远端SRv6 SID)进行保护。在不同组网环境中,End.M SID对应的转发动作不同:
(1) IP L3VPN/EVPN L3VPN/公网IP over SRv6 TE Policy尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息,查找远端SRv6 SID。根据查找到的远端SRv6 SID查询远端SRv6 SID与VPN实例/公网实例的映射表,找到对应VPN实例/公网实例。在PE 4上对应VPN实例/公网实例的路由表中查表转发。
(2) EVPN VPWS over SRv6 TE Policy尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息,查找远端SRv6 SID。根据查找到的远端SRv6 SID查询远端SRv6 SID与交叉连接的映射表,找到对应交叉连接。在PE 4上根据该交叉连接关联的AC转发报文。远端SRv6 SID类型仅支持End.DX2 SID。
(3) EVPN VPLS over SRv6 TE Policy尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息,查找远端SRv6 SID。根据查找到的远端SRv6 SID查询远端SRv6 SID与VSI的映射表,找到对应VSI。在PE 4上对应VSI内查找MAC地址表转发。远端SRv6 SID类型仅支持End.DT2U SID。
如图1-15所示,PE 4从PE 3收到BGP路由后,如果BGP路由中的SRv6 SID在PE 4上End.M SID保护的Locator范围内,则该SRv6 SID为远端SRv6 SID,同时在PE 4上生成远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI的映射表。
当PE 3故障时,PE 4与PE 3之间邻居中断,会导致PE 4从PE 3收到的BGP路由删除,进而导致远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI的映射表被删除,造成丢包。为了避免上述情况,可以在PE 4上延迟删除远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI的映射表,在PE 1感知到PE 3故障计算出新的转发路径前,保证流量通过PE 4转发,避免丢包。
IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS/公网IP over SRv6 TE Policy尾节点保护场景的路由发布过程类似,以IP L3VPN over SRv6 TE Policy尾节点保护场景为例进行介绍。
如图1-15所示,P 1上FRR路径的生成过程为:
(1) PE 4通过IS-ISv6路由向邻居P 1发布End.M SID和被保护的Locator,同时PE 4上生成End.M SID的Local SID表。
(2) P 1收到PE 4发送的End.M SID和被保护的Locator的路由后,P 1为被保护Locator安装一条Mirror FRR备份路径,这条Mirror FRR备份路径以PE 4作为下一跳。为了能够保证流量不经过故障的PE 3且无环路抵达PE 4,通常需要计算一条TI-LFA FRR备份路径,并将End.M SID压入到TI-LFA FRR备份路径的SID列表的最后。
如图1-15所示,PE 4上远端SRv6 SID与VPN实例的映射表生成过程为:
(1) PE 3收到CE 2发布的私网路由之后,封装成VPNv4路由发送给PE 4,路由携带SRv6 SID、RT、RD信息。
(2) PE 4从PE 3收到VPNv4路由后,获取到该VPN实例对应的SRv6 SID。PE 4使用该SRv6 SID和End.M SID保护的Locator段进行最长匹配。如果匹配上,则该SRv6 SID为远端SRv6 SID,在PE 4上生成远端SRv6 SID与VPN实例的映射表。
IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS/公网IP over SRv6 TE Policy尾节点保护场景的报文转发过程类似,以IP L3VPN over SRv6 TE Policy尾节点保护场景为例进行介绍。
图1-16 SRv6尾节点保护转发示意图
如图1-16所示,正常情况下,流量经过路径CE 1-PE 1-P 1-PE 3-CE 2转发。当尾节点PE 3故障时,报文转发过程为:
(1) P 1上感知到下一跳PE 3不可达,切换为Mirror FRR路径。本例中,P 1到PE 4的最优链路无需经过PE 3,无需封装TI-LFA FRR的SID列表,P 1直接为报文封装IPv6报文头,将其目的地址设置为End.M SID,然后转发给PE 4。
(2) PE 4发现目的地址为本地End.M SID,根据End.M SID对应的转发指令,剥掉外层IPv6报文头,获取到内层报文信息,再内层报文目的地址查询远端SRv6 SID与VPN实例的映射表,找到对应VPN实例1。然后,在PE 4上查询该VPN实例1的路由表将流量转发给CE 2。
SRv6 TE Policy配置任务如下:
(1) 创建SRv6 TE Policy,并配置基本属性
b. 配置PCEP会话
候选路径使用PCE计算SID列表时,必须配置执行本配置。
d. (可选)开启在SID列表中封装严格SID功能
e. (可选)配置动态路径计算的时间间隔
f. (可选)配置设备允许将SRv6 TE Policy的候选路径信息上报BGP-LS
g. (可选)关闭SRv6 TE Policy
(2) (可选)配置BGP发布BGP IPv6 SR Policy路由
a. 开启BGP发布BGP IPv6 SR Policy路由能力
b. 配置BGP引入BGP IPv6 SR Policy路由
c. (可选)配置将BGP IPv6 SR Policy路由发布给EBGP对等体
d. (可选)开启Router ID过滤功能
e. (可选)控制BGP IPv6 SR Policy路由的优选和发布
f. (可选)维护BGP会话
(4) (可选)配置SRv6 TE Policy的封装方式
(5) (可选)配置SRv6 TE Policy的智能策略路由功能
(6) (可选)配置SRv6 TE Policy高可靠性
¡ 开启SRv6 TE Policy的echo报文方式的BFD检测功能
(7) (可选)配置SRv6 TE Policy高级功能
¡ 开启SRv6 TE Policy在Policy失效时丢弃流量的功能
¡ 配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能
(8) (可选)维护SRv6 TE Policy
SRv6 TE Policy由BSID(入节点的SID)、Color和End-point(目的节点IP地址)标识。
BSID获取方式如下:
· 手工配置。
· 动态获取:SRv6 TE Policy下仅配置Color和End-point时,SRv6 TE Policy会自动申请一个BSID。
手工配置优先生效。
BSID必须在SRv6-TE视图下引用的Locator的静态段范围内。否则,BSID对应的SRv6 TE Policy不能用于报文转发。有关Locator的详细描述,请参见“Segment Routing配置指导”中的“SRv6”。
不同SRv6 TE Policy不能配置相同Color和目的节点地址。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 配置SRv6-TE引用Locator段。
srv6-policy locator locator-name
缺省情况下,SRv6-TE未引用Locator段。
(5) 创建SRv6 TE Policy,并进入SRv6 TE Policy视图。
policy policy-name
(6) (可选)手工配置BSID。
binding-sid ipv6 ipv6-address
(7) 配置Color属性和目的节点地址。
color color-value end-point ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy的Color属性和目的节点地址。
创建ODN模板后,如果设备接收到的BGP路由携带的Color扩展团体属性与ODN模板的Color值相同,则以该BGP路由的下一跳地址作为SRv6 TE Policy的目的节点地址,以ODN模板的Color值作为SRv6 TE Policy的Color属性,自动创建一个SRv6 TE Policy。
根据ODN模板创建SRv6 TE Policy时,可以利用IPv6地址前缀列表对BGP路由进行过滤。通过IPv6地址前缀列表过滤的BGP路由可以触发生成SRv6 TE Policy,被IPv6地址前缀列表拒绝的BGP路由不能触发建立SRv6 TE Policy。
ODN基于指定BGP路由自动创建SRv6 TE Policy后,如果该BGP路由被删除,则自动创建的SRv6 TE Policy也会被立刻删除,这样将导致通过该BGP路由转发的报文被丢弃。在BGP路由被删除后,为了避免流量丢失,可以配置延迟删除SRv6 TE Policy,待设备计算出新转发路径后,再将该SRv6 TE Policy删除。
通过ODN自动创建SRv6 TE Policy后,还需要配置SRv6 TE Policy的候选路径,配置方法为:
· 在自动创建的Preference为200的候选路径下,手工指定引用的SID列表。
· 在自动创建的Preference为100的候选路径下,配置由PCE自动计算SID列表。
· 手工创建Preference为100和200以外的其他候选路径,并指定该候选路径的SID列表。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 创建SRv6-TE,并进入SRv6-TE视图。
traffic-engineering
(4) 配置SRv6-TE引用Locator段。
srv6-policy locator locator-name
缺省情况下,SRv6-TE未引用Locator段。
(5) 创建ODN模板,并进入SRv6-TE-ODN视图。
on-demand color color-value
(6) (可选)配置ODN生成SRv6 TE Policy的触发策略。
restrict prefix-list-name
缺省情况下,携带的Color扩展团体属性与ODN模板的Color值相同的BGP路由均会触发ODN功能生成SRv6 TE Policy。
(7) (可选)配置由ODN模板生成的SRv6 TE Policy的延迟删除时间。
delete-delay delay-time
缺省情况下,由ODN模板生成的SRv6 TE Policy的延迟删除时间为180000毫秒。
本节所有配置的详细介绍,请参见“MPLS命令参考”中的“MPLS TE”。
可通过pce static命令静态指定PCE设备。PCC只能向PCE发起PCEP连接请求,不接受PCE的PCEP连接请求。
(1) 进入系统视图。
system-view
(2) 进入PCC视图。
pce-client
(3) 静态指定PCE对等体的IP地址。
pce static ip-address
当建立支持SRv6方式的PCEP会话时,需要在会话两端的设备上开启本功能。
(1) 进入系统视图。
system-view
(2) 进入PCC视图。
pce-client
(3) 开启PCC设备的SRv6能力。
pce capability segment-routing ipv6
缺省情况下,PCC设备的SRv6能力处于关闭状态。
在PCC上静态指定PCE设备后,PCC会与该PCE建立PCEP会话。通过本配置,可以根据网络情况调整PCEP会话参数。
(1) 进入系统视图。
system-view
(2) 进入PCC视图。
pce-client
(3) 配置发送路径计算请求后等待应答的超时时间。
pce request-timeout value
缺省情况下,发送路径计算请求后等待应答的超时时间为10秒。
(4) 配置PCEP会话的保持时间。
pce deadtimer value
缺省情况下,PCEP会话的保持时间为120秒。
(5) 配置PCEP会话的Keepalive消息的发送时间间隔。
pce keepalive interval
缺省情况下,Keepalive消息的发送时间间隔为30秒。
(6) 配置本地设备对PCE对等体发送的消息的容忍度。
pce tolerance { min-keepalive value | max-unknown-messages value }
缺省情况下,能接受的对等体发送Keepalive消息的最小时间间隔为10秒;每分钟能接受的对等体发送的最大未知类型消息个数为5。
(7) 配置PCEP会话的安全认证方式。请选择其中一项进行配置。
¡ 采用keychain安全认证方式。
pce peer ip-address keychain keychain-name
¡ 采用MD5安全认证方式。
pce peer ip-address md5 { cipher | plain } string
缺省情况下,所有PCEP会话均不进行安全认证。
建立PCEP会话的两端必须配置相同的安全认证方式,且必须使用相同的认证算法和密码。
对于同一SRv6 TE Policy的同一优先级的候选路径,不能同时手工引用SID列表和使用PCE计算自动创建SID列表。
为SRv6 TE Policy的候选路径引用手工创建的SID列表前,需要先创建SID列表,并在列表中添加节点。在SID列表中添加节点后,报文转发路径上由近到远的节点(从源节点的下一跳到目的节点)依次为SID列表中节点索引值从小到大的节点。例如,索引值最小的节点为源节点的下一跳。
为了减少SRH的开销可以在SID列表中添加G-SID,使用4个32bits G-SID代替1个普通的128bits SRv6 SID。可以在SID列表中添加携带COC标识的128bits SRv6 SID,表示当前节点的下一节点为32bits G-SID。
有关G-SID的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
当多个SRv6 TE Policy存在公共路径时,可以将公共路径配置为一个特定的SRv6 TE Policy。配置其他SRv6 TE Policy时,可以将SID列表中的某个节点配置为特定SRv6 TE Policy的BSID,使流量可以迭代到该特定的SRv6 TE Policy上,以简化配置。
如果SID列表中携带了G-SID节点且该SID列表是通过控制器下发给转发设备,则请在控制器上配置index index-number ipv6 ipv6-address flavor flavor-number lb-length ln-length functiong-length args-length命令在SID列表中添加G-SID节点,形成一条包括G-SID节点的显式路径,并通过BGP IPv6 SR Policy地址族路由将该路径下发到转发设备上。转发设备上流量可以依次经过SID列表中的G-SID节点转发。
在SID列表中添加G-SID时,需要保证:
· G-SID的前一节点对应的SRv6 SID必须是End(COC32) SID或End.X(COC32) SID。
· 最后一个节点对应的SRv6 SID不能携带COC标识。
将SID列表中第一个节点配置为指定SRv6 TE Policy的BSID时,需要注意:
· 不能反复迭代SRv6 TE Policy,即第一个节点配置为其他SRv6 TE Policy的BSID后,该BSID对应的SRv6 TE Policy的SID列表中,第一节点不能指定为任意SRv6 TE Policy的BSID。
· 第一个节点不能配置为本SRv6 TE Policy的BSID。
· 不能配置SRv6 TE Policy路径连通性检查功能。
· 第一个节点配置为其他SRv6 TE Policy的BSID后,该BSID不能配置为本地BSID和反向BSID。
· 本SRv6 TE Policy的流量统计功能、BFD检测功能、SBFD检测功能不受所迭代的SRv6 TE Policy的相应功能的开关状态影响。
· 本SRv6 TE Policy的BFD/SBFD的检测时间不能小于所迭代的SRv6 TE Policy的BFD/SBFD的检测时间。
· 本SRv6 TE Policy的Path MTU值不能小于所迭代的SRv6 TE Policy的Path MTU值。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 创建SID列表,并进入SID列表视图。
segment-list segment-list-name
(5) 在SID列表中添加节点。
¡ 添加普通128bits SRv6 SID。
index index-number ipv6 ipv6-address [ verification ]
¡ 添加COC标识的128bits SRv6 SID,并指定下一个G-SID的公共前缀长度。
index index-number coc32 ipv6 ipv6-address common-prefix-length [ verification ]
¡ 在控制器上添加G-SID节点,指定SRv6 G-SID的类型及其附加行为及SRv6 G-SID的各部分长度。
index index-number ipv6 ipv6-address flavor flavor-number lb-length ln-length functiong-length args-length [ verification ]
(6) 退回SRv6-TE视图。
quit
(7) 进入SRv6 TE Policy视图。
policy policy-name
(8) 创建SRv6 TE Policy候选路径,并进入SRv6 TE Policy候选路径视图。
candidate-paths
(9) 配置候选路径的优先级,并进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
不同的优先级代表不同的候选路径。
(10) 为指定优先级的SRv6 TE Policy候选路径配置SID列表。
explicit segment-list segment-list-name [ local-binding-sid ipv6 ipv6-address | path-mtu mtu-value | reverse-binding-sid ipv6 ipv6-address | weight weight-value ] *
一条候选路径可以引用多个SID列表。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建约束条件映射关系,并进入约束条件映射关系视图。
affinity-map
(5) 配置亲和属性名称和亲和属性比特位之间的映射关系。
name name bit-position bit-position-number
缺省情况下,未配置亲和属性名称和亲和属性比特位之间的映射关系。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 进入SRv6 TE Policy候选路径视图。
candidate-paths
(6) 进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
不同的优先级代表不同的候选路径。
(7) 创建SRv6 TE Policy的约束条件,并进入约束条件视图。
constraints
(8) 创建并进入亲和属性视图。
affinity
(9) 配置亲和属性规则,并进入亲和属性规则视图。请至少选择其中一项进行配置。
¡ 配置亲和属性规则为Include-all规则,并进入亲和属性规则视图。
include-all
¡ 配置亲和属性规则为Include-any规则,并进入亲和属性规则视图。
include-any
¡ 配置亲和属性规则为Exclude-any规则,并进入亲和属性规则视图。
exclude-any
(10) 为亲和属性规则指定亲和属性的名称。
name name
缺省情况下,未配置亲和属性的名称。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 进入SRv6 TE Policy候选路径视图。
candidate-paths
(6) 进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
(7) 开启动态计算路径功能,创建并进入SRv6 TE Policy Path Preference动态配置视图。
dynamic
缺省情况下,动态计算路径功能处于关闭状态。
(8) 创建度量方式,并进入度量方式视图。
metric
(9) 配置度量类型。
type { hopcount | igp | latency | te }
缺省情况下,未配置度量类型,SRv6 TE Policy无法动态计算路径。
(10) (可选)配置SID列表中的SID最大数目。
sid-limit limit-value
缺省情况下,未配置SID列表中的SID最大数目。
SRv6 TE Policy根据指定的度量类型计算路径时,可以通过配置本命令限制SRv6 TE Policy候选路径的SID列表中的SID数量。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 进入SRv6 TE Policy候选路径视图。
candidate-paths
(6) 进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
不同的优先级代表不同的候选路径。
(7) 开启动态计算路径功能,创建并进入SRv6 TE Policy Path Preference动态配置视图。
dynamic
缺省情况下,动态计算路径功能处于关闭状态。
(8) 退回SRv6 TE Policy候选路径优先级视图。
quit
(9) 创建SRv6 TE Policy的约束条件,并进入约束条件视图。
constraints
(10) 配置段约束条件,并进入段约束条件视图。
segments
(11) 配置SRv6 TE Policy关联的Flex-Algo算法。
sid-algorithm algorithm-id
缺省情况下,SRv6 TE Policy未关联Flex-Algo算法。
进行本配置前,需要先配置PCEP会话。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 进入SRv6 TE Policy候选路径视图。
candidate-paths
(6) 进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
不同的优先级代表不同的候选路径。
(7) 创建并进入SRv6 TE Policy Path Preference动态配置视图。
dynamic
(8) 开启使用PCE计算路径功能。
pcep
缺省情况下,PCE计算路径功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建约束条件映射关系,并进入约束条件映射关系视图。
affinity-map
(5) 配置亲和属性名称和亲和属性比特位之间的映射关系。
name name bit-position bit-position-number
缺省情况下,未配置亲和属性名称和亲和属性比特位之间的映射关系。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 进入SRv6 TE ODN视图。
on-demand color color-value
(5) 开启动态计算路径功能,创建并进入SRv6 TE ODN动态配置视图。
dynamic
缺省情况下,动态计算路径功能处于关闭状态。
(6) 配置亲和属性规则,并进入亲和属性规则视图。
affinity { include-all | include-any | exclude-any }
(7) 为亲和属性规则指定亲和属性的名称。
name name
缺省情况下,未配置亲和属性的名称。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 进入SRv6 TE ODN视图。
on-demand color color-value
(5) (可选)配置最大SID标签栈深度。
maximum-sid-depth value
缺省情况下,未配置最大SID标签栈深度。
为以ODN方式生成的SRv6 TE Policy计算路径时,可以通过本命令限制SRv6 TE Policy候选路径的SID列表中的SID数量。
(6) 开启动态计算路径功能,创建并进入SRv6 TE ODN动态配置视图。
dynamic
缺省情况下,动态计算路径功能处于关闭状态。
(7) 创建度量方式,并进入度量方式视图。
metric
(8) 配置度量类型。
type { hopcount | igp | latency | te }
缺省情况下,未配置度量类型,SRv6 TE Policy无法动态计算路径。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 进入SRv6 TE ODN视图。
on-demand color color-value
(5) (可选)配置最大SID标签栈深度。
maximum-sid-depth value
缺省情况下,未配置最大SID标签栈深度。
为以ODN方式生成的SRv6 TE Policy计算路径时,可以通过本命令限制SRv6 TE Policy候选路径的SID列表中的SID数量。
(6) 开启动态计算路径功能,创建并进入SRv6 TE ODN动态配置视图。
dynamic
缺省情况下,动态计算路径功能处于关闭状态。
(7) 配置SRv6 TE Policy关联的Flex-Algo算法。
sid-algorithm algorithm-id
缺省情况下,SRv6 TE Policy未关联Flex-Algo算法。
进行本配置前,需要先配置PCEP会话。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 进入SRv6-TE-ODN视图。
on-demand color color-value
(5) 进入SRv6-TE-ODN动态配置视图。
dynamic
(6) 开启使用PCE计算路径功能。
pcep
缺省情况下,PCE计算路径功能处于关闭状态。
开启PCE托管后,SRv6 TE Policy将候选路径托管给PCE,PCC接受来自PCE的候选路径的创建或更新请求,来创建或更新候选路径信息。
如果设备上存在的多个SRv6 TE Policy中仅一部分由PCE托管,为了保证PCE准确计算全局的带宽信息,未托管的SRv6 TE Policy候选路径的信息也需要通过PCEP Report message消息上报给PCE。此时可以配置将无需托管的SRv6 TE Policy的候选路径信息上报给PCE,但不由PCE计算候选路径。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置PCE托管功能和上报但不由PCE托管功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
如果SRv6-TE视图下同时配置srv6-policy pce delegation enable命令和srv6-policy pce passive-delegate report-only enable命令,则srv6-policy pce passive-delegate report-only enable命令优先生效。
如果同一SRv6 TE Policy下同时配置pce delegation命令和pce passive-delegate report-only命令,则pce passive-delegate report-only命令优先生效。
进行本配置前,需要先配置PCEP会话。
(1) 进入系统视图。
system-view
(2) 进入PCC视图。
pce-client
(3) 配置PCE的托管优先级。
pce peer ip-address delegation-priority priority
缺省情况下,PCE的托管优先级为65535。
数值越小,优先级越高。
(4) 配置PCC的重托管超时时间。
pce redelegation-timeout value
缺省情况下,PCC的重托管超时时间为30秒。
(5) 配置PCC的状态老化时间。
pce state-timeout value
缺省情况下,PCC的状态老化时间为60秒。
(1) 进入系统视图。
system-view
(2) 进入PCC视图。
pce-client
(3) 配置PCEP设备类型。
pcep type { active-stateful | passive-stateful }
缺省情况下,PCEP设备为无状态(Stateless)类型。
(4) 退回系统视图。
quit
(5) 进入SRv6视图。
segment-routing ipv6
(6) 进入SRv6-TE视图。
traffic-engineering
(7) 全局开启SRv6 TE Policy的PCE托管功能。
srv6-policy pce delegation enable
缺省情况下,SRv6 TE Policy的PCE托管功能处于关闭状态。
(8) 全局开启将SRv6 TE Policy的候选路径信息上报给PCE,但候选路径不由PCE进行托管功能。
srv6-policy pce passive-delegate report-only enable
缺省情况下,将SRv6 TE Policy的候选路径信息上报给PCE,但候选路径不由PCE进行托管功能处于关闭状态。
(9) 进入SRv6 TE Policy视图。
policy policy-name
(10) 配置SRv6 TE Policy的PCE托管功能。
pce delegation { enable | disable }
缺省情况下,未配置SRv6 TE Policy的PCE托管功能,以SRv6-TE视图下的配置为准。
(11) 配置将SRv6 TE Policy的候选路径信息上报给PCE,但候选路径不由PCE进行托管。
pce passive-delegate report-only { enable | disable }
缺省情况下,未配置SRv6 TE Policy的仅上报不托管功能,以SRv6-TE视图下的配置为准。
SRv6 TE Policy的SID列表可以由End SID和End.X SID组成。End SID不能唯一标识一条链路,当网络中链路频繁震荡时,会导致SRv6 TE Policy的转发路径发生变化,不能保证用户流量的稳定性。为了解决该问题,可以开启本功能严格约束SRv6 TE Policy的转发路径。开启本功能后,在SRv6 TE Policy动态计算SID列表时,计算出的SID列表只能包含End.X SID,保证SRv6 TE Policy转发路径的稳定性。
请在SRv6 TE Policy的源节点开启本功能。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 开启在SID列表中封装严格SID功能。
¡ 依次执行以下命令,在SRv6 TE Policy Path Preference动态配置视图下开启本功能。
policy policy-name
candidate-paths
preference preference-value
dynamic
strict-sid-only enable
¡ 依次执行以下命令,在SRv6 TE ODN动态配置视图下开启本功能。
on-demand color color-value
dynamic
strict-sid-only enable
缺省情况下,在SID列表中封装严格SID功能处于关闭状态。
为SRv6 TE Policy动态计算路径时,通过本命令调节SRv6 TE Policy的路径计算时间,可以抑制网络频繁变化可能导致的带宽资源和设备资源被过多占用的问题。
配置本功能同时指定maximum-interval、minimum-interval和incremental-interval后:
· 第一次触发SRv6 TE Policy路径计算时,设备会将minimum-interval作为路径计算的时间间隔。
· 第n次(n>1)触发SRv6 TE Policy路径计算时,设备会将路径计算的时间间隔在minimum-interval的基础上,增加incremental-interval×2n-2,最大不超过maximum-interval。
当(minimum-interval+incremental-interval×2n-2)的值≥maximum-interval值时,设备根据conservative参数配置情况和SRv6 TE Policy震荡情况,调整路径计算的时间间隔:
· 指定conservative参数时:
¡ 如果SRv6 TE Policy震荡,则设备会将maximum-interval作为路径计算的时间间隔。
¡ 如果SRv6 TE Policy未震荡,则设备按照最大时间间隔进行一次路径计算后,将按照最小时间间隔进行路径计算。
· 未指定conservative参数时:
¡ 如果SRv6 TE Policy震荡,则设备连续三次按照最大时间间隔进行路径计算后,将按照最小时间间隔进行路径计算。
¡ 如果SRv6 TE Policy未震荡,则设备按照最大时间间隔进行一次路径计算后,将按照最小时间间隔进行路径计算。
配置的minimum-interval和incremental-interval不允许大于maximum-interval。
在对路径计算速度要求较高的环境下,可以采用固定的时间间隔来提高路径计算的频率,从而加速路径计算。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 配置动态路径计算的时间间隔。
srv6-policy calc-schedule-interval { maximum-interval [ minimum-interval [ incremental-interval [ conservative ] ] ] | millisecond interval }
缺省情况下,动态路径计算的最大时间间隔为5秒,最小时间间隔为50毫秒,时间间隔惩罚增量为200毫秒。
配置本功能后,设备将SRv6 TE Policy的候选路径信息上报BGP-LS,通过BGP-LS路由对外发布,以满足需要知道SRv6 TE Policy路径信息的应用的需求。
配置本功能前,需要开启本设备与对等体/对等体组交换LS信息的能力。有关该功能的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP LS”。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 配置设备允许将SRv6 TE Policy的候选路径信息上报BGP-LS。
distribute bgp-ls
缺省情况下,不允许将SRv6 TE Policy的候选路径信息上报BGP-LS。
通过本功能控制SRv6 TE Policy的开启和关闭状态,从而控制该SRv6 TE Policy是否可以转发流量。
当设备存在多个SRv6 TE Policy时,可以配置本命令,关闭一些不需要的SRv6 TE Policy,避免影响流量转发。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 关闭SRv6 TE Policy。
shutdown
缺省情况下,SRv6 TE Policy处于开启状态。
BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 配置全局Router ID。
router id router-id
缺省情况下,未配置全局Router ID。
(3) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(4) 配置对等体。
peer { group-name | ipv6-address [ prefix-length ] } as-number as-number
(5) 创建BGP IPv6 SR Policy地址族,并进入BGP IPv6 SR Policy地址族视图。
address-family ipv6 sr-policy
(6) 使能本地路由器与指定对等体/对等体组交换BGP IPv6 SR Policy路由的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体/对等体组交换BGP IPv6 SR Policy路由。
通过配置本功能,设备可以将本地的BGP IPv6 SR Policy路由引入到BGP路由表中,并将BGP IPv6 SR Policy路由发布给IBGP对等体,以便对等体根据SRv6 TE Policy转发流量。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6 SR Policy地址族视图。
address-family ipv6 sr-policy
(4) 将BGP IPv6 SR Policy路由引入到BGP路由表中。
import-route sr-policy
缺省情况下,BGP不会引入BGP IPv6 SR Policy路由。
缺省情况下,BGP IPv6 SR Policy路由只能在IBGP对等体之间发布。如果需要将BGP IPv6 SR Policy路由发布给EBGP对等体,则需要执行本配置。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6 SR Policy地址族视图。
address-family ipv6 sr-policy
(4) 配置将BGP IPv6 SR Policy路由发布给EBGP对等体。
advertise ebgp enable
缺省情况下,BGP IPv6 SR Policy路由不发布给EBGP对等体。
当网络中存在大量的BGP IPv6 SR Policy路由,而设备仅希望处理部分路由时,可以通过本配置过滤接收到的BGP IPv6 SR Policy路由。
执行本配置后,设备将检查接收到的BGP IPv6 SR Policy路由中携带的Route Target属性,如果该属性中包含本地设备的Router ID,则接收该路由;否则,丢弃该路由。
为了正确使用本功能,需要通过路由策略等方式为BGP IPv6 SR Policy路由合理添加Route Target属性。否则,可能会导致错误地学习或丢弃BGP IPv6 SR Policy路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6 SR Policy地址族视图。
address-family ipv6 sr-policy
(4) 开启Router ID过滤功能。
router-id filter
缺省情况下,Router ID过滤功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6 SR Policy地址族视图。
address-family ipv6 sr-policy
(4) 配置路由的NEXT_HOP属性,请选择其中一项进行配置。
¡ 向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。
peer { group-name | ipv6-address [ prefix-length ] } next-hop-local
¡ 向对等体/对等体组发布路由时,不修改路由的下一跳属性。
peer { group-name | ipv6-address [ prefix-length ] } next-hop-invariable
缺省情况下,设备向EBGP对等体/对等体组发布路由时,将下一跳属性修改为自身的地址;向IBGP对等体/对等体组发布路由时,不修改下一跳属性。
peer next-hop-local命令与peer next-hop-invariable命令互斥。
(5) 配置对于从对等体/对等体组接收的BGP消息,允许本地AS号在该消息的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv6-address [ prefix-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收消息的AS_PATH属性中出现。
(6) 为从对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv6-address [ prefix-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
(7) 配置允许从对等体/对等体组接收的路由的最大数量。
peer { group-name | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
(8) 配置BGP路由反射。
a. 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer { group-name | ipv6-address [ prefix-length ] } reflect-client
缺省情况下,没有配置路由反射器及其客户机。
b. (可选)允许路由反射器在客户机之间反射BGP IPv6 SR Policy路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射路由。
c. (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
(9) 为对等体/对等体组设置基于IPv6地址前缀列表的路由发布和接收过滤策略。
peer { group-name | ipv6-address [ prefix-length ] } prefix-list ipv6-prefix-list-name { export | import }
缺省情况下,不对发布和接收的路由信息进行过滤。
(10) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv6-address [ prefix-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(11) 配置向对等体/对等体组发布团体属性。
peer { group-name | ipv6-address [ prefix-length ] } advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
(12) 配置向对等体/对等体组发布扩展团体属性。
peer { group-name | ipv6-address [ prefix-length ] } advertise-ext-community
缺省情况下,不向对等体/对等体组发布扩展团体属性。
(13) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv6-address [ prefix-length ] } high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
(14) 配置路由优选延迟,请至少选择其中的一项进行配置。
¡ 配置对地址族下的所有BGP路由延迟优选。
route-select delay delay-value
¡ 配置邻居状态由Down变为Up后,在指定的持续时间内仅对来自该邻居的BGP路由延迟优选。
route-select suppress on-peer-up milliseconds
缺省情况下,路由优选不延迟。
请在用户视图下执行如下命令,复位或软复位BGP会话。
· 复位BGP IPv6 SR Policy地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv6-address [ prefix-length ] | all | external | group group-name | internal } ipv6 sr-policy
· 手工对BGP IPv6 SR Policy地址族下的BGP会话进行软复位。
refresh bgp [ instance instance-name ] { ipv6-address [ prefix-length ] | all | external | group group-name | internal } { export | import } ipv6 sr-policy
在L2VPN组网环境中,本功能不生效。
采用基于Color的引流方式时,需要通过路由策略等方式为IPv6单播路由添加Color扩展团体属性。路由策略的配置方法请参见“三层技术-IP路由配置指导”中的“路由策略”。
采用基于隧道策略的引流方式时,需要配置绑定隧道、首选隧道策略或负载分担隧道策略,详细配置方法请参见“MPLS配置指导”中的“隧道策略”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 配置引流到SRv6 TE Policy的方式。
sr-policy steering { disable | policy-based }
缺省情况下,基于Color将数据报文引流到SRv6 TE Policy。
指定policy-based参数后,按照基于隧道绑定策略进行引流->基于Color引流->基于隧道负载分担策略进行引流的优先级顺序引流方式。
基于Color引流到SRv6 TE Policy时,如果设备接收到的路由未携带Color扩展团体属性,可以通过如下两种方式为路由指定Color扩展团体属性:
· 通过配置路由策略为路由添加Color值。
· 为路由指定缺省Color值。
路由优先采用路由策略中指定的Color值。
通过缺省Color值引流时,Color值仅在SRv6 TE Policy隧道引流时生效,路由向外发布时不生效。通过缺省Color值引流只对从远端PE学习到的VPN或公网实例路由生效。
(1) 进入系统视图。
system-view
(2) 进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
(3) 配置BGP路由的Color扩展团体属性。
apply extcommunity color color [ additive ]
缺省情况下,未配置BGP路由属性。
(4) 退回系统视图。
quit
(5) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(6) 进入BGP IPv4单播地址族视图、BGP IPv6单播地址族视图、BGP VPNv4地址族视图、BGP VPNv6地址族视图或BGP EVPN地址族视图。
¡ 进入BGP IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 进入BGP IPv6单播地址族视图。
address-family ipv6 [ unicast ]
¡ 进入BGP VPNv4地址族视图。
address-family vpnv4
¡ 进入BGP VPNv6地址族视图。
address-family vpnv6
¡ 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(7) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv6-address [ prefix-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图。
ip vpn-instance vpn-instance-name [ index vpn-index ]
(3) 进入VPN实例IPv4地址族视图或VPN实例IPv6地址族视图。
¡ 进入VPN实例IPv4地址族视图。
address-family ipv4
¡ 进入VPN实例IPv6地址族视图。
address-family ipv6
(4) 配置L3VPN业务迭代SRv6 TE Policy隧道时使用指定的缺省Color值。
default-color color-value [ evpn ]
缺省情况下,未指定L3VPN业务迭代SRv6 TE Policy隧道时使用的缺省Color值。
(1) 进入系统视图。
system-view
(2) 进入公网实例视图。
ip public-instance
(3) 进入公网实例IPv4地址族视图或公网实例IPv6地址族视图。
¡ 进入公网实例IPv4地址族视图。
address-family ipv4
¡ 进入公网实例IPv6地址族视图。
address-family ipv6
(4) 配置公网业务迭代SRv6 TE Policy隧道时使用指定的缺省Color值。
default-color color-value
缺省情况下,未指定公网路由迭代SRv6 TE Policy隧道时使用的缺省Color值。
(1) 进入系统视图。
system-view
(2) 创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name [ default ]
(3) 配置隧道策略。请至少选择其中一项进行配置。
¡ 配置绑定的隧道类型为SRv6 TE Policy隧道。
binding-destination dest-ipv6-address srv6-policy { name policy-name | end-point ipv6 ipv6-address color color-value } [ ignore-destination-check ] [ down-switch ]
缺省情况下,未配置绑定隧道。
¡ 配置指定的SRv6 TE Policy隧道为首选隧道。
preferred-path srv6-policy name sr-policy-name
缺省情况下,未配置首选隧道。
¡ 配置SRv6 TE Policy隧道的负载分担策略。
select-seq srv6-policy load-balance-number number
缺省情况下,未配置负载分担策略。
本命令的详细描述,请参见“MPLS命令参考”中的“隧道策略”。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图、VPN实例IPv4地址族视图或VPN实例IPv6地址族视图。
¡ 进入VPN实例视图。
ip vpn-instance vpn-instance-name
¡ 请依次执行以下命令进入VPN实例IPv4地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv4
¡ 请依次执行以下命令进入VPN实例IPv6地址族视图。
ip vpn-instance vpn-instance-name
address-family ipv6
(3) 配置VPN实例的隧道策略。
tnl-policy tunnel-policy-name
缺省情况下,未配置VPN实例的隧道策略。
本命令的详细描述,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(1) 进入系统视图。
system-view
(2) 进入交叉连接组视图。
xconnect-group group-name
(3) 进入交叉连接视图。
connection connection-name
(4) 创建EVPN PW并引用隧道策略。
evpn local-service-id local-service-id remote-service-id remote-service-id tunnel-policy tunnel-policy-name
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 指定引用的隧道策略。
tunnel-policy tunnel-policy-name
缺省情况下,未引用隧道策略。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
SRv6 TE Policy组中不同SRv6 TE Policy的Color属性不同。配置Color与DSCP的映射关系后,在一个SRv6 TE Policy组内,可以形成DSCP->Color->SRv6 TE Policy的映射关系,从而实现通过IP报文的DSCP值将报文引流到指定的SRv6 TE Policy。
只有SRv6 TE Policy有效时,才能将其Color值与DSCP关联。
IPv4和IPv6地址族可以分别指定Color与DSCP的映射关系,但是对于同一个地址族的报文,每个DSCP值仅支持关联一个Color值。
可以通过color match dscp default命令来配置某个SRv6 TE Policy作为指定地址族报文的缺省SRv6 TE Policy。当SRv6 TE Policy组内某个DSCP没有关联到SRv6 TE Policy时,可以使用该缺省SRv6 TE Policy转发报文。一个SRv6 TE Policy组内,一个地址族只能有一个缺省SRv6 TE Policy。
当设备收到未匹配Color和DSCP映射关系的IPv4/IPv6地址族报文时,依次按照如下原则选择报文转发方式:
(1) 如果本地址族已配置缺省的SRv6 TE Policy,且该SRv6 TE Policy有效,则采用该SRv6 TE Policy转发报文。
(2) 如果另一地址族已配置缺省的SRv6 TE Policy,且该SRv6 TE Policy有效,则采用该SRv6 TE Policy转发报文。
(3) 如果配置了drop-upon-mismatch enable命令,则直接丢弃报文。
(4) 如果未配置drop-upon-mismatch enable命令,但本地址族下配置了Color和DSCP映射关系,则查找DSCP值最小且该DSCP值对应的SRv6 TE Policy有效的映射关系,采用该映射关系中指定的SRv6 TE Policy转发报文。
(5) 如果未配置drop-upon-mismatch enable命令,但另一地址族下配置了Color和DSCP映射关系,则查找DSCP值最小且该DSCP值对应的SRv6 TE Policy有效的映射关系,采用该映射关系中指定的SRv6 TE Policy转发报文。
(6) 上述条件均未满足时,报文不通过SRv6 TE Policy转发,查找IPv6路由表转发。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组,并进入SRv6 TE Policy组视图。
policy-group group-id
(5) 配置SRv6 TE Policy组的目的节点地址。
end-point ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy组的目的节点地址。
SRv6 TE Policy组中每个Color对应的SRv6 TE Policy的目的节点地址必须与该SRv6 TE Policy组的目的节点地址相同。
(6) (可选)配置SRv6 TE Policy组的Color值。
group-color color-value
缺省情况下,未配置SRv6 TE Policy组的Color值。
(7) (可选)配置SRv6 TE Policy组的BSID。
binding-sid ipv6 ipv6-address
缺省情况下,SRv6 TE Policy组不存在BSID。
(8) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(9) 配置SRv6 TE Policy组的Color和DSCP映射关系。
color color-value match dscp { ipv4 | ipv6 } dscp-value-list
color color-value match dscp { ipv4 | ipv6 } default
缺省情况下,未配置SRv6 TE Policy组的Color和DSCP映射关系。
未配置Color和DSCP映射关系时,无法根据报文的DSCP值进行引流。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组的ODN模板,并进入SRv6 TE ODN Policy组视图。
on-demand-group color color-value
(5) (可选)配置SRv6 TE Policy组ODN模板的描述信息。
description text
缺省情况下,未配置SRv6 TE Policy组ODN模板的描述信息。
(6) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(7) 创建DSCP转发类型,并进入DSCP转发类型视图。
forward-type dscp
(8) 配置SRv6 TE Policy组的ODN模板中Color和DSCP的映射关系。
color color-value match dscp { ipv4 | ipv6 } dscp-value-list
color color-value match dscp { ipv4 | ipv6 } default
缺省情况下,未配置SRv6 TE Policy组的ODN模板中Color和DSCP映射关系。
未配置Color和DSCP映射关系时,无法根据报文的DSCP值进行引流。
(1) 进入系统视图。
system-view
(2) 配置引流到SRv6 TE Policy组。
¡ 依次执行以下命令,配置隧道策略引流到SRv6 TE Policy组。
创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name [ default ]
配置隧道绑定策略,指定目的地址与SRv6 TE Policy组绑定。
binding-destination dest-ipv6-address srv6-policy group srv6-policy-group-id [ ignore-destination-check ] [ down-switch ]
缺省情况下,未将目的IP地址与任何隧道绑定。
本命令的详细描述,请参见“MPLS命令参考”中的“隧道策略”。
¡ 配置通过Color属性引流到SRv6 TE Policy组。
请参见“1.11.2 配置基于Color引流”
在路由策略中配置BGP路由的Color扩展团体属性时,指定的Color值必须与ODN模板的Color值相同。
SRv6 TE Policy组中不同SRv6 TE Policy的Color属性不同。配置Color与802.1p优先级的映射关系后,在一个SRv6 TE Policy组内,可以形成802.1p优先级->Color->SRv6 TE Policy的映射关系,从而实现通过802.1p优先级将报文引流到指定的SRv6 TE Policy。
可以通过color match dot1p default命令来指定某个SRv6 TE Policy作为缺省SRv6 TE Policy。当SRv6 TE Policy组内某个802.1p优先级没有指定SRv6 TE Policy时,可以使用该缺省SRv6 TE Policy转发报文。
当设备收到未匹配SRv6 TE Policy组内Color和802.1p优先级映射关系的报文时,依次按照如下原则选择报文转发方式:
(1) 如果已配置缺省的SRv6 TE Policy,且该SRv6 TE Policy有效,则采用该SRv6 TE Policy转发报文。
(2) 根据drop-upon-mismatch enable命令的配置情况,流量处理方式为:
¡ 如果配置了drop-upon-mismatch enable命令,则丢弃报文。
¡ 如果未配置drop-upon-mismatch enable命令,但配置了Color和802.1p优先级映射关系,则查找802.1p优先级最小且该802.1p优先级对应的SRv6 TE Policy有效的映射关系,采用该映射关系中指定的SRv6 TE Policy转发报文。
(3) 上述条件均未满足时,报文不通过SRv6 TE Policy转发,查找IPv6路由表转发。
只有SRv6 TE Policy有效时,才能将其Color值与802.1p优先级关联。
在一个SRv6 TE Policy组内,每个802.1p优先级仅支持关联一个Color值。
一个SRv6 TE Policy组内,只能有一个缺省SRv6 TE Policy。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组,并进入SRv6 TE Policy组视图。
policy-group group-id
(5) 配置SRv6 TE Policy组的目的节点地址。
end-point ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy组的目的节点地址。
SRv6 TE Policy组中每个Color对应的SRv6 TE Policy的目的节点地址必须与该SRv6 TE Policy组的目的节点地址相同。
(6) (可选)配置SRv6 TE Policy组的Color值。
group-color color-value
缺省情况下,未配置SRv6 TE Policy组的Color值。
(7) (可选)配置SRv6 TE Policy组的BSID。
binding-sid ipv6 ipv6-address
缺省情况下,SRv6 TE Policy组不存在BSID。
(8) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(9) 配置SRv6 TE Policy组的转发类型为Dot1p。
forward-type dot1p
缺省情况下,SRv6 TE Policy组基于DSCP引流。
(10) 配置SRv6 TE Policy组中Color和802.1p优先级的映射关系。
color color-value match dot1p dot1p-value-list
color color-value match dot1p default
缺省情况下,未配置SRv6 TE Policy组中Color和802.1p优先级的映射关系。
(1) 进入系统视图。
system-view
(2) 配置引流到SRv6 TE Policy组。
¡ 依次执行以下命令,配置隧道策略引流到SRv6 TE Policy组。
创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name [ default ]
配置隧道绑定策略,指定目的地址与SRv6 TE Policy组绑定。
binding-destination dest-ipv6-address srv6-policy group srv6-policy-group-id [ ignore-destination-check ] [ down-switch ]
缺省情况下,未将目的IP地址与任何隧道绑定。
本命令的详细描述,请参见“MPLS命令参考”中的“隧道策略”。
¡ 配置通过Color属性引流到SRv6 TE Policy组。
请参见“1.11.2 配置基于Color引流”。
在路由策略中配置BGP路由的Color扩展团体属性时,指定的Color值必须与该SRv6 TE Policy组的Color值相同。
service-class是一种设备的本地标识,可以通过remark service-class命令来标识流量的service-class。当流量引入到SRv6 TE Policy组中转发之后,设备可以根据配置的service-class标识和转发策略的映射关系,将指定流量按照SRv6 TE Policy或SRv6 BE转发方式转发。
当指定某个service-class标识和Color属性映射时,Color属性对应的SRv6 TE Policy有效时,该service-class标识流量通过Color属性对应的SRv6 TE Policy转发。
当指定某个service-class标识和SRv6 BE转发方式映射时,该service-class标识流量通过SRv6 BE方式转发。设备将为报文封装新的IPv6报文头,其中新IPv6报文头中的目的地址为SRv6 TE Policy组的尾节点为公网或私网路由分配的VPN SID,封装后的报文查找IPv6路由表转发。如果该VPN SID可达,表示SRv6 BE转发方式有效,可以采用这个SRv6 BE转发流量,否则SRv6 BE转发方式无效,不能采用SRv6 BE转发方式转发流量。
当所有指定的SRv6 TE Policy均无效时,可以通过best-effort match service-class default命令指定SRv6 BE作为SRv6 TE Policy的逃生路径。
基于service-class引流时,依次按照如下规则进行转发:
(1) 将流量的service-class标识,与color match service-class命令、best-effort match service-class命令配置的映射关系进行匹配。如果匹配到某个映射关系,则采用匹配的SRv6 TE Policy或SRv6 BE转发流量。
(2) 如果流量的service-class值未匹配到SRv6 TE Policy或SRv6 BE,或者匹配的SRv6 TE Policy或SRv6 BE无效,则优先采用color match service-class default命令中指定的缺省SRv6 TE Policy转发流量。
(3) 如果color match service-class default命令未指定缺省SRv6 TE Policy,或者缺省SRv6 TE Policy无效,但配置了best-effort match service-class default命令,且SRv6 BE方式有效,则采用SRv6 BE方式转发报文。
(4) 如果未配置best-effort match service-class default命令,或SRv6 BE路径无效,则根据drop-upon-mismatch enable命令的配置情况,确定流量处理方式:
¡ 如果配置了drop-upon-mismatch enable命令,则直接丢弃报文。
¡ 如果未配置drop-upon-mismatch enable命令,但SRv6 TE Policy组内配置了Color和service-class的映射关系,则查找service-class值最小且该service-class值对应的SRv6 TE Policy有效的映射关系,采用该映射关系中指定的SRv6 TE Policy转发报文。
(5) 上述条件均未满足时,报文不通过SRv6方式转发,而是直接查找IPv6路由表转发。
一个SRv6 TE Policy组内,只能有一个缺省SRv6 TE Policy。
一个SRv6 TE Policy组内,每个service-class只能关联SRv6 BE方式或一个SRv6 TE Policy。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组,并进入SRv6 TE Policy组视图。
policy-group group-id
(5) 配置SRv6 TE Policy组的目的节点地址。
end-point ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy组的目的节点地址。
SRv6 TE Policy组中每个Color对应的SRv6 TE Policy的目的节点地址必须与该SRv6 TE Policy组的目的节点地址相同。
(6) (可选)配置SRv6 TE Policy组的Color值。
group-color color-value
缺省情况下,未配置SRv6 TE Policy组的Color值。
(7) (可选)配置SRv6 TE Policy组的BSID。
binding-sid ipv6 ipv6-address
缺省情况下,SRv6 TE Policy组不存在BSID。
(8) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(9) 配置SRv6 TE Policy组的转发类型为service-class。
forward-type service-class
缺省情况下,SRv6 TE Policy组基于DSCP引流。
(10) 配置SRv6 TE Policy组中Color和service-class的映射关系。
color color-value match service-class service-class-value-list
color color-value match service-class default
缺省情况下,未配置SRv6 TE Policy组中Color和service-class的映射关系。
(11) 配置指定service-class标识的流量通过SRv6 BE方式转发。
best-effort match service-class service-class-value-list
best-effort match service-class default
缺省情况下,未配置指定service-class标识的流量通过SRv6 BE方式转发。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组的ODN模板,并进入SRv6 TE ODN Policy组视图。
on-demand-group color color-value
(5) (可选)配置SRv6 TE Policy组ODN模板的描述信息。
description text
缺省情况下,未配置SRv6 TE Policy组ODN模板的描述信息。
(6) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(7) 创建DSCP转发类型,并进入service-class转发类型视图。
forward-type service-class
(8) 配置SRv6 TE Policy组的ODN模板中Color和service-class的映射关系。
color color-value match service-class service-class-value-list
color color-value match service-class default
缺省情况下,未配置SRv6 TE Policy组中Color和service-class的映射关系。
(9) 配置指定service-class标识的流量通过SRv6 BE方式转发。
best-effort match service-class service-class-value-list
best-effort match service-class default
缺省情况下,未配置指定service-class标识的流量通过SRv6 BE方式转发。
(1) 进入系统视图。
system-view
(2) 配置引流到SRv6 TE Policy组。
¡ 依次执行以下命令,配置隧道策略引流到SRv6 TE Policy组。
创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name [ default ]
配置隧道绑定策略,指定目的地址与SRv6 TE Policy组绑定。
binding-destination dest-ipv6-address srv6-policy group srv6-policy-group-id [ ignore-destination-check ] [ down-switch ]
缺省情况下,未将目的IP地址与任何隧道绑定。
本命令的详细描述,请参见“MPLS命令参考”中的“隧道策略”。
¡ 配置通过Color属性引流到SRv6 TE Policy组。
请参见“1.11.2 配置基于Color引流”。
在路由策略中配置BGP路由的Color扩展团体属性时,指定的Color值与SRv6 TE Policy组的创建方式有关:
- 对于手工创建的SRv6 TE Policy组,指定的Color值必须与该SRv6 TE Policy组的Color值相同。
- 对于通过ODN自动创建SRv6 TE Policy组,指定的Color值必须与ODN模板的Color值相同。
当业务流量被引入到SRv6 TE Policy组中转发,并且该SRv6 TE Policy组的转发类型为根据TE Class ID转发流量时,设备可以将TE Class ID值标识的业务流量按照指定的转发策略进行转发。本功能支持将TE Class ID标识的流量按照以下方式转发:
· 如果流量的TE Class ID关联到某个Color属性,则设备将流量引入到Color属性对应的SRv6 TE Policy中转发。
· 如果流量的TE Class ID关联到某个IPR模板,则设备按照该IPR模板中定义的SRv6 TE Policy选路策略将流量引入到最优的SRv6 TE Policy中转发。
· 如果流量的TE Class ID关联到SRv6 BE转发策略,则流量通过SRv6 BE方式转发,即设备为流量报文封装新的IPv6头,之后通过查找IPv6路由表转发报文。
· 如果未设置流量的TE Class ID、流量的TE Class ID未关联到index te-class match命令中指定的转发策略或者TE Class ID关联到的转发策略无效时,则设备将这类流量按照default match命令指定的默认转发策略进行转发。
流量按照默认转发策略转发时,按如下优先顺序选取转发策略:
(1) 如果配置了默认转发方式为通过指定Color值对应的SRv6 TE Policy转发或者配置了默认转发方式为IPR方式,且用于转发的SRv6 TE Policy有效,则设备将流量引入到该SRv6 TE Policy中转发。
(2) 如果配置了默认转发方式为SRv6 BE方式,且SRv6 BE有效,则设备为报文封装新的IPv6头,之后通过查找IPv6路由表转发报文。
(3) 根据drop-upon-mismatch enable命令的配置情况,流量处理方式为:
¡ 如果配置了drop-upon-mismatch enable命令,则流量将被直接丢弃。
¡ 如果未配置drop-upon-mismatch enable命令,但通过本命令配置了多个TE Class ID和IPR模板、SRv6 TE Policy或SRv6 BE的映射关系,则查找其中转发路径有效且索引值最小的映射关系,采用该映射关系中的SRv6 TE Policy或SRv6 BE转发报文。当SRv6 TE Policy组内未配置任何TE Class ID和IPR模板、SRv6 TE Policy或SRv6 BE的映射关系,或者最小索引值指定的IPR模板、SRv6 TE Policy或SRv6 BE无效时,继续下一步来选择报文转发方式。
(4) 上述条件均不满足时,报文直接查找IPv6路由表转发。
同一个TE Class ID只能对应一个索引值。
多次配置同一个index-value,最后一次配置的命令生效。
同一个TE Class ID标识的流量只能关联一个转发策略,例如,TE Class ID 10标识的流量与名称为ipr1的IPR模板建立映射关系,则该流量无法同时再与其他IPR模板、SRv6 TE Policy或者SRv6 BE转发方式建立映射关系。
多次配置同一个TE Class ID和不同的转发策略的映射关系,最后一次配置的命令生效。
建议为不同Group ID标识的SRv6 TE Policy组配置不同的Endpoint。否则,具有相同Endpoint的一组SRv6 TE Policy将同时属于不同SRv6 TE Policy组。
最多可以同时存在两个默认转发策略,但IPR方式转发和SRv6 TE Policy转发不可以同时存在。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组,并进入SRv6 TE Policy组视图。
policy-group group-id
(5) 配置SRv6 TE Policy组的目的节点地址。
end-point ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy组的目的节点地址。
SRv6 TE Policy组中每个Color对应的SRv6 TE Policy的目的节点地址必须与该SRv6 TE Policy组的目的节点地址相同。
(6) (可选)配置SRv6 TE Policy组的Color值。
group-color color-value
缺省情况下,未配置SRv6 TE Policy组的Color值。
(7) (可选)配置SRv6 TE Policy组的BSID。
binding-sid ipv6 ipv6-address
缺省情况下,SRv6 TE Policy组不存在BSID。
(8) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(9) 配置SRv6 TE Policy组的转发类型为基于流量的TE Class ID转发。
forward-type te-class
缺省情况下,SRv6 TE Policy组基于DSCP引流。
(10) 配置指定TE Class ID和SRv6 TE Policy、IPR模板或SRv6 BE转发策略间的映射关系。
index index-value te-class te-class-id match { best-effort | ipr-policy ipr-name | srv6-policy color color-value }
缺省情况下,未配置TE Class ID和SRv6 TE Policy、IPR模板或SRv6 BE转发策略间的映射关系。
(11) (可选)配置基于TE Class ID转发的默认转发策略。
default match best-effort
default match { ipr-policy ipr-name | srv6-policy color color-value }
缺省情况下,未配置基于TE Class ID转发的默认转发策略。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 创建SRv6 TE Policy组的ODN模板,并进入SRv6 TE ODN Policy组视图。
on-demand-group color color-value
(5) (可选)配置SRv6 TE Policy组ODN模板的描述信息。
description text
缺省情况下,未配置SRv6 TE Policy组ODN模板的描述信息。
(6) (可选)开启SRv6 TE Policy组不匹配引流策略时丢弃流量的功能。
drop-upon-mismatch enable
缺省情况下,SRv6 TE Policy组未匹配引流策略时丢弃流量功能处于关闭状态。
(7) 创建TE Class转发类型,并进入TE Class转发类型视图。
forward-type te-class
(8) 配置指定TE Class ID和SRv6 TE Policy、IPR模板或SRv6 BE转发策略间的映射关系。
index index-value te-class te-class-id match { best-effort | ipr-policy ipr-name | srv6-policy color color-value }
缺省情况下,未配置TE Class ID和SRv6 TE Policy、IPR模板或SRv6 BE转发策略间的映射关系。
(9) (可选)配置基于TE Class ID转发的默认转发策略。
default match best-effort
default match { ipr-policy ipr-name | srv6-policy color color-value }
缺省情况下,未配置基于TE Class ID转发的默认转发策略。
(1) 进入系统视图。
system-view
(2) 配置引流到SRv6 TE Policy组。
¡ 依次执行以下命令,配置隧道策略引流到SRv6 TE Policy组。
创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name [ default ]
配置隧道绑定策略,指定目的地址与SRv6 TE Policy组绑定。
binding-destination dest-ipv6-address srv6-policy group srv6-policy-group-id [ ignore-destination-check ] [ down-switch ]
缺省情况下,未将目的IP地址与任何隧道绑定。
本命令的详细描述,请参见“MPLS命令参考”中的“隧道策略”。
¡ 配置通过Color属性引流到SRv6 TE Policy组。
请参见“1.11.2 配置基于Color引流”
在路由策略中配置BGP路由的Color扩展团体属性时,指定的Color值必须与ODN模板的Color值相同。
在公网IP over SRv6场景中,配置本功能后,需要在公网实例IPv4/IPv6地址族下使用route-replicate命令将指定VPN实例的路由信息引入到公网中,从而使公网获取指定VPN的路由,以便转发用户流量。
(1) 进入系统视图。
system-view
(2) 配置静态路由迭代到指定SRv6 TE Policy。
¡ 配置IPv4静态路由迭代到指定SRv6 TE Policy。
(公网)
ip route-static dest-address { mask-length | mask } srv6-policy { color color-value end-point ipv6 ipv6-address | name policy-name } [ sid sid ] [ preference preference ] [ tag tag-value ] [ description text ]
(VPN网络)
ip route-static vpn-instance s-vpn-instance-name dest-address { mask-length | mask } srv6-policy { color color-value end-point ipv6 ipv6-address | name policy-name } [ sid sid ] [ preference preference ] [ tag tag-value ] [ description text ]
缺省情况下,未配置IPv4静态路由。
本命令的详细描述,请参见“三层技术-IP路由命令参考”中的“静态路由”。
¡ 配置IPv6静态路由迭代到指定SRv6 TE Policy。
(公网)
ipv6 route-static ipv6-address prefix-length srv6-policy { color color-value end-point ipv6 ipv6-address | name policy-name } [ sid sid ] [ preference preference ] [ tag tag-value ] [ description text ]
(VPN网络)
ipv6 route-static vpn-instance s-vpn-instance-name ipv6-address prefix-length srv6-policy { color color-value end-point ipv6 ipv6-address | name policy-name } [ sid sid ] [ preference preference ] [ tag tag-value ] [ description text ]
缺省情况下,未配置IPv6静态路由。
本命令的详细描述,请参见“三层技术-IP路由命令参考”中的“IPv6静态路由”。
当网络中某些IPv6公网流量发生拥塞时,可以通过流分类进行识别,然后将流量重定向到SRv6 TE Policy中,解决拥塞问题。IPv6公网流量重定向到SRv6 TE Policy的重定向因子是Endpoint + Color,如果重定向规则匹配不成功,则流分类失效,流量进行普通IPv6转发。如果SRv6 TE Policy出现故障,流分类同样失效,流量也进行普通IPv6转发。
QoS策略相关命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS策略”。
a. 进入系统视图。
system-view
b. 创建一个类,并进入类视图。
traffic classifier classifier-name [ operator { and | or } ]
c. 定义匹配数据包的规则。
if-match [ not ] match-criteria
缺省情况下,未定义匹配数据包的规则。
具体规则的介绍,请参见“QoS命令”中的if-match命令。
a. 创建一个流行为,并进入流行为视图。
traffic behavior behavior-name
b. 配置流量重定向到SRv6 TE Policy。
redirect srv6-policy endpoint color [ { sid | vpnsid } sid ]
缺省情况下,未配置流量重定向动作。
a. 创建一个策略,并进入策略视图。
qos policy policy-name
b. 在策略中为类指定采用的流行为。
classifier classifier-name behavior behavior-name
缺省情况下,未指定类对应的流行为。
c. 退回系统视图。
quit
d. 应用QoS策略。
具体配置请参见“ACL和QoS配置指导”中的“QoS策略”。
缺省情况下,未应用QoS策略。
(1) 进入系统视图。
system-view
(2) 创建IPv6 Flowspec路由。
flow-route flowroute-name ipv6
(3) 定义Flowspec路由的报文匹配规则。
if-match match-criteria
(4) 配置流量重定向到SRv6 TE Policy动作。
apply redirect next-hop ipv6-address color color [ sid sid-value ]
缺省情况下,Flowspec路由中未配置流量动作。
(5) 激活Flowspec路由中的匹配规则及流量动作。
commit
缺省情况下,Flowspec路由下配置的匹配规则及流量动作未生效。
(1) 进入系统视图。
system-view
(2) 进入Flowspec视图。
flowspec
(3) 创建Flowspec IPv6地址族。
address-family ipv6
(4) 应用已创建的IPv6 Flowspec路由,请选择其中一项进行配置。
¡ 应用已创建的普通IPv6 Flowspec路由。
flow-route flowroute-name
缺省情况下,公网中未应用IPv6 Flowspec路由。
¡ 应用关联了Flowspec接口组的IPv6 Flowspec路由。
flow-route flowroute-name flow-interface-group group-id
缺省情况下, IPv6 Flowspec路由未关联Flowspec接口组。
(1) 进入系统视图。
system-view
(2) 配置VPN实例。
a. 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
b. 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
c. 配置VPN实例的Route Target。
vpn-target { vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ] }
缺省情况下,未配置VPN实例的Route Target。
关于ip vpn-instance、route-distinguisher和vpn-target命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(3) 进入VPN实例IPv6 Flowspec地址族视图。
address-family ipv6 flowspec
(4) 配置VPN实例下IPv6 Flowspec地址族的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例下IPv6 Flowspec地址族的RD。
(5) 配置VPN实例下IPv6 Flowspec地址族的VPN target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例下IPv6 Flowspec地址族的VPN target。
VPN实例IPv6 Flowspec地址族的VPN target必须与之前配置的VPN实例的Route target保持一致。
(6) 依次执行以下命令退回系统视图。
a. quit
b. quit
(7) 进入Flowspec视图。
flowspec
(8) 创建Flowspec IPv6 VPN实例地址族并关联已创建的VPN实例。
address-family ipv6 vpn-instance vpn-instance-name
(9) 应用已创建的IPv6 Flowspec路由,请至少选择其中一项进行配置。
¡ 应用已创建的普通IPv6 Flowspec路由。
flow-route flowroute-name
缺省情况下,VPN实例中未应用IPv6 Flowspec路由。
¡ 应用关联Flowspec接口组的Flowspec路由。
flow-route flowroute-name flow-interface-group group-id
缺省情况下,IPv6 Flowspec路由未关联Flowspec接口组。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP IPv6 Flowspec地址族视图、BGP-VPN IPv6 Flowspec地址族视图或BGP VPNv6 Flowspec地址族视图。
¡ 进入BGP IPv6 Flowspec地址族视图发布公网IPv6 Flowspec路由。
address-family ipv6 flowspec
¡ 依次执行以下命令进入BGP-VPN IPv6 Flowspec地址族视图发布私网IPv6 Flowspec路由。
ip vpn-instance vpn-instance-name
address-family ipv6 flowspec
¡ 进入BGP VPNv6 Flowspec地址族视图发布VPNv6 Flowspec路由。
address-family vpnv6 flowspec
(4) 允许BGP Flowspec邻居间交换路由信息。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } enable
缺省情况下,BGP Flowspec邻居间不能交换路由信息。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 开启SRv6 TE Policy的自动引流功能。
autoroute enable [ isis | ospfv3 ]
缺省情况下,SRv6 TE Policy的自动引流功能处于关闭状态。
(6) 配置SRv6 TE Policy隧道的度量值。
autoroute metric { absolute value | relative value }
缺省情况下,SRv6 TE Policy隧道的度量值等于其IGP度量值。
(7) 退回系统视图。
quit
quit
quit
(8) 配置SRv6 TE Policy隧道参与IGP路由计算。
¡ 依次执行以下命令,开启IS-IS的SRv6 TE Policy自动引流功能。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
address-family ipv6 [ unicast ]
srv6-policy autoroute enable [ level-1 | level-2 ]
¡ 依次执行以下命令,开启OSPFv3的SRv6 TE Policy的自动引流功能。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
srv6-policy autoroute enable
缺省情况下,IS-IS和OSPFv3的SRv6 TE Policy自动引流功能处于关闭状态。
报文通过SRv6 TE Policy转发时,需要为报文封装SRv6 TE Policy的SID列表,封装模式包括:
· Encaps方式:普通封装模式。在原始报文的基础上封装IPv6头和SRH时,SRv6 TE Policy的SID列表中的所有SID均封装在SRH中。
¡ IPv6头的目的IPv6地址为SRv6 TE Policy的SID列表中的第一个IPv6地址,源IPv6地址为encapsulation source-address命令指定的IPv6地址。
¡ SRH包含SRv6 TE Policy的SID列表中所有SID信息。
· Encaps.Red方式:普通封装的简化模式。在原始报文的基础上封装IPv6头和SRH时,SRv6 TE Policy的SID列表中的第一个SID不封装在SRH中,其他SID封装到SRH中,以便减少SRH的长度。
¡ IPv6头的目的IPv6地址为SRv6 TE Policy的SID列表中的第一个SID,源IPv6地址为encapsulation source-address命令指定的IPv6地址。
¡ SRH包含SRv6 TE Policy的SID列表中除第一个SID外所有SID信息。
· Insert方式:插入封装模式。在原始IPv6报文头后插入SRH,且SRv6 TE Policy的SID列表中的所有SID均封装在SRH中。
¡ IPv6头的目的IPv6地址改为SRv6 TE Policy的SID列表中的第一个IPv6地址,原始IPv6报文头的源IPv6地址不变。
¡ SRH包含SRv6 TE Policy的SID列表中所有SID信息。
· Insert.Red方式:插入封装的简化模式。在原始IPv6报文头后插入SRH,且SRv6 TE Policy的SID列表中的第一个SID不封装在SRH中,其他SID封装到SRH中,以便减少SRH的长度。
¡ IPv6头的目的IPv6地址改为SRv6 TE Policy的SID列表中的第一个SID,原始IPv6报文头的源IPv6地址不变。
¡ SRH包含SRv6 TE Policy的SID列表中除第一个SID外所有SID信息。
引流到SRv6 TE Policy时,缺省情况下,如果头节点的SRv6 SID是End.X SID,则不会将该SID封装到SRH中。为了通过报文中的SRH获取完整的路径信息,即获取到SRv6转发路径上所有SRv6节点的信息,在封装SRH时可以添加本地的End.X SID。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的封装方式。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
普通封装模式与插入封装模式互斥:配置普通封装模式后,系统会自动删除已配置的插入封装模式;配置插入封装模式后,系统会自动删除已配置的普通封装模式。
配置Insert方式或Insert.Red方式后,如果设备收到IPv4报文,则设备将按照Encaps方式封装报文。
在SRv6-TE视图下,同时配置了普通封装的简化模式和普通封装模式时SRH中包含本地End.X SID,普通封装模式时SRH中包含本地End.X SID生效。
在SRv6-TE视图下,同时配置了插入封装的简化模式和插入封装模式时SRH中包含本地End.X SID,插入封装模式时SRH中包含本地End.X SID生效。
在SRv6 TE Policy视图下,同时配置了普通封装的简化模式和普通封装模式时SRH中包含本地End.X SID,普通封装模式时SRH中包含本地End.X SID生效。
在SRv6 TE Policy视图下,同时配置了插入封装的简化模式和插入封装模式时SRH中包含本地End.X SID,插入封装模式时SRH中包含本地End.X SID生效。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局配置SRv6 TE Policy的封装模式。请选择其中一项进行配置。
¡ 全局配置SRv6 TE Policy的封装模式为普通封装的简化模式。
srv6-policy encapsulation-mode encaps reduced
¡ 全局配置SRv6 TE Policy的封装模式为插入封装模式或插入封装的简化模式。
srv6-policy encapsulation-mode insert
srv6-policy encapsulation-mode insert reduced
缺省情况下,SRv6 TE Policy的封装模式为Encaps模式。
(5) 全局配置通过SRv6 TE Policy转发报文时SRH中包含本地End.X SID。请选择其中一项进行配置。
¡ 全局配置通过SRv6 TE Policy转发报文采用普通封装模式时SRH中包含本地End.X SID。
srv6-policy encapsulation-mode encaps include local-end.x
¡ 全局配置通过SRv6 TE Policy转发报文采用插入封装模式时SRH中包含本地End.X SID。
srv6-policy encapsulation-mode insert include local-end.x
缺省情况下,通过SRv6 TE Policy转发报文时封装的SRH中不包含本地End.X SID。
(6) 进入SRv6 TE Policy视图。
policy policy-name
(7) 配置SRv6 TE Policy的封装模式。请选择其中一项进行配置。
¡ 配置SRv6 TE Policy的封装模式为普通封装的简化模式。
encapsulation-mode encaps reduced [ disable ]
¡ 配置SRv6 TE Policy的封装模式为插入封装模式或插入封装的简化模式。
encapsulation-mode insert
encapsulation-mode insert reduced [ disable ]
缺省情况下,未配置SRv6 TE Policy的封装模式,以SRv6-TE视图下的配置为准。
(8) 配置通过SRv6 TE Policy转发报文时SRH中是否包含本地End.X SID。请选择其中一项进行配置。
¡ 配置通过SRv6 TE Policy转发报文采用普通封装模式时SRH中是否包含本地End.X SID。
encapsulation-mode encaps include local-end.x [ disable ]
¡ 配置通过SRv6 TE Policy转发报文采用插入封装模式时SRH中是否包含本地End.X SID。
encapsulation-mode insert include local-end.x [ disable ]
缺省情况下,未配置通过SRv6 TE Policy转发报文时封装的SRH中是否包含本地End.X SID,以SRv6-TE视图下的配置为准。
只有SRv6 TE Policy组的转发类型为基于TE Class ID引流,并且指定了TE Class ID和IPR模板映射关系时,本功能才能生效。关于基于TE Class ID引流的详细介绍,请参见“1.11.7 配置基于TE Class ID引流”。
· iFIT是一种随流OAM检测技术,当存在流量通过该SRv6 TE Policy转发时,iFIT才能测量该SRv6 TE Policy的丢包率、时延和抖动信息,因此,为了保证SRv6 TE Policy可实现iFIT测量功能,可以开启SRv6 TE Policy的SBFD或echo方式的BFD检测功能,使用SBFD或echo方式的BFD报文作为背景流量用于iFIT测量。关于iFIT隧道级质量测量的详细介绍,请参见“网络监控和管理命令参考”中的“iFIT”。
· 当SRv6 TE Policy的最优候选路径中存在多个SID列表表示的转发路径(即多条转发路径),且每条转发路径中均存在流量时,iFIT将测量所有SID列表对应的转发路径的丢包率、时延和抖动,并按照SID列表的权重计算该SRv6 TE Policy的丢包率、时延和抖动。
· 当SRv6 TE Policy的头节点和尾节点均为H3C设备时,建议配置SRv6 TE Policy的iFIT测量模式为端到端模式,此时由尾节点将iFIT测量结果反馈给SRv6 TE Policy的头节点用于计算SRv6 TE Policy的网络质量。其他目标流量途径的中间节点即使开启了iFIT功能且检测到了iFIT报文也不会将iFIT测量结果反馈给SRv6 TE Policy的头节点,降低设备处理的复杂度。
· 当SRv6 TE Policy的尾节点非H3C设备时,必须配置SRv6 TE Policy的iFIT测量模式为逐跳模式,此时在倒数第二跳(即转发路径上的H3C设备)上开启iFIT功能,设置iFIT的工作模式为收集器,将该设备作为数据接收端来统计数据、与头节点建立UDP会话并将统计数据反馈给头节点,完成尾节点的功能。逐跳模式通常仅用于SRv6 TE Policy的尾节点非H3C设备的场景。
· 如果SRv6 TE Policy的转发路径上多个节点均向头节点反馈数据,则头节点的处理方式为:
¡ 如果尾节点和其他多个节点都向头节点反馈数据,则头节点优先选择SRv6 TE Policy尾节点反馈的数据计算丢包率。
¡ 如果存在多个非尾节点都向头节点反馈数据,则头节点优先选择SRv6 TE Policy中最靠近尾节点的节点反馈的数据计算丢包率。
· 为保证iFIT检测正常生效,要求所有参与iFIT测量的设备时间已经同步,否则iFIT计算结果将不准确。NTP(Network Time Protocol,网络时间协议)和PTP(Precision Time Protocol,精确时间协议)都可用于实现设备间的时间同步。
· SRv6-TE视图和SRv6 TE Policy视图下均可以配置iFIT丢包率测量功能、iFIT时延和抖动测量功能、iFIT检测周期。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
· SRv6 TE Policy的iFIT测量功能生效需要SRv6 TE Policy头节点使用Encaps方式的进行报文封装。如果采用Insert方式封装报文的外层源IP地址不是iFIT指定的源地址,在尾节点上iFIT无法根据源地址将信息返回给头节点,使得iFIT检测质量失败。
为了使本功能生效,请先配置以下功能:
· 在SRv6 TE Policy的头节点开启iFIT功能,配置iFIT设备的标识,并设置iFIT的工作模式为分析器,执行service-type srv6-segment-list命令。
· 在SRv6 TE Policy的尾节点或者中间节点上开启iFIT功能,并设置iFIT的工作模式为收集器,执行service-type srv6-segment-list命令。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 根据业务需求全局开启SRv6 TE Policy的iFIT丢包率测量或iFIT时延和抖动测量功能。
¡ 全局开启SRv6 TE Policy的iFIT丢包率测量功能
srv6-policy ifit loss-measure enable
缺省情况下,全局SRv6 TE Policy的iFIT丢包率测量功能处于关闭状态。
¡ 全局开启SRv6 TE Policy的iFIT时延和抖动测量功能。
srv6-policy ifit delay-measure enable
缺省情况下,全局SRv6 TE Policy的iFIT时延和抖动测量功能处于关闭状态。
(5) 全局配置SRv6 TE Policy的iFIT测量模式
srv6-policy ifit measure mode { e2e | trace }
缺省情况下,SRv6 TE Policy的iFIT的测量模式为端到端模式。
(6) 全局配置SRv6 TE Policy的iFIT检测周期。
srv6-policy ifit interval time-value
缺省情况下,全局SRv6 TE Policy的iFIT检测周期为30秒。
(7) 进入SRv6 TE Policy视图。
policy policy-name
(8) 根据业务需求配置SRv6 TE Policy的iFIT丢包率测量或iFIT时延和抖动测量功能。
¡ 配置SRv6 TE Policy的iFIT丢包率测量功能
ifit loss-measure { disable | enable }
缺省情况下,未配置SRv6 TE Policy的iFIT丢包率测量功能,以SRv6 TE视图下的配置为准。
¡ 配置SRv6 TE Policy的iFIT时延和抖动测量功能。
ifit delay-measure { disable | enable }
缺省情况下,未配置SRv6 TE Policy的iFIT时延和抖动测量功能,以SRv6 TE视图下的配置为准。
(9) 配置SRv6 TE Policy的iFIT测量模式
ifit measure mode { e2e | trace }
缺省情况下,未配置SRv6 TE Policy的iFIT测量模式,以SRv6 TE视图下的配置为准。
(10) 配置SRv6 TE Policy的iFIT检测周期。
ifit interval time-value
缺省情况下,未配置SRv6 TE Policy的iFIT检测周期,以SRv6 TE视图下的配置为准。
当业务流量被引入到SRv6 TE Policy组中转发,且SRv6 TE Policy组的转发类型为基于流量的TE Class ID转发时,管理员可以执行index te-class match命令将指定TE Class ID标识的业务流量和IPR模板建立映射关系,此时,SRv6 TE Policy组将引用IPR模板并将该流量按照IPR模板中定义的SRv6 TE Policy选路策略进行转发。
IPR模板需要和SRv6 TE Policy的iFIT丢包率、时延和抖动测量功能配合实现智能路由优选,IPR模板和SRv6 TE Policy的iFIT测量功能配合工作机制为:
(1) iFIT检测网络质量:管理员在SRv6 TE Policy组的头节点开启SRv6 TE Policy的iFIT丢包率、时延和抖动测量功能。iFIT功能可以检测SRv6 TE Policy组中不同SRv6 TE Policy的链路质量,并按照SRv6 TE Policy的iFIT检测周期将SLA检测参数传递给SRv6 TE Policy头节点的智能策略路由,由智能策略路由进行算路和优选。
(2) 计算备选路径:SRv6 TE Policy头节点按照refresh-period命令设置的最优路径计算周期来计算最优的SRv6 TE Policy。如果SRv6 TE Policy头节点计算最优路径时,发现最近一次iFIT功能计算得到的时延、丢包率、抖动和CMI任一指标不超过IPR模板中设置的标准,则表示该SRv6 TE Policy不符合SLA标准,该SRv6 TE Policy不能作为备选路径用于业务转发;如果SRv6 TE Policy的iFIT功能未能检测到某个SRv6 TE Policy的时延、丢包率、抖动和CMI参数,但该SRv6 TE Policy有效,则该SRv6 TE Policy仍可以作为备选路径用于业务转发。
(3) 备选路径选路:SRv6 TE Policy组的头节点根据IPR模板中定义的SRv6 TE Policy的优先顺序,选取优先级最高的SRv6 TE Policy作为最优转发路径,并将业务流量引入到该SRv6 TE Policy中转发。当存在优先级相同的SRv6 TE Policy时,流量可以在这些SRv6 TE Policy之间负载分担。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 开启智能策略路由功能,并进入SRv6 TE IPR视图。
intelligent-policy-route
缺省情况下,智能策略路由功能处于关闭状态。
(5) (可选)配置IPR计算最优路径的周期。
refresh-period time-value
缺省情况下,IPR计算最优路径的周期为60秒。
(6) (可选)配置智能策略路由的数据计算模式。
measure count { one-way | two-way-average }
缺省情况下,智能策略路由的数据计算模式为单程模式。
(7) 配置IPR模板,并进入对应的SRv6 TE IPR模板视图。
ipr-policy ipr-name
缺省情况下,未配置IPR模板。
(8) 配置IPR模板中不同SRv6 TE Policy的Color属性和选路优先级的映射关系
srv6-policy color color-value priority priority-value
缺省情况下,未配置IPR模板中不同SRv6 TE Policy的Color属性和选路优先级的映射关系。
(9) (可选)配置IPR模板的时延标准。
delay threshold time-value
缺省情况下,IPR模板的时延标准为5000毫秒。
(10) (可选)配置IPR模板的抖动标准。
jitter threshold time-value
缺省情况下,IPR模板的抖动标准为3000毫秒。
(11) (可选)配置IPR模板的丢包率标准。
loss threshold threshold-value
缺省情况下,IPR模板的丢包率标准为1000‰。
(12) (可选)配置IPR模板的CMI标准。
cmi threshold threshold-value
缺省情况下,IPR模板的CMI标准为9000。
(13) (可选)配置IPR模板中SRv6 TE Policy之间的切换时延。
switch-period time-value
缺省情况下,IPR模板中SRv6 TE Policy之间的切换时延为6秒。
(14) (可选)配置IPR模板的回切时延。
wait-to-restore-period time-value
缺省情况下,IPR模板的回切时延为6秒。
通过SBFD方式检测SRv6 TE Policy连通性时,缺省情况下,SBFD回程报文通过IP路径转发。如果中间设备故障,则回程报文会被丢弃,导致SBFD会话down,从而错误地认为SID列表故障。
为了解决上述问题,可以使SBFD回程报文按照SRv6 TE Policy的指定SID列表转发,以确保连通性。具体实现机制为:
(1) 在源节点的SID列表视图下配置反向BSID,在尾节点的SID列表视图下配置本地BSID,二者值相同。
(2) 源节点发送SBFD报文时,将为SBFD报文封装Aux Path TLV(备用路径TLV),该TLV中包含反向BSID。
(3) 尾节点收到该SBFD报文,查找反向BSID信息,如果报文中的反向BSID与尾节点配置的本地BSID相同,则为BFD回程报文封装SRH,沿着本地BSID所在的SID列表转发。
通过SBFD检测SRv6 TE Policy时,需要为SBFD报文封装SRv6 TE Policy的SID列表,封装模式包括:
· Encaps方式:普通封装模式。在原始报文的基础上封装新的IPv6头和SRH。
¡ 新IPv6头的目的IPv6地址为SRv6 TE Policy的SID列表中的第一个IPv6地址,源IPv6地址为SRv6视图下encapsulation source-address命令指定的IPv6地址。
¡ SRH包含待检测的SRv6 TE Policy的SID列表中所有SID信息。
· Insert方式:含Endpoint的插入封装模式。为了减少报文头部的长度,可以采用这类封装方式,即无需封装新的IPv6报文头,仅在原始SBFD报文头中插入SRH,且SRv6 TE Policy的SID列表中的所有SID均封装在SRH中。
¡ 原始SBFD报文IPv6头的目的IPv6地址改为SRv6 TE Policy的SID列表中的第一个IPv6地址,源IPv6地址不变。
¡ SRH中包含待检测的SRv6 TE Policy的SID列表中所有SID信息以及SRv6 TE Policy的End-point,且End-point处于SID列表的最后一位。
· Insert no-endpoint方式:无Endpoint的插入封装模式。当SRH中SID列表的最后一个SID和SRv6 TE Policy的End-point指定的是同一节点时,SBFD报文中可以不用封装End-point,此时可以指定这种封装方式,即在原始IPv6报文头后插入不含End-point的SRH,且SRv6 TE Policy的SID列表中的所有SID均封装在SRH中。
¡ 原始SBFD报文IPv6头的目的IPv6地址改为SRv6 TE Policy的SID列表中的第一个IPv6地址,源IPv6地址不变。
¡ SRH中仅包含待检测的SRv6 TE Policy的SID列表中所有SID信息,但不包含SRv6 TE Policy的End-point。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的SBFD功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
指定的远端标识符必须与Reflector端sbfd local-discriminator命令指定的标识符一致,否则Reflector端不会发送应答报文给Initiator端。
目前,支持通过BFD echo报文和SBFD两种方式检测SRv6 TE Policy。在同一SRv6 TE Policy下同时配置以上两种检测方式时,SBFD检测生效。
对于SBFD会话,报文按如下优先顺序选取报文源地址:
(1) source-address命令指定的报文源地址;
(2) sbfd source-ipv6命令指定的地址。
(1) 进入系统视图。
system-view
(2) 配置使用SBFD对SRv6转发路径进行故障检测时SBFD报文的封装模式。
bfd srv6-encapsulation-mode insert [ no-endpoint ]
缺省情况下,使用Encap模式封装BFD/SBFD报文,在原始报文基础上添加新的IPv6基本头和SRH,添加的SRH中包含SRv6 TE Policy的SID列表。如果SID列表长度为0,则不添加SRH。
(3) 配置Initiator发送SBFD报文使用的源IPv6地址。
sbfd source-ipv6 ipv6-address
缺省情况下,未配置Initiator发送SBFD报文使用的源IPv6地址。
本命令的详细介绍,请参见“可靠性命令参考”中的“SBFD”。
(4) 进入SRv6视图。
segment-routing ipv6
(5) 进入SRv6-TE视图。
traffic-engineering
(6) 全局开启SRv6 TE Policy的SBFD功能并配置相关参数。
srv6-policy sbfd [ remote remote-id ] [ template template-name ] [ backup-template backup-template-name ] [ reverse-path reverse-binding-sid ]
缺省情况下,SRv6 TE Policy的SBFD功能处于关闭状态。
(7) (可选)在SID列表中配置本地BSID和反向BSID。
a. 进入SID列表视图。
segment-list segment-list-name
b. 在SRv6 TE Policy尾节点配置本地BSID。
local-binding-sid ipv6 ipv6-address
c. 在SRv6 TE Policy源节点配置反向BSID。
reverse-binding-sid ipv6 ipv6-address
d. 退回SRv6 TE视图。
quit
配置的本地BSID、反向BSID不能和SRv6 TE Policy的BSID相同,否则会导致SID列表无效,无法转发报文。
配置的本地BSID、反向BSID必须在SRv6 TE视图下引用的Locator的静态段范围内。否则,BSID对应的SID列表不能用于报文转发。
(8) (可选)全局开启BFD down联动SRv6 TE Policy路径切换功能。
srv6-policy bfd trigger path-down enable
缺省情况下,BFD down联动SRv6 TE Policy路径切换功能处于关闭状态。
(9) (可选)配置检测SRv6 TE Policy的SBFD会话首次建立失败时,通知SRv6 TE Policy的SBFD会话down的延迟时间。
srv6-policy bfd first-fail-timer seconds
缺省情况下,检测SRv6 TE Policy的SBFD会话首次建立失败时,通知SRv6 TE Policy的SBFD会话down的延迟时间为60秒。
(10) 进入SRv6 TE Policy视图。
policy policy-name
(11) (可选)配置SRv6 TE Policy SBFD报文的源地址。
source-address ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy SBFD报文的源地址。
(12) 配置SRv6 TE Policy的SBFD功能。
sbfd { disable | enable [ remote remote-id ] [ template template-name ] [ backup-template backup-template-name ] [ oam-sid sid ] [ encaps | insert [ no-endpoint ] [ reverse-path reverse-binding-sid ] ] }
缺省情况下,未配置SRv6 TE Policy的SBFD功能,以SRv6-TE视图下的配置为准。
如果未指定encaps和insert参数,则采用bfd srv6-encapsulation-mode命令配置的封装模式。
(13) (可选)开启BFD down联动SRv6 TE Policy路径切换功能。
bfd trigger path-down { disable | enable }
缺省情况下,未配置BFD down联动SRv6 TE Policy路径切换功能,以SRv6-TE视图下的配置为准。
通过BFD echo方式检测SRv6 TE Policy连通性时,缺省情况下,BFD回程报文通过IP路径转发。如果中间设备故障,则回程报文会被丢弃,导致BFD会话down,从而错误地认为SID列表故障。
为了解决上述问题,可以使BFD回程报文按照SRv6 TE Policy的指定SID列表转发,以确保连通性。具体实现机制为:
(1) 在源节点的SID列表视图下配置反向BSID,在尾节点的SID列表视图下配置本地BSID,二者值相同。
(2) 源节点发送BFD报文时,SRH中除了封装SID列表外,还会将该SID列表的反向BSID封装到SL=1的位置。
(3) 尾节点收到该BFD报文,查找SRH信息时,如果报文中SL=1对应的SID与尾节点配置的本地BSID相同,则为BFD回程报文封装SRH,沿着本地BSID所在的SID列表转发。
通过echo报文方式的BFD检测SRv6 TE Policy时,需要为BFD报文封装SRv6 TE Policy的SID列表,封装模式包括:
· Encaps方式:普通封装模式。在原始报文的基础上封装新的IPv6头和SRH。
¡ 新IPv6头的目的IPv6地址为SRv6 TE Policy的SID列表中的第一个IPv6地址,源IPv6地址为SRv6视图下encapsulation source-address命令指定的IPv6地址。
¡ SRH包含待检测的SRv6 TE Policy的SID列表中所有SID信息。
· Insert方式:插入封装模式。为了减少报文头部的长度,可以采用这类封装方式,即无需封装新的IPv6报文头,仅在原始BFD echo报文头后插入SRH。
¡ 原始BFD echo报文头的目的IPv6地址改为SRv6 TE Policy的SID列表中的第一个IPv6地址,BFD echo报文的源IPv6地址不变。
¡ SRH中包含待检测的SRv6 TE Policy的SID列表中所有SID信息。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的echo报文方式的BFD功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
对于echo报文方式的BFD会话,echo报文按如下优先顺序选取报文源地址:
(1) source-address命令指定的报文源地址;
(2) bfd echo-source-ipv6命令指定的报文源地址;
(3) bfd echo命令指定的BFD会话源地址;
(4) srv6-policy bfd echo命令指定的BFD会话源地址。
SRv6 TE Policy的头节点上通过执行bfd echo命令或者srv6-policy bfd echo命令指定的BFD会话的源地址即echo报文的目的地址,当echo报文的源地址和目的地址相同时,部署了安全功能(例如uRPF)的网络设备会将该echo报文视为非法报文而拦截,导致BFD echo会话无法建立。因此请合理配置echo报文的源地址,避免出现echo报文的源地址和目的地址相同情况。
当在SRv6 TE Policy视图下执行bfd echo命令未指定source-ipv6参数时,则必须在SRv6-TE视图下通过本命令开启SRv6 TE Policy的echo BFD功能,否则无法建立BFD会话。
目前,支持通过BFD echo报文和SBFD两种方式检测SRv6 TE Policy。在同一SRv6 TE Policy下同时配置以上两种检测方式时,SBFD检测生效。
配置本功能前,需要先在本端设备上执行bfd echo-source-ipv6命令配置echo报文的源地址。
(1) 进入系统视图。
system-view
(2) 配置使用BFD对SRv6转发路径进行故障检测时BFD报文的封装模式。
bfd srv6-encapsulation-mode insert [ no-endpoint ]
缺省情况下,使用Encap模式封装BFD/SBFD报文,在原始报文基础上添加新的IPv6基本头和SRH,添加的SRH中包含SRv6 TE Policy的SID列表。如果SID列表长度为0,则不添加SRH。
(3) 进入SRv6视图。
segment-routing ipv6
(4) 进入SRv6-TE视图。
traffic-engineering
(5) 全局开启SRv6 TE Policy的echo报文方式的BFD检测功能并配置相关参数。
srv6-policy bfd echo source-ipv6 ipv6-address [ template template-name ] [ backup-template backup-template-name ] [ reverse-path reverse-binding-sid ]
缺省情况下,SRv6 TE Policy的echo报文方式的BFD检测功能处于关闭状态。
(6) (可选)在SID列表中配置本地BSID和反向BSID。
a. 进入SID列表视图。
segment-list segment-list-name
b. 在SRv6 TE Policy尾节点配置本地BSID。
local-binding-sid ipv6 ipv6-address
c. 在SRv6 TE Policy源节点配置反向BSID。
reverse-binding-sid ipv6 ipv6-address
d. 退回SRv6 TE视图。
quit
配置的本地BSID、反向BSID不能和SRv6 TE Policy的BSID相同,否则会导致SID列表无效,无法转发报文。
配置的本地BSID、反向BSID必须在SRv6 TE视图下引用的Locator的静态段范围内。否则,BSID对应的SID列表不能用于报文转发。
(7) (可选)全局开启BFD down联动SRv6 TE Policy路径切换功能。
srv6-policy bfd trigger path-down enable
缺省情况下,BFD down联动SRv6 TE Policy路径切换功能处于关闭状态。
(8) (可选)配置检测SRv6 TE Policy的BFD会话首次建立失败时,通知SRv6 TE Policy的BFD会话down的延迟时间。
srv6-policy bfd first-fail-timer seconds
缺省情况下,检测SRv6 TE Policy的BFD会话首次建立失败时,通知SRv6 TE Policy的BFD会话down的延迟时间为60秒。
(9) 进入SRv6 TE Policy视图。
policy policy-name
(10) (可选)配置SRv6 TE Policy echo报文的源地址。
source-address ipv6 ipv6-address
缺省情况下,未配置SRv6 TE Policy echo报文的源地址。
(11) 配置SRv6 TE Policy的echo报文方式的BFD检测功能。
bfd echo { disable | enable [ source-ipv6 ipv6-address ] [ template template-name ] [ backup-template backup-template-name ] [ oam-sid sid ] [ encaps | insert ] [ reverse-path reverse-binding-sid ] }
缺省情况下,未配置SRv6 TE Policy的echo报文方式的BFD检测功能,以SRv6-TE视图下的配置为准。
如果未指定encaps和insert参数,则采用bfd srv6-encapsulation-mode命令配置的封装模式。
指定reverse-path参数后,BFD报文仅支持采用Insert方式,配置的encaps参数不生效。
(12) (可选)开启BFD down联动SRv6 TE Policy路径切换功能。
bfd trigger path-down { disable | enable }
缺省情况下,未配置BFD down联动SRv6 TE Policy路径切换功能,以SRv6-TE视图下的配置为准。
(13) 引用SID列表时指定用于BFD检测的本地BSID和反向BSID。
a. 进入SRv6 TE Policy候选路径视图。
candidate-paths
b. 进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
不同的优先级代表不同的候选路径。
c. 引用SID列表时指定用于BFD检测的本地BSID和反向BSID。
explicit segment-list segment-list-name [ local-binding-sid ipv6 ipv6-address | reverse-binding-sid ipv6 ipv6-address ] *
对于本地BSID:
¡ 通过local-binding-sid参数配置的BSID值不能和SID列表下local-binding-sid命令配置的BSID值相同。
¡ 同时配置local-binding-sid参数和在SID列表下配置local-binding-sid命令,则local-binding-sid参数优先生效。
对于反向BSID。
¡ 通过reverse-binding-sid参数配置的BSID值不能和SID列表下reverse-binding-sid命令配置的BSID值相同。
¡ 同时配置reverse-binding-sid参数和在SID列表下配置reverse-binding-sid命令,则reverse-binding-sid参数优先生效。
开启本功能后,如果一个SRv6 TE Policy下面存在多条候选路径,SRv6 TE Policy的主备路径存在以下两种情况:
· 一主一备:SRv6 TE Policy中优先级最高的有效路径是主路径,优先级次高的有效路径是备份路径。如果主路径下所有Segment List都发生故障,则将流量切换到备路径转发,以减少对业务的影响。
· 一主两备:SRv6 TE Policy中优先级最高的有效路径是主路径,优先级次高的有效路径作为第一条备份路径,优先级第三高的有效候选路径作为第二条备份路径。如果主路径下所有Segment List都发生故障,则将流量切换到第一条备路径转发;如果第一条备份路径下所有Segment List都发生故障,则将流量切换到第二条备路径转发。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的热备份功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局开启SRv6 TE Policy的热备份功能。
srv6-policy backup hot-standby enable
缺省情况下,SRv6 TE Policy的热备份功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy的热备份功能。
backup hot-standby { disable | enable }
缺省情况下,未配置SRv6 TE Policy的热备份功能,以SRv6-TE视图下的配置为准。
为了防止SID列表切换导致流量转发失败,在SRv6 TE Policy的SID列表切换过程中,流量先保持按照老的SID列表转发,切换延迟时间超时后再按照新的SID列表转发流量,并在删除延迟时间超时后将老的SID列表删除。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 配置SRv6 TE Policy中转发路径的切换延迟时间和删除延迟时间。
srv6-policy switch-delay switch-delay-time delete-delay delete-delay-time
缺省情况下,SRv6 TE Policy中转发路径的切换延迟时间为5000毫秒,删除延迟时间为20000毫秒。
当SRv6 TE Policy故障恢复时,为了避免SRv6 TE Policy频繁震荡导致丢包,可以配置本功能,使SRv6 TE Policy延迟激活,即延迟一段时间再使用该SRv6 TE Policy转发流量,以确保SRv6 TE Policy的故障彻底消除。
配置本功能后,需要根据SRv6 TE Policy的SBFD功能的配置情况,启动不同类型的延迟激活定时器:
· LSP类型定时器:未开启SBFD功能,且SID列表状态由Down变为Up时,启动LSP类型定时器。
· SBFD类型定时器:开启SBFD功能,且SBFD会话状态由Down变为Up时,启动SBFD类型定时器。
可以通过display segment-routing ipv6 te policy命令查看BFD/SBFD功能配置情况、SID列表状态和BFD/SBFD会话状态。
请根据网络规模合理配置SRv6 TE Policy延迟激活的时间,避免故障消除后SRv6 TE Policy长时间无法处理用户流量。
SRv6 TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的延迟UP时间。SRv6 TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6 TE视图的配置。
配置本功能后,对于已处于延迟激活的SRv6 TE Policy不受影响。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局配置SRv6 TE Policy延迟激活的时间。
srv6-policy up-delay delay-time
缺省情况下,SRv6 TE Policy不延迟激活。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy的延迟激活时间。
up-delay delay-time
缺省情况下,未配置延迟激活时间,以SRv6 TE视图下的配置为准。
通常情况下,管理员通过控制器向设备下发SRv6 TE Policy的SID列表。如果头节点上未配置BFD检测SRv6 TE Policy,则当SID列表指示的路径故障时,头节点不能快速感知该故障,只能等待控制器感知拓扑变化并重新计算路径后通知头节点切换SRv6 TE Policy的SID列表。如果控制器故障或设备与控制器间链路故障,则头节点无法及时感知故障、切换SID列表,导致流量丢失。
为了提升故障时流量切换的速度、提高可靠性,可以在头节点开启SRv6 TE Policy路径连通性检查功能。开启该功能后,头节点收集网络的拓扑信息,根据如下信息校验SRv6 TE Policy中所有SID列表的有效性:
· 如果SID列表中所有SRv6 SID在拓扑中均存在,且其对应的Locator前缀均路由可达,则SID列表有效。
· 如果SID列表中任一SRv6 SID在拓扑中不存在,或者任一SRv6 SID对应的Locator前缀路由不可达,则SID列表无效。
头节点感知到SID列表无效,即SID列表故障时,根据不同的配置情况,触发不同路径切换方式:
(1) 当SRv6 TE Policy优选的有效候选路径下存在多个SID列表,如果某一SID列表故障,则不再使用该SID列表转发流量,流量在其他有效SID列表间负载分担。
(2) 当SRv6 TE Policy下存在有效的主备候选路径,如果主候选路径的所有SID列表均故障,则将流量切换到备候选路径转发。
(3) 当SRv6 TE Policy下所有有效候选路径均故障,则该SRv6 TE Policy故障,触发其他保护措施(如MPLS L3VPN快速重路由)。
在SRv6 TE Policy头节点配置本功能后,设备将校验Segment List中所有SID的有效性。当Segment List中存在域间SID,例如BGP EPE功能分配域间BGP Peer SID,或其他SRv6 TE Policy的BSID时,由于BSID或BGP Peer SID不在IGP拓扑中泛洪,所以路径校验会失败,影响报文转发。
为了解决上述问题,可以同时执行以下命令,指定进行SRv6 TE Policy路径连通性检查时,仅校验指定SID的有效性:
· 在执行index命令时,为需要检验的SID指定verification参数。Segment List中的BSID或BGP EPE SID不能指定verification参数。
· 在SRv6 TE Policy视图下执行命令path verification或在SRv6 TE视图下执行srv6-policy path verification enable命令时,指定specified-sid参数。
需要在SRv6 TE Policy的头节点配置本功能。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy路径连通性检查功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
由于SRv6 SID状态和路由状态感知都是在头节点进行的,所以头节点需要IGP域的所有SRv6 SID和路由。需要通过以下配置实现:
· IGP域使用IS-ISv6传递路由信息。
· 在头节点的IS-IS视图下配置distribute link-state命令,上报链路状态信息。有关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“IS-IS”。
当Segment List路径中存在Binding SID时,由于Binding SID不在IGP拓扑中泛洪,所以路径校验会失败,因此,在部署Binding SID场景,不能配置头节点故障感知功能。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局开启SRv6 TE Policy路径连通性检查功能。
srv6-policy path verification [ specified-sid ] enable [ rib-check-only ]
缺省情况下,SRv6 TE Policy路径连通性检查功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy路径连通性检查功能。
path verification { [ specified-sid ] enable [ rib-check-only ] | disable }
缺省情况下,未配置SRv6 TE Policy路径连通性检查功能,以SRv6-TE视图下的配置为准。
开启SRv6 TE FRR功能后,当SRv6 TE Policy的中间节点发生故障时,故障节点的上游节点可以代替故障节点完成报文转发,使报文绕过故障节点,实现中间节点故障的保护。这个上游节点称之为代理转发(Proxy Forwarding)节点。
组网环境复杂时,中间节点并不固定,所以,为了提供整网可靠性,建议在所有节点上开启SRv6 TE FRR功能。建议在源节点上同时开启备份路径功能。
在中间节点保护组网环境中,用户同时部署了SRv6压缩功能,由于SRv6 TE Policy的Segment List中的SRv6 SID存在前后关联,所以不能通过绕过故障节点(跳过故障节点的SRv6 SID)来实现保护,将导致中间节点保护功能失效。为了避免这种情况,用户可以在开启SRv6 TE FRR功能的节点上指定downgrade参数,同时保证Segment List中最后一个SRv6 SID不被压缩。在中间节点故障时,代理转发节点使用Segment List中最后一个SRv6 SID作为目的地址进行转发,实现中间节点保护功能。
在中间节点保护组网环境中,用户在中间节点开启SRv6 TE FRR功能并指定downgrade参数。在中间节点故障,触发中间节点保护后,如果使用BFD echo检测SRv6 TE Policy的连通性,则需要执行bfd echo命令,配置BFD报文采用普通封装模式。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 开启SRv6 TE FRR功能。
sr-te frr enable [ downgrade ]
缺省情况下,SRv6 TE FRR功能处于关闭。
(4) 进入SRv6 TE视图。
traffic-engineering
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 开启SRv6 TE Policy的备份路径功能。
bypass enable
缺省情况下,SRv6 TE Policy的备份路径功能处于关闭状态。
仅源节点需要配置本功能。
在SRv6 TE Policy尾节点保护组网环境中,报文经过的所有节点均需支持SRv6功能。
请在对尾节点进行保护的节点上配置End.M SID。
本节所有命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6”。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 配置Locator段,并进入SRv6 Locator视图。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 配置End.M SID,指定被保护的Locator段。
opcode opcode end-m mirror-locator ipv6-address prefix-length
在某个SRv6节点上开启尾节点保护功能后,该节点可以根据收到的IS-ISv6路由或OSPFv3路由中携带的End.M SID,计算到达尾节点的备份路径信息,即Mirror FRR路径信息。当尾节点故障后,中间节点可以根据End.M SID,将流量转发到对尾节点进行保护的节点处理,避免流量丢失。
切换到Mirror FRR路径后,流量沿着Mirror FRR路径转发,当中间节点完成路由收敛后,会删除Mirror FRR路径。如果此时头节点未完成路径切换,仍将流量转发给中间节点,由于中间节点上不存在Mirror FRR路径,流量会被丢弃。
为了避免上述情况,可以在中间节点上配置Mirror FRR的延迟删除时间,延迟删除Mirror FRR路由,使流量沿着Mirror FRR路径转发,避免丢包。
(1) 进入系统视图。
system-view
(2) 进入IS-IS视图。
isis [ process-id ] [ vpn-instance vpn-instance-name ]
(3) 进入IS-IS IPv6地址族视图。
address-family ipv6 [ unicast ]
(4) 开启IS-IS尾节点保护功能。
fast-reroute mirror enable
缺省情况下,IS-IS尾节点保护功能处于关闭状态。
(5) (可选)配置Mirror FRR的延迟删除时间。
fast-reroute mirror delete-delay delete-delay-time
缺省情况下,Mirror FRR延迟删除时间为60秒。
(1) 进入系统视图。
system-view
(2) 进入OSPFv3视图。
ospfv3 [ process-id | vpn-instance vpn-instance-name ] *
(3) 开启OSPFv3尾节点保护功能。
fast-reroute mirror enable
缺省情况下,OSPFv3尾节点保护功能处于关闭状态。
(4) (可选)配置Mirror FRR的延迟删除时间。
fast-reroute mirror delete-delay delete-delay-time
缺省情况下,Mirror FRR延迟删除时间为60秒。
在尾节点保护场景中,当尾节点故障时,保护节点与尾节点之间邻居中断,会导致保护节点从尾节点收到的BGP路由删除,进而导致远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI映射表被删除,造成丢包。为了避免上述情况,可以在对尾节点进行保护的节点上延迟删除远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI映射表,在头节点感知到尾节点故障计算出新的转发路径前,保证流量通过保护节点转发,避免丢包。
请在对尾节点进行保护的节点上配置本功能。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 配置远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI映射表的延迟删除时间。
mirror remote-sid delete-delay delete-delay-time
缺省情况下,远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI映射表的延迟删除时间为60秒。
当采用PCE计算的路径建立SID列表时,可以配置本命令使PCE周期性地计算路径,并通知PCC更新路径,以便将SRv6 TE Policy的候选路径切换到当前的最优路径。例如,如果在SRv6 TE Policy候选路径建立时,最优路径上的链路没有足够的可预留带宽,则会导致候选路径未使用最优路径建立。通过候选路径重优化功能,可以实现链路上具有足够的带宽时将候选路径自动切换到最优路径。
SRv6 TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy路径连通性检查功能。SRv6 TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6 TE视图的配置。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 全局开启SRv6 TE Policy的候选路径重优化功能。
srv6-policy reoptimization [ frequency seconds ]
缺省情况下,SRv6 TE Policy的候选路径重优化功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy的候选路径重优化功能。
reoptimization { disable | enable [ frequency seconds ] }
缺省情况下,未配置SRv6 TE Policy的候选路径重优化功能,以SRv6 TE视图下的配置为准。
(7) 退回用户视图。
quit
quit
quit
quit
(8) 立即对所有开启了重优化功能的SRv6 TE Policy进行重优化。
srv6-policy immediate-reoptimization
通过开启本功能,可以在SRv6 TE Policy的SID列表频繁震荡时,抑制其up/down状态变化,以减少对流量转发影响。
开启本功能后,SRv6 TE Policy会启动一个震荡计数器,并对SRv6 TE Policy的SID列表震荡事件进行计数:
· 如果SID列表状态从down变为up的时间小于震荡发生的判断时间,则SID列表发生震荡,震荡计数加1。
· 在进入抑制状态前,如果SID列表状态从down变为up的时间大于震荡抑制的恢复时间,则震荡计数清零。
· 如果震荡计数超过震荡抑制的判断阈值,则SRv6 TE Policy进入震荡抑制状态,不再更新SID列表的状态,即SID列表持续处于down状态。在抑制状态其间,仍然继续统计震荡计数。
· 在进入抑制状态达到震荡抑制的恢复时间后,设备解除SRv6 TE Policy的抑制状态,震荡计数清零。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6 TE视图。
traffic-engineering
(4) 全局关闭SRv6 TE Policy的震荡抑制功能。
srv6-policy suppress-flapping disable
缺省情况下,SRv6 TE Policy震荡抑制功能处于开启状态。
(5) 配置SRv6 TE Policy震荡抑制的检测参数。
srv6-policy suppress-flapping { detect-interval detect-interval | threshold threshold | resume-interval resume-interval } *
缺省情况下,SRv6 TE Policy的震荡发生的判断时间为60秒,进入震荡抑制阶段的阈值为10,震荡检测恢复门限为120秒。
SRv6 TE Policy对TTL的处理有两种模式:
· Uniform模式:入节点为IP报文添加新的IPv6头时,将原IP报文中的TTL值复制到新IPv6头的IPv6 Hop Limit字段。使用SRv6 TE Policy转发报文时,对新IPv6头的Hop Limit值逐跳减一。设备解封装报文时,将新IPv6头的Hop Limit值复制回IP报文。使用这种方式时,公网中的节点对用户网络的报文可见。报文沿着SRv6 TE Policy传输的过程中,TTL逐跳递减,Tracert的结果将反映报文实际经过的路径。
· Pipe模式:入节点为IP报文添加新的IPv6头时,不会将原IP报文中的TTL值复制到新IPv6头的IPv6 Hop Limit字段,新IPv6头的Hop Limit取值为255。使用SRv6 TE Policy转发报文时,对新IPv6头的Hop Limit值逐跳减一。设备解封装报文时,不修改IPv6 Hop Limit的值。使用这种方式时,公网中的节点对用户网络的报文不可见。Tracert的结果不包括公网中的每一跳,从而隐藏公网的结构。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 配置SRv6 TE Policy对TTL的处理模式。
ttl-mode { pipe | uniform }
缺省情况下,SRv6 TE Policy对TTL的处理模式为Pipe模式。
配置SRv6 TE Policy CBTS前需要先通过remark service-class命令配置QoS流行为,标记流量的隧道转发类,具体请参见“ACL和QoS命令参考”中的“QoS策略”。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 配置SRv6 TE Policy的转发类。
service-class service-class-value
缺省情况下,未配置SRv6 TE Policy的转发类。
配置本功能后,通过SRv6 TE Policy转发的报文速率超过限速值时,超过速率限制的报文会被丢弃。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 进入SRv6 TE Policy视图。
policy policy-name
(5) 配置SRv6 TE Policy限速功能。
rate-limit kbps
缺省情况下,不对SRv6 TE Policy的流量速率进行限制。
如果希望限定流量仅通过SRv6 TE Policy隧道转发,可以开启本功能。
缺省情况下,转发报文的SRv6 TE Policy的所有候选路径都失效时,设备会通过传统IPv6转发方式转发报文,即根据目的IPv6地址查找IPv6路由表转发报文。
当配置本功能后,如果用于转发报文的SRv6 TE Policy的所有候选路径都失效,设备会丢弃该报文,不会通过传统IPv6转发方式转发报文。
当display segment-routing ipv6 te policy命令中Forwarding index字段显示为0(即SRv6 TE Policy无效)时,drop-upon-invalid enable命令不生效。
对于基于BGP SRv6 TE Policy路由生成的SRv6 TE Policy,不会受远端设备上drop-upon-invalid命令的影响,仅受本端设备drop-upon-invalid命令的控制。
SRv6 TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy在Policy失效时丢弃流量功能。SRv6 TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6 TE视图的配置。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局开启SRv6 TE Policy在Policy失效时丢弃流量的功能。
srv6-policy drop-upon-invalid enable
缺省情况下,SRv6 TE Policy在Policy失效时丢弃流量的功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy在Policy失效时丢弃流量的功能。
drop-upon-invalid { disable | enable }
缺省情况下,Policy失效时丢弃流量功能处于关闭状态。
在SRv6 VPN场景中,如果公网通过SRv6 TE Policy转发,则为报文封装的SRH需要包括SRv6 TE Policy的SID列表和为VPN实例或公网实例分配的SID(下文End.DT4 SID为例进行介绍)。因为SID列表最后一个SID和End.DT4 SID均在尾节点上,所以可以忽略SID列表中最后一个SID,使用End.DT4 SID定位尾节点,以减少SRv6报文大小。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局开启通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能。
srv6-policy forwarding ignore-last-sid
缺省情况下,通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能。
forwarding ignore-last-sid { disable | enable }
缺省情况下,未配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能,以SRv6-TE视图下的配置为准。
如图1-17所示,PE 4作为RR,分别和PE 1、PE 2、PE 3建立IBGP连接。PE 1和PE 3具备SRv6功能,PE 2不具备SRv6功能,PE 1、PE 2和PE 3上均部署MPLS L3VPN功能。PE 1和PE 2上、PE 2和PE 3上的VPN用户通过MPLS L3VPN互访,PE 1和PE 3上VPN用户需要通过EVPN L3VPN over SRv6互访。PE 1和PE 3之间同时存在MPLS L3VPN和EVPN L3VPN over SRv6,处理PE 1和PE 3之间的业务流量时优选SRv6封装的路由。
图1-17 MPLS L3VPN和EVPN L3VPN over SRv6共存环境示意图
配置bestroute encap-type命令时,如果指定了preferred参数,则设备对指定VPN实例下的BGP路由进行选路时,如果存在Preferred-value相同的多条路由,则根据bestroute encap-type命令选优SRv6封装或MPLS封装的路由,之后继续根据BGP原有的选路流程进行选路。关于BGP选路规则的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP概述”。
配置bestroute encap-type命令时,如果未指定preferred参数,则设备对指定VPN实例下的BGP路由进行选路时,如果存在Preferred-value和LOCAL_PREF都相同的多条路由,则根据bestroute encap-type命令选优SRv6封装或MPLS封装的路由,之后继续根据BGP原有的选路流程进行选路。
如果同时配置了bestroute encap-type preferred命令与bestroute nexthop-type preferred命令,则设备对指定VPN实例下的BGP路由进行选路时,会按照如下顺序:
(1) 丢弃下一跳(NEXT_HOP)不可达的路由
(2) 优选首选值(Preferred-value)最大的路由
(3) 根据bestroute encap-type命令的配置优选SRv6封装或MPLS封装的路由
(4) 根据bestroute nexthop-type命令的配置优选下一跳为隧道或IP地址的路由
(5) 优选本地优先级(LOCAL_PREF)最高的路由
(6) 根据BGP原有的选路流程进行选路
有关bestroute nexthop-type命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
(4) 配置根据报文封装进行路由优选。
bestroute encap-type { mpls | srv6 } [ preferred ]
缺省情况下,不根据报文封装进行路由优选。
开启SRv6 TE Policy的日志功能后,设备将记录SRv6 TE Policy的状态变化和SRv6 TE Policy的资源使用情况,以便管理员对SRv6 TE Policy运行情况进行审计。设备生成的SRv6 TE Policy日志信息将被发送到设备的信息中心,通过设置信息中心的参数,决定日志信息的输出规则(即是否允许输出以及输出方向)。有关信息中心参数的配置请参见“设备管理配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 开启SRv6 TE Policy的日志功能。
srv6-policy log enable
缺省情况下,SRv6 TE Policy的日志功能处于关闭状态。
开启SRv6 TE Policy的告警功能后,当SRv6 TE Policy的状态发生变化和SRv6 TE Policy的资源使用数量超限时,将生成告警信息并发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启SRv6 TE Policy的告警功能。
snmp-agent trap enable srv6-policy
缺省情况下,SRv6 TE Policy的告警功能处于关闭状态。
配置本功能后,可以统计通过SRv6 TE Policy转发的流量的信息。
SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的流量转发统计功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 全局开启SRv6 TE Policy的流量转发统计功能。
srv6-policy forwarding statistics [ service-class ] enable
缺省情况下,SRv6 TE Policy的流量转发统计功能处于关闭状态。
指定service-class参数后,不仅对SRv6 TE Policy隧道转发的总流量进行统计,还会对隧道转发的每个隧道转发类的流量分别进行统计。
(5) (可选)全局配置SRv6 TE Policy流量转发统计信息收集的时间间隔。
srv6-policy forwarding statistics interval interval
缺省情况下,SRv6 TE Policy流量转发统计信息收集的时间间隔为30秒。
(6) 进入SRv6 TE Policy视图。
policy policy-name
(7) 配置SRv6 TE Policy的流量转发统计功能。
forwarding statistics { disable | [ service-class ] enable }
缺省情况下,未配置SRv6 TE Policy的流量转发统计功能,以SRv6-TE视图下的配置为准。
指定service-class参数后,不仅对SRv6 TE Policy隧道转发的总流量进行统计,还会对隧道转发的每个隧道转发类的流量分别进行统计。
· 显示SRv6 TE Policy信息。
display segment-routing ipv6 te forwarding [ policy { name policy-name | { color color-value | end-point ipv6 ipv6-address } * } ] [ verbose ]
· 显示SRv6 TE Policy的状态。
display segment-routing ipv6 te policy status [ policy-name policy-name ]
· 显示SRv6 TE Policy的统计信息。
display segment-routing ipv6 te policy statistics
· 显示SRv6 TE Policy最近一次down的原因。
display segment-routing ipv6 te policy last-down-reason [ binding-sid bsid | color color-value endpoint ipv6 ipv6-address | policy-name policy-name ]
· 显示SRv6-TE的SID列表信息。
display segment-routing ipv6 te segment-list [ name seglist-name | id id-value ]
· 显示SRv6 TE Policy的数据库信息。
display segment-routing ipv6 te database [ link | node | prefix | srv6-sid ]
· 显示从LS数据库中收集到的SRv6 SID的信息。
display segment-routing ipv6 te source-sid [ end | end-x | sid ]
· 可在任意视图下执行以下命令,显示SRv6 TE Policy组的信息。
display segment-routing ipv6 te policy-group [ group-id ] [ verbose ]
· 显示SRv6 TE Policy组最近一次down的原因。
display segment-routing ipv6 te policy-group last-down-reason [ group-id | endpoint ipv6-address color color-value ]
· 显示SRv6 TE Policy组的统计信息
display segment-routing ipv6 te policy-group statistics
· 显示BGP IPv6 SR Policy路由信息。
display bgp [ instance instance-name ] routing-table ipv6 sr-policy [ sr-policy-prefix [ advertise-info | as-path | cluster-list | community | ext-community ] | { color color-value | end-point ipv6 ipv6-address } * | peer ipv6-address { advertised-routes | received-routes } [ statistics ] { color color-value | end-point ipv6 ipv6-address } * | statistics { color color-value | end-point ipv6 ipv6-address } * ]
display bgp [ instance instance-name ] routing-table ipv6 sr-policy [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv6 sr-policy [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]
display bgp [ instance instance-name ] routing-table ipv6 sr-policy [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]
· 显示BGP IPv6 SR Policy对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer ipv6 sr-policy [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]
· 显示BGP IPv6 SR Policy对等体组的信息。
display bgp [ instance instance-name ] group ipv6 sr-policy [ group-name group-name ]
· 显示BGP IPv6 SR Policy打包组的相关信息。
display bgp [ instance instance-name ] update-group ipv6 sr-policy [ ipv6-address ]
可在任意视图下执行以下命令:
· 显示SRv6 TE Policy的BFD信息。
display segment-routing ipv6 te bfd [ down | policy { { color color-value | end-point ipv6 ipv6-address } * | name policy-name } | up ]
· 显示SRv6 TE Policy的SBFD信息。
display segment-routing ipv6 te sbfd [ down | policy { { color color-value | end-point ipv6 ipv6-address } * | name policy-name } | up ]
可在任意视图下执行以下命令:
· 显示通过Mirror SID保护的远端SRv6 SID。
display bgp [ instance instance-name ] mirror remote-sid [ end-dt4 | end-dt46 | end-dt6 ] [ sid ]
· 显示EVPN SRv6组网中通过Mirror SID保护的远端SRv6 SID。
display evpn srv6 mirror remote-sid [ sid | type { end-dt2u | end-dx2 } ]
可在任意视图下执行以下命令,显示SRv6 TE的转发信息。
display segment-routing ipv6 te forwarding [ policy { name policy-name | { color color-value | end-point ipv6 ipv6-address } * } ] [ verbose ]
请在用户视图下执行以下命令,清除SRv6 TE Policy流量转发统计信息。
reset segment-routing ipv6 te forwarding statistics [ binding-sid binding-sid | color color-value endpoint endpoint-ipv6 | name name-value ]
可在任意视图下执行以下命令:
· 显示PCE进程中的SRv6 TE Policy信息。
display pce segment-routing ipv6 policy database [ color color-value endpoint ipv6 ipv6-address | policyname policy-name] [ verbose ]
· 显示PCE进程中缓存的SRv6 TE Policy的initiate消息
display pce segment-routing ipv6 policy initiate-cache
可在任意视图下执行以下命令:
· 显示IPR模板的信息。
display segment-routing ipv6 te ipr [ name ipr-name ]
· 显示SRv6 TE Policy的iFIT检测信息。
display segment-routing ipv6 te policy ifit [ name policy-name | { color color-value | end-point ipv6 ipv6-address } * ]
通过在IGP网络中部署SRv6 TE Policy,实现根据用户需求制定合理的转发路径。如图1-18所示,用户需要流量分别经过Device A、Device B、Device C、Device D转发。通过部署以下功能可以实现该需求:
· Device A~Device D设备之间运行IS-IS实现三层互通。
· 在Device A上配置SRv6 TE Policy,限定用户流量的转发路径为Device A->Device B->Device C->Device D。
图1-18 SRv6 TE Policy基本转发配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Device A |
Loop1 |
1::1/128 |
Device B |
Loop1 |
2::2/128 |
|
GE1/0/1 |
1000::1/64 |
|
GE1/0/1 |
1000::2/64 |
|
GE1/0/2 |
4000::1/64 |
|
GE1/0/2 |
2000::2/64 |
Device C |
Loop1 |
3::3/128 |
Device D |
Loop1 |
4::4/128 |
|
GE1/0/1 |
3000::3/64 |
|
GE1/0/1 |
3000::4/64 |
|
GE1/0/2 |
2000::3/64 |
|
GE1/0/2 |
4000::4/64 |
(1) 请按照图1-18配置各接口的IPv6地址和前缀长度,具体配置过程略
(2) 配置Device A
# 配置SID列表。
[DeviceA] segment-routing ipv6
[DeviceA-segment-routing-ipv6] encapsulation source-address 1::1
[DeviceA-segment-routing-ipv6] locator a ipv6-prefix 5000:: 64 static 32
[DeviceA-segment-routing-ipv6-locator-a] opcode 1 end no-flavor
[DeviceA-segment-routing-ipv6-locator-a] quit
[DeviceA-segment-routing-ipv6] traffic-engineering
[DeviceA-srv6-te] srv6-policy locator a
[DeviceA-srv6-te] segment-list s1
[DeviceA-srv6-te-sl-s1] index 10 ipv6 6000::1
[DeviceA-srv6-te-sl-s1] index 20 ipv6 7000::1
[DeviceA-srv6-te-sl-s1] index 30 ipv6 8000::1
[DeviceA-srv6-te-sl-s1] quit
# 创建SRv6 TE Policy,并配置SRv6 TE Policy属性。
[DeviceA-srv6-te] policy p1
[DeviceA-srv6-te-policy-p1] binding-sid ipv6 5000::2
[DeviceA-srv6-te-policy-p1] color 10 end-point ipv6 4::4
[DeviceA-srv6-te-policy-p1] candidate-paths
[DeviceA-srv6-te-policy-p1-path] preference 10
[DeviceA-srv6-te-policy-p1-path-pref-10] explicit segment-list s1
[DeviceA-srv6-te-policy-p1-path-pref-10] quit
[DeviceA-srv6-te-policy-p1-path] quit
[DeviceA-srv6-te-policy-p1] quit
[DeviceA-srv6-te] quit
[DeviceA-segment-routing-ipv6] quit
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceA> system-view
[DeviceA] isis 1
[DeviceA-isis-1] network-entity 00.0000.0000.0001.00
[DeviceA-isis-1] cost-style wide
[DeviceA-isis-1] address-family ipv6 unicast
[DeviceA-isis-1-ipv6] segment-routing ipv6 locator a
[DeviceA-isis-1-ipv6] quit
[DeviceA-isis-1] quit
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceA-GigabitEthernet1/0/1] quit
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceA-GigabitEthernet1/0/2] quit
[DeviceA] interface loopback 1
[DeviceA-LoopBack1] isis ipv6 enable 1
[DeviceA-LoopBack1] quit
(3) 配置Device B
# 配置SRv6 End.SID。
[DeviceB] segment-routing ipv6
[DeviceB-segment-routing-ipv6] locator b ipv6-prefix 6000:: 64 static 32
[DeviceB-segment-routing-ipv6-locator-b] opcode 1 end no-flavor
[DeviceB-segment-routing-ipv6-locator-b] quit
[DeviceB-segment-routing-ipv6] quit
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceB> system-view
[DeviceB] isis 1
[DeviceB-isis-1] network-entity 00.0000.0000.0002.00
[DeviceB-isis-1] cost-style wide
[DeviceB-isis-1] address-family ipv6 unicast
[DeviceB-isis-1-ipv6] segment-routing ipv6 locator b
[DeviceB-isis-1-ipv6] quit
[DeviceB-isis-1] quit
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceB-GigabitEthernet1/0/2] quit
[DeviceB] interface loopback 1
[DeviceB-LoopBack1] isis ipv6 enable 1
[DeviceB-LoopBack1] quit
(4) 配置Device C
# 配置SRv6 End.SID。
[DeviceC] segment-routing ipv6
[DeviceC-segment-routing-ipv6] locator c ipv6-prefix 7000:: 64 static 32
[DeviceC-segment-routing-ipv6-locator-c] opcode 1 end no-flavor
[DeviceC-segment-routing-ipv6-locator-c] quit
[DeviceC-segment-routing-ipv6] quit
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceC> system-view
[DeviceC] isis 1
[DeviceC-isis-1] network-entity 00.0000.0000.0003.00
[DeviceC-isis-1] cost-style wide
[DeviceC-isis-1] address-family ipv6 unicast
[DeviceC-isis-1-ipv6] segment-routing ipv6 locator c
[DeviceC-isis-1-ipv6] quit
[DeviceC-isis-1] quit
[DeviceC] interface gigabitethernet 1/0/1
[DeviceC-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceC-GigabitEthernet1/0/1] quit
[DeviceC] interface gigabitethernet 1/0/2
[DeviceC-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceC-GigabitEthernet1/0/2] quit
[DeviceC] interface loopback 1
[DeviceC-LoopBack1] isis ipv6 enable 1
[DeviceC-LoopBack1] quit
(5) 配置Device D
# 配置SRv6 End.SID。
[DeviceD] segment-routing ipv6
[DeviceD-segment-routing-ipv6] locator d ipv6-prefix 8000:: 64 static 32
[DeviceD-segment-routing-ipv6-locator-d] opcode 1 end no-flavor
[DeviceD-segment-routing-ipv6-locator-d] quit
[DeviceD-segment-routing-ipv6] quit
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceD> system-view
[DeviceD] isis 1
[DeviceD-isis-1] network-entity 00.0000.0000.0004.00
[DeviceD-isis-1] cost-style wide
[DeviceD-isis-1] address-family ipv6 unicast
[DeviceD-isis-1-ipv6] segment-routing ipv6 locator d
[DeviceD-isis-1-ipv6] quit
[DeviceD-isis-1] quit
[DeviceD] interface gigabitethernet 1/0/1
[DeviceD-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceD-GigabitEthernet1/0/1] quit
[DeviceD] interface gigabitethernet 1/0/2
[DeviceD-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceD-GigabitEthernet1/0/2] quit
[DeviceD] interface loopback 1
[DeviceD-LoopBack1] isis ipv6 enable 1
[DeviceD-LoopBack1] quit
# 在Device A上查看SRv6 TE Policy的配置情况,可以看到SRv6 TE Policy处于激活状态,设备可以通过SRv6 TE Policy转发流量。
[DeviceA] display segment-routing ipv6 te policy
Name/ID: p1/0
Color: 10
Endpoint: 4::4
Name from BGP:
BSID:
Mode: Explicit Type: Type_2 Request state: Succeeded
Current BSID: 5000::2 Explicit BSID: 5000::2 Dynamic BSID: -
Reference counts: 4
Flags: A/BS/NC
Status: Up
AdminStatus: Up
Up time: 2020-04-02 16:08:03
Down time: 2020-04-02 16:03:48
Hot backup: Disabled
Statistics: Disabled
Statistics by service class: Disabled
Path verification: Disabled
Forwarding ignore last SID: Disabled
Drop-upon-invalid: Disabled
BFD trigger path-down: Disabled
SBFD: Disabled
BFD Echo: Disabled
Forwarding index: 2150629377
Association ID: 1
Service-class: -
Rate-limit: 15000 kbps
PCE delegation: Disabled
PCE delegate report-only: Disabled
Encaps reduced: Disabled
Encaps include local End.X: Disabled
Candidate paths state: Configured
Candidate paths statistics:
CLI paths: 1 BGP paths: 0 PCEP paths: 0
Candidate paths:
Preference : 10
CPathName:
ProtoOrigin: CLI Discriminator: 30
Instance ID: 0 Node address: 0.0.0.0
Originator: 0, ::
Optimal: Y Flags: V/A
Dynamic: Not configured
PCEP: Not configured
Explicit SID list:
ID: 1 Name: s1
Weight: 1 Forwarding index: 2149580801
State: Up State(-): -
Verification State: -
Active path MTU: 1280 bytes
# 在Device A上查看SRv6 TE Policy的转发信息。
[DeviceA] display segment-routing ipv6 te forwarding verbose
Total forwarding entries: 1
Policy name/ID: p1/0
Binding SID: 5000::2
Policy forwarding index: 2150629377
Main path:
Seglist Name/ID: 1
Seglist forwarding index: 2149580801
Weight: 1
Outgoing forwarding index: 2148532225
Interface: GE1/0/1
Nexthop: FE80::54CB:70FF:FE86:316
Path ID: 0
SID list: {6000::1, 7000::1, 8000::1}
# 在Device A上查看LSP转发路径信息,可以看到SRv6 TE Policy对应的转发路径信息。
[DeviceA] display segment-routing ipv6 forwarding
Total SRv6 forwarding entries: 3
Flags: T - Forwarded through a tunnel
N - Forwarded through the outgoing interface to the nexthop IP address
A - Active forwarding information
B - Backup forwarding information
ID FWD-Type Flags Forwarding info
--------------------------------------------------------------------------------
2148532225 SRv6PSIDList NA GE1/0/1
FE80::54CB:70FF:FE86:316
{6000::1, 7000::1, 8000::1}
2149580801 SRv6PCPath TA 2148532225
2150629377 SRv6Policy TA 2149580801
如图1-19所示,在PE 1和PE 2之间建立双向SRv6 TE Policy,承载L3VPN业务。PE 2是SRv6 TE Policy的尾节点,为了增强可靠性,PE 3为PE 2提供保护。
图1-19 SRv6 TE Policy尾节点保护配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10.1.1.2/24 |
PE 2 |
Loop0 |
3::3/128 |
PE 1 |
Loop0 |
1::1/128 |
|
GE1/0/1 |
10.2.1.1/24 |
|
GE1/0/1 |
10.1.1.1/24 |
|
GE1/0/2 |
2002::1/64 |
|
GE1/0/2 |
2001::1/96 |
|
GE1/0/3 |
2004::2/96 |
P |
Loop0 |
2::2/128 |
PE 3 |
Loop0 |
4::4/128 |
|
GE1/0/1 |
2001::2/96 |
|
GE1/0/1 |
10.3.1.1/24 |
|
GE1/0/2 |
2002::2/64 |
|
GE1/0/2 |
2003::1/96 |
|
GE1/0/3 |
2003::2/96 |
|
GE1/0/3 |
2004::1/96 |
|
|
|
CE 2 |
GE1/0/1 |
10.2.1.2/24 |
|
|
|
|
GE1/0/2 |
10.3.1.2/24 |
按图1-19配置各CE的接口IP地址,配置过程略。
(1) 配置CE 1
# 与PE建立EBGP对等体,引入VPN路由。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 10.1.1.1 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.1 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
(2) 配置PE 1
# 配置IPv6 IS-IS,实现骨干网互通。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] is-level level-1
[PE1-isis-1] cost-style wide
[PE1-isis-1] network-entity 10.1111.1111.1111.00
[PE1-isis-1] address-family ipv6 unicast
[PE1-isis-1-ipv6] quit
[PE1-isis-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] ipv6 address 1::1 128
[PE1-LoopBack0] isis ipv6 enable 1
[PE1-LoopBack0] quit
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] ipv6 address 2001::1 96
[PE1-GigabitEthernet1/0/2] isis ipv6 enable 1
[PE1-GigabitEthernet1/0/2] quit
# 配置VPN实例,将CE接入PE。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[PE1-GigabitEthernet1/0/1] quit
# 与CE建立EBGP对等体,引入VPN路由。
[PE1] bgp 100
[PE1-bgp-default] router-id 1.1.1.1
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.2 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.2 enable
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
# 在PE之间建立MP-IBGP对等体。
[PE1] bgp 100
[PE1-bgp-default] peer 3::3 as-number 100
[PE1-bgp-default] peer 4::4 as-number 100
[PE1-bgp-default] peer 3::3 connect-interface loopback 0
[PE1-bgp-default] peer 4::4 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 enable
[PE1-bgp-default-vpnv4] peer 4::4 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 配置L3VPN over SRv6 TE Policy。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] encapsulation source-address 1::1
[PE1-segment-routing-ipv6] locator aaa ipv6-prefix 1:2::1:0 96 static 8
[PE1-segment-routing-ipv6-locator-aaa] opcode 1 end-dt4 vpn-instance vpn1
[PE1-segment-routing-ipv6-locator-aaa] quit
[PE1-segment-routing-ipv6] quit
[PE1] bgp 100
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 prefix-sid
[PE1-bgp-default-vpnv4] peer 4::4 prefix-sid
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering best-effort
[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 locator aaa
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
[PE1] isis 1
[PE1-isis-1] address-family ipv6 unicast
[PE1-isis-1-ipv6] segment-routing ipv6 locator aaa
[PE1-isis-1-ipv6] quit
[PE1-isis-1] quit
# 配置SRv6 TE Policy。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] srv6-policy locator aaa
[PE1-srv6-te] segment-list s1
[PE1-srv6-te-s1-s1] index 10 ipv6 100:abc:1::1
[PE1-srv6-te-s1-s1] index 20 ipv6 6:5::1:2
[PE1-srv6-te-s1-s1] quit
[PE1-srv6-te] policy p1
[PE1-srv6-te-policy-p1] binding-sid ipv6 1:2::1:2
[PE1-srv6-te-policy-p1] color 10 end-point ipv6 3::3
[PE1-srv6-te-policy-p1] candidate-paths
[PE1-srv6-te-policy-p1-path] preference 10
[PE1-srv6-te-policy-p1-path-pref-10] explicit segment-list s1
[PE1-srv6-te-policy-p1-path-pref-10] quit
[PE1-srv6-te-policy-p1-path] quit
[PE1-srv6-te-policy-p1] quit
[PE1-srv6-te] quit
[PE1-segment-routing-ipv6] quit
(3) 配置P
# 配置IPv6 IS-IS,实现骨干网互通。
<P> system-view
[P] isis 1
[P-isis-1] is-level level-1
[P-isis-1] cost-style wide
[P-isis-1] network-entity 10.2222.2222.2222.00
[P-isis-1] address-family ipv6 unicast
[P-isis-1-ipv6] quit
[P-isis-1] quit
[P] interface loopback 0
[P-LoopBack0] ipv6 address 2::2 128
[P-LoopBack0] isis ipv6 enable 1
[P-LoopBack0] quit
[P] interface gigabitethernet 1/0/1
[P-GigabitEthernet1/0/1] ipv6 address 2001::2 96
[P-GigabitEthernet1/0/1] isis ipv6 enable 1
[P-GigabitEthernet1/0/1] quit
[P] interface gigabitethernet 1/0/2
[P-GigabitEthernet1/0/2] ipv6 address 2002::2 96
[P-GigabitEthernet1/0/2] isis ipv6 enable 1
[P-GigabitEthernet1/0/2] quit
[P] interface gigabitethernet 1/0/3
[P-GigabitEthernet1/0/3] ipv6 address 2003::2 96
[P-GigabitEthernet1/0/3] isis ipv6 enable 1
[P-GigabitEthernet1/0/3] quit
# 配置SRv6功能。
[P] segment-routing ipv6
[P-segment-routing-ipv6] locator p ipv6-prefix 100:abc:1::0 96 static 8
[P-segment-routing-ipv6-locator-p] opcode 1 end no-flavor
[P-segment-routing-ipv6-locator-p] quit
[P-segment-routing-ipv6] quit
[P] isis 1
[P-isis-1] address-family ipv6 unicast
[P-isis-1-ipv6] segment-routing ipv6 locator p
# 配置快速重路由的备份下一跳信息,并开启尾节点保护功能。
[P-isis-1-ipv6] fast-reroute lfa level-1
[P-isis-1-ipv6] fast-reroute ti-lfa
[P-isis-1-ipv6] fast-reroute mirror enable
[P-isis-1-ipv6] quit
[P-isis-1] quit
(4) 配置PE 2
# 配置IPv6 IS-IS,实现骨干网互通。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] is-level level-1
[PE2-isis-1] cost-style wide
[PE2-isis-1] network-entity 10.3333.3333.3333.00
[PE2-isis-1] address-family ipv6 unicast
[PE2-isis-1-ipv6] quit
[PE2-isis-1] quit
[PE2] interface loopback 0
[PE2-LoopBack0] ipv6 address 3::3 128
[PE2-LoopBack0] isis ipv6 enable 1
[PE2-LoopBack0] quit
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] ipv6 address 2002::1 96
[PE2-GigabitEthernet1/0/2] isis ipv6 enable 1
[PE2-GigabitEthernet1/0/2] quit
[PE2] interface gigabitethernet 1/0/3
[PE2-GigabitEthernet1/0/3] ipv6 address 2004::2 96
[PE2-GigabitEthernet1/0/3] isis ipv6 enable 1
[PE2-GigabitEthernet1/0/3] quit
# 配置VPN实例,将CE接入PE。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/1] ip address 10.2.1.1 24
[PE2-GigabitEthernet1/0/1] quit
# 与CE建立EBGP对等体,引入VPN路由。
[PE2] bgp 100
[PE2-bgp-default] router-id 2.2.2.2
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 10.2.1.2 as-number 65420
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 10.2.1.2 enable
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
# 在PE之间建立MP-IBGP对等体。
[PE2] bgp 100
[PE2-bgp-default] peer 1::1 as-number 100
[PE2-bgp-default] peer 4::4 as-number 100
[PE2-bgp-default] peer 1::1 connect-interface loopback 0
[PE2-bgp-default] peer 4::4 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 1::1 enable
[PE2-bgp-default-vpnv4] peer 4::4 enable
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] quit
# 配置L3VPN over SRv6 TE Policy。
[PE2] segment-routing ipv6
[PE2-segment-routing-ipv6] encapsulation source-address 3::3
[PE2-segment-routing-ipv6] locator bbb ipv6-prefix 6:5::1:0 96 static 8
[PE2-segment-routing-ipv6-locator-bbb] opcode 1 end-dt4 vpn-instance vpn1
[PE2-segment-routing-ipv6-locator-bbb] opcode 2 end no-flavor
[PE2-segment-routing-ipv6-locator-bbb] quit
[PE2-segment-routing-ipv6] quit
[PE2] bgp 100
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 1::1 prefix-sid
[PE2-bgp-default-vpnv4] peer 4::4 prefix-sid
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering best-effort
[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 locator bbb
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
[PE2] isis 1
[PE2-isis-1] address-family ipv6 unicast
[PE2-isis-1-ipv6] segment-routing ipv6 locator bbb
[PE2-isis-1-ipv6] quit
[PE2-isis-1] quit
(5) 配置PE 3
# 配置IPv6 IS-IS,实现骨干网互通。
<PE3> system-view
[PE3] isis 1
[PE3-isis-1] is-level level-1
[PE3-isis-1] cost-style wide
[PE3-isis-1] network-entity 10.4444.4444.4444.00
[PE3-isis-1] address-family ipv6 unicast
[PE3-isis-1-ipv6] quit
[PE3-isis-1] quit
[PE3] interface loopback 0
[PE3-LoopBack0] ipv6 address 4::4 128
[PE3-LoopBack0] isis ipv6 enable 1
[PE3-LoopBack0] quit
[PE3] interface gigabitethernet 1/0/2
[PE3-GigabitEthernet1/0/2] ipv6 address 2003::1 96
[PE3-GigabitEthernet1/0/2] isis ipv6 enable 1
[PE3-GigabitEthernet1/0/2] quit
[PE3] interface gigabitethernet 1/0/3
[PE3-GigabitEthernet1/0/3] ipv6 address 2004::1 96
[PE3-GigabitEthernet1/0/3] isis ipv6 enable 1
[PE3-GigabitEthernet1/0/3] quit
# 配置VPN实例,将CE接入PE。
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] route-distinguisher 100:1
[PE3-vpn-instance-vpn1] vpn-target 111:1
[PE3-vpn-instance-vpn1] quit
[PE3] interface gigabitethernet 1/0/1
[PE3-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE3-GigabitEthernet1/0/1] ip address 10.3.1.1 24
[PE3-GigabitEthernet1/0/1] quit
# 与CE建立EBGP对等体,引入VPN路由。
[PE3] bgp 100
[PE3-bgp-default] router-id 3.3.3.3
[PE3-bgp-default] ip vpn-instance vpn1
[PE3-bgp-default-vpn1] peer 10.3.1.2 as-number 65420
[PE3-bgp-default-vpn1] address-family ipv4 unicast
[PE3-bgp-default-ipv4-vpn1] peer 10.3.1.2 enable
[PE3-bgp-default-ipv4-vpn1] quit
[PE3-bgp-default-vpn1] quit
# 在PE之间建立MP-IBGP对等体。
[PE3] bgp 100
[PE3-bgp-default] peer 1::1 as-number 100
[PE3-bgp-default] peer 3::3 as-number 100
[PE3-bgp-default] peer 1::1 connect-interface loopback 0
[PE3-bgp-default] peer 3::3 connect-interface loopback 0
[PE3-bgp-default] address-family vpnv4
[PE3-bgp-default-vpnv4] peer 1::1 enable
[PE3-bgp-default-vpnv4] peer 3::3 enable
[PE3-bgp-default-vpnv4] quit
[PE3-bgp-default] quit
# 配置SRv6封装的IPv6报文头的源地址。
[PE3] segment-routing ipv6
[PE3-segment-routing-ipv6] encapsulation source-address 4::4
# 配置End.M SID来保护PE 2。
[PE3-segment-routing-ipv6] locator ccc ipv6-prefix 9:7::1:0 96 static 8
[PE3-segment-routing-ipv6-locator-ccc] opcode 1 end-m mirror-locator 6:5::1:0 96
[PE3-segment-routing-ipv6-locator-ccc] quit
[PE3-segment-routing-ipv6] quit
# 配置将私网路由迭代到End.M SID的路由条目上。
[PE3] bgp 100
[PE3-bgp-default] address-family vpnv4
[PE3-bgp-default-vpnv4] peer 1::1 prefix-sid
[PE3-bgp-default-vpnv4] peer 3::3 prefix-sid
[PE3-bgp-default-vpnv4] quit
[PE3-bgp-default] ip vpn-instance vpn1
[PE3-bgp-default-vpn1] address-family ipv4 unicast
[PE3-bgp-default-ipv4-vpn1] segment-routing ipv6 locator ccc
[PE3-bgp-default-ipv4-vpn1] quit
[PE3-bgp-default-vpn1] quit
[PE3-bgp-default] quit
[PE3] isis 1
[PE3-isis-1] address-family ipv6 unicast
[PE3-isis-1-ipv6] segment-routing ipv6 locator ccc
[PE3-isis-1-ipv6] quit
[PE3-isis-1] quit
(6) 配置CE 2
# 与PE建立EBGP对等体,引入VPN路由。
<CE2> system-view
[CE2] bgp 65420
[CE2-bgp-default] peer 10.2.1.1 as-number 100
[CE2-bgp-default] peer 10.3.1.1 as-number 100
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 10.2.1.1 enable
[CE2-bgp-default-ipv4] peer 10.3.1.1 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 在PE 1上查看SRv6 TE Policy的配置情况,可以看到SRv6 TE Policy处于激活状态,设备可以通过SRv6 TE Policy转发流量。
[PE1] display segment-routing ipv6 te policy
Name/ID: p1/0
Color: 10
End-point: 3::3
Name from BGP:
BSID:
Mode: Explicit Type: Type_2 Request state: Succeeded
Current BSID: 1:2::1:2 Explicit BSID: 1:2::1:2 Dynamic BSID: -
Reference counts: 4
Flags: A/BS/NC
Status: Up
AdminStatus: Up
Up time: 2020-10-28 09:10:33
Down time: 2020-10-28 09:09:32
Hot backup: Disabled
Statistics: Disabled
Statistics by service class: Disabled
Path verification: Disabled
Forwarding ignore last SID: Disabled
Drop-upon-invalid: Disabled
BFD trigger path-down: Disabled
SBFD: Disabled
BFD Echo: Disabled
Forwarding index: 2150629377
Association ID: 1
Service-class: -
Rate-limit: -
PCE delegation: Disabled
PCE delegate report-only: Disabled
Encaps reduced: Disabled
Encaps include local End.X: Disabled
Candidate paths state: Configured
Candidate paths statistics:
CLI paths: 1 BGP paths: 0 PCEP paths: 0 ODN paths: 0
Candidate paths:
Preference : 10
CPathName:
ProtoOrigin: CLI Discriminator: 30
Instance ID: 0 Node address: 0.0.0.0
Originator: 0, ::
Optimal: Y Flags: V/A
Dynamic: Not configured
PCEP: Not configured
Explicit SID list:
ID: 1 Name: s1
Weight: 1 Forwarding index: 2149580801
State: Up State(-): -
Verification State: -
Active path MTU: 1280 bytes
# 在PE 1设备上查看SRv6 TE Policy的转发信息。
[PE1] display segment-routing ipv6 te forwarding verbose
Total forwarding entries: 1
Policy name/ID: p1/0
Binding SID: 1:2::1:2
Forwarding index: 2150629377
Main path:
Seglist Name/ID: 1
Seglist forwarding index: 2149580801
Weight: 1
Outgoing forwarding index: 2148532225
Interface: GE1/0/2
Nexthop: FE80::988A:B5FF:FED9:316
Path ID: 0
SID list: {100:ABC:1::1, 6:5::1:2}
# 在PE 1上查看转发路径信息,可以看到SRv6 TE Policy对应的转发路径信息。
[PE1] display segment-routing ipv6 forwarding
Total SRv6 forwarding entries: 3
Flags: T - Forwarded through a tunnel
N - Forwarded through the outgoing interface to the nexthop IP address
A - Active forwarding information
B - Backup forwarding information
ID FWD-Type Flags Forwarding info
Attri-Val Attri-Val
--------------------------------------------------------------------------------
2148532225 SRv6PSIDList NA GE1/0/2
FE80::988A:B5FF:FED9:316
{100:ABC:1::1, 6:5::1:2}
2149580801 SRv6PCPath TA 2148532225
2150629377 SRv6Policy TA 2149580801
p1
# 在PE 3上查看End.M SID所保护的远端SRv6 SID信息。
[PE3] display bgp mirror remote-sid
Remote SID: 6:5::1:1
Remote SID type: End.DT4
Mirror locator: 6:5::1:0/96
Vpn instance name: vpn1
# 在P上查看IS-IS IPv6路由中End.M SID信息。
[P] display isis route ipv6 6:5::1:0 96 verbose
Route information for IS-IS(1)
------------------------------
Level-1 IPv6 forwarding table
-----------------------------
IPv6 dest : 6:5::1:0/96
Flag : R/-/- Cost : 10
Admin tag : - Src count : 3
Nexthop : FE80::988A:BDFF:FEB6:417
NxthopFlag: -
Interface : GE1/0/2
Mirror FRR:
Interface : GE1/0/3
BkNextHop : FE80::988A:C6FF:FE0D:517
LsIndex : 0x80000001
Backup label stack(top->bottom): {9:7::1:1}
Nib ID : 0x24000006
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
# 正常情况下,流量经过路径CE 1-PE 1-P-PE 2-CE 2发布到私网。当PE 2节点故障时,P设备上感知PE 2下一跳不可达,切换为FRR路径,使SRv6 TE Policy正常转发路由表项。将设备P与PE 2的接口断开,可以发现P设备上下一跳接口变为备用接口,PE 1上的SRv6 TE Policy仍然处于激活状态。
[P] interface gigabitethernet 1/0/2
[P-GigabitEthernet1/0/2] shut
[P-GigabitEthernet1/0/2] quit
[P] display isis route ipv6 6:5::1:0 96 verbose
Route information for IS-IS(1)
------------------------------
Level-1 IPv6 forwarding table
-----------------------------
IPv6 dest : 6:5::1:0/96
Flag : R/-/- Cost : 20
Admin tag : - Src count : 3
Nexthop : FE80::988A:BDFF:FEB6:417
NxthopFlag: -
Interface : GE1/0/2
Mirror FRR:
Interface : GE1/0/3
BkNextHop : FE80::988A:C6FF:FE0D:517
LsIndex : 0x80000001
Backup label stack(top->bottom): {9:7::1:1}
Nib ID : 0x24000006
Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set
[PE1] display segment-routing ipv6 te policy
Name/ID: p1/0
Color: 10
End-point: 3::3
Name from BGP:
BSID:
Mode: Explicit Type: Type_2 Request state: Succeeded
Current BSID: 1:2::1:2 Explicit BSID: 1:2::1:2 Dynamic BSID: -
Reference counts: 4
Flags: A/BS/NC
Status: Up
AdminStatus: Up
Up time: 2020-10-28 09:10:33
Down time: 2020-10-28 09:09:32
Hot backup: Disabled
Statistics: Disabled
Statistics by service class: Disabled
Path verification: Disabled
Forwarding ignore last SID: Disabled
Drop-upon-invalid: Disabled
BFD trigger path-down: Disabled
SBFD: Disabled
BFD Echo: Disabled
Forwarding index: 2150629377
Association ID: 1
Service-class: -
Rate-limit: -
PCE delegation: Disabled
PCE delegate report-only: Disabled
Encaps reduced: Disabled
Encaps include local End.X: Disabled
Candidate paths state: Configured
Candidate paths statistics:
CLI paths: 1 BGP paths: 0 PCEP paths: 0 ODN paths: 0
Candidate paths:
Preference : 10
CPathName:
ProtoOrigin: CLI Discriminator: 30
Instance ID: 0 Node address: 0.0.0.0
Originator: 0, ::
Optimal: Y Flags: V/A
Dynamic: Not configured
PCEP: Not configured
Explicit SID list:
ID: 1 Name: s1
Weight: 1 Forwarding index: 2149580801
State: Up State(-): -
Verification State: -
Active path MTU: 1280 bytes
如图1-20所示,在Device B和Device E之间通过ODN功能自动建立SRv6 TE Policy,承载Device A到Device F的业务流量。
图1-20 由ODN生成SRv6 TE Policy配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Device A |
GE1/0/1 |
1000::1/64 |
Device F |
GE1/0/1 |
6000::2/64 |
Device B |
Loop0 |
1::1/128 |
Device E |
Loop0 |
3::3/128 |
|
GE1/0/1 |
1000::2/64 |
|
GE1/0/1 |
6000::1/64 |
|
GE1/0/2 |
2000::1/64 |
|
GE1/0/2 |
4000::/64 |
|
GE1/0/3 |
3000::1/64 |
|
GE1/0/3 |
5000::1/64 |
Device C |
GE1/0/1 |
4000::2/64 |
Device D |
GE1/0/1 |
5000::2/64 |
|
GE1/0/2 |
2002::2/64 |
|
GE1/0/2 |
3000::2/64 |
按图1-20配置各设备的接口IP地址,配置过程略。
(1) 配置Device A
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceA> system-view
[DeviceA] isis 1
[DeviceA-isis-1] cost-style wide
[DeviceA-isis-1] network-entity 00.0000.0000.0001.00
[DeviceA-isis-1] address-family ipv6 unicast
[DeviceA-isis-1-ipv6] quit
[DeviceA-isis-1] quit
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceA-GigabitEthernet1/0/1] quit
(2) 配置Device B
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceB> system-view
[DeviceB] isis 1
[DeviceB-isis-1] cost-style wide
[DeviceB-isis-1] network-entity 00.0000.0000.0002.00
[DeviceB-isis-1] address-family ipv6 unicast
[DeviceB-isis-1-ipv6] quit
[DeviceB-isis-1] quit
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceB-GigabitEthernet1/0/2] quit
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] isis ipv6 enable 1
[DeviceB-GigabitEthernet1/0/3] quit
[DeviceB] interface loopback 0
[DeviceB-LoopBack0] isis ipv6 enable 1
[DeviceB-LoopBack0] quit
# 与Device E建立BGP对等体。
[DeviceB] bgp 100
[DeviceB-bgp-default] router-id 1.1.1.1
[DeviceB-bgp-default] peer 3::3 as-number 100
[DeviceB-bgp-default] peer 3::3 connect-interface loopback 0
[DeviceB-bgp-default] address-family ipv6
[DeviceB-bgp-default-ipv6] peer 3::3 enable
[DeviceB-bgp-default-ipv6] quit
[DeviceB-bgp-default] address-family ipv6 sr-policy
[DeviceB-bgp-default-srpolicy-ipv6] peer 3::3 enable
[DeviceB-bgp-default-srpolicy-ipv6] quit
[DeviceB-bgp-default] quit
# 配置Locator段。
[DeviceB] segment-routing ipv6
[DeviceB-segment-routing-ipv6] encapsulation source-address 1::1
[DeviceB-segment-routing-ipv6] locator b ipv6-prefix 20:1:: 96 static 24
[DeviceB-segment-routing-ipv6-locator-b] opcode 1 end no-flavor
[DeviceB-segment-routing-ipv6-locator-b] quit
[DeviceB-segment-routing-ipv6] quit
# 配置使用ODN功能自动创建SRv6 TE Policy。
[DeviceB] segment-routing ipv6
[DeviceB-segment-routing-ipv6] traffic-engineering
[DeviceB-srv6-te] srv6-policy locator b
[DeviceB-srv6-te] on-demand color 1
# 开启使用PCE计算路径功能。
[DeviceB-srv6-te-odn-1] dynamic
[DeviceB-srv6-te-odn-1-dynamic] pcep
[DeviceB-srv6-te-odn-1] quit
[DeviceB-srv6-te] quit
[DeviceB-segment-routing-ipv6] quit
[DeviceB] isis 1
[DeviceB-isis-1] address-family ipv6 unicast
[DeviceB-isis-1-ipv6] segment-routing ipv6 locator b
[DeviceB-isis-1-ipv6] quit
[DeviceB-isis-1] quit
(3) 配置Device C
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceC> system-view
[DeviceC] isis 1
[DeviceC-isis-1] cost-style wide
[DeviceC-isis-1] network-entity 00.0000.0000.0003.00
[DeviceC-isis-1] address-family ipv6 unicast
[DeviceC-isis-1-ipv6] quit
[DeviceC-isis-1] quit
[DeviceC] interface gigabitethernet 1/0/1
[DeviceC-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceC-GigabitEthernet1/0/1] quit
[DeviceC] interface gigabitethernet 1/0/2
[DeviceC-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceC-GigabitEthernet1/0/2] quit
[DeviceC] interface loopback 0
[DeviceC-LoopBack1] isis ipv6 enable 1
[DeviceC-LoopBack1] quit
(4) 配置Device D
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceD> system-view
[DeviceD] isis 1
[DeviceD-isis-1] cost-style wide
[DeviceD-isis-1] network-entity 00.0000.0000.0004.00
[DeviceD-isis-1] address-family ipv6 unicast
[DeviceD-isis-1-ipv6] quit
[DeviceD-isis-1] quit
[DeviceD] interface gigabitethernet 1/0/1
[DeviceD-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceD-GigabitEthernet1/0/1] quit
[DeviceD] interface gigabitethernet 1/0/2
[DeviceD-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceD-GigabitEthernet1/0/2] quit
[DeviceD] interface loopback 0
[DeviceD-LoopBack0] isis ipv6 enable 1
[DeviceD-LoopBack0] quit
(5) 配置Device E
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceE> system-view
[DeviceE] isis 1
[DeviceE-isis-1] cost-style wide
[DeviceE-isis-1] network-entity 00.0000.0000.0005.00
[DeviceE-isis-1] address-family ipv6 unicast
[DeviceE-isis-1-ipv6] quit
[DeviceE-isis-1] quit
[DeviceE] interface gigabitethernet 1/0/1
[DeviceE-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceE-GigabitEthernet1/0/1] quit
[DeviceE] interface gigabitethernet 1/0/2
[DeviceE-GigabitEthernet1/0/2] isis ipv6 enable 1
[DeviceE-GigabitEthernet1/0/2] quit
[DeviceE] interface gigabitethernet 1/0/3
[DeviceE-GigabitEthernet1/0/3] isis ipv6 enable 1
[DeviceE-GigabitEthernet1/0/3] quit
[DeviceE] interface loopback 0
[DeviceE-LoopBack0] isis ipv6 enable 1
[DeviceE-LoopBack0] quit
[DeviceE] interface loopback 1
[DeviceE-LoopBack1] ipv6 address 2::2 128
[DeviceE-LoopBack1] quit
# 与Device B建立BGP对等体。
[DeviceE] bgp 100
[DeviceE-bgp-default] router-id 3.3.3.3
[DeviceE-bgp-default] peer 1::1 as-number 100
[DeviceE-bgp-default] peer 1::1 connect-interface loopback 0
[DeviceE-bgp-default] address-family ipv6
[DeviceE-bgp-default-ipv6] peer 1::1 enable
[DeviceE-bgp-default-ipv6] network 2::2 128
[DeviceE-bgp-default-ipv6] quit
[DeviceE-bgp-default] address-family ipv6 sr-policy
[DeviceE-bgp-default-srpolicy-ipv6] peer 1::1 enable
[DeviceE-bgp-default-srpolicy-ipv6] quit
[DeviceE-bgp-default] quit
# 配置路由策略,为出方向路由添加Color属性。
[DeviceE] route-policy 1 permit node 10
[DeviceE-route-policy-1-10] apply extcommunity color 01:1
[DeviceE-route-policy-1-10] quit
[DeviceE] bgp 100
[DeviceE-bgp-default] address-family ipv6 unicast
[DeviceE-bgp-default-ipv6] peer 1::1 route-policy 1 export
[DeviceE-bgp-default-ipv6] peer 1::1 advertise-community
[DeviceE-bgp-default-ipv6] peer 1::1 advertise-ext-community
[DeviceE-bgp-default-ipv6] quit
[DeviceE-bgp-default] quit
(6) 配置Device F
# 配置IS-IS协议实现网络层互通,开销值类型为wide。
<DeviceF> system-view
[DeviceF] isis 1
[DeviceF-isis-1] network-entity 00.0000.0000.0006.00
[DeviceF-isis-1] cost-style wide
[DeviceF-isis-1] address-family ipv6 unicast
[DeviceF-isis-1-ipv6] quit
[DeviceF-isis-1] quit
[DeviceF] interface gigabitethernet 1/0/1
[DeviceF-GigabitEthernet1/0/1] isis ipv6 enable 1
[DeviceF-GigabitEthernet1/0/1] quit
# 在Device B上通过display segment-routing ipv6 te policy命令可以看到由ODN自动生成的SRv6 TE Policy的信息。
[DeviceB] display segment-routing ipv6 te policy
Name/ID: sr-1-3::3/0
Color: 1
End-point: 3::3
Name from BGP: sr-1-3::3
Name from PCE:
BSID:
Mode: Dynamic Type: Type_2 Request state: Succeeded
Current BSID: 20:1::100:0 Explicit BSID: - Dynamic BSID: 20:1::100:0
Reference counts: 4
Flags: A/BS/NC
Status: Up
AdminStatus: Up
Up time: 2020-12-01 15:58:12
Down time: 2020-12-01 15:58:12
Hot backup: Disabled
Statistics: Disabled
Statistics by service class: Disabled
Path verification: Disabled
Forwarding ignore last SID: Disabled
Drop-upon-invalid: Disabled
BFD trigger path-down: Disabled
SBFD: Disabled
BFD Echo: Disabled
Forwarding index: 2150629377
Association ID: 1
Service-class: -
Rate-limit: -
PCE delegation: Disabled
PCE delegate report-only: Disabled
Encaps reduced: Disabled
Encaps include local End.X: Disabled
Candidate paths state: Not configured
Candidate paths statistics:
CLI paths: 0 BGP paths: 0 PCEP paths: 0 ODN paths: 2
Candidate paths:
Preference : 100
CPathName: sr-1-3::3
ProtoOrigin: BGP Discriminator: 100
Instance ID: 0 Node address: 0.0.0.0
Originator: 0, ::
Optimal: N Flags: None
Dynamic: Configured
PCEP: Configured
Candidate paths:
Preference : 200
CPathName: sr-1-3::3
ProtoOrigin: BGP Discriminator: 200
Instance ID: 0 Node address: 0.0.0.0
Originator: 0, ::
Optimal: N Flags: BN
Dynamic: Not configured
PCEP: Not configured
# 在Device B上查看SRv6转发路径信息,可以看到SRv6 TE Policy对应的转发路径信息。
[DeviceB] display segment-routing ipv6 forwarding
Total SRv6 forwarding entries: 1
Flags: T - Forwarded through a tunnel
N - Forwarded through the outgoing interface to the nexthop IP address
A - Active forwarding information
B - Backup forwarding information
ID FWD-Type Flags Forwarding info
--------------------------------------------------------------------------------
2150630377 SRv6Policy TA 2149581800
# 在Device B上查看SRv6 TE Policy的转发信息。
[DeviceB] display segment-routing ipv6 te forwarding verbose
Total forwarding entries: 1
Policy name/ID: sr-1-3::3/1001
Binding SID: 20:1::100:0
Forwarding index: 2150630377
Main path:
Seglist Name/ID: 4369
Seglist forwarding index: 2149581800
Weight: 1
Outgoing forwarding index: 2148533223
Interface: GE1/0/3
Nexthop: FE80::7AAA:12FF:FED8:309
Path ID: 0
SID list: {6:5::1:5}
# 在Device B上查看SRv6 TE Policy的BGP路由信息。
[DeviceB] display bgp routing-table ipv6 3::3 128
BGP local router ID: 1.1.1.1
Local AS number: 100
Paths: 1 available, 1 best
BGP routing table information of 3::3/128:
From : 3::3 (2.2.2.2)
Rely nexthop : FE80::7AAA:12FF:FED8:309
Original nexthop: 3::3
Out interface : GigabitEthernet1/0/3
Route age : 00h17m00s
OutLabel : NULL
Ext-Community : <CO-Flag:Color(01:1)>
RxPathID : 0x0
TxPathID : 0xffffffff
AS-path : (null)
Origin : incomplete
Attribute value : MED 0, localpref 100, pref-val 0
State : valid, internal, not preferred for igp-cost, not ECMP for igp-cost
IP precedence : N/A
QoS local ID : N/A
Traffic index : N/A
Tunnel policy : gw
Rely tunnel IDs : 2150630377
如图1-21所示,AS 100为IPv6网络,私网为IPv4网络。PE 1、P 1、P 2、P 3和PE 2属于同一自治系统,它们之间通过IS-IS协议达到IPv6网络互通。在PE 1和PE 2之间创建SRv6 TE Policy组,并且创建3条不同转发路径的SRv6 TE Policy来承载IPv4 L3VPN业务。在PE 1和PE 2上通过路由策略来设置VPNv4路由的Color属性,将VPN私网流量引流到PE 1和PE 2之间的SRv6 TE Policy组中转发。通过部署SRv6 TE Policy的智能策略路由功能实现私网流量在SRv6 TE Policy组中动态优选SRv6 TE Policy。
SRv6 TE Policy的规划如下:
· SRv6 TE Policy A:存在一条候选路径,SID列表代表的转发路径为PE 1->P 1->PE 2。
· SRv6 TE Policy B:存在一条候选路径,SID列表代表的转发路径为PE 1->P 2->PE 2。
· SRv6 TE Policy C:存在一条候选路径,SID列表代表的转发路径为PE 1->P 3->PE 2。
· IPR模板中定义:
· SLA标准:丢包<5‰、时延<100ms、抖动<10ms、CMI<110。
· SRv6 TE Policy的选路优先级:SRv6 TE Policy A 1、SRv6 TE Policy B 2、SRv6 TE Policy C 3。
图1-21 SRv6 TE Policy的智能策略路由功能配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10.1.1.1/24 |
CE 2 |
GE1/0/2 |
20.1.1.1/24 |
|
Loop0 |
11.11.11.11/32 |
|
Loop0 |
22.22.22.22/32 |
PE 1 |
Loop1 |
1::1/128 |
P 1 |
Loop1 |
2::2/128 |
|
GE1/0/1 |
10.1.1.2/24 |
|
GE1/0/1 |
5001::2/96 |
|
GE1/0/2 |
2001::1/96 |
|
GE1/0/2 |
2001::2/96 |
|
GE1/0/3 |
3001::1/96 |
P 2 |
Loop1 |
4::4/128 |
|
GE1/0/4 |
4001::1/96 |
|
GE1/0/1 |
6001::2/96 |
PE 2 |
Loop1 |
3::3/128 |
|
GE1/0/2 |
3001::2/96 |
|
GE1/0/1 |
5001::1/96 |
P 3 |
Loop1 |
5::5/128 |
|
GE1/0/2 |
20.1.1.2/24 |
|
GE1/0/1 |
7001::2/96 |
|
GE1/0/3 |
6001::1/96 |
|
GE1/0/2 |
4001::2/96 |
|
GE1/0/4 |
7001::1/96 |
|
|
|
(1) 请按照图1-21配置各接口的IPv6地址和前缀长度,具体配置过程略。
(2) 配置CE 1
# 配置通过EBGP发布私网路由PE 1。
<CE1> system-view
[CE1] bgp 200
[CE1-bgp-default] router-id 11.11.11.11
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
(3) 配置CE 2
# 配置通过EBGP发布私网路由PE 2。
[CE2] bgp 300
[CE2-bgp-default] router-id 22.22.22.22
[CE2-bgp-default] peer 20.1.1.2 as-number 100
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 20.1.1.2 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
(4) 配置PE 1
# 配置IPv6 IS-IS,实现骨干网PE之间的互通。
<PE1> system-view
[PE1] isis 1
[PE1-isis-1] cost-style wide
[PE1-isis-1] network-entity 00.0000.0000.0001.00
[PE1-isis-1] address-family ipv6 unicast
[PE1-isis-1-ipv6] quit
[PE1-isis-1] quit
[PE1] interface loopback 1
[PE1-LoopBack1] isis ipv6 enable 1
[PE1-LoopBack1] quit
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] isis ipv6 enable 1
[PE1-GigabitEthernet1/0/2] quit
[PE1] interface gigabitethernet 1/0/3
[PE1-GigabitEthernet1/0/3] isis ipv6 enable 1
[PE1-GigabitEthernet1/0/3] quit
[PE1] interface gigabitethernet 1/0/4
[PE1-GigabitEthernet1/0/4] isis ipv6 enable 1
[PE1-GigabitEthernet1/0/4] quit
# 配置VPN实例,将CE 1接入PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 100:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/1] ip address 10.1.1.2 24
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1与CE 1之间建立EBGP对等体,引入VPN路由。
[PE1] bgp 100
[PE1-bgp-default] router-id 1.1.1.1
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 200
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] import-route direct
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
# 在PE 1和PE 2之间建立MP-IBGP对等体。
[PE1-bgp-default] peer 3::3 as-number 100
[PE1-bgp-default] peer 3::3 connect-interface loopback 1
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 在PE 1和PE 2之间VPN路由迭代到SRv6 TE Policy组。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] encapsulation source-address 1::1
[PE1-segment-routing-ipv6] locator abc ipv6-prefix 100:1:: 64 static 16
[PE1-segment-routing-ipv6-locator-abc] opcode 1 end no-flavor
[PE1-segment-routing-ipv6-locator-abc] quit
[PE1-segment-routing-ipv6] quit
[PE1] isis 1
[PE1-isis-1] address-family ipv6 unicast
[PE1-isis-1-ipv6] segment-routing ipv6 locator abc
[PE1-isis-1-ipv6] quit
[PE1-isis-1] quit
[PE1] bgp 100
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 prefix-sid
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 locator abc
[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 traffic-engineering
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# 在PE 1上配置SRv6 TE Policy A。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] srv6-policy locator abc
[PE1-srv6-te] segment-list s1
[PE1-srv6-te-sl-s1] index 10 ipv6 200:1::1
[PE1-srv6-te-sl-s1] index 20 ipv6 300:1::1
[PE1-srv6-te-sl-s1] quit
[PE1-srv6-te] policy A
[PE1-srv6-te-policy-A] color 10 end-point ipv6 3::3
[PE1-srv6-te-policy-A] candidate-paths
[PE1-srv6-te-policy-A-path] preference 10
[PE1-srv6-te-policy-A-path-pref-10] explicit segment-list s1
[PE1-srv6-te-policy-A-path-pref-10] quit
[PE1-srv6-te-policy-A-path] quit
[PE1-srv6-te-policy-A] quit
[PE1-srv6-te] quit
[PE1-segment-routing-ipv6] quit
# 在PE 1上配置SRv6 TE Policy B。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] srv6-policy locator abc
[PE1-srv6-te] segment-list s2
[PE1-srv6-te-sl-s1] index 10 ipv6 400:1::1
[PE1-srv6-te-sl-s1] index 20 ipv6 300:1::1
[PE1-srv6-te-sl-s1] quit
[PE1-srv6-te] policy B
[PE1-srv6-te-policy-B] color 20 end-point ipv6 3::3
[PE1-srv6-te-policy-B] candidate-paths
[PE1-srv6-te-policy-B-path] preference 10
[PE1-srv6-te-policy-B-path-pref-10] explicit segment-list s2
[PE1-srv6-te-policy-B-path-pref-10] quit
[PE1-srv6-te-policy-B-path] quit
[PE1-srv6-te-policy-B] quit
[PE1-srv6-te] quit
[PE1-segment-routing-ipv6] quit
# 在PE 1上配置SRv6 TE Policy C。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] srv6-policy locator abc
[PE1-srv6-te] segment-list s3
[PE1-srv6-te-sl-s1] index 10 ipv6 500:1::1
[PE1-srv6-te-sl-s1] index 20 ipv6 300:1::1
[PE1-srv6-te-sl-s1] quit
[PE1-srv6-te] policy C
[PE1-srv6-te-policy-C] color 30 end-point ipv6 3::3
[PE1-srv6-te-policy-C] candidate-paths
[PE1-srv6-te-policy-C-path] preference 10
[PE1-srv6-te-policy-C-path-pref-10] explicit segment-list s3
[PE1-srv6-te-policy-C-path-pref-10] quit
[PE1-srv6-te-policy-C-path] quit
[PE1-srv6-te-policy-C] quit
[PE1-srv6-te] quit
[PE1-segment-routing-ipv6] quit
# 在PE 1上开启iFIT功能、配置iFIT设备的标识并设置iFIT的工作模式为分析器,同时全局开启SRv6 TE Policy的iFIT的丢包、时延和抖动测量功能。
[PE1] ifit enable
[PE1-ifit] device-id 100
[PE1-ifit] work-mode analyzer
[PE1-ifit-analyzer] service-type srv6-segment-list
[PE1-ifit-analyzer] quit
[PE1-ifit] quit
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] srv6-policy ifit loss-measure enable
[PE1-srv6-te] srv6-policy ifit delay-measure enable
[PE1-srv6-te] srv6-policy ifit interval 10
# 在PE 1上开启全局SRv6 TE Policy的SBFD功能。
[PE1] sbfd source-ipv6 1::1
[PE1] bfd multi-hop detect-multiplier 5
[PE1] bfd multi-hop min-transmit-interval 50
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] srv6-policy sbfd remote 101
[PE1-srv6-te] quit
[PE1-segment-routing-ipv6] quit
# 在PE 1上配置名称为ipr1的IPR模板,并定义IPR模板的参数。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] intelligent-policy-route
[PE1-srv6-te-ipr] refresh-period 30
[PE1-srv6-te-ipr] ipr-policy ipr1
[PE1-srv6-ipr-policy-ipr1] delay threshold 100
[PE1-srv6-ipr-policy-ipr1] jitter threshold 10
[PE1-srv6-ipr-policy-ipr1] loss threshold 5
[PE1-srv6-ipr-policy-ipr1] cmi threshold 110
[PE1-srv6-ipr-policy-ipr1] srv6-policy color 10 priority 1
[PE1-srv6-ipr-policy-ipr1] srv6-policy color 20 priority 2
[PE1-srv6-ipr-policy-ipr1] srv6-policy color 30 priority 3
[PE1-srv6-ipr-policy-ipr1] quit
[PE1-srv6-te-ipr] quit
[PE1-srv6-te] quit
[PE1-segment-routing-ipv6] quit
# 在PE 1的接口GigabitEthernet1/0/1入方向上对从CE 1发送到CE 2源地址为11.11.11.11/32,目的地址为22.22.22.22/32的私网业务流量标记TE Class ID为10。
[PE1] acl advanced 3000
[PE1-acl-ipv4-adv-3000] rule 10 permit ip source 11.11.11.11 0 destination 22.22.22.22 0
[PE1-acl-ipv4-adv-3000] quit
[PE1] traffic classifier aaa
[PE1-classifier-aaa] if-match acl 3000
[PE1-classifier-aaa] quit
[PE1] traffic behavior aaa
[PE1-behavior-aaa] remark te-class 10
[PE1-behavior-aaa] quit
[PE1] qos policy aaa
[PE1-qospolicy-aaa] classifier aaa behavior aaa
[PE1-qospolicy-aaa] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] qos apply policy aaa inbound
[PE1-GigabitEthernet1/0/1] quit
# 在PE 1上配置SRv6 TE Policy组10,指定SRv6 TE Policy组10的转发类型为基于TE Class ID转发,并建立TE Class ID 10和IPR模板ipr1的映射关系,同时设置缺省SRv6 BE作为基于TE Class ID转发的默认转发策略,用于流量逃生。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] traffic-engineering
[PE1-srv6-te] policy-group 10
[PE1-srv6-te-policy-group-10] end-point ipv6 3::3
[PE1-srv6-te-policy-group-10] group-color 100
[PE1-srv6-te-policy-group-10] forward-type te-class
[PE1-srv6-te-policy-group-10] index 1 te-class 10 match ipr-policy ipr1
[PE1-srv6-te-policy-group-10] default match best-effort
# 在PE 1上配置路由策略及隧道策略,将VPN业务流量通过路由策略引流到指定的SRv6 TE Policy组,并优选SRv6 TE Policy组。
[PE1] route-policy a permit node 10
[PE1-route-policy-a-10] apply extcommunity color 00:100
[PE1-route-policy-a-10] quit
[PE1] bgp 100
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3::3 route-policy a import
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
[PE1] tunnel-policy a
[PE1-tunnel-policy-a] select-seq srv6-policy-group load-balance-number 1
[PE1-tunnel-policy-a] quit
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] tnl-policy a
[PE1-vpn-instance-vpn1] quit
(5) 配置P 1
# 配置IPv6 IS-IS,实现骨干网的互通。
<P1> system-view
[P1] isis 1
[P1-isis-1] cost-style wide
[P1-isis-1] network-entity 00.0000.0000.0002.00
[P1-isis-1] address-family ipv6 unicast
[P1-isis-1-ipv6] quit
[P1-isis-1] quit
[P1] interface loopback 1
[P1-LoopBack1] isis ipv6 enable 1
[P1-LoopBack1] quit
[P1] interface gigabitethernet 1/0/2
[P1-GigabitEthernet1/0/2] isis ipv6 enable 1
[P1-GigabitEthernet1/0/2] quit
[P1] interface gigabitethernet 1/0/1
[P1-GigabitEthernet1/0/1] isis ipv6 enable 1
[P1-GigabitEthernet1/0/1] quit
# 在P 1上配置Locator,并由IS-IS发布该Locator。
[P1] segment-routing ipv6
[P1-segment-routing-ipv6] locator abc ipv6-prefix 200:1:: 64 static 16
[P1-segment-routing-ipv6-locator-abc] opcode 1 end no-flavor
[P1-segment-routing-ipv6-locator-abc] quit
[P1-segment-routing-ipv6] quit
[P1] isis 1
[P1-isis-1] address-family ipv6 unicast
[P1-isis-1-ipv6] segment-routing ipv6 locator abc
[P1-isis-1-ipv6] quit
[P1-isis-1] quit
(6) 配置P 2
# 配置IPv6 IS-IS,实现骨干网的互通。
<P2> system-view
[P2] isis 1
[P2-isis-1] cost-style wide
[P2-isis-1] network-entity 00.0000.0000.0003.00
[P2-isis-1] address-family ipv6 unicast
[P2-isis-1-ipv6] quit
[P2-isis-1] quit
[P2] interface loopback 1
[P2-LoopBack1] isis ipv6 enable 1
[P2-LoopBack1] quit
[P2] interface gigabitethernet 1/0/2
[P2-GigabitEthernet1/0/2] isis ipv6 enable 1
[P2-GigabitEthernet1/0/2] quit
[P2] interface gigabitethernet 1/0/1
[P2-GigabitEthernet1/0/1] isis ipv6 enable 1
[P2-GigabitEthernet1/0/1] quit
# 在P 2上配置Locator,并由IS-IS发布该Locator。
[P2] segment-routing ipv6
[P2-segment-routing-ipv6] locator abc ipv6-prefix 400:1:: 64 static 16
[P2-segment-routing-ipv6-locator-abc] opcode 1 end no-flavor
[P2-segment-routing-ipv6-locator-abc] quit
[P2-segment-routing-ipv6] quit
[P2] isis 1
[P2-isis-1] address-family ipv6 unicast
[P2-isis-1-ipv6] segment-routing ipv6 locator abc
[P2-isis-1-ipv6] quit
[P2-isis-1] quit
(7) 配置P 3
# 配置IPv6 IS-IS,实现骨干网的互通。
<P3> system-view
[P3] isis 1
[P3-isis-1] cost-style wide
[P3-isis-1] network-entity 00.0000.0000.0004.00
[P3-isis-1] address-family ipv6 unicast
[P3-isis-1-ipv6] quit
[P3-isis-1] quit
[P3] interface loopback 1
[P3-LoopBack1] isis ipv6 enable 1
[P3-LoopBack1] quit
[P3] interface gigabitethernet 1/0/2
[P3-GigabitEthernet1/0/2] isis ipv6 enable 1
[P3-GigabitEthernet1/0/2] quit
[P3] interface gigabitethernet 1/0/1
[P3-GigabitEthernet1/0/1] isis ipv6 enable 1
[P3-GigabitEthernet1/0/1] quit
# 在P 3上配置Locator,并由IS-IS发布该Locator。
[P3] segment-routing ipv6
[P3-segment-routing-ipv6] locator abc ipv6-prefix 500:1:: 64 static 16
[P3-segment-routing-ipv6-locator-abc] opcode 1 end no-flavor
[P3-segment-routing-ipv6-locator-abc] quit
[P3-segment-routing-ipv6] quit
[P3] isis 1
[P3-isis-1] address-family ipv6 unicast
[P3-isis-1-ipv6] segment-routing ipv6 locator abc
[P3-isis-1-ipv6] quit
[P3-isis-1] quit
(8) 配置PE 2
# 配置IPv6 IS-IS,实现骨干网PE之间的互通。
<PE2> system-view
[PE2] isis 1
[PE2-isis-1] cost-style wide
[PE2-isis-1] network-entity 00.0000.0000.0005.00
[PE2-isis-1] address-family ipv6 unicast
[PE2-isis-1-ipv6] quit
[PE2-isis-1] quit
[PE2] interface loopback 1
[PE2-LoopBack1] isis ipv6 enable 1
[PE2-LoopBack1] quit
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] isis ipv6 enable 1
[PE2-GigabitEthernet1/0/1] quit
[PE2] interface gigabitethernet 1/0/3
[PE2-GigabitEthernet1/0/3] isis ipv6 enable 1
[PE2-GigabitEthernet1/0/3] quit
[PE2] interface gigabitethernet 1/0/4
[PE2-GigabitEthernet1/0/4] isis ipv6 enable 1
[PE2-GigabitEthernet1/0/4] quit
# 配置VPN实例,将CE 2接入PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 100:1
[PE2-vpn-instance-vpn1] vpn-target 100:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/2] ip address 20.1.1.2 24
[PE2-GigabitEthernet1/0/2] quit
# 在PE 2与CE 2之间建立EBGP对等体,引入VPN路由。
[PE2] bgp 100
[PE2-bgp-default] router-id 3.3.3.3
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 20.1.1.1 as-number 300
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 20.1.1.1 enable
[PE2-bgp-default-ipv4-vpn1] import-route direct
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
# 在PE 1和PE 2之间建立MP-IBGP对等体。
[PE2-bgp-default] peer 1::1 as-number 100
[PE2-bgp-default] peer 1::1 connect-interface loopback 1
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 1::1 enable
[PE2-bgp-default-vpnv4] peer 1::1 prefix-sid
[PE2-bgp-default-vpnv4] quit
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 locator abc
[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 best-effort
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
[PE2-bgp-default] quit
# PE 2上配置Locator,并由IS-IS发布该Locator。
[PE2] segment-routing ipv6
[PE2-segment-routing-ipv6] encapsulation source-address 3::3
[PE2-segment-routing-ipv6] locator abc ipv6-prefix 300:1:: 64 static 16
[PE2-segment-routing-ipv6-locator-abc] opcode 1 end no-flavor
[PE2-segment-routing-ipv6-locator-abc] quit
[PE2-segment-routing-ipv6] quit
[PE2] isis 1
[PE2-isis-1] address-family ipv6 unicast
[PE2-isis-1-ipv6] segment-routing ipv6 locator abc
[PE2-isis-1-ipv6] quit
[PE2-isis-1] quit
# 在PE 2上开启iFIT功能、设置iFIT的工作模式为收集器。
[PE2] ifit enable
[PE2-ifit] work-mode collector
[PE2-ifit-collector] service-type srv6-segment-list
[PE2-ifit-collector] quit
[PE2-ifit] quit
# 配置SBFD会话的Reflector端的本地标识符。
[PE2] sbfd local-discriminator 101
# 在PE 1上查看SRv6 TE Policy组的信息,可以看到当前SRv6 TE Policy组状态为UP,SRv6 TE Policy组中TE Class ID为10的流量通过名称为ipr1的IPR模板定义的转发策略转发,且IPR模板状态为active可用,IPR智能策略路由计算出的最优SRv6 TE Policy的Color为10。
<Sysname> display segment-routing ipv6 te policy-group verbose
Total number of policy groups: 1
GroupID: 10 GroupState: Up
GroupNID: 2151677963 Best-effort NID: 2156920832
Referenced: 1 Flags: A
Group type: Static TE Class
Group color: 100
StateChangeTime: 2022-11-11 01:50:17
Endpoint: 3::3
UP/Total Mappings: 1/1
Default Match Type: SRv6 BE
Default SRv6 TE Policy Color: -
Default IPR Policy : -
Index : 1 TE Class : 10
Match Type : IPR Policy(active)
SRv6 TE Policy Color : 10
IPR Policy : ipr1
Color : 10 Priority : 1
Color : 20 Priority : 2
Color : 30 Priority : 3
# 在PE 1上查看SRv6 TE Policy的转发信息。
[PE1] display segment-routing ipv6 te forwarding verbose
Total forwarding entries: 1
Policy name/ID: A/0
Binding SID: 100:1::10:1
Policy forwarding index: 2150629377
Main path:
Seglist Name/ID: 1
Seglist forwarding index: 2149580801
Weight: 1
Outgoing forwarding index: 2148532225
Interface: GE1/0/2
Nexthop: FE80::54CB:70FF:FE86:316
Path ID: 0
SID list: {200:1::1, 300:1::1}
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!