大家在备考HCIE-Routing & Switching实验时,会碰着一个重难点,便是跨域VPN。接下来,请跟随本文,一起来啃下跨域VPN基本事理这块知识硬骨头!
跨域VPN概述
跨域VPN-OptionA中,ASBR之间不须要运行MPLS,也不须要为跨域进行分外配置。这种办法下,两个AS的边界ASBR直接相连,ASBR同时也是各自所在自治系统的PE。两个ASBR都把对端ASBR看作自己的CE设备,将会为每一个VPN创建VPN实例,利用EBGP办法向对端发布IPv4路由。
跨域VPN-OptionB中,两个ASBR通过MP-EBGP交流它们从各自AS的PE设备吸收的标签VPN-IPv4路由。
前面先容的两种办法都能够知足跨域VPN的组网需求,但这两种办法也都须要ASBR参与VPN-IPv4路由的掩护和发布。当每个AS都有大量的VPN路由须要交流时,ASBR就很可能阻碍网络进一步的扩展。
跨域VPN-OptionC中的方案是:ASBR不掩护或发布VPN-IPv4路由,PE之间直接交流VPN-IPv4路由。
搞懂跨域VPN基本事理,大家可以带着这几个疑问去思考:为什么要这样去支配?支配的优缺陷?邻居是如何建立的?路由怎么通报的?数据怎么访问的?
Option A
Option A实现基本思路
CE与PE间建立实例关系,PE与ASBR间建立VPNv4的邻居关系,ASBR间不须要支配MPLS,直接运行EBGP关系通报ipv4路由即可。
Option A优缺陷
优点:配置起来大略,ASBR之间不须要运行MPLS,也不须要为跨AS做分外配置。
缺陷:可扩展性差,由于ASBR须要管理所有VPN路由,为每个VPN创建VPN实例,这将导致ASBR上的VPNv4路由数量过大。并且,由于ASBR间是普通的IP转发,哀求为每个跨域的VPN利用不同的接口,从而提高了对PE设备的哀求。如果超过多个自治域,中间域必须支持VPN业务,不仅配置量大,而且对中间域影响大。在须要跨域的VPN数量比较少的情形,可以优先考虑利用路由通报。
Option A
环境支配:
1、PE1-ASBR1,PE2-ASBR2建立VPNv4邻居关系;
2、AS内部IGP互通;
3、ASBR之间建立IPv4邻居关系,接口绑定实例。
路由通报:
1、 CE1上发布一条1.1.1.1/32的路由进入PE1实例路由表
2、 PE1将1.1.1.1/32的路由引入BGP中,并且加入VPNv4路由表(32位IPv4路由添加64位RD值1:1,天生96位VPNv4路由),并且为其添加Export RT 1:1,MP-BGP协议为其分配私网标签①,NH地址2.2.2.2,将其通报到ASBR1中对应的实例中。
3、 ASBR1匹配Import RT 1:1放入BGP VPNv4路由表中
4、 ASBR1引入实例2后(剥离RD值)以IPv4路由通报给ASBR2,ASBR2从实例3收到IPv4路由,将其加入VPNv4路由表并且为其添加Export RT 3:3,私网标签②-1027,NH地址10.1.45.4,将其通报到PE2;
5、 PE2收到后,匹配Import RT 3:3,剥离RD值引入到实例4中通报给CE2
数据访问:
1、CE2访问1.1.1.1,将数据包发给PE2
2、PE2查看实例4的FIB表创造去往1.1.1.1/24的下一跳是5.5.5.5,然后打上ASBR2为1.1.1.1分配的私网标签②,由于下一跳5.5.5.5非直连接口,于是进行隧道迭代,去往5.5.5.5下一跳是P2设备的接口,由于5.5.5.5发布在底层IGP,并且AS200内开LDP协议,于是迭代到5.5.5.5的LDP隧道中,打上LDP标签。
3、P2收到数据包查LFIB,创造ASBR2为P2设备分配3号标签,于是pop掉LDP标签发给ASBR2
4、ASBR2收到数据包后,FIB转揭橥,找到对应实例3,剥离私网标签2后转发给
ASBR1。
5、ASBR1收到数据包,查看实例2的FIB表,创造去往目的地1.1.1.1下一跳是2.2.2.2,于是根据目的地打上私网标签①,并且由于下一跳非直连,随后迭代到2.2.2.2的LDP隧道中,该过程同理AS200内的转发
Option B
Option B基本实现思路
PE-ASBR-ASBR-PE之间都建立VPNv4的邻居关系,使得ASBR之间不用受链路数量限定实现VPN路由的通报
优点:不受ASBR之间互连链路数目的限定。
缺陷:VPN的路由信息是通过AS之间的ASBR来保存和扩散的,当VPN路由较多时,ASBR包袱重,随意马虎成为故障点。因此在MP-EBGP方案中,须要掩护VPN路由信息的ASBR一样平常不再卖力公网IP转发。
Option B
环境支配:
1、PE1-ASBR1,ASBR1-ASBR2,ASBR2-PE2建立VPNv4邻居关系;
2、AS内部IGP互通;
路由通报
1、CE1上发布一条1.1.1.1/32的路由进入PE1实例路由表
2、 PE1将1.1.1.1/32的路由引入BGP中,并且加入VPNv4路由表(32位IPv4路由添加64位RD值1:1,天生96位VPNv4路由),并且为其添加Export RT 1:1,MP-BGP协议为其分配私网标签①-1033,NH地址2.2.2.2,将其通报给VPNv4邻居ASBR1
3、ASBR1关闭对RT值检讨,将路由放入BGP VPNv4路由表中
4、ASBR1路由通报给ASBR2,通报RT值1:1,MP-BGP为其再分配一次私网标签②-1038
4、 ASBR2将路由通报给PE2,通报RT值1:1,MP-BGP为其再分配一次私网标签③-1035,ASBR2也关闭对RT值的检讨放入VPNv4路由表
5、PE2收到后,匹配Import RT 1:1,剥离RD值引入到实例4中通报给CE2
数据访问:
1、 CE2访问1.1.1.1,将数据包发给PE2,FE2查看实例4的FIB表
a、 查看FIB路由表创造去往1.1.1.1的下一跳是5.5.5.5,根据目的网段1.1.1.1打上私网标签③,由于下一跳不是直连,迭代到LDP隧道中,打上LDP标签
b、 ASBR2收到数据包后,剥离私网标签③-1035,打上私网标签②-1038,发给ASBR1。
c、 ASBR1收到数据包,剥离私网标签②-1038,打上私网标签①-1033,并且由于去往PE1不是直连,故迭代到下一跳LDP隧道中,打上LDP标签
d、PE1收到数据包后,查找标签转揭橥,找到对应实例1,剥离私网标签①转发给CE1
Option C1
OptionC方案一的配置思路:
两个AS之间的PE设备直接运行VPNv4的邻居关系,中间设备不须要有VPN路由。
优点:VPN路由在入口PE和出口PE之间直接交流,不须要中间设备的保存和转发。VPN的路由信息只涌如今PE设备上,而P和ASBR只卖力报文的转发,使得中间域的设备可以不支持MPLS VPN业务,只需支持MPLS转发,ASBR设备不再成为性能瓶颈。因此跨域VPN-OptionC更适宜在超过多个AS时利用,更适宜支持MPLS VPN的负载分担。
缺陷:配置繁芜,掩护一条端到真个PE连接管理代价较大。
Option C方案一
Option C方案一
环境支配:
1、PE1与PE2建立EBGP VPNv4邻居关系;
2、AS内(如AS100中PE1、P1、ASBR1)建立IBGP邻居关系,启用MPLS LDP;
3、ASBR1和ASBR2建立EBGP IPv4邻居关系,开启MPLS,做标签交流。
路由通报:
1、CE1上发布一条11.1.1/32的路由进入PE1;
2、PE1将1.1.1.1/32的路由引入BGP中,并加入VPNv4路由表(32位IPv4路由添加64位RD,天生96位VPNv4路由),并且为其添加Export RT 1:1,私网标签①-1037,NH地址2.2.2.2,天生关于CE1路由10.1.1.1的instance,将其(试图)通报到PE2对应的instance中;(Option C的方案设计意图,是将VPNv4路由直接在PE设备间发送,路由不在ASBR的掌握平面上进行路由选择,减轻ASBR的压力);
3、通报VPNv4路由,首先须要PE1的2.2.2.2与PE2的7.7.7.7建立EBGP-VPNv4邻居关系;
a、AS100内,PE1的2.2.2.2/32地址以单播路由的办法,通过IBGP通报到ASBR1上,在ASBR1年夜将2.2.2.2/32发布到BGP中,并通过路由策略(ASBR1上peer ASBR2时apply MPLS label),为2.2.2.2分配公网标签1-1037,NH地址10.1.45.4,发给ASBR2(此处加标签是为了将2.2.2.2路由及标签通过外层公网标签进行通报,这样ASBR就不需对路由进行掌握,仅进行转发,减轻ASBR包袱。)
b、为通报2.2.2.2/32路由,AS100与AS200进行标签交流,ASBR2通过路由策略(peer AR2 if-match MPLS label apply MPLS label)将公网标签1-1037更换为ASBR2公网标签2-1037,路由通过IBGP邻居通报给PE2。(标签本地有效-故会重复)
4、AS200的PE2收到AS100的PE1的2.2.2.2/32地址,即可建立PE1-PE2的EBGP VPNv4邻居关系;
5、PE1上的VPNv4路由可以通过EBGP VPNv4的路由,核对Import RT1:1,匹配后剥离RD值,进入PE2的实例4;
6、实例4通报路由给相连的CE2,路由通报完成;
7、CE2的路由通过同样办法通报到CE1。
数据通报:
1、CE2上的数据包要发送给CE1的10.1.1.1/24网段。
2、CE2的数据包发送给PE2,进入PE2的实例2,实例2吸收后,根据数据查看FIB路由表。
a、查看FIB路由表创造去往1.1.1.1/32的下一跳是2.2.2.2,查看目的地址1.1.1.1,打上私网标签1-1037,2.2.2.2不是直连路由,ASBR2为这条2.2.2.2分配了公网标签2-1037给PE2,故打上公网标签2-1037,由于去往ASBR2,也不是直连,故迭代到LDP隧道中,打上LDP标签。(这里是三层标签哦)
b、PE2中MPLS LDP建立的LSP隧道已经建立完成,查看NHLFE表,收到P2以5.5.5.5(ASBR2的lookback口)为FEC分发标签,下一跳是P2,封装由P2分发的LDP标签,NH5.5.5.5,将含三层标签的数据发往P2。
3、P2作为数据通报的下一跳,收到LDP标签,创造是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,根据FIB表和NHLFE表,下一跳是ASBR2,将含有公网标签2-1037和私网标签1-1037的数据通报给ASBR2;
4、ASBR2收到公网标签2-1037的数据,创造是自己所发,对标签进行处理,剥离公网标签2-1037的标签,换成ASBR1给ASBR2发的公网标签1-1037标签
5、 ASBR1收到公网标签1-1037的数据,创造是自己所发,对标签进行处理,剥离公网标签1-1037的标签,此处隧道都是去往2.2.2.2(PE1)的,由于AS100,LDP全开,故迭代到LDP隧道中
7、P1上收到LDP标签,创造是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,然后将含有私网标签1-1037的数据通报给PE1;
8、PE1上收到私网标签1-1037的数据,创造是自己所发,对标签进行处理,剥离私网标签1-1036,将数据转入匹配的VPN实例1;
9、VPN实例1将数据通报到实例对应的CE1,完成数据通报。
Option C方案二
Option C方案二的基本思路
跟OptionC方案一思路基本同等,不过PE-ASBR之间不须要建立IBGP,直接将路由引入底层IGP中。
Option C方案二
环境支配:
1、PE1与PE2建立EBGP VPNv4邻居关系;
2、AS内(如AS100中PE1、P1、ASBR1)建立IGP邻居关系,启用MPLS LDP;
3、ASBR1和ASBR2建立EBGP IPv4邻居关系,开启MPLS,做标签交流。
路由通报:
1、CE1上发布一条1.1.1.1/32的路由进入PE1;
2、PE1将1.1.1.1/32的路由加入VPNv4路由表(32位IPv4路由添加64位RD,天生96位VPNv4路由),并且为其添加Export RT1:1,私网标签1-1032,NH地址2.2.2.2,,将该路由(试图)通报到PE2对应的instance中(Option C的方案设计意图,是将VPNv4路由直接在PE设备间发送,路由不在ASBR的掌握平面上进行路由选择,减轻ASBR的压力);
3、通报VPNv4路由,首先须要PE1的2.2.2.2与PE2的2.2.2.2建立EBGP-VPNv4邻居关系;
a、AS100内,PE1的2.2.2.2/32地址以IGP的办法,通过底层IGP通报到ASBR1上,在ASBR1年夜将2.2.2.2/32发布到BGP中,并通过路由策略(ASBR1peer对方时候apply MPLS label),为2.2.2.2分配公网标签1-1028,(此处加标签是为了将2.2.2.2路由及标签通过外层公网标签进行通报,这样ASBR就不需对路由进行掌握,仅进行转发,减轻ASBR包袱)。
b、为通报2.2.2.2/32路由,ASBR1-ASBR2之间通过EBGP的邻居关系通报路由
4、AS200内,通过BGP引入IGP的办法,将2.2.2.2/32以IGP单播路由办法逐跳传到PE2,PE2收到的2.2.2.2/32的路由在IGP路由表中,不在BGP路由表中;
5、AS200的PE2收到AS100的PE1的2.2.2.2/32地址,即可建立PE1-PE2的EBGP VPNv4邻居关系;
6、PE1上的VPNv4路由可以通过EBGP VPNv4的路由,核对Import RT1:1,匹配后剥离RD值、进入PE2的实例2;
7、实例2通报路由给相连的CE2,路由通报完成;
8、CE2的路由通过同样办法通报到CE1。
数据通报:
1、CE2上的数据包要发送给CE1的1.1.1.1/24网段;
2、CE2的数据包发送给PE2,根据数据查看实例4的FIB路由表:
a、查看FIB实例表创造去往1.1.1.1/32的下一跳是2.2.2.2,,进行私网标签封装,私网标签1-1032,NH2.2.2.2,由于下一跳2.2.2.2转发路径不能直达,查找隧道转揭橥,表中有2.2.2.2(私网FEC)的下一跳的LDP隧道,就迭代到LDP隧道中,此处LDP隧道是IGP邻居的路由建成。
b、PE2中MPLS LDP建立的LSP隧道已经建立完成,下一跳是P2,PE2将含二层标签的数据发往P2。
3、P2作为数据通报的下一跳,收到LDP标签1027,创造是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,将含有私网标签1-1032的数据通报给ASBR2;
4、数据传到ASBR2后,由于AS内是通过IGP通报路由,在ASBR2上IGP路由须要被引入BGP中,再通报给ASBR1;
a、由于ASBR1和ASBR2之间仅转发数据,不做路由掌握,所需ASBR1和ASBR2间进行标签交流,而ASBR2上的路由现在被引入BGP中,且由于LDP默认只为32位IGP分发标签,而不为BGP分发标签,须要在ASBR1/ASBR2上通过手动的办法是LDP为BGP分发标签。
b、ASBR2查看LFIB表,创造隧道目的地是要去往2.2.2.2,由于ABR1为2.2.2.2分配了一个公网标签1-1028,于是ASBR2封装公网标签1-1028发给ASBR1
5、ASBR1收到公网标签1-1028的数据,创造是自己所发,对标签进行处理,剥离公网标签1-1028,查看LFIB表,创造下一跳是2.2.2.2,不可直达,就查看隧道转揭橥,有2.2.2.2的LDP隧道,下一跳P1,就迭代到LDP隧道中,进行转发;
6、ASBR1中MPLS LDP建立的LSP隧道已经建立完成,当ASBR1以2.2.2.2位FEC,根据NHFLE表,下一跳是P1,封装由P2分发的LDP标签,保持两层标签发往P1;
7、P1上收到LDP标签数据,创造是自己所发,对标签进行处理,由于是倒数第二跳,进行PHP弹出LDP标签,根据NHFLE表,下一跳是PE1,将含有私网标签1-1032的数据通报给PE1;
8、PE1上收到私网标签1-1032的数据,创造是自己所发,对标签进行处理,剥离私网标签,将数据转入匹配的VPN实例1;
9、VPN实例1将数据通报到实例对应的CE1,完成数据通报。
以是Option C1和Option C2的差异是什么呢?
1、C1一开始访问的时候是打了三层标签,C2是二层标签。
2、C2收到BGP IPv4路由是直接引入到IGP中,C1则是建立BGP邻居关系通报。
以上便是跨域VPN的知识点,还有一种带RR(路由反射器)的场景,希望大家看完本文后能够自己剖析出来哦!
作者简介:颜桂灵,在华为授权互助伙伴(HALP)泰克教诲卖力路由交流和物联网方向的授课和课程开拓,对华为认证有着独到的见地,深受学员好评。