BGP/MPLS IP VPN跨域解决方案

MPLS VPN跨域方案出现背景:

当企业规模越来越大时,势必会划分出几个分支机构用以维护一片区域的业务活动,而几个分支机构势必会分别落在地域不同的地方,而分落在地域不同的地方就可能接入不同的网络运营商,由于每个网络运营商的网络质量与网络信号会因为地域的不同而不同,因此企业出于利益最大化考虑,会选择接入在该片区网络质量与信号最好的运营商以保障业务的稳定性。因此,当总部与分部接入了不同的运营商时,总分互访的问题随之出现,总分网络的互联需求成为当下社会丞待解决的问题。因此,MPLS VPN跨域技术应运而生。

MPLS VPN回顾

MPLS VPN是一种是基于MPLS(多协议标签交换)技术构建的VPN技术,是运营商的一种技术,是集成了MP-BGP、MPLS、VRF的一种技术集成解决方案

VRF(Virtual Route Forward)虚拟路由转发

VRF,在华为中叫VPN实例(VPN-Instance),他是用来区分不同用户的一个工具,他通过将用户在MP-BGP中实例化。但是由于VRF的名称它仅仅是一个本地的概念,因此两个不同站点之间相同名称的VRF可能无法通信,因此我们就需要通过配置RD、RT值来实现一个全局的路由传输、路由控制与路由的导出导入

MPLS(Multiple Protcol Label Swtich)多协议标签交换

MPLS,多协议标签交换协议,是一种对传统IP转发的优化技术,引入了简化的标签来替换复杂的IP头信息,使得路由在转发数据包时只需查看标签而无需解封装IP头,实现更快的转发速度,在MPLS VPN中主要的应用是MPLS的标签可扩展性与灵活性

MP-BGP多协议BGP

传统的BGP协议只能传输IPv4路由,而MP-BGP能够传输多种协议的路由,如VPNv4、IPv6、VPNv6等协议路由,用来构建多协议的复杂大型网络

MPLS VPN跨域OptionA

跨域OptionA方案的配置可谓是相当于简单,如下图拓扑

b75947eb867f4104908fe99f5d0779f1.png

这里的ASBR不是OSPF里的ASBR,而是跨域方案中定义的一种自治系统边界角色,即AS-Border Router,即原本的PE设备在跨域中转变为ASBR设备。在跨域OptionA方案中,ASBR是可以当PE配置的,即对于ASBR来说,对端就是它的CE设备,因此在ASBR互联口也是要配置VPN实例的,即ASBR之间传递的是IPv4路由。

控制平面:

概述:跨域OptionA的控制平面与单域MPLS VPN基本一致,就是多了个涉及不同AS之间的通信

在跨域OptionA中,PE设备与它所在AS的ASBR通过MP-IBGP交换VPNv4路由,本端ASBR设备将VPNv4路由导入在VRF实例中后与对端ASBR通过EBGP会话交换IPv4形态的VRF路由

详述:b35539b8916b4e72a0d97ac2f12fd9c1.png

CE1发布给PE1一个IPv4路由,PE1通过MP-BGP将IPv4路由转变为VPNv4路由,设置下一跳为PE1,分配VPN标签V1,并通告给ASBR1

在AS100中,通过运行LDP协议,PE1通告给P1一个去往PE1的公网隧道标签T1,P1通告给ASBR1一个去往P1的公网隧道标签T2

-—因为ASBR1和ASBR2之间不运行LDP,因此ASBR1和ASBR2之间传递的是IPv4路由

在AS200中,通过运行LDP协议,ASBR2通告给P2一个去往ASBR2的公网隧道标签T3,P2通告给PE2一个去往P2的公网隧道标签T4

ASBR2运行MP-BGP将通过EBGP学习到的IPv4路由转化为VPNv4路由,并通告给PE2一个去往ASBR2的VPN标签V2

转发平面:

CE2发送给PE2一条去往CE1的IPv4路由,PE2接收到后通过MP-BGP导出为VPNv4路由,然后进行MPLS标签封装,先打上VPN标签v1再打上从P设备拿过来的公网隧道标签T4,然后将路由发布给P

