MPLS-TE RSVP V 2.0
(1) 路径建立
RSVP的消息类型
Path(隧道建立的初始消息)---PathTear(Path拆除,当path必须被从数据库中抹去时,原因可能是链路出现故障或者发送方正离开多播组,将给多播组发送path teardown 消息,其中包含源IP地址)---PathErr(Path错误
,接受方或路由器可以发送可选的PATH ERR 消息,将这个问题告诉发送方,通常,这由于基本格式或完整性检查没有通过)
Resv (short for Reservation)(隧道回复的初始消息)---ResvTear(隧道拆除,当RSB必须被从数据库中抹去时,原因可能是链路出现故障或是发送方正离开多播组,将向多播组发送RESV Tear 消息,其中包含源地址)---ResvConf(Resv确认,返回给Resv消息的发送者以确认给定的保留已经实际安装了,这个消息是可选发送的。)---ResvTearConf (隧道拆除确认)---ResvErr(当RESV消息中发现错误时,发送方或者路由器会发送一个ResvErr消息,将问题告知接收方,通常,出现这种问题是由于基本格式或完整性检查没有通过,或者没有足够的可用资源来保证请求。)
Hello(RSVP邻居之间Linklocal的Keepalive)
消息
功能
方向
目标地址
路由器警告
Path
Signals a resource request to the network.
下游
尾端
是
Resv
Responds to a successful Path message
上游
下一跳
否
PathErr
Sent toward the headend if there's an error with a Path message (for example, if a link goes down or you get a corrupted Path message).
上游
下一跳
否
ResvErr
Sent toward the tail if there's an error in processing a Path message.
下游
下一跳
否
PathTear
Sent toward the tail to tear down an existing reservation.
下游
尾端
否
ResvTear
Sent toward the headend to tear down an existing reservation.
上游
下一跳
否
ResvConf
Sent in response to a Resv or ResvTear that has requested confirmation of message receipt.*
下游
尾端
是
ResvTearConf
Sent in response to a ResvTear that includes a Confirm message.
下游
下一跳
否
Hello
Sent to an RSVP neighbor on a directly connected link.
下游/ 上游
下一跳
否
例子:
R1------R2------R3------R4------R5
RSVP的流程
CSPF--àPATH-àAdmission Control[c1] -----ERO-----àResv--------------------------à继续向上游逐跳发送Resv,每个Node都有标签生成和传递的过程----------------------------à当R1收到法向Endpoint的Eesv---------àTE隧道up/up
CSPF:当在隧道首端完成CSPF的计算后,需要向网络通告这个请求。
PATH:隧道首端(R1)向隧道的endpoint发送Path消息,请求建立隧道。发送方定期发送Path消息,如果可能,发送方使用源和目标IP地址,IP协议以及UDP/TCP端口号来描述流,通过指定平均速率和突发量标识数据的资源要求,这种消息被发送到为之预留资源的流所对应的多播组或单播目的地,由于他们以UDP报文的方式被发送到特定的UDP端口,或者在IP分组报头中包括IP Router Alert选项,所以RSVP路由器可以检测到他们。路由器在收到PATH消息后将创建一个路径状态块(PSB,PATH STATE BLOCK ),PATH消息包含周期性的呼叫间隔(Hello interval),指出发送方发送path消息的频率,默认的呼叫间隔是30s,保持小的呼叫间隔或者快速重传方案很重要,因为path消息的丢失将导致VOIP的性能很差,延迟在VOIP呼叫路径上RSVP预留的建立,在下列情况下,PSB将被丢弃:收到path teardown消息/入口链路出现故障/4个呼叫间隔后PSB还没有被新的PATH消息刷新。
Admission Control:检查确保这个消息在语法上是正确的,然后检查收到Path消息请求的带宽,如果准入控制成功,并且运行Path消息保留它所需要的带宽,那么下游路由器就会产生一个新的Path消息,然后把它发给显示路径对象的Explicit Route Object (ERO)中的下一跳。,除了R1 Node以外的其他Node都有这个行为。
ERO(Explicit Route Object):
Resv:当隧道尾端就和其他的下游路由器一样在Path消息上执行准入控制时,它意识到自己是Path消息的目的地。就会相应一个Resv消息。这个Resv消息不仅包括对实现通向尾端路径上的所有保留的一个确认,而且还包含了上游路由器沿TE LSP向尾端发送分组时,所应该使用的标签(这个标签是逐跳改变的,由相应的Router发送),这个是逐跳行为,不是叠加行为。默认,在尾端向次末跳发送的是显式空标签,而次末跳把它解释成隐含空标签。
接受方定期发送RESV消息,如果可能,接收方使用path消息中的消息,以源和目标地址,IP地址已经UDP或者tcp端口来描述流及其要求的资源保证,他们还使用流规范描述要求的比特率和延迟指标。这些消息沿着通往发送方的路由路径,穿过所有的RSVP路由器,当resv消息(flowspec。Filterspec)得到批准后,路由器将创建RSB(Reservation state block),RESV消息包含周期性的呼叫间隔,指出发送方发送RESV消息的频率,在下列情况,RSB将被丢弃:收到resv teardown消息/入口链路出现故障/4个呼叫间隔后PSB还没有收到新的resv消息刷新
尾端隧道Node可以发送两种类型的标签(隐含空:标签3,显式空:标签0)
LABEL type 1 length 8 : 00000000
gsr8#show mpls traffic-eng tunnels role tail
LSP Tunnel gsr4_t8 is signalled, connection is up
InLabel : POS0/1, implicit-null
OutLabel : -
gsr6#show mpls traffic-eng tunnels role middle
LSP Tunnel gsr4_t8 is signalled, connection is up
InLabel : POS3/2, 16
OutLabel : POS3/0, implicit-null
可以使用mpls traffic-eng signalling advertise implicit-null来使得 尾端向次末跳发送的是隐含空标签
LABEL type 1 length 8 : 00000003
(2) 路径维护
Keepalive Time=30s,Holddown Time=4*30=120s(发送4次的PATH包,如果RSVP邻居没有回复,就保留消失,并向上游发送一个消息,表明保留已经消失)
实际上是有50%抖动的30时间间隔,就是15s~45s(Resv/Path)
L>=(K+0.5)*1.5*R
R:在 Path和Resv消息携带的TIME_VALUES 对象里面 有这个值=30s。
K:路由器在通告保留死亡前应该丢弃的消息个数。
所以L最小是157.5s,这个表示在拆除一个邻居的之前,路由器可以在157.5s内不进行任何更新。即使更新定时器(45s)在超时之前,路由器遇到了3个连续间隔的最坏情况的抖动(所有的分组丢失),这个时间也是足够的。
在路径维护中,Resv 消息和PATH消息从一个邻居到另外一个邻居是独立异步发送的,而不像在路径建立的时候那样,Resv立即对Path来响应。
(3)路径拆除
PathTear ------ ResvTear ------- ResvTearConf --------