RSVP是用于TE隧道的信令协议, 以确保链路准入发生在TE隧道所穿过的标签交换路由器(LSR)的接口上,并确保TE隧道上的流量可以使用的逐跳标签传播。
RSVP使用PATH和RESV消息来指示路径。TE前端路由器将PATH消息发送到后端路由器,而RESV消息则采用确切但相反的路径返回到前端路由器。考虑到带宽和其他限制,TE隧道的前端路由器会计算TE隧道应从TE数据库获取的最佳路径。
由用户在隧道接口上配置的显式路径选项定义 。头端路由器知道TE隧道应采用的确切路径。TE隧道应跨越的每个跃点(LSR)放入显式路由对象(ERO),该对象基本上是接口IP地址的有序列表,每个LSR具有一个IP地址。RFC 3209中详细介绍了RSVP的TE扩展 。
显式路由对象(ERO)
显式路由对象(ERO)详细说明了RSVP PATH消息为向TE隧道发送信号所必须遵循的跃点。一系列跳数或路径是前端路由器上路径计算的结果。在每个跃点处,此PATH消息都会临时保留带宽并请求标签。
最终,PATH消息到达LSP的尾端,后者将RESV消息返回到LSP的头端。然后,此RESV消息返回一个标签,MPLS数据平面可使用该标签沿LSP转发此MPLS TE隧道的数据包。RESV消息还告诉中间LSR为TE LSP使用的链路保留资源。
RSVP路径消息
PATH消息从头端路由器发送到下一跳路由器。该下一跳路由器从ERO中删除了自己的IP地址,查看下一个IP地址是什么,并将PATH消息发送到该下一跳。这一直持续到TE隧道的尾端路由器收到PATH消息为止。
收到PATH消息后,尾端路由器会沿着PATH消息采用的相同路径,但方向相反,返回RESV(或保留)消息。仅当头端收到没有RSVP错误消息的RESV消息时,才建立或发送信号路径,并建立TE隧道。
RSVP和标签
RSVP向TE隧道发送信号路径,但携带MPLS标签也是其任务,以便可以沿着TE隧道的路径对数据包进行标签交换。查看下图,以查看为TE隧道信令发送的RSVP消息。
PATH消息带有标签请求对象。当尾端路由器接收到该标签请求对象时,它将为该TE隧道LSP分配标签,并将其在RESV消息中的标签对象中发布给上游路由器(倒数第二跳路由器)。此标签是尾端路由器LFIB中的传入标签。
上游路由器从尾端路由器接收标签,并将该标签作为该TE隧道LSP的传出标签放在LFIB中。路由器将来自全局标签表的标签分配给此TE隧道LSP,并将其在RESV消息中的标签对象中发送到其上游路由器。该标签成为该TE隧道LSP的LFIB中的传入标签。这样继续下去,直到RESV消息到达TE隧道LSP的前端路由器为止。
另一个RSVP对象是记录路由对象(RRO)。PATH和RESV消息带有此对象,该对象存储TE隧道经过的路由器的IP地址。RSVP路径信息(显式路由)中的路径通常与RRO中的路径相同,尽管可以有所不同。一个不同的例子是何时将TE LSP临时重新路由到备用隧道上。
TE隧道带宽要求
TE隧道的带宽要求是最重要的TE隧道属性。它以平均速率在SENDER_TSPEC中传送。注意,平均速率的值以每秒字节数表示。
会话对象保存出口路由器的IPv4地址,隧道ID和扩展隧道ID。查看下图,该图显示了Session对象的格式。
会话属性保存隧道的设置和优先级以及一些标志。例如,这些标志可以指示需要本地保护。除此之外,扩展格式的Session属性可以保存资源 亲和力比特。
RSVP消息
到目前为止,本文仅介绍了PATH和RESV消息。但是,TE也可以使用其他RSVP消息。TE主要使用这些其他消息来表示已发生问题。
PathTear: PathTear消息与PATH消息非常相似,不同之处在于,它是在头端路由器要发信号表示应拆除TE LSP时(例如,在管理员关闭隧道接口之后)发送的。
ResvTear: ResvTear消息与RESV消息非常相似,不同之处在于,它是由尾端路由器在响应PathTear消息的接收中发送的。
PathErr: PathErr消息实际上是在朝向前端路由器的方向上发送的消息。发送此错误消息的最常见原因是TE LSP使用的链路已断开。LSR可能还会收到带有伪造信息的PATH消息。
ResvErr: ResvErr消息在尾端路由器的方向上发送。