P进行标签交换,将公网隧道标签交换为从ASBR2拿过来的公网隧道标签T3,然后将路由发布给ASBR2,同时在发布的时候由于PHP次末跳弹出机制,公网隧道标签T3在去往ASBR2的上一跳被弹出

ASBR2收到路由后只有VPN标签V2,剥离标签,然后将VPNv4路由导入到VPN实例中,变为IPv4路由,然后通过EBGP会话发布给ASBR1

ASBR1收到IPv4路由后,通过MP-BGP导出为VPNv4路由,依次打上从PE1拿过来的VPN标签V1和从P1拿过来的公网隧道标签T2,然后发布给P1

P1收到路由后进行标签交换,将公网隧道标签T2交换为从PE1拿过来的公网隧道标签T1,并进行PHP次末跳弹出,发布给PE1

PE1接收到路由后,由于只有VPN标签V1,剥离标签,然后将VPNv4路由导入到VPN实例中,变为IPv4路由,然后发布给CE1

总结:

可以看出在跨域OptionA方案中,VPNv4路由在传递时通常带有两层标签栈

挑战:

在跨域OptionA中,由于每个ASBR互联口都要配置VPN实例,一个挑战与难度随之出现——每个增加一个用户,就得新增一个子接口或接口,而当互联链路达到上限时,企业就得采购新的ASBR设备,这会带来一个直接的成本支出,而且每个ASBR不仅要处理所在AS的外部路由信息,还要维护与管理VRF路由,随着VPN实例的增长,对ASBR设备的性能需求也相应增长,可能导致一个设备性能瓶颈。

因此成本、可拓展性、ASBR设备负担都是个问题,但由于其配置简单、方便快速部署的特性,仍然有其应用场景,如在小型网络中的部署。

MPLS VPN跨域OptionB

在跨域OptionB方案中,无需在ASBR互联口配置实例,因此跨域OptionB的可扩展性相比跨域OptionA方案要更强,同时简化了ASBR的配置与管理,增加与删除VPN服务要更为便捷,且ASBR无需维护VRF信息,减小了ASBR路由处理负担

跨域OptionB的ASBR之间要搭建一条VPNv4隧道,以传递VPNv4路由,且OptionB方案可以部署RR设备,实现转控分离。因此能够根据是否使用RR(Route Reflector,路由反射器)分为两个应用场景,非RR场景与RR场景

非RR场景: 

非RR,配置起来相比OptionA也差不多,只是ASBR之间不用配实例口了,ASBR之间要建立MP-BGP邻居关系,在VPN数量较多的场景下比OptionA配置还要更简单些。就是在配置的时候要注意一下,ASBR的互联口要使能MPLS,以实现MPLS转发,但不用使能LDP。还要在MP-BGP的VPNv4地址簇中关闭根据RT值对VPNv4路由导出导入的策略——undo policy vpn-target,以传递VPNv4路由

控制平面:

e47b7fe1a1d34dca94675ffe294027dd.png

如图,可以看出在跨域OptionB方案非RR场景中,PE1、ASBR1、ASBR2、PE2之间搭建了一条VPNv4隧道。

CE1发布一条IPv4路由给PE1,PE1通过MP-BGP将IPv4路由转化为全局唯一的VPNv4路由,并分配VPN标签V1,设置下一跳为PE1,通过MP-IBGP通告给ASBR1

在AS100中,PE1通过运行LDP协议通告给P1一个去往PE1的公网隧道标签T1,P1通告给ASBR1一个去往P1的公网隧道标签T2

ASBR1通过MP-EBGP将VPNv4路由传递给ASBR2,并重新打上VPN标签V2,设置下一跳为ASBR1

在AS200中,ASBR2通过MP-IBGP将VPNv4路由传递给PE2,并重新打上VPN标签V3,设置下一跳为ASBR2

在AS200中,ASBR2通过运行LDP协议,通告给P2一个去往ASBR2的公网隧道标签T3,P2通告给PE2一个去往P2的公网隧道标签T4,

