骨干网是属于当仁不让的大型网络,所以骨干网内使用的技术也就要比局域网复杂一些。

 

除了局域网内常用的二层技术VLAN、Trunk,三层技术OSPF、静态路由,骨干网还包含一些链路监测技术,IP监测技术,还有交换路由技术内比较难以掌握的BGP、MPLS VPN等高级技术。

 

掌握骨干网高级技术!_MPLS

 

你可以把局域网理解为是你家所在的小区,把骨干网理解为是城市道路或者高速公路。一般来说,小区里面供汽车走的路基本都比较窄对吧?但是如果你把城市道路也修得那么窄?你那城市那不天天堵车啊?那些人不天天骂人啊?


掌握骨干网高级技术!_MPLS _02

 

 

掌握骨干网高级技术!_MPLS _03

骨干网如何传递路由

 

第一个,骨干网因为范围大,承载的业务量多,所以路由在骨干网内传递的时候,你不可能让它完全收敛,因为那也是不可能的。所以,骨干网内传递路由,使用的协议是BGP。

 

BGP(Border Gateway Protocol,边界网关协议)是一种外部网关路由协议,该路由协议可以用于AS之间的路由传递。BGP与IGP相比有一个不同点:IGP着重与发现和计算路由,用于路由收敛;但是BGP的主要功能是路由的传递和最优路径的选择,并不负责路由收敛。所以,再AS内部需要将路由收敛好了以后,才能用BGP传递出去,这样才能达到全网互通的效果。

 

BGP有着如下特点:

✔ BGP是一种增强型的距离矢量路由协议;

✔ BGP有可靠的路由更新机制,BGP邻居的建立需要建立TCP连接;

✔ 支持CIDR和VLSM,有非常丰富的Metric度量方法;

✔ 从设计上就可以避免环路;

✔ 有灵活多变的路由策略和路由过滤方法。


如图所示的两个AS(自治系统autonomous system,简称AS)内,AS1可以选择OSPF,AS2可以选择EIGRP,它们之间是相互不干扰的,但同时,AS1内的路由和AS2的路由默认是不会相互传递的。但是互联网又需要全网通信呢?如何让AS1内部的路由和AS2内部的路由相互传递呢?这里就必须事先说明以下:AS内部使用的路由协议和AS之间使用的路由协议是不一样的。

 

掌握骨干网高级技术!_MPLS _04

 

在一个AS内部运行的路由协议称为“内部网关路由协议”,简称IGP。IGP包括静态路由、RIP、OSPF、EIGRP、IS-IS等,它的功能着重于发现路由与计算路由,负责网络的收敛。


在AS之间运行的路由协议称为“外部网关路由协议”,简称EGP,目前有且仅有一种外部网关路由协议,就是BGP。

 

所以说,在一个AS内部,使用IGP将网络收敛以后,再通过BGP传递给其他的AS,就可以实现以下两个需求了:

 

1.网络可以快速有效的收敛;
2.可以让一个超大网络(例如Internet)的所有路由器都获得全部路由。

 

学过OSPF的朋友可能知道,OSPF中有ASBR(自制系统边界路由器)的说法。OSPF中的ASBR指的是一台路由器既运行了OSPF又运行了其他路由协议,即AS是用路由协议进行区分——一个AS里只运行一个路由协议。可以说,OSPF中的AS概念是非常模糊的。

 

但是BGP里面的AS不同,BGP里的AS指的是网络的收敛范围。在一个AS内部可以用多种IGP,只要能收敛即可,BGP的AS是一个相对清晰的概念。

 

每个BGP路由器都只能属于一个AS,不同的AS用AS号码来进行区分。这个AS号码是有IANA进行分配的。AS号码的长度是2个字节,即十进制的范围是1—65535。其中1—64511为公网的AS号码,只能用于互联网,并且全球唯一;64512-65535为私有的AS号码,可以被企业重复使用,但是不能传递到互联网。

 

这类似与公网IP地址与私有IP地址,如果一台使用私有IP地址的电脑想要访问Internet,需要用NAT将私有IP地址转换为公网IP地址;而使用了私有AS号码的BGP路由器要与公网AS号码的BGP路由器建立邻居,需要使用BGP内的特殊技术,即过滤掉私有的AS号码。

 

需要注意的是:一台BGP路由器只能属于一个AS。

 

掌握骨干网高级技术!_MPLS _05

骨干网在划分BGP的AS

 

 

目前骨干网在划分BGP的AS时,大部分都会采取如下思路:分级划分,层次包围


分级划分这个概念比较容易理解,我们以一个省内的骨干网为例:

 

1.省级的骨干网为一级骨干网使用的AS号码,都会采用100的倍数。例如AS 65100,AS 65200;

 

2.地区级的二级骨干网使用的AS号码,可能根据电话区号也可以根据车牌顺序。


