MPLS TE 知识要点
0.什么是TE
相对于网络工程而言流量工程是网络投入生产之前的最后一环
MPLS Traffic Engineering Tunnel(单向tunnel)
作为网络资源优化的工具
1.MPLS TE在网络中部署的必要性
(1)数据网络的超额定购,网络中最优路径未必是最好路径
->传统IP解决流量工程方面的不足
-调整cost 缺点:牵一发而动全身
-EIGRP 缺点:私有协议
-PBR 缺点:不可以重路由(对故障不感知);扩展性不好(可能需要整个路径上做部署)
路由器选路原则:
1、PBR route-map下做set ip next-hop
2、路由表 最长匹配选择
3、给予策略的默认 route-map下做set ip default
4、默认路由
(2)与QOS不同,TE通过对流量或者是部分流量的控制来避免链路过滤,充分利用链路
因为网络中某些情况下最优路径并不是唯一路径
因为网络中某些情况下最优路径并不是最好路径
(3)TE的负载使用的是基于源的路由,而不是基于目的的IP地址的路由
MPLS TE是单向隧道,不用源目都配置,只要源方配置就行了
2.MPLS TE的三大组件
(1)MPLS
(2)CBR(基于约束的路由)
(3)RSVP(CR-LDP)
关系:
ERO
CBR(CSPF)---->RSVP---->MPLS
1.> MPLS的讲解(是MPLS的TE,而不是IP的TE)
2.> CBR的讲解 基于约束的路由,可以依据某些条件去选路,例如链路的可用带宽
--2-1.什么是CBR(只OSPF/ISIS对MPLS TE的支持)确定tunnel的建立路径
一、普通的链路状态协议选路依据的参数(SPF)
----三元组:节点 cost 下一跳
二、CBR为支持MPLS TE对普通链路状态协议的扩展(CSPF)
------相对于三元组添加的参数------
>.OSPF的3个新增的LSA(LSA9 / LSA10 / LSA11)
---show ip ospf database opaque-area
LSA9
LSA10 Area-local scope 只在本区域洪
LSA11
>. ISIS的2个新增的TLV(TLV22 / TLV 134 /TLV135)
---show isis database verbose
---show isis mpls traffic-eng advertisement
CBR可通告链路状态信息,扩展后还通告可用带宽!
三、CBR在什么情况下会泛洪TE的信息
>.链路状态发生变化
---如接口up/down,以及ospf的周期性泛洪30s / isis的周期性泛洪15s
>.配置变化
---如修改tunnel中的带宽要求
>.周期性泛洪
---TE信息的泛洪周期默认是3分钟。这个时间全局修改
mpls traffic-eng link-management timer periodic-flooding *
>.预留带宽发生变化
---即当预留带宽消耗多少的时候泛洪出去,接口命令调整
interface s1/0
mpls traffic-eng flooding trresholds down/up 百分比
>.在隧道设置失败之后
>.RSVP预留带宽的改变
2-2.影响CBR为TE选择tunnel路径的方式
一、接口预留带宽
1.按priority的可用带宽 预留的带宽够的话,就比tunnel的priority值
2.sub-pool对DS-TE的支持
1、priority:
Setup 优先级 tunnel 建立初起效 Hold 优先级 建立后保持的级别
默认都是7级 数字越高优先级越低
eg:
setup hold
tunnel A 6 7
tunnel B 6 7
比较的时候是交叉比较哦,即(B)6 和 (A)7比 ,如果是先建好A,A起来后,再建B
这时,B的setup priroty比A的hold priroty低,所以B可以抢A的位置,但是,此时B的hold 又小于A的setup
因此就产生了翻动了!
为了防止这种现象,默认只能hold<=setup priroty
2、sub-pool
建立sub-pool来预留带宽,其实是从全局预留的带宽分出来的,这样全局预留带宽就变小了
不过默认全局的预留带宽优先级高于sub-pool,如果预留的带宽不够,可以用sub-pool里的带宽
反过来,sub-pool预留的带宽不够用,是不能调用全局的!!
(if)#ip rsvp bandwiths sub-pool 5000 即从全局分5000出来,假设全局剩下2000
(tunnel)#tunnel mpls traffic-eng bandwiths sub-pool 6000 即使全局还剩下2000,tunnel还是起不来的哦!!
but:
(tunnel)#tunnel mpls traffic-eng bandwiths 6000 就起得来咯!!
二、亲和(affinity)及接口属性标记
亲和值:
(tunnel)#tunnel mpls traffic-eng affinity 9 mask f
三、TE COST接口参数
默认情况下是用TE是cost值来标识tunnel的weight
默认情况下TE cost 和IGP cost是一样的
可以基于接口下配置,改变cost
(if)#mpls traffic-eng administrative-weight xxx
改基于IGP 还是 TE 的COST值
(tunnel)#tunnel mpls traffic-eng path-selection metric igp/te
进行CSPF算法,每个设备接口都有一个TE cost,默认等于IGP cost,可以通过mpls traffic-eng administrative-weight 参数进行修改,会对TE tunnel的建立产生影响。通过在tunnel接口下配置tunnel mpls traffic-eng path-selection metric igp/te
四、IGP的cost值
牵一发而动全身,不是好的方式
五、亲和值及接口属性标记
affinity.mask=attribute.mask
改亲和值:
interface tunnel 0
tunnel mpls traffic-eng affinity 十六进制的数值 mask 正掩码(也是十六进制,换成二进制1表示严格匹配)
配接口属性:
interface s1/0 在tunnel的各个出接口配置
mpls traffic-eng attribute-flags 十六进制的数值
affinity和mask做“与”运算,如果等于attribute-flags和mask做“与”运算的结果,则流量可以通过
eg: affinity =9 mask=f 如果流量要通过 attribute-flags=9 或者 f9 等等
因为 attribute:1001(9) 11111001(f9)
flags: 1111 1111
与: 1001 1001
五、仲裁法则 (如果以上条件都一样)
最大的最小可用带宽
最少跳数
任意选择一条
3.> RSVP的讲解 (预留带宽和分配标签)
3-1.RSVP是什么样的一个协议
一、InterServ信令协议,RSVP本身不需要参与选路
二、为某个应用预留它所需要的资源
->.Netmeeing 和voip
->.MPLS TE
配置好后本身不工作,除非有网络应用去触发
三、WFQ对RSVP支持的必要性
注意要在主接口下配置,不能在子接口下配置WFQ,子接口没有队列机制
四、RSVP为TE保证带宽出口方向有效