Technorati 标签:

本文档关键知识点:
CSPF选路原理
对CSPF路径选择有影响的参数
MPLS TE显示路径如何建立?

CSPF--constrained SPF(shorest path tree).是MPLS TE路径选择的核心,前面我们已经知道,MPLS TE的功能是:

1,信息的发布 2,路径的计算和建立 3, 隧道中的流量转发。
在了解了CSPF的工作原理以后,其实就是对路径的计算和建立有了原理性的认识,对于以后MPLS TE的网络规划和故障排查都有一定的帮助.

在已经了解了SPF的路径选举方法以后,该文档会慢慢阐述CSPF的工作原理。

我们已经了解到SPF的三元组,{目的,耗费,下一跳}.

在CSPF中(constrained SPF)中,还增加了三个元素。

■带宽---bandwidth

■链路属性---attribute-falgs

■管理权重---administrative-weight.

在CSPF中,和SPF类似,也有PATH list表,和TENT列表,不过这里还需要加上可用带宽。

最后列出的属性格式为:

{链路,代价,下一跳,可用带宽}

{link,cost,next hop,availbable bandwidth}

下面来一个拓扑图,和SPF的拓扑一样,不过加上了TE的预留带宽。

clip_p_w_picpath002

其实,计算方法和SPF差不多,只不过把预留带宽加进来了,下面就是路由器A的CSPF计算结果。

最后在A上面会得出一张到每个路由器的TE的最短路径。

clip_p_w_picpath004

在上面这个例子里面,全部都是最简配置。只把预留带宽加进来了。实际的CSPF路径计算远比现在要复杂得多,还有属性标示,隧道优先级,以及更多的仲裁方式。

在理解了上面的计算原理以后,下面会加入一些新的元素和复习一些以前已经学习过的零散的理论,然后最后汇总成本文档的主题:CSPF路径计算和选择原理。

SPFOSPFISIS,到同一目的地可以有很多跳代价相同的路径这里被称为Equal-cost multiPath. ECMP.

但是,在CSPF中,一定要理解清楚的概念是,CSPF并不是要计算到所有可能的目的地的所有最佳路径,对于一个目的地只有一条路径。

但是如果遇到了有相同耗费的等价路径,CSPF是如何进行仲裁的呢?

下面是CSPF遇到了等价路径以后的仲裁方法:

1,选择拥有最大的预留带宽的路径。

2,如果二者仍然相同,选择具有最小跳数的路径。(路径中三层设备的个数)

3, 如果仍然相同,随机选择一条.

PS:这里随机也不会是真正的随机选择,是指的如果都一样,那么选择PATH列表置顶的路径。

下面来一个实际的例子,来真正说明CSPF的工作:

clip_p_w_picpath006

要求:需要建立一条从RTARTZ带宽为10MBits的隧道.

这里可以看到图中,每一条路径的预留带宽都满足需求,100M/80M/90M/90M/90M.需求只需要10MB的带宽就被满足。

下面一个列表把RTA到RTZ所有的路径的属性都罗列出来:

clip_p_w_picpath008

在这里,Path-1不会选,因为路径代价比其他路径要高。

Path-2也不会选,Path-2的最小预留带宽是80M,比其他路径的预留带宽要小。

Path-3也不会选,Path-3跳数比4和5要多出一跳。

最后,路由器A会根据TENT列表的选项,会选出Path-4或者是path-5的一条链路作为隧道的链路,至于会选哪条,选择的依据是哪条在TENT列表的顶部就选哪条。

其他还有哪些因素会影响隧道的选择呢?

前面的日志中已经解释了一些隧道的属性。例如,属性标示,attribute-flags,如果属性标示和亲和/掩码不匹配,那么隧道是不会选择该路径来建立MPLS TE的。

管理权重administrative-weight,weight小的优先。使用命令mpls traffic-eng administrative-weight 0-4294967295.

隧道优先级通过调整隧道优先级来确保重要TE对带宽的抢占优先权。

说了那么原理,现在是时候把理论结合实践的时候了。

CSPF只是一个选录的概念,一个原理,如何在TE隧道中调节呢?

CSPF的调节:

■在首段进行path-option的调节。

■各种CSPF的定时器.

■CSPF的各种ping命令。

clip_p_w_picpath010

在TE隧道建立好以后,可以看到IOS自动在tunnel0下面添加了图中高亮部分的命令。

tunnel mpls traffic-eng path-option 1 dynamic.

实际上path-option就是在首段影响MPLS 隧道的,使用path-option,可以按顺序指定隧道建立时可以尝试选择的一条或者多条路径。

因为命令tunnel mpls traffic-eng path-option 1 dynamic是以dynamic结尾的,其实对于庞大复杂的网络是一个不错的选择,但是,因为TE的建立目的就是选择更好的路径,所以显示路径在一些复杂庞大的网络中也是很有必要的,如果你想指定一条路径。

下面会解释到如何创建一条显示路径,如何用命令进行故障排查:

clip_p_w_picpath012

以前我们创建隧道都是通过dynamic的方式来建立隧道的,对隧道的可控性不好,因为隧道自动建立以后,我们要想,为什么是这条路径?如果想找到原因,那么就要进行比较很多参数。

但是现在,在R2上面建立了一个TE隧道要到R6,在这个简单的拓扑中只有两条路径,假设红色的路径隧道跳数和耗费要大些,但是实际带宽要大很多,符合我网络设计的首选链路。那么我就收工指定红色链路为主链路,当红色链路失效以后,再用绿色链路作为备用。

在R2上面的实际配置为:

clip_p_w_picpath014

最后,在R2上面,对原有的隧道进行一次重优化,得出的首选路径一定是path-option 2的Hank路径。

clip_p_w_picpath016

当然这里还可以对知识点进行引申的是,在一个隧道配置下面可以有多重路径的选择,优先级就是path-option后面的数值,从0-1000都可以进行配置。

tunnel mpls traffic-eng path-option 30 explicit name path3

tunnel mpls traffic-eng path-option 40 explicit name path4

tunnel mpls traffic-eng path-option 50 explicit name path5

tunnel mpls traffic-eng path-option 60 explicit name path6

tunnel mpls traffic-eng path-option 70 explicit name path7

tunnel mpls traffic-eng path-option 80 explicit name path8

到这里,就完成了今天CSPF相关原理和实验了。

最后总结一下,本文档解释了:

1, CSPF选路原理

2, 对CSPF路径选择有影响的参数

3, MPLS TE显示路径如何建立?