一、***基础。
1.***中路由器的角色。
- CE(Custom Edge):直接与服务提供商相连的用户设备。
- PE(Provider Edge Router):指骨干网上的边缘路由器,与CE相连,主要负责***业务的接入。
- P (Provider Router):指骨干网上的核心路由器,主要完成路由和快速转发功能。
2.MPLS ***。
(1)如何解决不同site连接到同一个PE后,私网路由冲突问题?
通过在PE上使用***-instance (vrf),隔离不同site的私网路由。***-instance的组成:
- 独立的路由表。
- 独立的地址空间(即冲突路由可以隔离)。
- 一组独立的路由协议(IBGP除外)。
- 一组绑定到该实例的接口。
(2)如何在不同的PE之间传递路由信息?
- 通过PE之间建立MP-BGP的邻居关系。
- 将***-instance中的ipv4私网路由,转换为***v4路由,MP-BGP传递这些***v4路由。
- ***v4路由就是添加了RD参数的ipv4路由。
IPv4地址族格式 | ***v4地址族格式 |
---|---|
192.168.1.0 | 100:1 192.168.1.0 |
- PE接收到不同***v4实例的路由,通过RD来判断这些***v4是否来自同一个***-instance。
(3)RD在规划时需要注意什么?
- 在PE上本地***-instance的RD要唯一。
- 不同PE上每个***-instance RD可以全局唯一。
- 同一个***中的所有***-instance的RD可以相同,不同***的***-instance的RD不能相同。
- 同一个***指的可以互相通信的***-instance或者是site。
- RD只能解决区分不同***v4的路由,但无法解决***中ipv4路由冲突的问题。
(4)如何将ipv4的私网路由转化成***v4的路由?
- PE可以直接将***-instance中学到的EBGP路由直接转化***v4路由。
- 将***-instacne中IGP路由引入到该***-instance的BGP表中,然后自动转化为***v4路由。
(5)当PE收到***v4路由后,如何将这些***v4路由自动的注入到本地***-instance的BGP表中?
- 通过RT来实现,***v4路由的注入。
- 路由目标,本质是BGP协议的团体属性,在***v4中称为RT。
(6)RT的特点?
- RT分为:export-rt和import-rt。
- 每个***-instance可以配置多个ERT和IRT。
- ERT发送***v4路由时携带。
- IRT接收***v4路由后,根据***v4路由携带的ERT做匹配,如果匹配则接收该***v4路由,并自动引入路由到匹配的***-instance的BGP表中。
(7)RT的组网规划?
由于每个RT Export Target与import Target都可以配置多个属性,所以可以实现非常灵活的***访问控制。如下:
(8)转发问题,当PE从网络侧收到私网的业务报文时,如何判断使用本地哪个***-instance的路由表执行私网报文转发呢?
- 在PE传递***v4路由时,由MP-BGP协议为本地的所有***v4路由分配一个本地唯一的私网标签。
- 将私网标签和***v4路由以及ERT,next-hop传递给PE邻居。
- 私网标签:用于PE从网络侧收到私网报文,根据私网标签判断该报文用本地的哪个***-instance路由表执行转发,MP-BGP产生。
- 公网标签:用在私网报文在公网的LSP中进行转发,LDP协议负责生成,即为BGP路由的下一跳创建LSP即可。
二、BGP/MPLS IP ***基本原理。
1.私网标签分配。
在BGP/MPLS IP ***中,PE通过MP-BGP发布私网路由给骨干网的其他相关的PE前,需要为私网路由分配MPLS标签(私网标签)。当数据包在骨干网传输时,携带私网标签。PE上分配私网标签的方法有如下两种:
- 基于路由的MPLS标签分配:为***路由表的每一条路由分配一个标签。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。
- 基于***实例的MPLS标签分配:为整个***实例分配一个标签,该***实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
2.私网路由交叉。
***v4路由与本地***实例的Import ***-Target进行匹配的过程称为私网路由交叉。两台PE之间通过MP-BGP传播的路由是***v4路由。当接收到***v4路由,PE先进行如下处理:
- 检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。
- 对于RR发送过来的***v4路由,如果收到的路由中cluster_list包含自己的cluster_id,则丢弃这条路由。
- 进行BGP的路由策略过滤,如果不通过,则丢弃该路由。
- 之后,PE把没有丢弃的路由与本地的各个***实例的Import Target属性匹配。
3.公网隧道迭代。
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,查找合适的隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的***实例路由表。 将路由迭代到相应的隧道的过程叫做隧道迭代。
隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。 Tunnel ID用于唯一标识一条隧道。***报文转发时根据Tunnel ID查找对应的隧道,然后从隧道上发送出去。
4.私网路由的选择规则。
经过路由交叉和隧道迭代的路由并不是全部被放入***实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入***实例路由表。对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:
- 同时存在直接从CE收到的路由和交叉成功后的同一目的地址路由,则优选从CE收到的路由。
- 同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉路由。
对于到同一目的地址的多条路由,如果进行路由的负载分担,则:
- 优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。
- 只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。
- 负载分担的AS_PATH属性必须完全相同。
5.BGP/MPLS IP ***的路由发布。
以下图为例:PE-CE之间使用BGP,公网隧道为LSP,说明将CE2的一条路由发送到CE1的过程。
- 在CE2的BGP IPv4单播地址族下引入IGP路由。
- CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE从连接CE2的接口收到Update消息,把该路由转化为*** IPv4路由,加入对应的***实例路由表。
- Egress PE为该路由分配MPLS标签,并将标签和*** IPv4路由信息加入MP-IBGP的Update消息中的NLRI字段中,Export-RT属性加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给Ingress PE。
- Ingress PE对该路由进行路由交叉。交叉成功则根据路由目的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该隧道的Tunnel ID和标签,并将路由加入该***实例路由表。
- Ingress PE把该路由通过BGP Update消息发布给CE1。此时路由是普通IPv4路由。
- CE1收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP路由的方法可使CE1把该路由加入IGP路由表。
6.BGP/MPLS IP ***的报文转发。
在单域的BGP/MPLS IP ***应用中,***报文转发采用两层标签方式:
- 第一层(公网)标签在骨干网内部进行交换,指示从PE到对端PE的一条LSP。***报文利用这层标签,可以沿LSP到达对端PE;
- 第二层(私网)标签在从对端PE到达CE时使用,指示报文应被送到哪个Site,或者更具体一些,到达哪一个CE。这样,对端PE根据内层标签可以找到转发报文的接口。
以下图为例说明BGP/MPLS IP ***报文的转发过程。下图是CE1发送报文给CE2的过程。其中,I-L表示内层标签,O-L表示外层标签。
- CE1发送一个***报文。
- Ingress PE从绑定了***实例的接口上接收***数据包后进行如下操作:
- 先根据绑定的***实例的RD查找对应***的转发表。
- 匹配目的IPv4前缀,查找对应的Tunnel ID。
- 将报文打上对应的标签(I-L),根据Tunnel-ID找到隧道。
- 将报文从隧道发送出去。此例的隧道是LSP,则打上公网(外层)MPLS标签头(O-L1)。
- 接着,该报文携带两层MPLS标签穿越骨干网。骨干网的每台P设备都对该报文进行外层标签交换。
- Egress PE收到该携带两层标签的报文,交给MPLS协议处理。MPLS协议将去掉外层标签(此例最后的外层标签是O-L2,但如果应用了倒数第二跳弹出,则此标签会在到达Egress PE之前的一跳弹出,Egress PE只能收到带有内层标签的报文)。
- 此时Egress PE就可以看见内层标签,发现该标签处于栈底,将内层标签剥离。
- Egress PE将报文从对应出接口发送给CE2。此时报文是个纯IP报文。
三、跨域***。
1. Option A。
- 特点:需要跨域的***在ASBR间通过专用的接口管理自己的***路由,ASBR互相将对方当作普通的站点来看待。
- 优点:配置简单、ASBR之间传递的是普通的IPv4路由所以可以架设安全设备。
- 缺点:***实例多,配置量大;路由器接口数被占用;ASBR要堆护所有私网路由表项且承担数据转发封装标签,适用于***数量少的场景。
(1)控制层面传递路由:
(2)数据平面转发数据:
2.Option B。
- 特点:ASBR之间建立MP-BGP邻居关系,并且使用MP-BGP来发布标签。
- 优点:***路由管理控制方便,MP-BGP可以使用环回口建立邻居关系更加稳定。
- 缺点::ASBR的负担重还是需要处理私网标签、维护所有私网路由,容易成为故障点。
(1)控制层面传递路由:
(2)数据平面转发数据:
3.Option C1。
- 特点:ASBR之间使用EBGP来建立互联邻居,并且通过配置策略来使BGP邻居之间传递标签;PE间通过Multi-hop MP-EBGP发布标签***-IPv4路由。
- 优点:ASBR不需要维护和发布***v4路由,PE之间直接交换***v4路由。
- 缺点:配置较复杂MP-BGP的私网隧道迭代,到BGP LSP上在迭代到LDP的公网隧道。
(1)控制层面传递路由:
(2)数据平面转发数据:
4.Option C2。
C2和C1的区别:
- C1中,需要使用三层标签,即*** label,BGP LSP, Tunnel LSP来承载流量,而C2只需要两层。
- C1中ASBR在收到对端ASBR发来的BGP标签路由后,需要配置策略产生一个新的标签并发布给AS内的PE或者RR设备,以建立一条完整的BGP LSP。
- C2中ASBR需要配置MPLS触发为BGP标签路由分发标签,因此在AS内的PE上可以看到去往对端PE的LDP LSP,而非BGP LSP。
(1)控制层面传递路由:
(2)数据平面转发数据:
四、BGP/MPLS IP ***基本组网。
1.Intranet ***。
一个***中的所有用户形成闭合用户群,相互之间能够进行流量转发,***中的用户不能与任何本***以外的用户通信。
- PE上为***1分配的*** Target值为100:1,为***2分配的*** Target值为200:1。
- ***1的两个Site之间可以互访,***2的两个Site之间也可以互访,但***1和***2的Site之间不能互访。
2.Extranet ***。
如果一个***用户希望访问其他***中的某些站点,可以使用Extranet。
在上图中,***1的Site3能够被***1和***2访问:
- PE3能够接收PE1和PE2发布的***-IPv4路由;
- PE3发布的***-IPv4路由能够被PE1和PE2接收。
- ***1的Site1和Site3之间能够互访。
- ***2的Site2和***1的Site3之间能够互访。
- ***1的Site1和***2的Site2之间不能互访。
3.Hub and Spoke。
在***中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub and Spoke组网方案。