此篇梳理MPLS TE的路径计算组件以及信令协议。在IOS环境下,其实主要也就是CSPF与RSVP。之因此放在一块儿讲,其实就是在CSPF计算完成路径以后,RSVP要负责搭建LSP。二者前后逻辑明显。算法
CSPF网络
CSPF Constrained Shortest Path First是带有附加条件的SPF算法。
其多出来的约束条件为:
管理权重---TE metric
可用带宽---这个是链路的即时带宽,而非仅仅是咱们ip rsvp bandwidth宣告的那个数值
链路属性异步
CSPF不是为了发现到全部目的地路由器最佳路径而设计的,而是仅仅为了到达LSP隧道的终点。即咱们在定义MPLS TE tunnel时,那个tunnel destination。ide
TE Metric
在选择LSP tunnel的过程当中,缺省使用IGP metric来决策,一旦使用了TE metric,IGP metric就会失效。
TE metric是配置在隧道出方向的物理接口上。
全局方式下使用
mpls traffic-eng path-selection metric te设计
显示路径 explicit path
显示路径就是有一系列节点构成,相邻的节点能够有如下关系3d
interface tunnel 10
tunnel mpls traffic-eng path-option 10 explicit name CCIE
ip explicit-path name CCIE enable
next-address loose 150.1.1.33对象
interface tunnel 20
tunnel mpls traffic-eng path-optio 20 explicit name JNCIE
ip explicit-path name JNCIE enable
next-address strict 150.1.33.133blog
总结:创建mpls TE tunnel的目的,在于选择一条从源到目的而且知足约束条件的最佳路径,而非最短路径。接口
TE 的信令协议
通常MPLS TE在组件LSP的协议方面,通常都是用RSVP。像CR-LDP这种协议由于用的较少因此不在讨论范围内了。
RSVP本来是个QoS使用的协议,但做为集成QoS模型,扩展性实在较差,因此直接被丢弃。只能做为MPLS TE的一种组件LSP的信令协议来使用。ip
RSVP的三种功能
1 路径的创建和维护
2 路径的拆除
3 路径的通告
RSVP几个消息类型
Path: 用来创建和维护保留LSP
Resv: 相应Path消息,用来创建和维护LSP。
PathTear: 结构与Path类似,用于删除LSP时使用
Resv:对应于PathTear,相应PathTear,确认删除LSP
PathErr:接收到错误的Path消息发送
ResvErr:接收到错误的Resv消息后发送
一个重点就是RSVP组件的LSP,永远是单向的!因此通常的TCP会话有可能通过的是不一样的路径。这在大型骨干网络里常常可能出现不对称路由问题。
前文提到RSVP原本只是个QoS时使用的协议,在MPLS TE中,须要对其进行扩展,才能更好的支持TE。一下即是扩展的功能:
RSVP TE报文中包含的对象
Label Request:Path message中
Label: Resv message中
Explicit Path:存在Path消息中
Record Route:存在于Path和Resv message中
Session Attribute: 存在Path message中,含有重要的标志位
如下就是PATH和Reserve message的两个抓包截图。路径的维护与路径创建过程相似,因此RSVP被称为soft-state协议,每30秒,tunnel首端发送path给下游邻居。同时,下游邻居每30秒向上游发送reserve协议。注意:path与reserve message是独立异步发送的。