Index
1.Preface:Why & How
2.MPLS 基本概念
3.MPLS用到的协议
Preface
随着网络技术的不断发展,相应地出现了两种工程:流量工程(Traffic Engineering,TE)、网络工程(Network Engineering,NE)。形象的说,NE就是让网络硬件更强大,买更好的路由交换设备,升级更强的操作系统,优化拓扑结构;TE则是在现有网络硬件条件下,充分利用网络资源,提高网络资源的利用率(很简单,同样是屠龙刀,不是在每个人手中都能发挥出全部威力的。网络设备再好,没有优化利用,资源利用依然是不平衡、不充分的)
为什么需要流量工程?如何实现流量工程?这是必须回答的why和how的问题。
Why?
Internet 的体系TCP/IP体系,路由功能的实现都是IP路由(即所有的路由协议都是基于IP协议的。比如OSPF用的就是IP;RIP用的是UDP,BGP用的是TCP,但是TCP/UDP用的还是IP提供的服务。TCP/UDP的报文到了网络层还是得由IP协议封装)。IP路由有两个特点:a. 基于目的地址 b.基于局部优化(既是特点,也可以说是缺陷。褒奖一个人,他的特点就是优点;贬低一个人,他的特点就是缺点)
两大特点带来的问题也是显而易见的
a.基于目的地址:这个说的是路由表的问题。对于同一个目的地址,路由表中只有一条静态计算的路径(除非存在多条metric完全相同的路径),所以具有相同destination address的数据包进入了木偶个路由器,那么他们的转发路径一定是完全相同的(事实上如果通向这个目的地的流量很大,我们希望这个traffic trunk能够分流,走几条不同的链路到达destination address,避免链路拥塞。但是IP路由机制说:对不起,只要你是同一个destination address,我没那么多人性化考虑,就走我计算好的“最优路径”。事实上随着链路流量的变化,以前计算好的最优路径的利用率不断提高,逐渐饱和,最优路径早已不优)
b.基于局部优化:这个说的是路由策略问题。IP协议的特点就是best effort,尽力而为。何为尽力而为?我只要把数据包送到下一条我就完成任务了,后面的事情与我不相干(相比之下,面向连接的服务都是一路护送到目的地。一路护送的好处是可靠、安全,问题就是控制复杂,成本高。鱼和熊掌难兼得,工程上谁敢说自己两全其美,那就是骗外行)。局部优化是书上的提法(distance vector,link state的那些算法也都是基于拓扑全局计算的,用局部这个词有歧义),我觉得用“各自为战”更形象。每个节点计算路由都只考虑自己metric的最优化,而没有协调其他兄弟单位。比如A、B两个路由器计算路由表,metric计算都是C是最短距离,如果A知道B规划了大量通过C的路由,那么C的出口链路以及C本身的处理时延一定会大大增加,A是不是可以考虑走其他路径,在实际运行中也许会比走C更高效呢。I这时候IP路由机制又说了:对不起,凭什么让A给B让路?大家一试同仁,一起来争C这条出口链路。这就是局部优化或者各自为战的恶果(万恶资本主义的无序市场竞争造成生产过剩同理),如果有一个统一的管理机构,进行资源的合理分配,是不是能获得更好的效果呢?(社会主义制度的优越性,计划和市场关系之探讨。IP路由是各自为战,所以高效,但是高效的同时也带来了拥塞和混论,进而又妨害了效率的提升;流量工程是计划,是管理,引入了管理成本,让路由变得低效,但是管理保证了秩序,进而提升了效率。流量工程和IP路由没有绝对的好坏,中间有一个平衡点,要看情况使用)
IP路由的固有缺陷让网络资源利用不合理,所以需要流量工程技术。流量工程的核心就是平衡不同交换节点、路由器以及链路之间的负载,把流量进行转移,使阻塞链路的流量能够转移到没有被充分利用的链路上,提高网络资源利用率。
How?
IP层是connection-less的,所以纯IP网络是无法实现TE的。现在考虑在IP层上动点手脚,分成两大门派:
a. 传统流量工程:overlay(基于FR、ATM)。网络层技术既有connection-less的IP,也有connection-based的FR、ATM。在商业应用中,简单粗暴的IP技术击败了ATM、FR,基本实现了一统天下。当然了IP击败ATM并不是技术优势,而是成本优势。但从技术角度,ATM的功能要比IP强大的多。ATM的问题恰恰是太好了,完美。完美意味着复杂,复杂意味着贵。商业竞争是残酷的,只要能凑活用,价格优势还能俘虏一大批价格敏感型消费者的,何况IP也在各种修修补补,性能早已不止凑活用了。ATM亡于完美,技术也要解决为了谁、依靠谁、我是谁的问题呀!为了实现流量工程,IP借助于FR、ATM这些面向连接的技术,在datalink和network之间做了一层覆盖层,overlay。TE的部分由overlay实现,forward的部分还是由传统IP路由来完成。
*IP和ATM一个是connection-less,一个是connection-based,天生就是异构的,所以想借助于ATM只能用overlay技术。如果想在IP本身上实现TE,就是下面介绍的MPLS
b. MPLS流量工程:基于IP。MPLS在datalink层和IP层之间插入一个shim,通过这个shim来实现TE(这里说的基于IP是指MPLS直接服务于IP层,向上层提供服务。MPLS底层非常灵活,X.25/ATM/SDH/PPP都没问题,所以叫MP multi protocal)
现在用的流量工程技术都是MPLS技术。基于ATM的流量工程要用ATM交换机,成规模的ATM交换网在我国已经全面被淘汰了(联通、电信的骨干网上还有部分ATM技术)。
MPLS的精髓是LS,label switching,标签交换。利用MPLS技术,可以实现MPLS VPN,MPLS TE等,所以流量工程只是MPLS应用的一部分,而且MPLS也不是为了实现TE而生的。
MPLS方案是由Cisco在1996年提出的,那个时候的网络需要流量工程吗?凌晨的十字路口,需要安排五个交警执勤吗?可以有但是没必要。MPLS的特点是标签交换,标签交换的设计初衷都是为了提高转发速度。1990s,那时候路由器的查找能力低下(设备性能低下),而传统的IP路由,每来一个数据包,路由器都需要进行最长地址匹配,简直要了亲命。标签交换技术把目的地址和一个较短的label绑定,路由器只要查询标签映射就行,而不需要再进行地址匹配了,提高转发速度。包括ATM,也不仅仅是为了提高网络可靠性而生的,而是为了提高转发速度。现在设备的性能早已今非昔比了,如同ipone和大哥大的差别,路由器的查询也都用上了ASIC,所以MPLS提高转发速度的优势就不那么明显了,而实现流量工程的需要却越来越迫切。
MPLS基本概念
1.FEC forwarding equivalence class 转发等价类
# 具有相同特征的报文(相同destination或者CoS)划归为同一个个FEC,一个FEC和一个label绑定。(QoS中的优先级字段很多,比如CoS、DSCP。IPv4中只有CoS,所以这里用CoS字段是基于IP的MPLS技术工程实际情况)
# 同一FEC在LSP上的处理没有任何区别,处理方式完全相同
#现有设备只支持根据destination划分FEC
2.Label
# 20bit,只具有本地意义的一个identifier,唯一地标识一个FEC
# Exp字段可以用于兼容CoS,进而实现对QoS的支持
# MPLS和QoS是两个概念。MPLS可以通过shim中的Exp字段实现QoS, MPLS与DiffServ的原理有很多相似的地方,MPLS有着对QoS良好支持 的天生优势。但是MPLS的目标是TE,QoS只是选择性实现,MPLSQoS
3.LSR label switching router 标签交换路由器
4.LER label edge router 标签边缘路由器
5.LSP label switching path 标签交换路径
6.LFIB label forwarding information base
7.Control Plane 控制平面:标签分配、路由选择、LFIB建立、LSP的建立与拆除
Forwarding Plane 转发平面:根据LFIB和MPLS Header中的Label进行 转发
MPLS用到的协议
1.扩展的IGP协议(enhanced interior gateway protocal):IS-IS-TE,OSPF-TE
2.扩展的BGP协议:MP-BGP
3.LDP协议:CR-LDP, RSVP-TE,Segment Routing
E-IGP
MPLS的核心也是第一步就是全面准确把握网络拓扑状态,建立更合理的路由表(LSP),所以收集网络拓扑信息和建立路由表(MPLS没有传统RIB的概念,取而代之的是TED以及建立起的一条条LSP)。没有准确的网络拓扑信息,MPLS就像没有作战地图的将军,而路由拓扑信息要靠IGP协议来收集。传统的IGP并不支持MPLS,为了实现MPLS,需要对IGP协议进行扩展,即IS-IS-TE,OSPF-TE。
工程实践中用OSPF-TE多还是IS-IS-TE多呢?
OSPF-TE对TE的支持更友好,但是MPLS只在运营商骨干网层面运行。只有在骨干网级别的流量上运行MPLS才有效益,在其他层次部署MPLS得不偿失,反而增大管理开销(一单位四五十台电脑,三四个路由器,就别想MPLS这事情了)。骨干网运行的路由协议都是ISIS,城域网层面可能会用OSPF,所以实际应用中,TE搭配的都是ISIS,OSPF反而没有用武之地。
为什么骨干网用ISIS?
1.ISP网络中的路由表往往是非常庞大的,有几万条甚至上十万条路由(目前全球互联网大概有40多万条路由),在巨量路由条目的情况下,ISIS的处理比OSPF更有效率;
2.OSPF路由控制功能比ISIS丰富,标准的ISIS是没有路由过滤功能的,并且OSPF相对ISIS来说复杂很多,如有多种区域,多种协议数据包,多种电路类型。对于ISP来说,ISIS很多时候只作为一个承载BGP的IGP协议,只需要该协议简单,稳定,可扩展性好即可,ISIS符合以上需求。另外在MPLS网络里某些高级特性只有ISIS才支持;
3.ISIS是基于TLV的,OSPF不是,基于TLV的一个好处就是扩展方便。
--摘自Baidu,n手资料,出处不详,在此致谢
提问的原则总是先问是不是,再问为什么。是不是骨干网都用ISIS?手头没有具体的数据支撑,但是这么说基本上没毛病。有些运营商网络规模很大,路由的解决方案可能不是说一个ISIS或者一个OSPF这么轻松,可能是混合多种协议以及一些适当扩展,但是ISIS是主流。为什么ISIS会成为主流?上面答案1/2/3/4给出了好几条,但是我认为这只能算是解释,就像辩论赛中为了支撑我方观点而列出的1/2/3/4一样。如果双方交换观点,我照样可以列出支持OSPF的1/2/3/4一样。ISIS和OSPF之争,类似于IP和ATM之争,商业因素大于技术因素,然后又滚雪球,以至于后来者都采用较为成熟稳妥的方案。比如现在运营商成熟的路由方案都是ISIS,你当了技术主管,新项目上马,你决定用OSPF,废除太子要有充分的理由啊,东宫没有任何失德的行为,为什么要废掉?上马了OSPF,没问题则好,出了问题全是你的责任。几个亿的投入,造成国有资产流失,你负责?
一切的优缺点都不是关键,关键在于选择的人。你能签字拍板,就不缺人来帮你论证决策的合理性。论证最多挨骂,如果脸皮厚,连道德负担都不会有;拍板则是要写进历史,承担法律和社会责任的哦。