比如,贵州省级骨干网的AS号码是65100,那么根据电话区号的排列顺序,依次是贵阳0851,遵义0852,安顺0853……,于是,AS号码便可以做这样的分配:贵阳 AS 65101,遵义 AS 65102,安顺AS 65103……

 

3.那么层次包围又是什么意思呢?那就是一级骨干网在中心的位置作中枢,然后下挂二级骨干网。二级骨干网必须和一级骨干网互连,二级骨干网之间没有直接联系。

 

掌握骨干网高级技术!_MPLS _06

 

BGP是需要建立手动邻居后才能传递路由的,在建立BGP邻居的时候,如果两个运行BGP的路由器,用的是相同的AS号码,那它们之间建立的邻居就叫做iBGP邻居;反之如果两个运行BGP的路由器,用的是不同的AS号码,它们之间建立的邻居就叫做eBGP邻居。

 

掌握骨干网高级技术!_MPLS _07


掌握骨干网高级技术!_MPLS _08

 

掌握骨干网高级技术!_MPLS _09

骨干网的路由隔离与传递

 

 

先说一下这个场景:

 

掌握骨干网高级技术!_MPLS _10

 

在这个图上,客户站点1要和客户站点3交互路由,客户站点2要和客户站点4交互路由。


但是呢,客户站点1和客户站点2存在10.112.10.0/24路由冲突的问题。这个时候,肯定不能把路由直接发给骨干网,否则一定是通信故障。

 

要解决这个“路由重叠”的问题,其中一个解决方案就是“V PN,虚拟专网”。但是使用V P N的话,如果直接让客户站点1和客户站点3建立,客户站点2和客户站点4建立。对这几个客户站点来说,未免太复杂了一些,这会大大降低客户的体验值。

 

而且,让客户直接在出口站点上建“V PN”,也是一种“静态的V PN”,无法根据变化多端的骨干网环境及时作出调整。

 

所以,为了解决客户的易用性问题,同时又能解决地址重叠,IP冲突的问题,MPLS V PN技术就应运而生了呗。MPLS V PN解决了三个问题

 

掌握骨干网高级技术!_MPLS _11

 

等会!不是BGP还没说完,怎么又说到MPLS V PN上了呢?

 

实际上,要实现MPLS V PN,还真的就需要BGP,而且还是iBGP呢!为什么呢?这里捷哥一点一点的给大家解析出来。

 

先说第一个,重叠的路由如何隔离的问题。

 

路由要实现隔离,使用的是一个技术,VRF( Virtual Routing and Forwarding )虚拟路由转发表,华为和H3C把它叫做V PN-instance。每个VRF可以理解为一台虚拟逻辑路由表,每个VRF内,维护一个和其他VRF逻辑隔离的路由表。

 

掌握骨干网高级技术!_MPLS _12

 

当路由从一个不带VRF的设备传递到带VRF的设备,并成功进入到对方的VRF路由表后,就会变成这个样子。看下方的图:

 

掌握骨干网高级技术!_MPLS _13

 

掌握骨干网高级技术!_MPLS _14

 

OK,地址重叠和冲突的问题,用VRF就可以解决。但是下面要解决的一个问题,路由在骨干网中用什么协议传最好呢?

 

首先大家要明白一个道理:骨干网中路由数量多,又有VRF来进行业务区分,而且这些VRF还要相互隔离,保证一个相对的“私密性”。所以,骨干网中最佳的路由协议是BGP,而MPLS标签功能正好也可以起到V PN隧道封装的功能。

 

掌握骨干网高级技术!_MPLS _15

 

当路由传递到带VRF的PE设备上时,都会在路由前部插入该VRF所配置的RD值,从而变成V PNv4路由前缀。而进入VRF的路由,也被称为“私网路由”。

 

私网路由要通过BGP,从一个PE设备传递到另一个PE设备,并且保证不会被传递错误(也就是不会从VRF A传递到VRF B里面去),就需要给私网路由打上一个标记。这个标记就是RT(Route-TAG)。

 

掌握骨干网高级技术!_MPLS _16

 

RT值的格式和RD一样,但是性质完全不一样。RD是用来区分不同VRF内的路由的,而RT是BGP的扩展Community属性。

 

同一个VRF的路由,要在PE之间正确被传递,必须满足下图的条件:

 

掌握骨干网高级技术!_MPLS _17

 

简单的说,在骨干网并且跑MPLS V PN的环境中。不同的网络业务放在不同的VRF内,由RD值负责防止路由冲突,由RT值负责PE-PE之间的路由传递。这样,让不带VRF的CE设备接入骨干网时,只要选择好业务,接入到PE相应的VRF接口上就可以了。用户不会感知到VRF的存在,这样,也大大提升了用户对网络的体验感。

 

而且,骨干网内的标签交换转发功能,也大大提示了数据的传输效率。

 

关于这些技术细节,在正文里面会详细说明。但是有一句话可以对大家说的是:

 

掌握骨干网高级技术!_MPLS _18