PE2将VPNv4路由导入VPN实例,转化为IPv4路由,传递给CE2,设置下一跳为PE2

转发平面:

e284f63becd34784ad6ec955b6d2894a.png

CE2发送一个去往CE1的IPv4路由给PE2,PE2运行MP-BGP将IPv4路由导出为全局唯一的VPNv4路由,并依次打上VPN标签V3、公网隧道标签T4,然后将该路由通告给P2

P2收到路由后进行标签交换,将公网隧道标签T4替换为公网隧道标签T3,然后通告给ASBR2,并且由于PHP次末跳弹出机制,在去往ASBR2的上一跳,公网隧道标签T3将被弹出,因此ASBR2收到路由后,只有一层标签。

ASBR2收到路由后,进行标签交换,将VPN标签V3替换为V2,通告给ASBR1路由。ASBR1收到路由后,进行标签交换,将VPN标签替换为V1,并打上公网隧道标签T2,通告给P1

P1收到路由后进行标签交换,将公网隧道标签T2替换为T1,并通告给PE1,同时由于PHP次末跳弹出机制,在去往PE1的上一跳,公网隧道标签T1将被弹出,当路由抵挡PE1时,只有一层标签

PE1收到路由后,去往标签,并将该VPNv4路由导入VPN实例中,以转化为IPv4路由,传递给CE1

总结:

——跨域OptionB方案非RR场景也是只有两层标签栈,并且ASBR之间传递的是VPNv4路由,配置相比OptionA也要简化一些,只是ASBR负担仍较重,控制平面与转发平面都集中在ASBR上,因此当网络规模较大时,ASBR的性能瓶颈仍然是个问题,在ASBR的流量负担上,相比OptionA几乎没有区别。

RR场景:

在OptionB方案中,开创性的、巧妙的将RR设备引入到跨域MPLS VPN中,实现基于跨域OptionB方案的转控分离,由RR设备承接控制平面,不参与用户流量的转发,控制平面流量不再直接经过ASBR,而是经过RR设备中转,为ASBR减轻控制平面的流量负担,使得ASBR能够不再直接参与控制平面的流量处理,而是聚焦于转发平面的流量转发,是一项优化ASBR流量处理的重要举措,使得跨域OptionB方案在大型、高流量网络中也能有高稳定性、高性能性的良好表现

b27eb23eaf2e4f59a7c7297bb93b180c.png

控制平面:

PE、ASBR只与RR建立MP-IBGP邻居关系,PE与ASBR之间无需建立BGP邻居关系。RR只负责控制平面的VPNv4路由反射传递,即PE和ASBR是RR的反射客户端(实际上由于RR的反射规则,可以只配置PE或ASBR为RR的反射客户端)。而且由于转控分离,因此RR不参与转发层面的流量转发,因此RR的直连口、P与RR的互联口无需配置MPLS转发能力与LDP标签分发能力。

由于RR是控制平面,因此当个别PE或ASBR设备故障时,不影响控制平面的信息传递中断

由于RR不参与标签分配,因此标签分配流程与非RR场景基本一致

转发平面:

由于RR不参与转发层面,因此与非RR场景实际上是一致的

总结:

当VPN实例(即用户)较多时,采用OptionB方案时相比前代才有显著区别,因为能部署RR设备,实现一种转控分离,因此能让ASBR聚焦于转发平面,这也使得能够对ASBR进行一个灵活的路由操纵,同时由于RR是一个集中的控制点,因此也可以在RR进行一个精细的路由策略控制。

MPLS VPN跨域OptionC

跨域OptionC方案是三种跨域方案里最复杂的跨域解决方案,他能够直接使两个跨域的PE直接建立起VPNv4隧道,但是配置相比A和B要难上一个层级,与OptionB一样能够部署RR设备,且分为两种方式。

方式一:

跨域OptionC中,ASBR不再维护或通告VPNv4路由,且只需维护去往PE的带标签路由,并通过EBGP通告给对端ASBR,这样在不同AS之间的PE会建立一条完整的跨域BGP LSP,从而可以建立起在入口PE和出口PE的多跳MP-EBGP连接并进行VPNv4路由的通告

