您的位置 首页 > 数码极客

bgp如何在vpnv4下面做路由汇总

在HCIE3.0 lab版本中,跨域解决方案optionc 的方案一和方案二都会考到。很多同学对于这一个技术点都有些不太熟练,那么下面环宇老师就带领大家一起来详细了解optionC跨域。

跨域VPN需要解决的问题

通常L3vpn包含了两层标签,外层ipv4路由的标签由LDP或者MPLS TE来分配,内层vpnv4路由的标签由MP-BGP来分配。所谓MP-BGP,就是使能了BGP为vpn路由分配标签的能力,我们在同一个AS内部所使用的可以称作MP-IBGP。

那么在跨域vpn需要解决的问题是什么呢?以下图为例,R3和R4是ASBR,R1和R6是PE,R2和R5是P设备。Clinet1发出的报文要经过R1至R6发至Client2,会遇到如下问题:

问题一:本端的PE,无法为对端AS内的PE的vpn路由分配标签。不同AS往往属于不同运营商,两个运营商之间的vpn独立管理,通常无法互通。两个运营商之间的PE就更无法交互vpn路由了。

问题二:端到端的外层标签如何建立。运营商之间通常不进行IGP的互通,即便运行LDP,也无法分标签;所以普通L3VPN的外层标签交换在ASBR的位置就会被中断。想象AS 65530和AS 65531分属不同的运营商,外层标签无法互通。

Option C方式的思想就是在跨域的情况下,PE之间仍然可以像域内那样,在PE和PE之间建立直接的BGP邻居,交换VPNv4路由信息,这样就不需要中间设备再保存、维护和扩散VPN路由信息。唯一不同的是域内是MP-iBGP邻居,跨域是MP-eBGP邻居。这里需要从两个方面去考虑:信令和转发。

1. 路由层面的实现:

和普通L3VPN相同,内层的vpnv4路由的标签是由BGP来分配的,类似于同一个AS域内的PE之间,只要能够建立BGP邻居,那么就可以交互vpnv4的路由信息了。

2. 标签层面的实现:

最内层的vpnv4路由的标签跨域过程中不改变。由于内层标签是由BGP来分配的,而ASBR并不感知vpnv4路由的标签,所以内层标签在整个转发过程中,都没有发生变化;

ASBR之间的外层标签只能由BGP来分配。问题来了,为什么这层标签必须存在?和OptionA及OptionB不同,ASBR不感知vpnv4路由,所以在ASBR之间的报文,如果只包含这层vpnv4标签的话,就无法转发。为什么不能用LDP来分配标签?ASBR之间通常不会使用IGP来交互路由,所以无法使用LDP来分配标签,只能使用BGP。

对于ASBR之间由BGP分配的标签,在进入AS内部进行转发时,外层标签的处理方式有两种方式:1)标签交换,LDP对BGP的标签进行转换,在AS内报文包含2层mpls标签;2)标签封装,LDP对BGP分配的标签进行封装,在AS内报文包含3层mpls标签;

a href="">2 vpnv4的eBGP邻居建立

步骤1 在R1、R2、R3上配置IGP(例如ospf),使之互通(R3和R4之间的链路不在IGP中发布);

步骤2 在R1、R3、R4、R6上配置BGP,其中R1、R3属于AS 65530,R4、R6属于AS65531;R1和R3,R4和R6分别建立iBGP邻居,R3和R4建立eBGP邻居;

步骤3 在R3上发布R1的loopback地址至BGP进程中,在R4上发布R6的loopback地址至BGP进程,使得R1和R6可以互通;

步骤4 在R1、R6上配置vpn-instance;R1和R6建立vpnv4的EBGP邻居;

完成以上的基本配置之后,可以达到如下效果:

例如:R1和R6的eBGP邻居能正常建立,可以查看到正常的vpnv4的路由

但是,在转发层面上,还有一个最重要的问题需要解决,那就是如何在跨域的情况下建立一条R1到R6的VPNv4外层LSP。

标签转发的正常流程,R1路由器收到目的地是192.168.2.2的报文,下一跳R6(6.6.6.6)告诉我,我要打上它给我的标签,然后把报文丢给它就可以了。R1路由器查找到6.6.6.6的路由及标签,发现找不到,所以报文就会被丢弃。

