MPLS TE CBR仲裁法则

在SPF中(OSPF和ISIS),到同一目的地可以有很多跳代价相同的路径,这里被称为Equal-cost multiPath. ECMP.
但是,在CSPF中,一定要理解清楚的概念是,CSPF并不是要计算到所有可能的目的地的所有最佳路径,对于一个目的地只有一条路径。
但是如果遇到了有相同耗费的等价路径,CSPF是如何进行仲裁的呢?
下面是CSPF遇到了等价路径以后的仲裁方法:
1,选择拥有最大的预留带宽的路径。
2,如果二者仍然相同,选择具有最小跳数的路径。(路径中三层设备的个数)
3,如果仍然相同,随机选择一条.
PS:这里随机也不会是真正的随机选择,是指的如果都一样,那么选择PATH列表置顶的路径。
下面来一个实际的例子,来真正说明CSPF的工作:

要求:需要建立一条从RTA到RTZ带宽为10MBits的隧道.
这里可以看到图中,每一条路径的预留带宽都满足需求,100M/80M/90M/90M/90M.需求只需要10MB的带宽就被满足。
下面一个列表把RTA到RTZ所有的路径的属性都罗列出来:

在这里,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命令。

在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的建立目的就是选择更好的路径,所以显示路径在一些复杂庞大的网络中也是很有必要的,如果你想指定一条路径。
下面会解释到如何创建一条显示路径,如何用命令进行故障排查:

以前我们创建隧道都是通过dynamic的方式来建立隧道的,对隧道的可控性不好,因为隧道自动建立以后,我们要想,为什么是这条路径?如果想找到原因,那么就要进行比较很多参数。
但是现在,在R2上面建立了一个TE隧道要到R6,在这个简单的拓扑中只有两条路径,假设红色的路径隧道跳数和耗费要大些,但是实际带宽要大很多,符合我网络设计的首选链路。那么我就收工指定红色链路为主链路,当红色链路失效以后,再用绿色链路作为备用。
在R2上面的实际配置为:
ip explicit-path name HANK enable                                     
next-address 2.1.1.2                                                  
next-address 3.1.1.2                                                  
next-address 5.1.1.2                                                  
next-address 6.1.1.2                                                  
                                                                      
ip explicit-path name Hank-backup enable                              
next-address 2.1.1.2                                                  
next-address 4.1.1.2                                                  
next-address 6.1.1.2                                                  
                                                                      
interface tunnel 0                                                    
ip unnumbered loopback 0                                              
tunnel destination 10.1.1.2                                           
tunnel mode mpls traffic-eng                                          
tunnel mpls traffic-eng autoroute announce                            
tunnel mpls traffic-eng priority 7 7                                  
tunnel mpls traffic-eng bandwidth 1024                                
tunnel mpls traffic-eng path-option 2 explicit name HANK              
tunnel mpls traffic-eng path-option 3 explicit name Hank-backup       
tunnel mpls traffic-eng path-option 10 dynamic                        
no routing dynamic                                                    

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

当然这里还可以对知识点进行引申的是,在一个隧道配置下面可以有多重路径的选择,优先级就是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显示路径如何建立?


============================================================
 

posted @ 2020-04-28 05:43  cyrusxx  阅读(134)  评论(0编辑  收藏  举报