MPLS VPN跨域OptionC方式一又是两种方式中最复杂的方式,他有三层标签栈,且由于OptionB一样也能部署RR,因此也有两种应用场景,非RR场景和RR场景,这里我们先讲非RR场景

非RR场景

控制平面:

44aab42d20754cb2b747f7a3918ff398.png

在AS100中,通过运行LDP协议,PE1通告给P1一个去往PE1的公网隧道标签T1,P1通告给ASBR1一个去往P1的公网隧道标签T2,

在跨域场景中,ASBR1通过EBGP会话通告一条去往ASBR1的带BGP标签B1的IPv4路由给ASBR2

在AS200中,ASBR2通过BGP会话一条带BGP标签B2的IPv4路由通告给PE2。

在AS200中,通过运行LDP协议,ASBR2通告给P2一个去往ASBR2的公网隧道标签T3,P2通告给PE2一个去往P2的公网隧道标签T4

CE1发布IPv4路由给PE1,PE1通过MP-BGP将IPv4路由导出为VPNv4路由,并分配VPN标签V1,设置下一跳为PE1,通告给PE2

PE2将VPNv4路由导入VPN实例转化为IPv4路由,通告给CE2,并设置下一跳为PE2

转发平面:740f148f481a4589890cc4c493522ded.png

CE2发送一个去往CE1的IPv4路由给PE2,PE2通过MP-BGP将IPv4路由导出为VPNv4路由,并依次打上VPN标签V1、BGP标签B2、公网隧道标签T4,然后通告给P2

P2接收到路由后,进行标签交换,将公网隧道标签T4替换为公网隧道标签T3,然后发送给ASBR2,并由于PHP次末跳弹出机制,在去往ASBR2的上一跳,公网隧道标签T3将被弹出

ASBR2接收到路由后,进行标签交换,将BGP标签B2替换为BGP标签B1,并通过EBGP会话将带BGP标签B1的IPv4路由通告给ASBR1

ASBR1接收到路由后,发现BGP标签B1是它通告的,因此剥离,然后打上公网隧道标签T2,发送给P1

P1接收到路由后,进行标签交换,将公网隧道标签T2替换为公网隧道标签T1,然后发送给PE1,同时由于PHP次末跳弹出机制,在去往PE1的上一跳,公网隧道标签T1将被弹出

PE1接收到路由后,只剩下VPN标签V1,PE1剥离VPN标签V1,并将VPNv4路由导入到VPN实例中,转化为IPv4路由后传递给CE1

配置要点:

ASBR和RR、PE之间要相互使能交换标签IPv4路由能力,命令为label-route-capability

ASBR设备中要在BGP中宣告自己本端的RR和PE设备

ASBR1与ASBR2之间仍是只使能MPLS能力,并且要创建两个路由策略:

·Route-policy 1 node 10

        apply mpls-label

·Route-policy 2 node 20

        if-match mpls-label

        apply mpls-label

策略2向本端PE1用,用于向本端PE1发布的路由,如果是带标签的IPv4路由,则重新分配一个新的标签

策略1向对端ASBR2,用于从本端PE1接收的路由,在向对端ASBR2传递时,分配一个MPLS标签

RR场景:

在跨域OptionC的方式一RR场景中,两个RR是通过从EBGP会话直接建立邻居关系的,而跨域OptionC的转发平面是通过一条完整的跨域BGP LSP在两个PE之间直接建立的

ASBR、PE同RR建立IPv4单播BGP邻居关系的作用:

·ASBR1将从对端ASBR2学习到的RR2的环回路由通告给本端RR1,用于本端RR1与对端RR2建立VPNv4邻居

·ASBR1将从对端ASBR2学习到的RR2回环路由和PE2环回路由通过本端RR1反射给PE1,用于跨域的PE建立一条跨域BGP LSP

控制平面:

86e2e0d24bfa49f99832bdd082fcc37a.png

本端PE1只RR1建立VPNv4邻居关系,本端RR1与对端RR2建立VPNv4邻居关系,对端RR2与PE2建立VPNv4邻居关系,实现了跨域VPNv4路由的传递。