a href=""> 方法1——域内LDP,域间BGP衔接

在ASBR上,使用LDP分配的标签,对BGP分配的标签进行转换,这样就可以把外层的标签转换衔接起来。

步骤5 在BGP试图下使用上述两条命令,使得ASBR之间开始使用BGP交互ipv4的路由。

这些携带了标签的ipv4路由,有的文档上也称之为标签路由。完成该步骤后,查看ASBR的mpls标签转发表,可以看到BGP分配的标签,注意vrf name字段是空的:

步骤6 在R3和R4上使能LDP对标签路由分配标签,使得标签能够衔接起来。

具体的命令,在mpls视图下:lsp-trigger bgp-label-route,配置完成后,可以在路由表里看到LDP给标签路由分配的标签,以R4为例:

但是如果在P设备R5中查看lsp的情况,并不会看到LDP给1.1.1.1分配的标签。为什么呢,很简单,因为P设备并不知道对端的PE设备ip地址,可以在路由表中查看,并没有这条路由。所以还需要一个步骤:

步骤7(方法2)在ASBR(R3、R4)上,把BGP路由引入IGP。

至此,跨域vpn Option C的一种实现方式配置完成。

再查看一下本文开始所叙述的标签层面的处理,这个示例便是在ASBR进行了标签交换,所以在AS内,报文也是2层标签(除了ASBR和倒数第二跳之外)。在ASBR之间,因为BGP为标签路由分配了标签,内部还有一层vpnv4的标签,所以也是2层。

该实现方式的缺陷:需要把BGP的路由表引入IGP,可能会使得IGP过大。

方法2——端到端BGP ipv4标签交换,域内外层封装LDP标签

在ASBR1和ASBR2之间使用MP-BGP来分配标签,而ASBR和PE之间,也使用MP-BGP来分配标签。实际上,相当于LDP对MP-BGP分配的标签进行了封装。

思考一下,为什么要用LDP对MP-BGP分配的标签进行封装呢?

AS域内,因为P设备上没有使能BGP,最外层仍需要LDP来分配标签。在不考虑PHP的情形下,标签从外到内依次是:LDP分配的标签、BGP为ipv4路由分配的标签、BGP为vpnv4路由分配的标签。

具体实现方式(前4个步骤相同,不再赘述):

步骤5 在BGP试图下使用上述两条命令,使得ASBR之间开始使用BGP交互ipv4的路由。

这些携带了标签的ipv4路由,有的文档上也称之为标签路由。完成该步骤后,查看ASBR的mpls标签转发表,可以看到BGP分配的标签,注意vrf name字段是空的:

步骤6在ASBR(R3和R4)上,分别对各自AS内的PE(R1和R6)配置peer X.X.X.X next-hop-local;

步骤7类似步骤5,使能ASBR和本AS域内的PE进行ipv4路由的交互。在ASBR再增加一个Route-policy命名为to_PE,它的内容是apply mpls-label,然后在R3上向R1使用该策略;在R4上向R6使用该策略;同样,在R1和R6上,分别向本AS域的ASBR使能peer X.X.X.X label-route-capability,并增加Route-policy命名为to_ASBR,策略内容同样是apply mpls-label。

这种实现方式不需要把BGP路由引入IGP,但ASBR需要和所有的PE建立BGP邻居,并和PE之间使用MP-BGP来分配ipv4的路由标签。

从Client1(CE1)向Client2(CE2)进行ping测试,在PE1和P设备之间抓包,可以看到,这种实现方式,ip包被封装了3层mpls标签,从内到外,分别是bgp分配的vpnv4路由标签,bgp分配的ipv4路由标签,如果读完前面所述内容,这个是容易理解的。

以上就是环宇老师关于华为跨域技术给大家做的介绍,希望对大家有所帮助。

如果大家有技术问题可以加环宇老师 QQ 411551631

华为官方技术交流群 539961408 每晚 7.30 都会有华为公开课做技术讲解

公众号:思科CCIE训练营

推荐你可以关注新盟教育公开课,每天都会有技术分享

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“bgp如何在vpnv4下面做路由汇总”边界阅读