跨域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演习营
推举你可以关注新盟教诲公开课,每天都会有技能分享