04-SRv6 TE Policy配置
本章节下载: 04-SRv6 TE Policy配置 (1.23 MB)
目 录
1.3.1 手工创建SRv6 TE Policy并配置相关属性
1.5.2 配置SRv6 TE Policy的候选路径使用手工创建的SID列表
1.5.3 配置SRv6 TE Policy的候选路径使用PCE自动计算SID列表
1.6 配置设备允许将SRv6 TE Policy的候选路径信息上报BGP-LS
1.8 配置BGP发布BGP IPv6 SR Policy路由
1.8.2 开启BGP发布BGP IPv6 SR Policy路由能力
1.8.3 配置BGP引入BGP IPv6 SR Policy路由
1.8.4 配置将BGP IPv6 SR Policy路由发布给EBGP对等体
1.8.6 控制BGP IPv6 SR Policy路由的优选和发布
1.12 开启SRv6 TE Policy的echo报文方式的BFD检测功能
1.16 配置SRv6 TE Policy路径连通性检查功能
1.18.4 配置远端SRv6 SID与VPN实例/公网实例/交叉连接/VSI映射表的延迟删除时间
1.20 开启SRv6 TE Policy在Policy失效时丢弃流量的功能
1.21 配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能
1.23 配置SRv6 TE Policy资源数量的告警阈值
1.26 配置SRv6 TE Policy的流量转发统计功能
1.27.1 显示SRv6 TE Policy的运行状态和配置信息
1.27.2 显示SRv6 TE Policy组的运行状态和配置信息
1.27.3 显示BGP IPv6 SR Policy路由的运行状态和配置信息
1.27.4 显示SRv6 TE Policy的BFD和SBFD运行状态
1.27.5 显示SRv6 TE Policy尾节点保护的配置信息
1.27.6 显示和清除SRv6 TE Policy的流量转发统计信息
1.27.7 显示PCE进程SRv6 TE Policy的信息
1.28.2 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目的节点的IP地址。可以是IPv6地址也可以是IPv4地址。
如图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列表需要用户手工指定。
¡ Preference为100的候选路径,该候选路径下的SID列表需要由PCE计算。PCE计算的详细介绍,请参见“1.1.4 采用PCE计算的路径建立SID列表”。
由ODN功能自动创建的SRv6 TE Policy下还可以手工创建候选路径。
在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,通过SRv6 TE Policy转发该报文:
· 基于BSID引流:如果接收到的报文的目的IPv6地址为某个SRv6 TE Policy的BSID,则通过该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组。
· 基于静态路由引流:配置静态路由迭代到SRv6 TE Policy,如果设备收到匹配该静态路由的报文,则通过指定SRv6 TE Policy转发该报文。
· 基于策略路由引流:通过策略路由将流量引流到SRv6 TE Policy,如果设备收到匹配该策略路由定义的匹配规则的报文,则通过指定SRv6 TE Policy转发该报文。有关策略路由的详细介绍,请参见“三层技术-IP路由配置指导”中的“策略路由”。
· 自引流: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转发过程示意图
echo报文方式的BFD对SRv6 TE Policy进行检测时,如果候选路径中存在多个SID列表,则SRv6 TE Policy会建立多个BFD会话分别用来检测每一个SID列表对应的转发路径。
如图1-6所示,在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-6 echo报文方式的BFD会话检测SRv6 TE Policy
SRv6 TE Policy不会通过设备之间互相发送的消息来维持自身状态,所以SRv6 TE Policy路径故障检测需要依靠SBFD(Seamless BFD,无缝BFD)完成。通过SBFD检测SRv6 TE Policy的连通性,为其提供毫秒级的故障检测速度,并实现快速的故障切换。
如图1-7所示,在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-7 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-8所示,如果主路径下所有SID列表对应的转发路径都发生故障,则将流量立即切换到备份候选路径转发,以减少对业务的影响。
图1-8 SR-MPLS TE Policy热备份示意图
SRv6 TE Policy热备份功能和SRv6 TE Policy与SBFD联动配合使用时,SBFD可以同时检测SRv6 TE Policy中优先级最高和次高的两条候选路径里的所有SID列表对应的转发路径。如果优先级最高的候选路径里所有SID列表对应的转发路径都发生故障,则将流量切换到备份路径。当流量切换到备份路径后,会再次重新计算主备路径。原备份路径将作为主路径,并重新选择一个有效的候选路径作为新的备份路径。当主备路径同时故障时,SRv6 TE Policy将重新计算主备路径。
SRv6 TE Policy的SID列表指定了报文沿途必须经过的节点或链路。如图1-9所示,节点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-10例,流量引入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-11所示,以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-11 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-11所示,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-11所示,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-11所示,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-12 SRv6 TE Policy尾节点保护转发示意图
如图1-12所示,正常情况下,流量经过路径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。
SR-MPLS网络向SRv6网络演进过程中,通常都需要先增量部署SRv6节点,再改造现网中设备。在一段时间内,SR-MPLS网络需要和SRv6网络共存,两种数据转发平面需要互通来实现端到端业务流量的转发。
通过BSID实现SR-MPLS和SRv6互通有如下两种组网场景:
· SRv6 over SR-MPLS
· SR-MPLS over SRv6
如图1-13所示,SRv6 TE Policy A的头节点为Device A,尾节点为Device F,去往目的地址100::100的业务流量通过SRv6 TE Policy A转发,流量需要经过一段从Device C到Device E的SR-MPLS网络。Device C同时支持SRv6和SR-MPLS,在Device C上创建SR-MPLS TE Policy B,为SR-MPLS TE Policy B指定一个IPv6地址类型的BSID,即End BM类型的SRv6 SID,并把该BSID加入SRv6 TE Policy A最优候选路径的SID列表,即可实现SRv6 TE Policy和SR-MPLS TE Policy缝接。
图1-13 SRv6 over SR-MPLS的报文转发示意图
报文转发的具体流程如下:
(1) Device A为报文封装SRH和IPv6头,SRH中SID列表为{20::1, 30::1, 60::1},其中20::1为下一跳Device B的End SID,30::1为SR-MPLS TE Policy B的BSID,20::1为尾节点Device F的End SID,SL=2。IPv6目的地址为20::1,Device A根据目的IPv6地址将报文发送给Device B。
(2) Device B收到报文后,将SL减1,并更新IPv6目的地址为30::1,根据IPv6路由表获取到下一跳为Device C,将报文发送给Device C。
(3) Device C收到报文后,发现报文目的地址为本地的SR-MPLS TE Policy B的BSID(即End.BM SID),将SL减1,更新IPv6目的地址为60::1。Device C执行End.BM类型的SRv6 SID的转发动作,将SR-MPLS TE Policy B中选中的候选路径的SID列表(即MPLS标签栈{20001, 20002})直接封装在IPv6头的外层,查找NHLFE表项获取到出接口,弹出最外层MPLS标签20001,并将报文发送给Device D。
(4) Device D收到报文后,查找NHLFE表项获取到出接口,弹出最外层MPLS标签20002,并将报文发送给Device E。
(5) Device E收到报文后,根据IPv6路由表获取到下一跳为Device F,将报文发送给Device F。在尾节点Device F解封装报文。
如图1-14所示,SR-MPLS TE Policy A的头节点为Device A,尾节点为Device F,去往目的地址10.10.10.10的业务流量通过SR-MPLS TE Policy A转发,流量需要经过一段从Device C到Device E的SRv6网络。Device C同时支持SRv6和SR-MPLS,在Device C上创建SRv6 TE Policy B,为SRv6 TE Policy B指定一个MPLS标签作为BSID,并把该BSID加入SR-MPLS TE Policy A最优候选路径的SID列表,即可实现SRv6 TE Policy和SR-MPLS TE Policy缝接。
图1-14 SR-MPLS over SRv6的报文转发示意图
报文转发的具体流程如下:
(1) Device A为报文封装SR-MPLS TE Policy A选中的候选路径的SID列表,即MPLS标签栈{20001, 20002, 20003, 20005},其中20003为SRv6 TE Policy B的BSID,20001、20002、20005分别为A和B、B和C、E和F之间链路的Adjacency SID。Device A根据最外层标签20001查找NHLFE表项对应的出接口,弹出最外层标签并将报文发送给Device B。
(2) Device B收到报文后,根据最外层标签20002查找NHLFE表项对应的出接口,弹出最外层标签并将报文发送给Device C。
(3) Device C收到报文后,发现报文最外层标签为本地的SRv6 TE Policy B的BSID,流量通过SRv6 TE Policy B转发。此时Device C先弹出最外层标签,再为报文封装IPv6头和SRH。SRH中封装的SID列表为{40::1, 50::1},其中40::1为Device D的End SID,50::1为Device E的End.DTM SID,IPv6头中的目的地址为40::1。Device C根据目的IPv6地址查找IPv6 FIB表,将报文发送给Device D。
(4) Device D收到报文后,将SL减1,更新IPv6目的地址为50::1,根据目的IPv6地址查找IPv6 FIB表,并将报文发送给Device E。
(5) Device E收到报文后,发现报文的目的地址为本地的End.DTM SID,Device E按照End.DTM SID的动作解封装SRH头,并解析内层报文的MPLS标签,查询NHLFE转发表转发报文,将报文发送给Device F。
对于缝接在SR-MPLS TE Policy中的SRv6 TE Policy,其SID列表的最后一个SID必须为End.DTM类型的SRv6 SID,否则无法实现流量在SR-MPLS over SRv6场景转发。End.DTM类型的SID的转发动作是解封装SRH头,并且解析内层报文的MPLS标签,查询NHLFE转发表转发报文。
SRv6 TE Policy配置任务如下:
(1) 创建SRv6 TE Policy,并配置基本属性
b. 配置PCEP会话
候选路径使用PCE计算SID列表时,必须配置执行本配置。
d. (可选)配置设备允许将SRv6 TE Policy的候选路径信息上报BGP-LS
e. (可选)关闭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高可靠性
¡ 开启SRv6 TE Policy的echo报文方式的BFD检测功能
(6) (可选)配置SRv6 TE Policy高级功能
¡ 开启SRv6 TE Policy在Policy失效时丢弃流量的功能
¡ 配置通过SRv6 TE Policy转发时忽略SID列表最后一个SID功能
(7) (可选)维护SRv6 TE Policy
BSID是SRv6 TE Policy的入节点标识,通常用于将流量引入到该SRv6 TE Policy中转发。一个SRv6 TE Policy支持多个BSID。
SRv6 TE Policy可以同时支持两类BSID:
· MPLS标签作为BSID:主要用于SR-MPLS over SRv6的场景。在SR-MPLS TE Policy候选路径的SID列表中加入该BSID后,SR-MPLS TE Policy转发路径缝接一个SRv6 TE Policy,使MPLS报文跨越SRv6网络实现端到端转发。每个SRv6 TE Policy最多只能存在一个MPLS标签的BSID。
· IPv6地址作为BSID:每个SRv6 TE Policy可以支持多个这类BSID。
BSID来源存在多种情况:
· 由命令指定BSID:通过binding-sid命令为SRv6 TE Policy手工指定BSID,最多可以同时指定一个MPLS标签和一个IPv6地址作为BSID。
· 从控制器获取BSID:控制器通过PCE或者BGP IPv6 SR Policy路由发布候选路径时,由SRv6 Binding SID Sub-TLV或Binding SID Sub-TLV携带了BSID。此时,可能获取到多个作为BSID的IPv6地址。
· 动态申请BSID:如果binding-sid命令未指定IPv6地址的BSID且控制器发布的候选路径中未携带IPv6地址的BSID,则SRv6 TE Policy自动申请一个IPv6地址作为BSID。
最终生效的BSID可以通过display segment-routing ipv6 te policy命令查看。
携带NEXT附加行为的BSID可以压缩成16bit的G-SID封装在SRv6报文头中,降低SRv6报文头长度。
不同类型的Locator可携带的附加行为各不相同,配置本命令指定附加行为时,需要保证srv6-policy locator命令引用Locator段类型满足:只有引用Locator段为coc16类型的Locator才能分配携带NEXT附加行为的BSID。
指定BSID为MPLS标签时:
· 如果该标签值不在SRGB和SRLB范围内,或者该标签值已经被其他协议占用,则binding-sid命令无法配置成功。有关SRGB和SRLB的详细描述,请参见“Segment Routing配置指导”中的“SR-MPLS”。
· 多次执行binding-sid命令指定MPLS标签作为BSID,最后一次执行的命令生效。
在SR-MPLS over SRv6的场景中,SR-MPLS TE Policy候选路径的SID列表中增加MPLS标签类型的BSID时,该BSID不能作为SID列表的首个SID。
指定BSID为IPv6地址时:
· 该BSID必须在SRv6 TE视图下srv6-policy locator命令引用的SRv6 Locator的静态段范围内,且binding-sid命令指定的IPv6地址不能与SRv6 Locator视图下opcode命令已配置的SRv6 SID冲突。否则,该BSID不能正常生效,即通过该BSID不能将流量引入对应的SRv6 TE Policy中转发。
· 多次执行binding-sid命令指定IPv6地址作为BSID,最后一次执行的命令生效。
不同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[ next ]
缺省情况下,SRv6-TE未引用Locator段。
(5) 创建SRv6 TE Policy,并进入SRv6 TE Policy视图。
policy policy-name
(6) (可选)手工配置BSID。
¡ 配置MPLS标签作为BSID
binding-sid ipv6 ipv6-address [ next ]
¡ 配置IPv6地址作为BSID
binding-sid mpls mpls-label
仅R5220及以上版本支持本命令。
(7) 配置Color属性和目的节点地址。
color color-value end-point { ipv4 ipv4-address | ipv6 ipv6-address }
缺省情况下,未配置SRv6 TE Policy的Color属性和目的节点地址。
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
创建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) 配置TE IPv6 Router ID地址。
te ipv6-router-id router-id
缺省情况下,未配置TE IPv6 Router ID。
TE IPv6 Router ID用于标识PCE请求的源节点,可以为任意取值,但是要求在IPv6网络中必须唯一。
(3) 进入PCC视图。
pce-client
(4) 开启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或8个16bits G-SID代替1个普通的128bits SRv6 SID。可以在SID列表中添加携带COC标识的128bits SRv6 SID,表示当前节点的下一节点为G-SID。
有关G-SID的详细介绍,请参见“Segment Routing配置指导”中的“SRv6”。
可以为每个SID列表指定一个备份SID列表,当主用SID列表故障,则将流量切换到备份SID列表所表示的路径转发,以减少对业务的影响。如果存在多条有效候选路径时,当候选路径下所有主用和备用SID列表均故障时,流量才从当前候选路径切换到备份的候选路径中转发。
在SID列表中添加32bit压缩的G-SID时,即执行index命令并指定coc32参数时需要保证:
· G-SID的前一节点对应的SRv6 SID必须是End(COC32) SID或End.X(COC32) SID。
· 最后一个节点对应的SRv6 SID不能携带COC标识。
在SID列表中添加16bit压缩的G-SID时,即执行index命令并指定compress-flavor next参数时,指示本SID是压缩的SID。
使用index命令添加16bit压缩的SID时,请根据命令指定的node-length和function-length来拼接正确的地址,例如,Endpoint节点上支持压缩的128bit完整SID为1:2:3:4:5:6::,如果指定的block-length为64,node-length为0,function-length为16,则此处需要指定的IPv6地址是1:2:3:4:6::,忽略了Node ID部分。
(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
¡ 32bit压缩G-SRv6场景中,添加COC标识的128bits SRv6 SID,并指定下一个G-SID的公共前缀长度。
index index-number coc32 ipv6 ipv6-address common-prefix-length
¡ 16bit压缩G-SRv6场景中,指定下一个G-SID和报文封装。
index index-number compress-16 ipv6 ipv6-address block block-length node-length node-length function-length function-length [ compress-flavor next ]
(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 [ ip-in-ip { ipv4 ipv4-address | ipv6 ipv6-address } | path-mtu mtu-value | weight weight-value | backup-segment-list backup-segment-list-name [ backup-ip-in-ip { ipv4 ipv4-address | ipv6 ipv6-address } | backup-path-mtu mtu-value | backup-weight weight-value ] * ] *
一条候选路径可以引用多个SID列表。
ip-in-ip、backup-ip-in-ip参数仅在BFD检测SRv6 TE Policy的场景中有效。
仅R5220及以上版本支持ip-in-ip、backup-ip-in-ip参数。
进行本配置前,需要先配置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计算路径功能处于关闭状态。
开启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的候选路径信息上报BGP-LS,通过BGP-LS路由对外发布,以满足需要知道SRv6 TE Policy路径信息的应用的需求。
BGP-LS路由中存在两种为Segment Routing扩展的TLV来携带BSID信息:
· Binding SID Sub-TLV:可以用于携带作为SRv6 TE Policy BSID的MPLS标签,也可以携带作为SRv6 TE Policy BSID的IPv6地址。
· SRv6 Binding SID Sub-TLV:仅用于携带作为SRv6 TE Policy BSID的IPv6地址。
配置本功能前,需要开启本设备与对等体/对等体组交换LS信息的能力。有关该功能的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP LS”。
将SRv6 TE Policy的路由信息发布给BGP-LS,生成链路状态信息并传递给其他BGP-LS邻居时,建议配置te ipv6-router-id命令来设置链路状态信息中IPv6 TE Router-ID,用于区分不同的SRv6 TE Policy源节点。如果未配置te ipv6-router-id命令,则BGP-LS发布的链路状态信息中IPv6 TE Router-ID取值为0::0,该路由在不同厂商之间设备互通时,可能被丢弃,从而影响链路状态信息正常发布。
(1) 进入系统视图。
system-view
(2) 配置TE IPv6 Router ID地址。
te ipv6-router-id router-id
缺省情况下,未配置TE IPv6 Router ID。
(3) 进入SRv6视图。
segment-routing ipv6
(4) 进入SRv6-TE视图。
traffic-engineering
(5) 配置设备允许将SRv6 TE Policy的候选路径信息上报BGP-LS。
distribute bgp-ls [ srv6bindingtlv ]
缺省情况下,不允许将SRv6 TE Policy的候选路径信息上报BGP-LS。
仅R5220及以上版本支持srv6bindingtlv参数。
通过本功能控制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转发流量。
BGP IPv6 SR Policy路由中存在两种为Segment Routing扩展的TLV来携带BSID信息:
· Binding SID Sub-TLV:可以用于携带作为SRv6 TE Policy BSID的MPLS标签,也可以携带作为SRv6 TE Policy BSID的IPv6地址。
· SRv6 Binding SID Sub-TLV:仅用于携带作为SRv6 TE Policy BSID的IPv6地址。
(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 [ srv6bindingtlv ]
缺省情况下,BGP不会引入BGP IPv6 SR Policy路由。
仅R5220及以上版本支持srv6bindingtlv参数。
缺省情况下,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) 配置向对等体/对等体组发布Large团体属性。
peer { group-name | ipv6-address [ prefix-length ] } advertise-large-community
缺省情况下,不向对等体/对等体组发布Large团体属性。
仅R5220及以上版本支持本命令。
(14) 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv6-address [ prefix-length ] } high-priority
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
(15) 配置路由优选的延迟时间。
route-select delay delay-value
缺省情况下,路由优选的延迟时间为0秒,即路由优选不延迟。
请在用户视图下执行如下命令,复位或软复位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值。
缺省情况下,一条路由被发送给多个BGP对等体时,只有其携带的一个Color扩展团体属性可以被用于路由迭代,这可能导致部分对等体可以使用该Color扩展团体属性成功将路由迭代到SRv6 TE Policy隧道,而部分对等体无法通过该Color扩展团体属性将路由成功迭代。但是无法迭代的这部分对等体仍有可能存在其他可用的SRv6 TE Policy隧道到达BGP路由的目的地址。
多Color迭代功能用于解决上述问题,使得BGP路由在携带多个Color扩展团体属性时,这些Color扩展团体属性都可以用于BGP路由迭代到SRv6 TE Policy,增加BGP路由通过Color扩展团体属性迭代到SRv6 TE Policy隧道的成功率。
Color扩展团体属性的形式为CO(Color-Only)标记位:color-value,开启多Color迭代功能后,对于BGP路由携带的多个Color扩展团体属性,优先选择color-value值最大的Color扩展团体属性进行迭代;如果color-value值相同,则选择CO标记位值最大的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&<1-32> [ additive ]
缺省情况下,未配置BGP路由属性。
仅R5220及以上版本支持多Color迭代功能。
(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) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 开启多Color迭代功能。
sr-policy multi-color enable
多Color迭代功能处于关闭状态,如果BGP路由携带多个Color扩展团体属性,只有值最大的Color扩展团体属性可以用于路由迭代。
仅R5220及以上版本支持多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 { ipv4 ipv4-address | ipv6 ipv6-address } color color-value } [ ignore-destination-check ] [ down-switch ]
缺省情况下,未配置绑定隧道。
仅R5220及以上版本支持ipv4参数。
¡ 配置指定的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组可以通过命令行手工创建,采用该方式时,需要手工配置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) 如果本地址族已配置未匹配Color和DSCP映射关系的报文采用SRv6 BE转发,且SRv6 BE有效,则采用SRv6 BE转发报文。
(3) 如果另一地址族已配置缺省的SRv6 TE Policy,且该SRv6 TE Policy有效,则采用该SRv6 TE Policy转发报文。
(4) 如果另一地址族已配置未匹配Color和DSCP映射关系的报文采用SRv6 BE转发,且SRv6 BE有效,则采用SRv6 BE转发报文。
(5) 如果本地址族下配置了Color和DSCP映射关系,且最小DSCP对应的SRv6 TE Policy有效,则采用该SRv6 TE Policy转发。
(6) 如果另一地址族下配置了Color和DSCP映射关系,且最小DSCP对应的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 { ipv4 ipv4-address | ipv6 ipv6-address }
缺省情况下,未配置SRv6 TE Policy组的目的节点地址。
SRv6 TE Policy组中每个Color对应的SRv6 TE Policy的目的节点地址必须与该SRv6 TE Policy组的目的节点地址相同。
仅R5220及以上版本支持ipv4参数
(6) (可选)配置SRv6 TE Policy组的Color值。
group-color color-value
缺省情况下,未配置SRv6 TE Policy组的Color值。
(7) 配置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值进行引流。
(8) (可选)配置对于未匹配Color和DSCP映射关系的报文采用SRv6 BE转发。
best-effort { ipv4 | ipv6 } default
缺省情况下,对于未匹配Color和DSCP映射关系的报文不采用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.9.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 { ipv4 ipv4-address | 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 { ipv4 ipv4-address | ipv6 ipv6-address } | name policy-name } [ sid sid ] [ preference preference ] [ tag tag-value ] [ description text ]
缺省情况下,未配置IPv4静态路由。
本命令的详细描述,请参见“三层技术-IP路由命令参考”中的“静态路由”。
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
¡ 配置IPv6静态路由迭代到指定SRv6 TE Policy。
(公网)
ipv6 route-static ipv6-address prefix-length srv6-policy { color color-value end-point { ipv4 ipv4-address | 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 { ipv4 ipv4-address | ipv6 ipv6-address } | name policy-name } [ sid sid ] [ preference preference ] [ tag tag-value ] [ description text ]
缺省情况下,未配置IPv6静态路由。
本命令的详细描述,请参见“三层技术-IP路由命令参考”中的“IPv6静态路由”。
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
(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.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 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转发报文时封装的SRH中包含本地End.X SID。
srv6-policy encapsulation-mode encaps include local-end.x
缺省情况下,通过SRv6 TE Policy转发报文时封装的SRH中不包含本地End.X SID。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置通过SRv6 TE Policy转发报文时封装的SRH中是否包含本地End.X SID。
encapsulation-mode encaps include local-end.x [ disable ]
缺省情况下,未配置通过SRv6 TE Policy转发报文时封装的SRH中是否包含本地End.X SID,以SRv6-TE视图下的配置为准。
通过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。
通过SBFD方式检测SRv6 TE Policy连通性时,缺省情况下,SBFD回程报文均通过IP路径转发,一旦中间设备故障,则回程报文会被丢弃,导致SBFD会话down,从而错误地认为所有SRv6 TE Policy的SID列表故障。为了解决上述问题,可以使SBFD回程报文按照SRv6 TE Policy的指定SID列表转发,实现去程和回程路径一致的功能,或者叫SBFD的来回路径一致功能。SBFD的来回路径一致功能需要源节点执行sbfd命令或srv6-policy sbfd命令指定reverse-path path-segment参数,源节点将Path Segment即End.PSID封装在SBFD报文SRH头部SID列表中SRH[SL+1]位置,其中SL+1等于源节点上SID列表中SID数量之和,源节点的下一跳为SRH[SL]。该Path Segment可以通过explicit segment-list命令中的local-path-segment参数来指定。同时,将SRH报文头中的Flags字段的第五位即P-flag置位,表示该SRH报文头中携带了Path Segment。尾节点收到SBFD报文后,发现P-flag置位,因此获取Path Segment。如果Path Segment和尾节点某个SRv6 TE Policy的本地BSID相同,则为SBFD报文封装SRH,沿本地BSID所属SRv6 TE Policy的SID列表转发。
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检测生效。
当SRv6 TE Policy的Endpoint目的节点地址为IPv4地址时,则SBFD报文检测该SRv6 TE Policy只能采用Encaps方式封装报文。SBFD报文将在IPv6报文头之后封装一层IPv4报文头,并将SRv6 TE Policy的Endpoint地址作为IPv4报文头的目的地址。
对于SBFD会话,报文按如下优先顺序选取报文源地址:
(1) source-address命令指定的报文源地址;
(2) sbfd source-ipv6命令指定的地址。
通过SBFD检测SRv6 TE Policy连通性时,SRv6 TE Policy尾节点不能存在两个相同的End SID。不能通过如下方式部署:
· 执行sbfd命令指定oam-sid参数时,指定的SID值不能和SRv6 TE Policy的SID列表的最后一个SID相同。
· SRv6 TE Policy的SID列表的最后两个SID,不能是相同的End SID。
(1) 进入系统视图。
system-view
(2) 配置使用SBFD对SRv6转发路径进行故障检测时SBFD报文的封装模式。
bfd srv6-encapsulation-mode insert [ no-endpoint ]
缺省情况下,使用Encap模式封装SBFD报文。
(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 path-segment ]
缺省情况下,SRv6 TE Policy的SBFD功能处于关闭状态。
仅R5220及以上版本支持reverse-path path-segment参数。
(7) (可选)全局开启BFD down联动SRv6 TE Policy路径切换功能。
srv6-policy bfd trigger path-down enable
缺省情况下,BFD down联动SRv6 TE Policy路径切换功能处于关闭状态。
(8) (可选)配置检测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秒。
(9) (可选)开启SRv6 TE Policy的BFD/SBFD会话合一功能。
srv6-policy bfd session optimization
缺省情况下,SRv6 TE Policy的BFD/SBFD会话合一功能处于关闭状态。
开启SRv6 TE Policy的BFD/SBFD会话合一功能可以使设备为多个SRv6 TE Policy中相同的SID列表仅创建一个BFD echo会话或SBFD会话,降低网络和设备资源消耗。
仅R5220及以上版本支持本命令。
(10) 进入SRv6 TE Policy视图。
policy policy-name
(11) (可选)配置SRv6 TE Policy SBFD报文的源地址。
source-address { ipv4 ipv4-address | ipv6 ipv6-address }
缺省情况下,未配置SRv6 TE Policy SBFD报文的源地址。
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
(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 path-segment ] }
缺省情况下,未配置SRv6 TE Policy的SBFD功能,以SRv6-TE视图下的配置为准。
如果未指定encaps和insert参数,则采用bfd srv6-encapsulation-mode encaps命令配置的封装模式。
当命令同时指定oam-sid和path-segment参数,且explicit segment-list命令指定local-path-segment时,指定的oam-sid参数不生效。
仅R5220及以上版本支持reverse-path path-segment参数。
(13) (可选)开启BFD down联动SRv6 TE Policy路径切换功能。
bfd trigger path-down { disable | enable }
缺省情况下,未配置BFD down联动SRv6 TE Policy路径切换功能,以SRv6-TE视图下的配置为准。
(14) 依次执行以下命令,在SID列表中配置本地Path Segment、反向Path Segment。
a. 创建SRv6 TE Policy候选路径,并进入SRv6 TE Policy候选路径视图。
candidate-paths
b. 配置候选路径的优先级,并进入SRv6 TE Policy候选路径优先级视图。
preference preference-value
c. 为指定优先级的SRv6 TE Policy候选路径配置SID列表。
explicit segment-list segment-list-name [ local-path-segment ipv6 ipv6-address | reverse-path-segment ipv6 reverse-ipv6-address | weight weight-value | backup-segment-list backup-segment-list-name [ backup-local-path-segment ipv6 ipv6-address | backup-reverse-path-segment ipv6 reverse-ipv6-address ] * ] *
仅R5220及以上版本支持本功能。
通过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信息。
通过echo报文方式的BFD检测SRv6 TE Policy时,缺省情况下,BFD回程报文均通过IP路径转发,一旦中间设备故障,则回程报文会被丢弃,导致BFD会话down,从而错误地认为所有SRv6 TE Policy的SID列表故障。为了解决上述问题,可以使BFD回程报文按照SRv6 TE Policy的指定SID列表转发,实现去程和回程路径一致的功能,或者叫BFD的来回路径一致功能。BFD的来回路径一致功能需要指定反向BSID,即srv6-policy bfd echo命令或bfd echo命令配置reverse-path reverse-binding-sid参数。配置后,源节点将在BFD报文的插入SRH头,并在SRH中SL=1的位置封装反向BSID信息,该反向BSID可以通过explicit segment-list或reverse-binding-sid命令来指定。尾节点收到BFD报文后,获取反向BSID信息。如果反向BSID和尾节点某个SRv6 TE Policy的本地BSID相同(该本地BSID可以通过local-binding-sid命令指定),则向BFD报文中插入新的SRH,沿本地BSID所属SRv6 TE Policy的SID列表转发。
当SRv6 TE Policy的源和尾节点存在大量echo报文方式的BFD会话,SRv6 TE Policy尾节点如果根据BFD会话的连接数或目的IP地址进行计费时,可以将大量BFD会话报文指定为IP in IP的双层IP头封装,BFD echo报文回程时,先经过外层IP报文头中同一个目的地址所在的中间节点,该节点需要支持并配置IP in IP的隧道解封装能力,解封装外层IP报文头后,根据内层IP报文头中的目的地址返回发起BFD会话的源节点。这样,中间节点和SRv6 TE Policy的尾节点间仅存在目的地址相同的BFD会话。
在IPv6网络中,SRv6 TE Policy的Endpoint目的节点地址为IPv6时,如果需要指定BFD echo会话的源地址,则使用source-ipv6参数,否则无法建立BFD echo会话。这种场景下,BFD报文要进行IP in IP封装时,需要指定IPv6地址作为SRv6 TE Policy的BFD报文IP in IP的双层IP头的外层IP地址,否则,指定的IPv4地址不能进行BFD报文IP in IP封装。
类似的,在IPv4网络中,SRv6 TE Policy的Endpoint目的节点地址为IPv4时,如果需要指定BFD echo会话的源地址,则使用source-ip参数,否则无法建立BFD echo会话。这种场景下,BFD报文要进行IP in IP封装时,需要指定IPv4地址作为SRv6 TE Policy的BFD报文IP in IP的双层IP头的外层IP地址,否则,指定的IPv6地址不能进行BFD报文IP in IP封装。
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-ip命令或bfd echo-source-ipv6命令指定的报文源地址;
(3) bfd echo命令指定的BFD会话源地址;
(4) srv6-policy bfd echo命令指定的BFD会话源地址。
对于echo报文方式的BFD会话,echo报文的源地址地址族必须和SRv6 TE Policy的目的节点地址的地址族一致,否则无法建立BFD会话,即:
· 对于目的节点地址是IPv4地址的SRv6 TE Policy,echo报文的源地址必须是IPv4地址。
· 对于目的节点地址是IPv6地址的SRv6 TE Policy,echo报文的源地址必须是IPv6地址。
SRv6 TE Policy的头节点上通过执行bfd echo命令或者srv6-policy bfd echo命令指定的BFD会话的源地址即echo报文的目的地址,当echo报文的源地址和目的地址相同时,部署了安全功能(例如uRPF)的网络设备会将该echo报文视为非法报文而拦截,导致BFD echo会话无法建立。因此请合理配置echo报文的源地址,避免出现echo报文的源地址和目的地址相同情况。
当在SRv6 TE Policy视图下执行bfd echo命令未指定source-ip和source-ipv6参数时,则必须在SRv6-TE视图下通过本命令开启SRv6 TE Policy的echo BFD功能,否则无法建立BFD会话。
目前,支持通过BFD echo报文和SBFD两种方式检测SRv6 TE Policy。在同一SRv6 TE Policy下同时配置以上两种检测方式时,SBFD检测生效。
配置本功能前,需要先在本端设备上执行bfd echo-source-ip命令或bfd echo-source-ipv6命令配置echo报文的源地址。
bfd echo命令指定reverse-path参数后,BFD报文仅支持采用Insert方式,配置的encaps参数不生效。
通过echo报文方式的BFD检测SRv6 TE Policy,为BFD报文封装SRv6 TE Policy的SID列表时,不受SRv6 TE视图和SRv6 TE Policy视图下SRv6 TE Policy的封装模式命令的控制。
bfd echo命令中如果配置了oam-sid参数,则bfd echo命令、srv6-policy bfd echo命令和explicit segment-list命令中指定ip-in-ip参数不生效。
指定ip-in-ip参数后,BFD报文仅支持采用Encaps方式,即使配置了insert参数也不生效。
对于IP in IP封装BFD报文,新增IP报文头按如下顺序选取目的地址:
(1) 如果BFD检测的SRv6 TE Policy中最优候选路径通过explicit segment-list命令指定了ip-in-ip相关参数,且ip-in-ip相关参数指定的目的地址与SRv6 TE Policy的Endpoint尾节点地址属于同一地址栈,即同时为IPv6或IPv4,则优先选取explicit segment-list命令中ip-in-ip相关参数指定的目的地址。如果不满足上述要求,则继续下一步选取目的地址。
(2) 如果bfd echo命令中定了ip-in-ip参数,且ip-in-ip参数指定的目的地址与SRv6 TE Policy的Endpoint尾节点地址属于同一地址栈,即同时为IPv6或IPv4,则选取bfd echo命令中ip-in-ip参数指定的目的地址。如果不满足上述要求,则继续下一步选取目的地址。
(3) 如果srv6-policy bfd echo命令中定了ip-in-ip参数,且ip-in-ip参数指定的目的地址与SRv6 TE Policy的Endpoint尾节点地址属于同一地址栈,即同时为IPv6或IPv4,则选取srv6-policy bfd echo命令中ip-in-ip参数指定的目的地址。
当SRv6 TE Policy的Endpoint目的节点地址为IPv4地址,即BFD echo报文采用IPv4地址作为源地址时,只能采用Encaps方式封装报文:
· 本命令中如果未指定ip-in-ip参数,则即使指定了insert参数配置BFD报文插入封装模式也不生效,BFD echo会话也无法建立。
· 本命令中如果指定了ip-in-ip参数,又指定了insert参数配置BFD报文插入封装模式,BFD echo会话仍按照Encaps方式封装报文。
BFD echo报文采用IPv4地址作为源地址封装报文时,需要在IPv6报文头之后封装一层IPv4报文头,并将指定的IPv4目的地址作为IPv4报文头的目的地址。
(1) 进入系统视图。
system-view
(2) 配置使用BFD对SRv6转发路径进行故障检测时BFD报文的封装模式。
bfd srv6-encapsulation-mode insert
缺省情况下,使用Encap模式封装BFD报文。
(3) 进入SRv6视图。
segment-routing ipv6
(4) 进入SRv6-TE视图。
traffic-engineering
(5) 全局开启SRv6 TE Policy的echo报文方式的BFD检测功能并配置相关参数。
srv6-policy bfd echo { source-ip ipv4-address | source-ipv6 ipv6-address } [ ip-in-ip { ipv4 ipv4-address | ipv6 ipv6-address } ] [ template template-name ] [ backup-template backup-template-name ] [ reverse-path reverse-binding-sid ]
缺省情况下,SRv6 TE Policy的echo报文方式的BFD检测功能处于关闭状态。
仅R5212P01及以上版本支持source-ip ipv4-address参数。
仅R5220及以上版本支持ip-in-ip和reverse-path reverse-binding-sid参数。
当SRv6 TE Policy目的节点为IPv4地址时,则需要指定BFD会话的源地址为IPv4。
当SRv6 TE Policy目的节点为IPv6地址时,则需要指定BFD会话的源地址为IPv6。
(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列表不能用于报文转发。
仅R5220及以上版本支持本功能。
(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的BFD/SBFD会话合一功能。
srv6-policy bfd session optimization
缺省情况下,SRv6 TE Policy的BFD/SBFD会话合一功能处于关闭状态。
开启SRv6 TE Policy的BFD/SBFD会话合一功能可以使设备为多个SRv6 TE Policy中相同的SID列表仅创建一个BFD echo会话或SBFD会话,降低网络和设备资源消耗。
仅R5220及以上版本支持本命令。
(10) 进入SRv6 TE Policy视图。
policy policy-name
(11) (可选)配置SRv6 TE Policy echo报文的源地址。
source-address { ipv4 ipv4-address | ipv6 ipv6-address }
缺省情况下,未配置SRv6 TE Policy echo报文的源地址。
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
(12) 配置SRv6 TE Policy的echo报文方式的BFD检测功能。
bfd echo { disable | enable [ source-ip ipv4-address | source-ipv6 ipv6-address ] [ ip-in-ip { ipv4 ipv4-address | 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 encaps命令配置的封装模式。
仅R5212P01及以上版本支持source-ip ipv4-address参数。
仅R5220及以上版本支持ip-in-ip和reverse-path reverse-binding-sid参数。
当SRv6 TE Policy目的节点为IPv4地址时,则需要指定BFD会话的源地址为IPv4。
当SRv6 TE Policy目的节点为IPv6地址时,则需要指定BFD会话的源地址为IPv6。
(13) (可选)开启BFD down联动SRv6 TE Policy路径切换功能。
bfd trigger path-down { disable | enable }
缺省情况下,未配置BFD down联动SRv6 TE Policy路径切换功能,以SRv6-TE视图下的配置为准。
(14) 引用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 [ ip-in-ip { ipv4 ipv4-address | ipv6 ipv6-address } | local-binding-sid ipv6 ipv6-address | reverse-binding-sid ipv6 ipv6-address | backup-segment-list backup-segment-list-name [ backup-ip-in-ip { ipv4 ipv4-address | ipv6 ipv6-address } | backup-local-binding-sid ipv6 ipv6-address | backup-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参数优先生效。
仅R5220及以上版本支持本功能。
(15) (可选)配置BFD echo检测SRv6 TE Policy时使用的SID列表。
bfd explicit-segment-list segment-list-name bfd-segment-list bfd-segment-list-name
缺省情况下,BFD echo检测SRv6 TE Policy时将直接使用SRv6 TE Policy候选路径下引用的SID列表。
仅R5220及以上版本支持本命令。
开启本功能后,如果一个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 [ multilevel-backup ]
缺省情况下,SRv6 TE Policy的热备份功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy的热备份功能。
backup hot-standby { disable | enable [ multilevel-backup ] }
缺省情况下,未配置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的头节点配置本功能。
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 enable [ rib-check-only ]
缺省情况下,SRv6 TE Policy路径连通性检查功能处于关闭状态。
(5) 进入SRv6 TE Policy视图。
policy policy-name
(6) 配置SRv6 TE Policy路径连通性检查功能。
path verification { enable [ rib-check-only ] | disable }
缺省情况下,未配置SRv6 TE Policy路径连通性检查功能,以SRv6-TE视图下的配置为准。
开启SRv6 TE FRR功能后,当SRv6 TE Policy的中间节点发生故障时,故障节点的上游节点可以代替故障节点完成报文转发,使报文绕过故障节点,实现中间节点故障的保护。这个上游节点称之为代理转发(Proxy Forwarding)节点。
组网环境复杂时,中间节点并不固定,所以,为了提供整网可靠性,建议在所有节点上开启SRv6 TE FRR功能。建议在源节点上同时开启备份路径功能。
仅R5220及以上版本支持本功能。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 开启SRv6 TE FRR功能。
sr-te frr enable
缺省情况下,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秒。
配置本功能后,通过SRv6 TE Policy转发的报文速率超过限速值时,超过速率限制的报文会被丢弃。
仅R5220及以上版本支持本功能。
(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命令中Request state字段显示为Falied(即BSID申请失败)、Conflicted(BSID冲突)或者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 }
缺省情况下,未配置SRv6 TE Policy在Policy失效时丢弃流量功能,以SRv6 TE视图下的配置为准。
在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-15所示,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-15 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的资源包括:
· SRv6 TE Policy转发路径数目:所有SRv6 TE Policy下有效的转发路径的数量。
· SRv6 TE Policy的转发表项ID数目:在SRv6转发表中,转发类型为SRv6Policy的表项的数量。
· SRv6 TE Policy组的转发表项ID数目:在SRv6转发表中,转发类型为SRv6PGROUP的表项的数量。
· SID列表的转发表项ID数目:在SRv6转发表中,转发类型为SRv6PSIDList的表项的数量。
SRv6转发表信息可以通过display segment-routing ipv6 forwarding命令查看。
可通过display segment-routing ipv6 te policy statistics命令查看当前SRv6 TE Policy资源的使用信息。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 进入SRv6-TE视图。
traffic-engineering
(4) 配置SRv6 TE Policy资源数量的告警阈值。
srv6-policy { forwarding-path | policy | policy-group | segment-list } alarm-threshold upper-limit upper-limit-value lower-limit lower-limit-value
缺省情况下,SRv6 TE Policy所有资源告警的上限阈值均为80%,下限阈值均为75%。
开启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 enable
缺省情况下,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 | enable }
缺省情况下,未配置SRv6 TE Policy的流量转发统计功能,以SRv6-TE视图下的配置为准。
· 显示SRv6 TE Policy信息。
display segment-routing ipv6 te policy [ odn | pce ] [ name policy-name | down | up | { color color-value | end-point { ipv4 ipv4-address | ipv6 ipv6-address } } * ]
· 显示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 { ipv6-address | mpls-label } | color color-value endpoint{ ipv4 ipv4-address | ipv6 ipv6-address } | policy-name policy-name ]
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
仅R5220及以上版本支持ipv6-address和mpls-label参数。
· 显示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 ]
· 显示Path Segment对应的SRv6 TE Policy信息。
display segment-routing ipv6 te path-segment [ local | reverse ] [ ipv6-address ]
仅R5220及以上版本支持本命令。
· 可在任意视图下执行以下命令,显示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 | ipv4-address } color color-value ]
仅R5220及以上版本支持指定目的节点为IPv4地址。
· 显示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 ] * | sr-policy-prefix [ verbose ] ] | statistics [ color color-value | end-point ipv6 ipv6-address ] * ]
display bgp [ instance instance-name ] routing-table ipv6 sr-policy peer ipv6-address { accepted-routes | not-accepted-routes }
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 { ipv4 ipv4-address | ipv6 ipv6-address } } * | name policy-name } | up ]
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
· 显示SRv6 TE Policy的SBFD信息。
display segment-routing ipv6 te sbfd [ down | policy { { color color-value | end-point { ipv4 ipv4-address | ipv6 ipv6-address } } * | name policy-name } | up ]
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
可在任意视图下执行以下命令:
· 显示通过Mirror SID保护的远端SRv6 SID。
display bgp [ instance instance-name ] mirror remote-sid [ end-dt4 | end-dt46 | end-dt6 ] [ sid ]
仅R5220及以上版本支持本命令。
· 显示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 [ binding-sid bsid | path-segment psid | policy { name policy-name | { color color-value | end-point { ipv4 ipv4-address | ipv6 ipv6-address } } * } ] [ verbose ]
仅R5212P01及以上版本支持ipv4 ipv4-address参数。
仅R5220及以上版本支持binding-sid和path-segment参数。
· 显示SRv6 TE的流量统计信息。
display segment-routing ipv6 te forwarding traffic-statistics
仅R5220及以上版本支持本命令。
· 请在用户视图下执行以下命令,清除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
通过在IGP网络中部署SRv6 TE Policy,实现根据用户需求制定合理的转发路径。如图1-16所示,用户需要流量分别经过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-16 SRv6 TE Policy基本转发配置组网图
|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
Device A |
Loop1 |
1::1/128 |
Device B |
Loop1 |
2::2/128 |
|
|
HGE1/0/1 |
1000::1/64 |
|
HGE1/0/1 |
1000::2/64 |
|
|
HGE1/0/2 |
4000::1/64 |
|
HGE1/0/2 |
2000::2/64 |
|
Device C |
Loop1 |
3::3/128 |
Device D |
Loop1 |
4::4/128 |
|
|
HGE1/0/1 |
3000::3/64 |
|
HGE1/0/1 |
3000::4/64 |
|
|
HGE1/0/2 |
2000::3/64 |
|
HGE1/0/2 |
4000::4/64 |
缺省情况下,本设备的接口处于ADM(Administratively Down)状态,请根据实际需要在对应接口视图下使用undo shutdown命令开启接口。
(1) 请按照图1-16配置各接口的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
[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 hundredgige 1/0/1
[DeviceA-HundredGigE1/0/1] isis ipv6 enable 1
[DeviceA-HundredGigE1/0/1] quit
[DeviceA] interface hundredgige 1/0/2
[DeviceA-HundredGigE1/0/2] isis ipv6 enable 1
[DeviceA-HundredGigE1/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
[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 hundredgige 1/0/1
[DeviceB-HundredGigE1/0/1] isis ipv6 enable 1
[DeviceB-HundredGigE1/0/1] quit
[DeviceB] interface hundredgige 1/0/2
[DeviceB-HundredGigE1/0/2] isis ipv6 enable 1
[DeviceB-HundredGigE1/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
[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 hundredgige 1/0/1
[DeviceC-HundredGigE1/0/1] isis ipv6 enable 1
[DeviceC-HundredGigE1/0/1] quit
[DeviceC] interface hundredgige 1/0/2
[DeviceC-HundredGigE1/0/2] isis ipv6 enable 1
[DeviceC-HundredGigE1/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
[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 hundredgige 1/0/1
[DeviceD-HundredGigE1/0/1] isis ipv6 enable 1
[DeviceD-HundredGigE1/0/1] quit
[DeviceD] interface hundredgige 1/0/2
[DeviceD-HundredGigE1/0/2] isis ipv6 enable 1
[DeviceD-HundredGigE1/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 forwording index: 2150629377
Main path:
Seglist Name/ID: 1
Seglist forwording index: 2149580801
Weight: 1
Outgoing forwording 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 HGE1/0/1
FE80::54CB:70FF:FE86:316
{6000::1, 7000::1, 8000::1}
2149580801 SRv6PCPath TA 2148532225
2150629377 SRv6Policy TA 2149580801
如图1-17所示,在PE 1和PE 2之间建立双向SRv6 TE Policy,承载L3VPN业务。PE 2是SRv6 TE Policy的尾节点,为了增强可靠性,PE 3为PE 2提供保护。
图1-17 SRv6 TE Policy尾节点保护配置组网图
|
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
CE 1 |
HGE1/0/1 |
10.1.1.2/24 |
PE 2 |
Loop0 |
3::3/128 |
|
PE 1 |
Loop0 |
1::1/128 |
|
HGE1/0/1 |
10.2.1.1/24 |
|
|
HGE1/0/1 |
10.1.1.1/24 |
|
HGE1/0/2 |
2002::1/64 |
|
|
HGE1/0/2 |
2001::1/96 |
|
HGE1/0/3 |
2004::2/96 |
|
P |
Loop0 |
2::2/128 |
PE 3 |
Loop0 |
4::4/128 |
|
|
HGE1/0/1 |
2001::2/96 |
|
HGE1/0/1 |
10.3.1.1/24 |
|
|
HGE1/0/2 |
2002::2/64 |
|
HGE1/0/2 |
2003::1/96 |
|
|
HGE1/0/3 |
2003::2/96 |
|
HGE1/0/3 |
2004::1/96 |
|
|
|
|
CE 2 |
HGE1/0/1 |
10.2.1.2/24 |
|
|
|
|
|
HGE1/0/2 |
10.3.1.2/24 |
按图1-17配置各CE的接口IP地址,配置过程略。
缺省情况下,本设备的接口处于ADM(Administratively Down)状态,请根据实际需要在对应接口视图下使用undo shutdown命令开启接口。
(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 hundredgige 1/0/2
[PE1-HundredGigE1/0/2] ipv6 address 2001::1 96
[PE1-HundredGigE1/0/2] isis ipv6 enable 1
[PE1-HundredGigE1/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 hundredgige 1/0/1
[PE1-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE1-HundredGigE1/0/1] ip address 10.1.1.1 24
[PE1-HundredGigE1/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] forwarding ignore-last-sid enable
[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] segment-list s2
[PE1-srv6-te-s2-s2] index 10 ipv6 100:abc:1::1
[PE1-srv6-te-s2-s2] index 20 ipv6 9:7::100
[PE1-srv6-te-s2-s2] quit
[PE1-srv6-te] policy p2
[PE1-srv6-te-policy-p2] binding-sid ipv6 1:2::1:2
[PE1-srv6-te-policy-p2] color 10 end-point ipv6 4::4
[PE1-srv6-te-policy-p2] forwarding ignore-last-sid enable
[PE1-srv6-te-policy-p2] candidate-paths
[PE1-srv6-te-policy-p2-path] preference 20
[PE1-srv6-te-policy-p2-path-pref-20] explicit segment-list s2
[PE1-srv6-te-policy-p2-path-pref-20] quit
[PE1-srv6-te-policy-p2-path] quit
[PE1-srv6-te-policy-p2] 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 hundredgige 1/0/1
[P-HundredGigE1/0/1] ipv6 address 2001::2 96
[P-HundredGigE1/0/1] isis ipv6 enable 1
[P-HundredGigE1/0/1] quit
[P] interface hundredgige 1/0/2
[P-HundredGigE1/0/2] ipv6 address 2002::2 96
[P-HundredGigE1/0/2] isis ipv6 enable 1
[P-HundredGigE1/0/2] quit
[P] interface hundredgige 1/0/3
[P-HundredGigE1/0/3] ipv6 address 2003::2 96
[P-HundredGigE1/0/3] isis ipv6 enable 1
[P-HundredGigE1/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
[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] fast-reroute mirror delete-delay 480
[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 hundredgige 1/0/2
[PE2-HundredGigE1/0/2] ipv6 address 2002::1 96
[PE2-HundredGigE1/0/2] isis ipv6 enable 1
[PE2-HundredGigE1/0/2] quit
[PE2] interface hundredgige 1/0/3
[PE2-HundredGigE1/0/3] ipv6 address 2004::2 96
[PE2-HundredGigE1/0/3] isis ipv6 enable 1
[PE2-HundredGigE1/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 hundredgige 1/0/1
[PE2-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE2-HundredGigE1/0/1] ip address 10.2.1.1 24
[PE2-HundredGigE1/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
[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 hundredgige 1/0/2
[PE3-HundredGigE1/0/2] ipv6 address 2003::1 96
[PE3-HundredGigE1/0/2] isis ipv6 enable 1
[PE3-HundredGigE1/0/2] quit
[PE3] interface hundredgige 1/0/3
[PE3-HundredGigE1/0/3] ipv6 address 2004::1 96
[PE3-HundredGigE1/0/3] isis ipv6 enable 1
[PE3-HundredGigE1/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 hundredgige 1/0/1
[PE3-HundredGigE1/0/1] ip binding vpn-instance vpn1
[PE3-HundredGigE1/0/1] ip address 10.3.1.1 24
[PE3-HundredGigE1/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
# 配置远端SRv6 SID与VPN实例/交叉连接/VSI映射表的延迟删除时间。
[PE3-segment-routing-ipv6] mirror remote-sid delete-delay 21845
# 配置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: HGE1/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 HGE1/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 : HGE1/0/2
Mirror FRR:
Interface : HGE1/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 hundredgige 1/0/2
[P-HundredGigE1/0/2] shut
[P-HundredGigE1/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 : HGE1/0/2
Mirror FRR:
Interface : HGE1/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
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
