作者:manjusri
最后讲一下MPLS/TE,这是整个MPLS网络架构基础,但是以技术为主,涉及业务较少,所以放在最后提一下,这个技术完整的本身是比较复杂的,所以李(劲松)大师的MPLS江湖恩仇录才会那么受欢迎和推崇,这个复杂糅合了OSPF/ISIS/BGP这些复杂的路由协议,以及跨域等等,虽有意思,但不好玩,当然有很多书讲这个东西,我基本上没怎么看过,因为我曾经看的时候我还不懂,很糊涂,所以基本上没有留下什么印象,所以有限的知识都是在有限的实践中的一点积累。
先简单说一下MPLS,为什么要MPLS,是因为路由域和量不断增大带来的麻烦太多,有两个问题:一个是路由域的问题,一个是IP QOS没有面向连接的问题。大家就想减少这些麻烦,方法是借鉴传统的面向链接的技术,增加面向连接的QOS;减少路由在核心域PE/P上的扩散,把承载和接入的路由分离开,这个和ATM很像,所以早期主要是从ATM交换机开始做MPLS,当然,现在早就完全脱离了ATM。MPLS面向连接的QOS和减少路由的好处,认可程度有限,以致早期那么多FEC,后来还是只剩下基于路由的FEC了,MPLS之所以能发展得那么好,在早期就是得益于L3VPN这个killer,虽然因为路由域的原因带来了复杂的三个option的inter-AS,但瑕不掩瑜。L3VPN有效的隔离了路由,增加了网络的安全性,在现在仍然是主流的VPN技术,至于面向连接可以带来的QOS的好处,并没有引起更多的关注,也很少有人去关心什么L-LSP/E-LSP的区别。
在MPLS获得成功好,大家在考虑路由优化的问题和MPLS原来没有解决的面向连接的QOS保证问题,所以TE技术很快就开始和MPLS融合,称为MPLS TE。
如何定义MPLS TE?我的定义是MPLS TE是一种提供精确路由控制下的面向连接的QOS保证的具有HA的技术。三个特点:
(1) 首先是提供精确控制的路由路径,之前的IGP/.BGP包括基于路由的LDP,只能根据有限的几个路径metric控制流量的路径,最多强制做一下PRB,这种路由架构在复杂网络情况下会出现左支右绌的情况,使路由CCIE成为这个时候的抢手货。TE首先是要解决这个问题,通过引入动态的带宽参数已经更多的链路属性,比如链路的color,比如C的SLRG来防止光纤共bundle问题等,在这个功能上,在实际的路由规划中的一些场景确实是需要的,因为我们在做路由规划的时候很难做到精准的未来预测,所以在网络建设完毕后的运行中就可能出现要做一点点优化,这在一个复杂一点的路由metric设置中,更高metric是非常麻烦的事,路由是路由器的基础,这个一点点变动都可能产生不好预料的蝴蝶效应,客户希望是这个变动的影响越小越好,要可控,而TE正好提供的这个功能,当然付出的代价是很大的,尤其是控制平面,需要对IGP做TE扩展,需要新的路由计算模块,这对已有路由是一个大手术,不是小手术,医保福利并不总是那么容易,像这种手术就不在医保范围,免费的午餐是有限的,支持TE设备的价格当然要和不支持的有区别,客户要考虑是否值得吃这顿不免费的午餐。
(2) 面向连接的带宽保证:MPLS提供了面线连接的路由,但在提供真正的有QOS保证的连接上是难以继续发挥作用的,所以TE来了,方法就是在建立TE TUNNEL/LSP的时候在每个经过的节点进行带宽申请,选择最合适带宽需求的路径建立tunnel,那么此时是否还需要做QOS调度的保证呢?需要的话要到什么粒度呢?还是需要的,当然如果做到每个节点上的每个tunnel都做QOS调度最好,但实际实现中,可以不这样做,只在PE节点的ingress做基于tunnel的QOS,而在中间P节点还是做differ-serv,因为在带宽请求的时候对中间节点已经对申请的带宽类型做了处理,所以可以保证这种类型带宽的的质量。在这种带宽模型处理中,有3个基本型还有一些变种,比如俄罗斯木偶什么的,次次记次次忘,可见TE的这个特性实际应用有限,这个模型的复杂不一定是大问题,重要的是不好处理TE流量和非TE流量的带宽共享问题,当然全业务TE可以一定程度上解决这个问题,但是如果要提供这样精确的带宽保证,还是要付出带宽效率的代价,并且带宽的限制条件,对路由的灵活调整,尤其是手动调整,又带来很多麻烦,当然,如果有一个非常好的网管能解决很多问题,但是TE作为美妙的技术,在商用之初是很少去考虑网管问题的,这是思科给IP定下的通病,即使现在,在TE这个特性方面,也没有很好的网管,这个特性,是TE三个特性中最不常用的一个。
(3) 最后一个是TE的HA功能,主要是FRR和hot standby,FRR用于解决局部的可靠性:链路/节点,可以自动也可以手工,各有利弊。Hot standby用于解决E2E path的可靠性,比如路径上有同时两个故障的时候,一般来说是非常罕见的,还有TE protection group做TE隧道间的保护,功能和hot standby类似,区别是这里的备份是TE TUNNEL间的备份,以为着备份隧道是可以有带宽保证的,而hot standby是基于一个TE TUNNEL内两条LSP间的备份,备份LSP可以做路由约束,但不能有TE的带宽保证,虽然看起来TE protection group要美一些,但是因为消耗TE tunnel资源过多,已经一些比hot standby复杂一些的原因,比如一些实现需要MPLS OAM配合,还有上面提到大家并不CARE TE本身的带宽分配保证技术,所以hot standby比protection group用得要多得多。这里备份还涉及1:1和N:1,以及在hot standby的时候,如果对备份LSP做了explicit路径限制,那么在一些组网情况下还需要逃生路径,同时需要注意的是TE的HA技术并不能提供头节点PE的保护,要做到这个,需要VPN相关的甚至CE相关的VPN可靠性方案,比如PW REDUNDANCY,VPN FRR, MC-APS, MC-LAG, E-VRRP等等,同时,快速故障检测BFD/OAM,也是一个必要的基础,那么整个方案部署下来,这一套东西是相当的累人,以致成了俗套鸡肋,讲多了都开始不相信这套方案的必要性了。所以这里,思科作为路由起家的在路由方面最强的vendor,较早的做了路由快速收敛技术,包括IGP/BGP/IP FRR,具体有增量路由计算、路由下一条分离、BGP独立选路、可选路由优先等一些内容,虽然也不那么简单但还是比上面简单了不少,当然,一些局限也必不可少:IP FRR的环路问题、性能在sub second级别、和LDP/RSVP同步困难、同样不能单独做头节点保护等问题。所以具体是用TE HA还是路由快速收敛,甚或同时支持,要具体对象具体选择了。里面还有一个LDP FRR的技术,用的更少,所以也没仔细去了解其来龙去脉,相比是不大好用,HA的东西太多了,影响大脑运作,索性忘了算了。
ALU新ME的核心部分终于完成了,累了,休息一下。
下一章收收尾,然后要谈点新东西了,别忘了最后的谢幕主角是why L3。