路径计算组件
IS-IS和OSPF通过SPF计算出到达网络各个节点的最短路径。MPLS TE则是使用CSPF算法计算出到达某个节点的最优路径。CSPF(Constrained Shortest Path First)是带有约束条件的SPF算法,从SPF算法衍生来的。
相关概念
概念 |
说明 |
---|---|
隧道带宽 |
隧道的带宽值,需要根据隧道要承载的业务进行规划,隧道建立时,将根据这个值在隧道的沿途进行带宽预留,从而为业务提供带宽保证。 |
亲和属性 |
亲和属性是描述TE隧道所需链路的32位向量值,在隧道的首节点来配置实施,需要和链路管理组联合使用。 为隧道配置亲和属性后,隧道在计算路径时,会将亲和属性和链路的管理组属性进行比较,决定选择还是避开某些属性的链路。隧道选路时,必须同时满足下面两个条件:
其中,IncludeAny=亲和属性与掩码相与;Exclude-any=(-Include-any)与掩码相与;链路管理组属性=链路管理组与掩码相与。 其比较规则如下:
说明:
不同厂商实现的管理组和亲和属性的比较规则可能有所不同,当在同一网络中使用不同厂商的设备时,需要事先了解各自的实现方式,以保证不同厂商设备间能够互通。 对于部署MPLS TE隧道的网络管理员来说,可以将链路管理组和隧道亲和属性配合使用来达到控制隧道路径的目的。 |
显式路径 |
在CR-LSP建立时由用户手工指定其必须经过(或避开)指定的节点,这个在MPLS TE中称为显式路径。显式路径可以分为如下两种:
|
跳数限制 |
跳数限制值作为CR-LSP建立时的选路条件之一,就像管理组和亲和属性一样,可以限制一条CR-LSP允许选择的路径跳数不超过某个值。 |
CSPF算法的计算依据
CSPF有两个计算依据:
待建立隧道的隧道属性,这些都在隧道的入口处配置;
流量工程数据库TEDB。
如果网络中不配置IGP TE,就不能形成TEDB。这种情况下生成的CR-LSP是由IGP路由得到的,而不是CSPF计算出来的。
CSPF算法的计算过程
CSPF的计算过程如下:
针对待建立隧道的隧道属性,先对TEDB中的链路进行裁剪,把不满足属性要求的链路剪掉;
再采用SPF算法,寻找一条到隧道目的地址的最短路径。
缺省情况下,CSPF在计算路径时预先采用OSPF协议生成的TEDB来计算CR-LSP的路径。如果根据OSPF的TEDB计算出路径,则不会再根据IS-IS协议的TEDB数据计算。如果根据OSPF的TEDB数据计算失败,则根据IS-IS协议的TEDB数据再次计算。
用户可以根据需要设置CSPF优先采用IS-IS协议生成的TEDB来计算CR-LSP路径;如果计算失败才采用OSPF的TEDB数据再次计算。
CSPF在计算路径的过程中,如果遇到多条权值相同的路径,将根据策略选择其中的一条。这个过程称为仲裁(tie-breaking)。可用的仲裁策略有:
Most-fill:选择已用带宽和最大可预留带宽的比值最大的链路,使链路带宽资源高效使用;
Least-fill:选择已用带宽和最大可预留带宽的比值最小的链路,使各条链路的带宽资源均匀使用;
Random:随机选取,使每条链路上的LSP数量均匀分布,不考虑带宽因素。
在比率相同的情况下,比如没有利用保留带宽,或者利用的份额都是一样,此时不管配置的是least-fill还是most-fill,选择的是首先发现的链路。
CSPF与SPF的区别
CSPF是专门用于MPLS TE路径计算的算法,它与一般的SPF算法相差不大,但又有几点区别:
CSPF只计算到达隧道终点的最短路径,而SPF需要计算到达所有节点的最短路径。
CSPF不再使用简单的邻居间链路代价作为度量值,而使用带宽、链路属性和亲和属性作为度量值。
CSPF不存在负载分担,当两条路径有同样的属性时还有三种仲裁方法。