转发平面:

由于RR只改变控制平面,因此转发平面与非RR场景完全一致

配置注意要点:

ASBR1与ASBR2之间仍是只使能MPLS能力,并且要创建两个路由策略:

·Route-policy 1 node 10

        apply mpls-label

·Route-policy 2 node 20

        if-match mpls-label

        apply mpls-label

策略2向本端RR1用,用于向本端RR1发布的路由,如果是带标签的IPv4路由,则重新分配一个标签

策略1向对端ASBR2,用于从本端RR1接收的路由,在向对端ASBR2传递时,分配一个MPLS标签

RR1传递给对端RR2或本端PE1不改变下一跳,即的VPNv4地址簇中配置next-hop-invariable

ASBR设备中要在BGP中宣告自己本端的RR和PE设备

RR设备要和P设备建立BGP单播IPv4邻居关系,否则跨域BGP LSP无法建立

ASBR和RR、PE之间要相互使能交换标签IPv4路由能力,命令为label-route-capability

方式二:

方式二,单论配置上要比方式一简单太多了,且方式一需三层标签承载流量,方式二仅需二层标签

与方式一一样,方式二的ASBR不再维护和通告VPNv4路由,ASBR需要维护所有去往PE的带标签路由,并通过EBGP会话通告给对端ASBR,ASBR接收到BGP标签路由后,LDP会触发为该BGP标签路由产生标签,并在AS内的LDP邻居间传递。因此,在PE上可以看到去往对端的LDP

非RR场景

控制平面:

3b5b0459ff814a51a7b553635a5f947b.png

CE1发布IPv4路由给PE1,PE1通过MP-BGP将IPv4路由导出为VPNv4路由,并分配VPN标签V1,设置下一跳为PE1,通告给PE2

在AS100中,通过运行LDP协议,PE1通告一个去往PE1的公网隧道标签T1给P1,P1通告一个去往P1的公网隧道标签T2给ASBR1

ASBR1通过EBGP会话通告一条带BGP标签B1的IPv4路由给ASBR2

通过LDP协议,ASBR2为该BGP标签触发分配一个去往ASBR2的公网隧道标签T3给P2,P2通告一个去往P2的公网隧道标签T4给PE2

PE2将VPNv4路由导入VPN实例转化为IPv4路由,通告给CE2,并设置下一跳为PE2

配置要点:方式二在ASBR上要在mpls视图下配置lsr-trigger bgp-label-route,以实现ASBR运行LDP协议为BGP标签触发分配标签

转发平面:

93a6212fdc1249a18e5961855cdafc43.png

CE2发送一个去往CE1的IPv4路由给PE2,PE2通过MP-BGP将IPv4路由导出为VPNv4路由,并依次打上VPN标签V1、公网隧道标签T4,然后通告给P2

P2接收到路由后,进行标签交换,将公网隧道标签T4替换为公网隧道标签T3,然后发送给ASBR2,并由于PHP次末跳弹出机制,在去往ASBR2的上一跳,公网隧道标签T3将被弹出

ASBR2接收到路由后,给它打上BGP标签B1,并通过EBGP会话将带BGP标签B1的IPv4路由通告给ASBR1

ASBR1接收到路由后,发现BGP标签B1是它通告的,因此剥离,然后打上公网隧道标签T2,发送给P1

P1接收到路由后,进行标签交换,将公网隧道标签T2替换为公网隧道标签T1,然后发送给PE1,同时由于PHP次末跳弹出机制,在去往PE1的上一跳,公网隧道标签T1将被弹出

PE1接收到路由后,只剩下VPN标签V1,PE1剥离VPN标签V1,并将VPNv4路由导入到VPN实例中,转化为IPv4路由后传递给CE1

RR场景:

控制平面:

        -本端PE只与本端RR建立VPNv4邻居,本端RR与对端RR建立VPNv4邻居,实现跨域VPN路由传递
        -RR只负责控制平面VPNv4路由的传递,转发平面的流量不经过RR

  • 71
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值