06-RSVP配置
本章节下载: 06-RSVP配置 (366.57 KB)
目 录
RSVP(Resource Reservation Protocol,资源预留协议)是一种用来在网络上请求预留资源的信令协议。RSVP经扩展后支持MPLS标签的分发,在传送标签绑定消息的同时携带资源预留信息。这种扩展后的RSVP可以作为MPLS TE的标签分发协议,沿着指定路径分发MPLS标签并预留资源,以建立CRLSP(Constraint-based Routed Label Switched Paths,基于约束路由的LSP)。扩展后的RSVP称为RSVP-TE。
RSVP消息分为以下几种:
· Path消息:由发送者沿数据报文传输的方向向下游发送,在沿途所有节点上保存路径状态。
· Resv消息:由接收者沿与数据报文传输相反的方向发送,在沿途所有节点上进行资源预留,并创建和维护预留状态。
· PathTear消息:由发送者或中间节点向下游发送,用来删除沿途节点的路径状态和相关的预留状态。
· ResvTear消息:由接收者或中间节点向上游发送,用来删除沿途节点的预留状态。
· PathErr消息:如果接收者或中间节点在处理Path消息的过程中发生了错误,就会向上游发送PathErr消息,PathErr消息不影响沿途节点的状态,只是把错误报告给发送者。
· ResvErr消息:如果发送者或中间节点在处理Resv消息的过程中发生了错误,或者由于抢占导致预留被破坏,就会向下游节点发送ResvErr消息。
· ResvConf消息:该消息发往接收者,用于对预留消息进行确认。
· Hello消息:用来在两个直连的RSVP邻居之间建立和维持邻居关系,以检测邻居的状态。只有开启RSVP的Hello功能后,才会发送该消息。
RSVP-TE对RSVP消息的扩展主要是在Path消息和Resv消息中增加了新的对象。新增对象除了可以携带标签信息外,还可以携带在沿途寻找路径时的限制信息,从而实现对约束条件和快速重路由的支持。
Path消息新增的对象包括:
· LABEL_REQUEST:用来请求下游节点分配标签。
· EXPLICIT_ROUTE:用来携带Ingress节点计算出的路径信息,确保沿着该路径建立CRLSP。
· RECORD_ROUTE:用来记录CRLSP实际经过的路径及各个节点分配的标签。
· SESSION_ATTRIBUTE:用来携带MPLS TE隧道的属性信息,如建立优先级、保持优先级、亲和属性等。
Resv消息新增的对象包括:
· LABEL:用来将下游节点分配的标签通告给上游节点。
· RECORD_ROUTE:用来记录CRLSP实际经过的路径及各个节点分配的标签。
图1-1 CRLSP建立过程
如图1-1所示,使用RSVP-TE建立CRLSP的过程为:
(1) Ingress LSR产生携带LABEL_REQUEST对象的Path消息,沿着通过CSPF计算出的路径逐跳发送给Egress LSR。Path消息经过的LSR,都依据Path消息生成路径状态。
(2) Egress LSR收到Path消息后,产生携带预留信息和LABEL对象的Resv消息,沿着Path消息的相反路径逐跳发送给Ingress LSR。Resv消息通告标签的同时,在沿途的LSR上预留一定的资源,并生成预留状态。
(3) 当Ingress LSR收到Resv消息时,CRLSP建立成功。
由于RSVP是软状态协议,因此需要定时发送消息来维护节点上的资源预留状态。
资源预留状态包括路径状态和预留状态,分别保存在如下状态块中:
· PSB(Path State Block,路径状态块):由Path消息创建,用来保存LABEL_REQUEST对象。
· RSB(Reservation State Block,预留状态块):由Resv消息创建,用来保存LABEL对象。
路径状态和预留状态分别由周期性发送的Path消息和Resv消息来刷新。对于某个状态,如果在一定时间内没有收到刷新消息,则PSB或RSB中相应的状态将被删除,根据该状态建立的CRLSP也将被删除。
用来刷新资源预留状态的Path和Resv消息,统称为Refresh消息。Refresh消息除了刷新资源预留状态外,还可以用于恢复丢失的RSVP消息。
由于Refresh消息是周期性发送的,当网络中的RSVP会话比较多时,Refresh消息会加重网络负担,此时Path和Resv消息的刷新时间间隔不易过小;而对于时延敏感的应用,当RSVP消息丢失时,希望能够尽快通过Refresh消息恢复丢失的消息,此时Path和Resv消息的刷新时间间隔不易过大。简单地调整刷新间隔并不能同时解决这两类问题。
Srefresh(Summary Refresh,摘要刷新)和RSVP消息的可靠传递功能可以很好地解决上述问题。
摘要刷新功能的工作机制为:发送Path和Resv消息时,在消息中携带Message ID,用来唯一标识一个消息;RSVP通过发送携带待刷新消息Message ID的Srefresh消息,来刷新对应的Path和Resv消息。
采用摘要刷新功能后,不必传送标准的Path和Resv消息,只需传递携带Path和Resv消息摘要的Srefresh消息,即可实现对RSVP路径和预留状态进行刷新,减少了网络上的Refresh消息流量,并加快了节点对刷新消息的处理速度。
RSVP消息没有重传机制,消息丢失后发送端无法获悉,无法重传丢失的消息。通过RSVP消息的可靠性传递功能可以提高消息传递的可靠性。
RSVP消息的可靠传递功能是指对端设备需要应答本端发送的RSVP消息,否则将会重传此消息。其工作机制为:节点发送了携带Message_ID对象的消息,且Message_ID对象的ACK_Desired标识(是否需要应答标识)置位后,如果在重传时间Rf内没有收到携带对应Message_ID_ACK对象的消息,则重传时间Rf超时后重传此消息,并将重传时间置为(1+Delta)×Rf。节点持续按照上述方法重传此消息,直到节点在重传时间超时前接收到对应的应答消息,或消息传送次数达到3次。
RSVP认证功能可以用来确保RSVP消息不会被篡改,以防止伪造的资源预留请求非法占用网络资源。
RSVP认证功能是指:发送RSVP消息时使用MD5算法对认证密钥和消息内容计算出消息摘要,并将消息摘要添加到发送的RSVP消息中。对端接收到RSVP消息后,进行同样地计算,并将计算结果和消息中的摘要进行比较。如果一致,则认证通过,接收该消息;否则认证失败,丢弃该消息。RSVP通过RSVP SA(Security Association,安全联盟)保存认证信息,例如认证的密钥、认证类型等。为了在不需要RSVP SA的时候,能够及时删除该RSVP SA,回收内存资源,每个RSVP SA都有其老化时间。当RSVP SA的空闲时间到达老化时间时,将删除该RSVP SA。设备发送和接收RSVP认证消息时,会更新对应RSVP SA的空闲时间,避免其被老化删除。
通过在消息中携带序列号,RSVP认证功能还可以用来防止报文重放攻击。设备记录接收到的RSVP消息的序列号,并根据记录的序列号判断后续消息是否符合要求。只有收到的消息的序列号在最大可允许的乱序消息数量范围内时,才接收该消息;否则,丢弃该消息。
RSVP判断报文序列号是否在允许范围内的方法为:
(1) 在设备上记录最后一次接收到的RSVP报文的序列号。
(2) 设备接收到新的RSVP报文时,将该报文的序列号与记录的序列号进行比较:
¡ 如果大于记录的序列号,则将记录的序列号更新为该报文的序列号。
¡ 如果等于记录的序列号,则认为是重放攻击,丢弃该报文。
¡ 如果小于记录的序列号、大于乱序消息数量(window-size),且未收到过该序列号的报文,则接收该报文;若已经收到过该序列号的报文,则认为是重放攻击,丢弃该报文。
¡ 如果小于等于乱序消息数量(window-size),则认为报文序列号不合法,丢弃该报文。
虽然RSVP认证功能可以通过记录RSVP消息的序列号进行防止报文重放攻击,但是,在新创建接收RSVP SA的时候,无法获取发送端的序列号,因此缺省情况下,创建接收RSVP SA时将接收序列号填写为零,这样对端发送任意序列号的消息就都能接收。这就增加了重放攻击的风险。为了避免这种风险,可以配置challenge-response握手功能,使得在新建接收RSVP SA时执行challenge-response握手过程,获取发送端的序列号。
RSVP GR(Graceful Restart,平滑重启)功能是指在信令协议或控制平面出现异常时,保持转发表项信息,以保证数据转发不中断。
参与RSVP GR过程的设备分为以下两种角色:
· GR Restarter:GR重启路由器,指由管理员手工或设备故障触发而重启协议的设备,它必须具备GR能力。
· GR Helper:GR Restarter的邻居,与重启的GR Restarter保持邻居关系,并协助其恢复重启前的转发状态,它也必须具备GR能力。
目前,设备只能作为RSVP GR的GR Helper。
RSVP GR依赖于RSVP的Hello功能,通过Hello消息向邻居通告自己的GR能力和相关时间参数。设备和邻居如果都具备RSVP GR能力,那么在完成GR参数的交互后,就可以在检测到对方发生GR重启时,充当对方的GR Helper,保证在GR Restarter重启的过程中,数据转发不会中断。
当GR Restarter发生重启时,GR Helper连续丢失或错误的Hello消息次数达到了配置的值,GR Helper由此判定GR Restarter发生了重启。此时GR Helper会保留与该邻居相关的软状态信息,并保持向对方周期性发送Hello消息,直到重启定时器(Restart Timer)超时。
在重启定时器超时前,如果GR Helper接收到了GR Restarter发送的Hello消息,那么启动恢复定时器,并触发信令消息交互以恢复原有的软状态;否则,将删除与该邻居相关的所有RSVP软状态信息和转发表项。恢复定时器超时后,删除仍然没有恢复的软状态和转发表项。
与RSVP相关的协议规范有:
· RFC 2205:Resource ReSerVation Protocol
· RFC 3209:RSVP-TE: Extensions to RSVP for LSP Tunnels
· RFC 2961:RSVP Refresh Overhead Reduction Extensions
· RFC 4461:Signaling Requirements for Point-to-Multipoint Traffic-Engineered MPLS Label Switched Paths (LSPs)
· RFC 4875:Extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE Label Switched Paths (LSPs)
RSVP配置任务如下:
(1) 开启RSVP能力
在MPLS TE隧道经过的所有节点和接口上都需要开启RSVP能力。
(2) (可选)配置RSVP的Refresh消息刷新功能
(3) (可选)配置RSVP摘要刷新功能
(4) (可选)配置RSVP消息的可靠传递功能
(5) (可选)配置RSVP的Hello功能
(6) (可选)配置RSVP认证功能
(7) (可选)配置发送的RSVP报文的DSCP优先级
(8) (可选)在GR helper设备上配置RSVP GR
(9) (可选)配置RSVP与BFD联动
为了建立MPLS TE隧道,在MPLS TE隧道经过的所有节点和接口上都需要开启RSVP能力。
(1) 进入系统视图。
system-view
(2) 全局开启RSVP能力,并进入RSVP视图。
rsvp
缺省情况下,全局RSVP能力处于关闭状态。
(3) 退回系统视图。
quit
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启接口的RSVP能力。
rsvp enable
缺省情况下,接口的RSVP能力处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 配置路径消息和预留消息的刷新时间间隔。
refresh interval interval
缺省情况下,路径消息和预留消息的刷新时间间隔为30秒。
(4) 配置PSB和RSB的老化超时倍数。
keep-multiplier number
缺省情况下,PSB和RSB的老化超时倍数为3。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启RSVP摘要刷新功能。
rsvp reduction srefresh
缺省情况下,RSVP摘要刷新功能处于关闭状态。
开启摘要刷新功能后,将不会周期性发送Refresh消息维护路径和预留状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启RSVP消息的可靠传递功能。
rsvp reduction srefresh reliability
缺省情况下, RSVP消息的可靠传递功能处于关闭状态。
(4) (可选)配置RSVP消息可靠传递功能的重传参数
¡ 配置RSVP消息可靠传递功能的重传增量。
rsvp reduction retransmit increment increment-value
缺省情况下,RSVP消息可靠传递功能的重传增量为1。
¡ 配置RSVP消息可靠传递功能的重传时间间隔。
rsvp reduction retransmit interval interval
缺省情况下,RSVP消息可靠传递功能的重传时间间隔为500毫秒。
RSVP消息的可靠传递功能的重传时间为(1+Delta)×Rf,其中Delta为重传增量,Rf为重传时间间隔。
RSVP的Hello功能分为基于接口的Hello检测和基于LSR ID的Hello检测两种方式。
通过LSR ID建立RSVP Hello邻居或者在接口视图下开启RSVP的Hello功能后,设备会向邻居发送和接收Hello消息,通过Hello消息检测邻居的状态。
在hello interval命令指定的时间内,如果没有收到邻居发送的Hello Request消息,则主动向邻居发送Hello Request消息;如果收到了邻居发送的Hello Request消息,则立即向邻居回应Hello Ack消息。
当连续未收到Hello消息或收到错误的Hello消息的次数达到hello lost命令配置的次数时,认为邻居设备发生故障。如果配置了GR功能,则本地设备作为GR Helper协助邻居进行GR重启;如果没有配置GR功能,但配置了FRR(Fast Reroute,快速重路由)功能,则进行FRR切换。
FRR的详细介绍,请参见“MPLS配置指导”中的“MPLS TE”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启接口下RSVP的Hello功能。
rsvp hello enable
缺省情况下,接口下RSVP的Hello功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 手工创建RSVP Hello邻居。
hello node-session lsr-id
只有同时在本端和对端设备上配置本命令后,才可以在两者之间建立RSVP Hello邻居。
采用此方式可以在不相邻的两个节点之间建立RSVP Hello邻居。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 配置Hello消息连续丢失或错误的最大次数。
hello lost times
缺省情况下,Hello消息连续丢失或错误的最大次数为4次。
(4) 配置Hello Request消息的发送时间间隔。
hello interval interval
缺省情况下,Hello Request消息的发送时间间隔为5秒。
为防止伪造的资源预留请求非法占用网络资源,RSVP采用逐跳认证机制来验证RSVP消息的合法性。一条链路两端的接口上需要配置相同的认证密钥,只有这样,接口之间才可以正确地交互RSVP消息。
建议不要在同一个接口上同时配置快速重路由功能和RSVP认证功能,否则可能导致认证失败。
RSVP认证功能可以在如下视图配置:
· RSVP视图:该视图下的配置对所有RSVP SA生效。
· RSVP邻居视图:该视图下的配置只对与指定RSVP邻居之间的RSVP SA生效。
· 接口视图:该视图下的配置只对根据指定接口下的配置生成的RSVP SA生效。
三个视图下配置的优先级从高到低依次为:RSVP邻居视图、接口视图、RSVP视图。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 创建RSVP认证邻居,并进入RSVP邻居视图。
peer ip-address
(4) 为指定RSVP邻居开启RSVP认证功能,并配置认证密钥。
authentication key { cipher | plain } string
缺省情况下,RSVP认证功能处于关闭状态,即不进行RSVP认证。
(5) (可选)为指定RSVP邻居开启RSVP认证的challenge-response握手功能。
authentication challenge
缺省情况下,认证的challenge-response握手功能处于关闭状态。
(6) (可选)为指定RSVP邻居配置RSVP SA(Security Association,安全联盟)的空闲老化时间。
authentication lifetime life-time
缺省情况下,RSVP SA的空闲老化时间为1800秒(30分钟)。
(7) (可选)为指定RSVP邻居配置对于带有认证信息的RSVP消息,最大可允许的乱序消息数量。
authentication window-size number
缺省情况下,对于带有认证信息的RSVP消息,最大可允许的乱序消息数量为1。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 在接口下开启RSVP认证功能,并配置认证密钥。
rsvp authentication key { cipher | plain } string
缺省情况下,RSVP认证功能处于关闭状态,即不进行RSVP认证。
(4) (可选)在接口下开启RSVP认证的challenge-response握手功能。
rsvp authentication challenge
缺省情况下,RSVP认证的challenge-response握手功能处于关闭状态。
(5) (可选)在接口下配置RSVP SA的空闲老化时间。
rsvp authentication lifetime life-time
缺省情况下,RSVP SA的空闲老化时间为1800秒(30分钟)。
(6) (可选)在接口下配置对于带有认证信息的RSVP消息,最大可允许的乱序消息数量。
rsvp authentication window-size number
缺省情况下,对于带有认证信息的RSVP消息,最大可允许的乱序消息数量为1。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 全局开启RSVP认证功能,并配置认证密钥。
authentication key { cipher | plain } string
缺省情况下,RSVP认证功能处于关闭状态,即不进行RSVP认证。
(4) (可选)全局开启RSVP认证的challenge-response握手功能。
authentication challenge
缺省情况下,认证的challenge-response握手功能处于关闭状态。
(5) (可选)全局配置RSVP SA的空闲老化时间。
authentication lifetime life-time
缺省情况下,RSVP SA的空闲老化时间为1800秒(30分钟)。
(6) (可选)全局配置对于带有认证信息的RSVP消息,最大可允许的乱序消息数量。
authentication window-size number
缺省情况下,对于带有认证信息的RSVP消息,最大可允许的乱序消息数量为1。
DSCP(Differentiated Services Code Point,区分服务编码点)携带在IP报文中的ToS字段,用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定发送的RSVP报文中携带的DSCP优先级的取值。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 配置发送的RSVP报文的DSCP优先级。
dscp dscp-value
缺省情况下,RSVP报文的DSCP优先级为48。
RSVP GR功能依赖于RSVP的Hello功能,因此在配置RSVP GR功能时必须开启RSVP的Hello功能。
(1) 进入系统视图。
system-view
(2) 进入RSVP视图。
rsvp
(3) 开启RSVP的GR功能。
graceful-restart enable
缺省情况下,RSVP的GR功能处于关闭状态。
在MPLS TE网络中,LSR邻居之间的链路发生故障将导致MPLS TE转发报文失败,而MPLS TE本身无法快速检测到链路故障。通过在MPLS TE隧道内的两个RSVP邻居上分别配置RSVP与BFD(Bidirectional Forwarding Detection,双向转发检测)联动,可以快速地感知邻居之间链路的故障,确保链路出现故障时将业务从主路径切换到备份路径上。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
该接口上需要开启RSVP能力。
(3) 配置通过BFD检测本地设备和RSVP邻居之间链路的状态。
rsvp bfd enable
缺省情况下,不会通过BFD检测本地设备和RSVP邻居之间链路的状态。
可在任意视图下执行以下命令:
· 显示RSVP的信息。
display rsvp [ interface [ interface-type interface-number ] ]
· 显示RSVP建立的CR-LSP信息。
display rsvp lsp [ destination ip-address ] [ source ip-address ] [ tunnel-id tunnel-id ] [ lsp-id lsp-id ] [ verbose ]
· 显示RSVP邻居的信息。
display rsvp peer [ interface interface-type interface-number ] [ ip ip-address ] [ verbose ]
· 显示向上游设备发送的RSVP资源预留请求的信息。
display rsvp request [ destination ip-address ] [ source ip-address ] [ tunnel-id tunnel-id ] [ prevhop ip-address ] [ verbose ]
· 显示RSVP资源预留状态信息。
display rsvp reservation [ destination ip-address ] [ source ip-address ] [ tunnel-id tunnel-id ] [ nexthop ip-address ] [ verbose ]
· 显示RSVP路径状态信息。
display rsvp sender [ destination ip-address ] [ source ip-address ] [ tunnel-id tunnel-id ] [ lsp-id lsp-id ] [ verbose ]
可在任意视图下执行以下命令,显示本地设备与RSVP邻居建立的RSVP SA信息。
display rsvp authentication [ from ip-address ] [ to ip-address ] [ verbose ]
请在用户视图下执行以下命令,手工清除RSVP SA。
reset rsvp authentication [ from ip-address to ip-address ]
可在任意视图下执行以下命令,显示RSVP统计信息。
display rsvp statistics [ interface [ interface-type interface-number ] ]
请在用户视图下执行以下命令,清除RSVP的统计信息。
reset rsvp statistics [ interface [ interface-type interface-number ]
请在用户视图下执行以下命令,重建RSVP-TE会话和RSVP CRLSP。
· 设备Router A、Router B、Router C和Router D运行IS-IS,都是Level-2设备;
· 使用RSVP-TE建立一条从Router A到Router D的MPLS TE隧道,实现两个IP网络通过MPLS TE隧道传输数据流量,该隧道需要的带宽为2000kbps;
· 隧道沿途的链路最大带宽为10000kbps,最大可预留带宽为5000kbps。
图1-2 使用RSVP-TE配置MPLS TE隧道组网图
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
|
Router A |
Loop0 |
1.1.1.9/32 |
Router C |
Loop0 |
3.3.3.9/32 |
|
HGE1/0/1 |
10.1.1.1/24 |
|
HGE1/0/1 |
30.1.1.1/24 |
|
HGE1/0/2 |
100.1.1.1/24 |
|
HGE1/0/2 |
20.1.1.2/24 |
Router B |
Loop0 |
2.2.2.9/32 |
Router D |
Loop0 |
4.4.4.9/32 |
|
HGE1/0/1 |
10.1.1.2/24 |
|
HGE1/0/1 |
30.1.1.2/24 |
|
HGE1/0/2 |
20.1.1.1/24 |
|
HGE1/0/2 |
100.1.2.1/24 |
缺省情况下,本设备的接口处于ADM(Administratively Down)状态,请根据实际需要在对应接口视图下使用undo shutdown命令开启接口。
(1) 配置各接口的IP地址
按照图1-2配置各接口的IP地址和掩码,具体配置过程略。
(2) 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口
# 配置Router A。
<RouterA> system-view
[RouterA] isis 1
[RouterA-isis-1] network-entity 00.0005.0000.0000.0001.00
[RouterA-isis-1] quit
[RouterA] interface hundredgige 1/0/1
[RouterA-HundredGigE1/0/1] isis enable 1
[RouterA-HundredGigE1/0/1] isis circuit-level level-2
[RouterA-HundredGigE1/0/1] quit
[RouterA] interface loopback 0
[RouterA-LoopBack0] isis enable 1
[RouterA-LoopBack0] isis circuit-level level-2
[RouterA-LoopBack0] quit
# 配置Router B。
<RouterB> system-view
[RouterB] isis 1
[RouterB-isis-1] network-entity 00.0005.0000.0000.0002.00
[RouterB-isis-1] quit
[RouterB] interface hundredgige 1/0/1
[RouterB-HundredGigE1/0/1] isis enable 1
[RouterB-HundredGigE1/0/1] isis circuit-level level-2
[RouterB-HundredGigE1/0/1] quit
[RouterB] interface hundredgige 1/0/2
[RouterB-HundredGigE1/0/2] isis enable 1
[RouterB-HundredGigE1/0/2] isis circuit-level level-2
[RouterB-HundredGigE1/0/2] quit
[RouterB] interface loopback 0
[RouterB-LoopBack0] isis enable 1
[RouterB-LoopBack0] isis circuit-level level-2
[RouterB-LoopBack0] quit
# 配置Router C。
<RouterC> system-view
[RouterC] isis 1
[RouterC-isis-1] network-entity 00.0005.0000.0000.0003.00
[RouterC-isis-1] quit
[RouterC] interface hundredgige 1/0/1
[RouterC-HundredGigE1/0/1] isis enable 1
[RouterC-HundredGigE1/0/1] isis circuit-level level-2
[RouterC-HundredGigE1/0/1] quit
[RouterC] interface hundredgige 1/0/2
[RouterC-HundredGigE1/0/2] isis enable 1
[RouterC-HundredGigE1/0/2] isis circuit-level level-2
[RouterC-HundredGigE1/0/2] quit
[RouterC] interface loopback 0
[RouterC-LoopBack0] isis enable 1
[RouterC-LoopBack0] isis circuit-level level-2
[RouterC-LoopBack0] quit
# 配置Router D。
<RouterD> system-view
[RouterD] isis 1
[RouterD-isis-1] network-entity 00.0005.0000.0000.0004.00
[RouterD-isis-1] quit
[RouterD] interface hundredgige 1/0/1
[RouterD-HundredGigE1/0/1] isis enable 1
[RouterD-HundredGigE1/0/1] isis circuit-level level-2
[RouterD-HundredGigE1/0/1] quit
[RouterD] interface loopback 0
[RouterD-LoopBack0] isis enable 1
[RouterD-LoopBack0] isis circuit-level level-2
[RouterD-LoopBack0] quit
# 配置完成后,在各设备上执行display ip routing-table命令,可以看到相互之间都学到了到对方的路由,包括Loopback接口对应的主机路由。
(3) 配置LSR ID,开启MPLS、MPLS TE和RSVP能力
# 配置Router A。
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls te
[RouterA-te] quit
[RouterA] rsvp
[RouterA-rsvp] quit
[RouterA] interface hundredgige 1/0/1
[RouterA-HundredGigE1/0/1] mpls enable
[RouterA-HundredGigE1/0/1] mpls te enable
[RouterA-HundredGigE1/0/1] rsvp enable
[RouterA-HundredGigE1/0/1] quit
# 配置Router B。
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls te
[RouterB-te] quit
[RouterB] rsvp
[RouterB-rsvp] quit
[RouterB] interface hundredgige 1/0/1
[RouterB-HundredGigE1/0/1] mpls enable
[RouterB-HundredGigE1/0/1] mpls te enable
[RouterB-HundredGigE1/0/1] rsvp enable
[RouterB-HundredGigE1/0/1] quit
[RouterB] interface hundredgige 1/0/2
[RouterB-HundredGigE1/0/2] mpls enable
[RouterB-HundredGigE1/0/2] mpls te enable
[RouterB-HundredGigE1/0/2] rsvp enable
[RouterB-HundredGigE1/0/2] quit
# 配置Router C。
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls te
[RouterC-te] quit
[RouterC] rsvp
[RouterC-rsvp] quit
[RouterC] interface hundredgige 1/0/1
[RouterC-HundredGigE1/0/1] mpls enable
[RouterC-HundredGigE1/0/1] mpls te enable
[RouterC-HundredGigE1/0/1] rsvp enable
[RouterC-HundredGigE1/0/1] quit
[RouterC] interface hundredgige 1/0/2
[RouterC-HundredGigE1/0/2] mpls enable
[RouterC-HundredGigE1/0/2] mpls te enable
[RouterC-HundredGigE1/0/2] rsvp enable
[RouterC-HundredGigE1/0/2] quit
# 配置Router D。
[RouterD] mpls lsr-id 4.4.4.9
[RouterD] mpls te
[RouterD-te] quit
[RouterD] rsvp
[RouterD-rsvp] quit
[RouterD] interface hundredgige 1/0/1
[RouterD-HundredGigE1/0/1] mpls enable
[RouterD-HundredGigE1/0/1] mpls te enable
[RouterD-HundredGigE1/0/1] rsvp enable
[RouterD-HundredGigE1/0/1] quit
(4) 配置IS-IS TE
# 配置Router A。
[RouterA] isis 1
[RouterA-isis-1] cost-style wide
[RouterA-isis-1] mpls te enable level-2
[RouterA-isis-1] quit
# 配置Router B。
[RouterB] isis 1
[RouterB-isis-1] cost-style wide
[RouterB-isis-1] mpls te enable level-2
[RouterB-isis-1] quit
# 配置Router C。
[RouterC] isis 1
[RouterC-isis-1] cost-style wide
[RouterC-isis-1] mpls te enable level-2
[RouterC-isis-1] quit
# 配置Router D。
[RouterD] isis 1
[RouterD-isis-1] cost-style wide
[RouterD-isis-1] mpls te enable level-2
[RouterD-isis-1] quit
(5) 配置链路的MPLS TE属性
# 在Router A上配置链路的最大带宽和最大可预留带宽。
[RouterA] interface hundredgige 1/0/1
[RouterA-HundredGigE1/0/1] mpls te max-link-bandwidth 10000
[RouterA-HundredGigE1/0/1] mpls te max-reservable-bandwidth 5000
[RouterA-HundredGigE1/0/1] quit
# 在Router B上配置链路的最大带宽和最大可预留带宽。
[RouterB] interface hundredgige 1/0/1
[RouterB-HundredGigE1/0/1] mpls te max-link-bandwidth 10000
[RouterB-HundredGigE1/0/1] mpls te max-reservable-bandwidth 5000
[RouterB-HundredGigE1/0/1] quit
[RouterB] interface hundredgige 1/0/2
[RouterB-HundredGigE1/0/2] mpls te max-link-bandwidth 10000
[RouterB-HundredGigE1/0/2] mpls te max-reservable-bandwidth 5000
[RouterB-HundredGigE1/0/2] quit
# 在Router C上配置链路的最大带宽和最大可预留带宽。
[RouterC] interface hundredgige 1/0/1
[RouterC-HundredGigE1/0/1] mpls te max-link-bandwidth 10000
[RouterC-HundredGigE1/0/1] mpls te max-reservable-bandwidth 5000
[RouterC-HundredGigE1/0/1] quit
[RouterC] interface hundredgige 1/0/2
[RouterC-HundredGigE1/0/2] mpls te max-link-bandwidth 10000
[RouterC-HundredGigE1/0/2] mpls te max-reservable-bandwidth 5000
[RouterC-HundredGigE1/0/2] quit
# 在Router D上配置链路的最大带宽和最大可预留带宽。
[RouterD] interface hundredgige 1/0/1
[RouterD-HundredGigE1/0/1] mpls te max-link-bandwidth 10000
[RouterD-HundredGigE1/0/1] mpls te max-reservable-bandwidth 5000
[RouterD-HundredGigE1/0/1] quit
(6) 配置MPLS TE隧道
# 在Router A上配置MPLS TE隧道Tunnel1:目的地址为Router D的LSR ID(4.4.4.9);采用RSVP-TE信令协议建立MPLS TE隧道;隧道所需的带宽为2000kbps。
[RouterA] interface tunnel 1 mode mpls-te
[RouterA-Tunnel1] ip address 7.1.1.1 255.255.255.0
[RouterA-Tunnel1] destination 4.4.4.9
[RouterA-Tunnel1] mpls te signaling rsvp-te
[RouterA-Tunnel1] mpls te bandwidth 2000
[RouterA-Tunnel1] quit
(7) 配置静态路由使流量沿MPLS TE隧道转发
# 在Router A上配置静态路由,使得到达网络100.1.2.0/24的流量通过MPLS TE隧道接口Tunnel1转发。
[RouterA] ip route-static 100.1.2.0 24 tunnel 1 preference 1
# 配置完成后,在Router A上执行display interface tunnel命令可以看到隧道接口状态为up。
[RouterA] display interface tunnel
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
Internet address: 7.1.1.1/24 (primary)
Tunnel source unknown, destination 4.4.4.9
Tunnel TTL 255
Tunnel protocol/transport CR_LSP
Output queue - Urgent queuing: Size/Length/Discards 0/100/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 在Router A上执行display mpls te tunnel-interface命令可以看到隧道的详细信息。
[RouterA] display mpls te tunnel-interface
Tunnel Name : Tunnel 1
Tunnel State : Up (Main CRLSP up, Shared-resource CRLSP down)
Tunnel Attributes :
LSP ID : 23331 Tunnel ID : 1
Admin State : Normal
Ingress LSR ID : 1.1.1.9 Egress LSR ID : 4.4.4.9
Signaling : RSVP-TE Static CRLSP Name : -
Resv Style : SE
Tunnel mode : -
Reverse-LSP name : -
Reverse-LSP LSR ID : - Reverse-LSP Tunnel ID: -
Class Type : CT0 Tunnel Bandwidth : 2000 kbps
Reserved Bandwidth : 2000 kbps
Setup Priority : 7 Holding Priority : 7
Affinity Attr/Mask : 0/0
Explicit Path : -
Backup Explicit Path : -
Metric Type : TE
Record Route : Disabled Record Label : Disabled
FRR Flag : Disabled Backup Bandwidth Flag: Disabled
Backup Bandwidth Type: - Backup Bandwidth : -
Route Pinning : Disabled
Retry Limit : 10 Retry Interval : 2 sec
Reoptimization : Disabled Reoptimization Freq : -
Backup Type : None Backup LSP ID : -
Auto Bandwidth : Disabled Auto Bandwidth Freq : -
Min Bandwidth : - Max Bandwidth : -
Collected Bandwidth : - Service-Class : -
# 在Router A上执行display ip routing-table命令,可以看到路由表中有以Tunnel1为出接口的静态路由信息。
· 设备Router A、Router B和Router C运行IS-IS,都是Level-2设备;
· 使用RSVP-TE建立从Router A到Router C的MPLS TE隧道;
· 设备Router A、Router B和Router C支持RSVP的Hello功能;
· Router A、Router B和Router C为RSVP邻居,通过开启GR能力,邻居之间可以在对方发生GR Restart的时候提供GR Helper支持。
图1-3 RSVP GR配置组网图
缺省情况下,本设备的接口处于ADM(Administratively Down)状态,请根据实际需要在对应接口视图下使用undo shutdown命令开启接口。
(1) 配置各接口的IP地址
按照图1-3配置各接口的IP地址和掩码,具体配置过程略。
(2) 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口(具体配置过程略)
(3) 配置LSR ID,开启MPLS、MPLS TE、RSVP和RSVP的Hello功能
# 配置Router A
<RouterA> system-view
[RouterA] mpls lsr-id 1.1.1.9
[RouterA] mpls te
[RouterA-te] quit
[RouterA] rsvp
[RouterA-rsvp] quit
[RouterA] interface hundredgige 1/0/1
[RouterA-HundredGigE1/0/1] mpls enable
[RouterA-HundredGigE1/0/1] mpls te enable
[RouterA-HundredGigE1/0/1] rsvp enable
[RouterA-HundredGigE1/0/1] rsvp hello enable
[RouterA-HundredGigE1/0/1] quit
# 配置Router B
<RouterB> system-view
[RouterB] mpls lsr-id 2.2.2.9
[RouterB] mpls te
[RouterB-te] quit
[RouterB] rsvp
[RouterB] quit
[RouterB] interface hundredgige 1/0/1
[RouterB-HundredGigE1/0/1] mpls enable
[RouterB-HundredGigE1/0/1] mpls te enable
[RouterB-HundredGigE1/0/1] rsvp enable
[RouterB-HundredGigE1/0/1] rsvp hello enable
[RouterB-HundredGigE1/0/1] quit
[RouterB] interface hundredgige 1/0/2
[RouterB-HundredGigE1/0/2] mpls enable
[RouterB-HundredGigE1/0/2] mpls te enable
[RouterB-HundredGigE1/0/2] rsvp enable
[RouterB-HundredGigE1/0/2] rsvp hello enable
[RouterB-HundredGigE1/0/2] quit
# 配置Router C
<RouterC> system-view
[RouterC] mpls lsr-id 3.3.3.9
[RouterC] mpls te
[RouterC-te] quit
[RouterC] rsvp
[RouterC-rsvp] rsvp
[RouterC-mpls] interface hundredgige 1/0/1
[RouterC-HundredGigE1/0/1] mpls enable
[RouterC-HundredGigE1/0/1] mpls te enable
[RouterC-HundredGigE1/0/1] rsvp enable
[RouterC-HundredGigE1/0/1] rsvp hello enable
[RouterC-HundredGigE1/0/1] quit
(4) 配置IS-IS TE(具体配置过程略)
(5) 配置MPLS TE隧道(具体配置过程略)
(6) 配置RSVP GR
# 配置Router A
[RouterA] rsvp
[RouterA-rsvp] graceful-restart enable
# 配置Router B
[RouterB] rsvp
[RouterB-rsvp] graceful-restart enable
# 配置Router C
[RouterC] rsvp
[RouterC-rsvp] graceful-restart enable
# 在Router A和Router C之间创建隧道且运行稳定后,通过命令可以看到邻居的GR状态已经为Ready状态。
<RouterA> display rsvp peer verbose
Peer: 10.1.1.2 Interface: HGE1/0/1
Hello state: Up Hello type: Active
P2P PSB count: 0 P2P RSB count: 1
P2MP PSB count: 0 P2MP RSB count: 0
Src instance: 0x1f08 Dst instance: 0x22
Summary refresh: Disabled Graceful Restart state: Ready
Peer GR restart time: 120000 ms Peer GR recovery time: 0 ms
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!