05-EVPN L3VPN配置
本章节下载: 05-EVPN L3VPN配置 (722.45 KB)
目 录
1.4 配置BGP/MPLS L3VPN与EVPN L3VPN对接
1.4.2 配置允许BGP VPNv4或VPNv6路由通过EVPN地址族发布给邻居
1.4.3 配置允许BGP EVPN路由通过VPNv4或VPNv6地址族发布给邻居
1.8.3 IPv4 MPLS L3VPN与IPv4 EVPN L3VPN对接配置举例
1.8.4 IPv6 MPLS L3VPN与IPv6 EVPN L3VPN对接配置举例
EVPN的IP前缀路由可以用来发布VPN私网路由信息,以实现MPLS L3VPN组网,该网络称为EVPN L3VPN。与BGP/MPLS L3VPN网络相比,EVPN L3VPN组网中,在EVPN的基础上可以快速部署大二层网络,使得网络同时承载二层VPN和三层VPN业务。
如图1-1所示,在EVPN L3VPN组网中,VPN路由信息的发布涉及CE和PE。P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,不维护所有VPN路由。
VPN路由信息的发布过程包括三部分:本地CE到入口PE、入口PE到出口PE、出口PE到远端CE。完成这三部分后,本地CE与远端CE之间将建立可达路由。
图1-1 EVPN L3VPN典型组网图
CE使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的VPN路由发布给PE。CE发布给PE的是标准的IPv4或IPv6路由。
PE从CE学到VPN路由信息后,将其存放到相应的VPN实例的路由表中。PE为这些标准IPv4或IPv6路由增加RD和Export Target属性,并为这些路由分配MPLS私网标签,形成EVPN的IP前缀路由(包括RD、Export Target属性和MPLS私网标签)发布给出口PE。出口PE将IP前缀路由的Export Target属性与自己维护的VPN实例的Import Target属性进行匹配。如果出口PE上某个VPN实例的Import Target属性与路由的Export Target属性中存在相同的属性值,则接收该IP前缀路由并将其添加到VPN路由表中。
与本地CE到入口PE的路由信息交换相同,远端CE可以通过多种方式从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS、EBGP和IBGP。
在EVPN L3VPN组网中,PE转发VPN报文时为报文封装如下内容:
· 外层标记:又称为公网标记。VPN报文在骨干网上沿着公网隧道从一端PE传送到另一端PE。公网隧道可以是LSP隧道、MPLS TE隧道和GRE隧道。当公网隧道为LSP隧道或MPLS TE隧道时,公网标记为MPLS标签,称为公网标签;当公网隧道为GRE隧道时,公网标记为GRE封装。
· 内层标签:又称为私网标签,用来指示报文应被送到哪个Site。对端PE根据私网标签可以确定报文所属的VPN实例,通过查找该VPN实例的路由表,将报文正确地转发到相应的Site。PE之间在发布EVPN路由时,将为私网路由分配的私网标签通告给对端PE。
图1-2 EVPN L3VPN报文转发示意图
如图1-2所示,VPN报文的转发过程为:
(2) Site 1发出一个目的地址为1.1.1.2的IP报文,由CE 1将报文发送至PE 1。
(3) PE 1根据报文到达的接口及目的地址查找对应VPN实例的路由表,根据匹配的路由表项为报文添加私网标签,并查找到报文的下一跳为PE 2。
(4) PE 1在公网路由表内查找到达PE 2的路由,根据查找结果为报文封装公网标签或进行GRE封装,并沿着公网隧道转发该报文。
(5) MPLS网络内,P根据报文的公网标记转发报文,将报文转发到PE 2。如果为GRE封装,则由PE 2剥离报文的GRE封装。
(6) PE 2根据私网标签确定报文所属的VPN实例,通过查找该VPN实例的路由表,确定报文的出接口,剥离私网标签后将报文转发至CE 2。
(7) CE 2根据正常的IP转发过程将报文转发给目的主机。
属于同一个VPN的两个Site连接到同一个PE时,PE不需要为VPN报文封装外层标记和内层标签,只需查找对应VPN实例的路由表,找到报文的出接口,将报文转发至相应的Site。
EVPN L3VPN的配置任务如下:
(1) 配置MPLS L3VPN的基本功能
¡ 配置VPN实例
¡ 配置PE-CE间的路由交换
MPLS L3VPN基本功能的配置方法,请参见“MPLS配置指导”中的“MPLS L3VPN”。
(2) 配置EVPN L3VPN网络
(3) 配置BGP/MPLS L3VPN与EVPN L3VPN对接
¡ 配置允许BGP VPNv4或VPNv6路由通过EVPN地址族发布给邻居
¡ 配置允许BGP EVPN路由通过VPNv4或VPNv6地址族发布给邻居
(4) (可选)配置BGP EVPN快速重路由
(5) (可选)开启VPN Prefix ORF功能
缺省情况下PE向对等体/对等体组发布VXLAN封装的IP前缀路由。在EVPN L3VPN网络中需要配置本功能,否则VPN路由无法作为EVPN的IP前缀路由发布到对等体/对等体组。
本功能通常配置在EVPN L3VPN网络的边缘节点和RR(Route Reflector,路由反射器)设备上。
(1) 进入系统视图。
system-view
(2) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(3) 将远端PE配置为对等体。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } as-number as-number
(4) 进入BGP EVPN地址族。
address-family l2vpn evpn
(5) 配置向对等体/对等体组发布MPLS封装的IP前缀路由。
peer { group name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise encap-type mpls
缺省情况下,向对等体/对等体组发布VXLAN封装的IP前缀路由。
开启本功能后,当前VPN路由表中的VPN路由会作为EVPN的IP前缀路由发布给邻居;当收到邻居发送的IP前缀路由时,会将其插入到相应的VPN路由表中。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 进入VPN实例的IPv4单播地址族或VPN实例的IPv6单播地址族视图。
¡ 进入公网实例IPv4单播地址族视图。
address-family ipv4 unicast
¡ 进入公网实例IPv6单播地址族视图。
address-family ipv6 unicast
(4) 开启EVPN通告VPN路由功能。
evpn mpls routing-enable
缺省情况下,EVPN通告VPN路由的功能处于关闭状态。
如图1-3所示,将现网L3VPN网络改造成EVPN L3VPN网络的过程中,会存在两种类型网络对接的情况。通过在PE 3上部署BGP VPNv4或BGP VPNv6路由通过BGP EVPN的IP前缀路由发布给邻居功能和EVPN路由通过BGP VPNv4或BGP VPNv6地址族发布给邻居功能,可实现CE 1和CE 2间建立可达路由进行通信。
图1-3 MPLS L3VPN与EVPN L3VPN对接示意图
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置允许BGP VPNv4或VPNv6路由通过BGP EVPN地址族发布给邻居。
advertise l3vpn route [ replace-rt ][ advertise-policy policy-name ]
缺省情况下,BGP VPNv4或VPNv6路由不会通过EVPN地址族向外发送。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP VPNv4地址族视图或BGP VPNv6地址族视图。
address-family { vpnv4 | vpnv6 }
(4) 配置允许BGP EVPN路由通过VPNv4或VPNv6地址族发布给邻居。
advertise evpn route [ replace-rt ][ advertise-policy policy-name ]
缺省情况下,BGP EVPN路由不会通过VPNv4和VPNv6地址族向外发送。
执行本命令后,设备会将EVPN的IP前缀路由、携带主机路由信息的MAC/IP发布路由通过VPNv4或VPNv6地址族发布给邻居。
当EVPN网络中的链路或某台路由器发生故障时,需要通过故障链路或故障路由器传输才能到达目的地的报文将会丢失或产生路由环路,数据流量将会被中断。直到根据新的网络拓扑路由收敛后,被中断的流量才能恢复正常的传输。
为了尽可能缩短网络故障导致的流量中断时间,可以开启BGP EVPN快速重路由功能。在BGP EVPN地址族下开启快速重路由功能后,BGP会为EVPN地址族的所有路由自动计算备份路由,即只要从不同BGP对等体学习到了到达同一目的网络的路由,且这些路由不等价,就会生成主备两条路由。当主路由不可达时,BGP会使用备份路由来指导报文的转发,从而大大缩短了流量中断时间。在使用备份路由转发报文的同时,BGP会重新进行路由优选,优选完毕后,使用新的最优路由来指导报文转发。
在某些组网情况下,执行本配置为所有BGP路由生成备份路由后,可能会导致路由环路,请谨慎使用本功能。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 开启BGP EVPN快速重路由功能。
pic
缺省情况下,BGP EVPN快速重路由功能处于关闭状态。
本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP”。
缺省情况下,对于存在路由反射器的大规模组网,在RR反射的BGP EVPN路由中,通常包含路由始发设备所有BGP-VPN实例的私网路由。而目前的路由数量限制手段,仅能针对地址族生效,可能在RR反射的路由达到数量限制时,不需要的BGP-VPN实例路由占据了接收端接收路由的大部分,导致接收端无法收到需要的BGP-VPN实例路由。
现需要一种路由过滤手段,可以使得RR根据BGP路由在始发设备所属的BGP-VPN实例进行过滤,以实现在BGP EVPN地址族中以BGP-VPN实例为粒度过滤路由。开启VPN Prefix ORF(Outbound Route Filtering,输出路由过滤)功能可以解决上述问题。本功能将VPN Prefix ORF信息(其中包含了用于匹配路由的相关信息)通过Route-refresh消息发送给对等体,对等体会向本端设备撤销匹配VPN Prefix ORF信息的所有已发布路由,并且在需要向本地发送新的路由时,不仅要利用对等体上的路由策略对路由进行过滤,还需要利用接收到的VPN Prefix ORF信息对路由进行过滤,只有同时通过以上两者过滤的路由才会发给本地。VPN Prefix ORF功能实现了基于BGP-VPN实例粒度控制路由的发布和接收,并且在路由发送的源头就限制路由的数量,以达到减少BGP邻居间路由交互,节省网络资源的目的。
配置本功能后,本端设备与指定对等体/对等体组的BGP会话将断开并重新建立,以通过Open报文进行VPN Prefix ORF能力协商。只有在BGP会话的两端均为对端配置了peer capability-advertise orf vpn-prefix命令才能协商成功。协商成功后,设备就能解析对端发送的携带VPN Prefix ORF信息的Route-refresh消息。VPN Prefix ORF信息包括<RD值、源设备地址>两项内容。
如果BGP会话中的设备不支持收发Route-refresh消息,VPN Prefix ORF信息将无法成功发送,此时请在BGP会话的两端设备上均为对端配置peer capability-advertise route-refresh命令来开启收发Route-refresh的能力。
有关peer capability-advertise route-refresh命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
VPN Prefix ORF功能需要以下两项配置来构成VPN Prefix ORF信息是否触发的判断条件:
· 通过vpn-prefix-quota命令设置的<RD,源设备地址>二元组,该二元组用于匹配私网路由信息。
· 通过route-limit命令限制BGP-VPN实例支持的最大路由数量。
在设备上执行了以上两项配置后,某个BGP-VPN实例的IPv4或IPv6单播路由数量超过route-limit命令配置的最大路由数量,且其中匹配vpn-prefix-quota命令指定二元组的路由数量占BGP-VPN实例支持最大路由数量的百分比超过vpn-prefix-quota命令指定的告警阈值时:
(1) 设备判断是否存在其他BGP-VPN实例设置了相同的二元组。
¡ 如果是,进行步骤(2)。
¡ 如果否,进行步骤(3)。
(2) 判断这些BGP-VPN实例的路由是否均已超过支持的最大路由数量,且匹配二元组的路由超过告警阈值。
¡ 如果是,进行步骤(3)。
¡ 如果否,超过支持最大路由数量的BGP-VPN实例继续接收路由,并重复执行步骤(2)。
(3) 本端设备向peer capability-advertise orf vpn-prefix命令指定的对等体/对等体组发送携带VPN Prefix ORF信息的Route-refresh消息。
如果在多个设置了相同二元组的BGP-VPN实例中,部分BGP-VPN实例中匹配该二元组的路由数量已经超过告警阈值,而部分BGP-VPN实例仍未接收到任何能够匹配该二元组的路由,则说明这些仍未接收到路由的BGP-VPN实例无法接收匹配该二元组的路由,设备在判断是否触发VPN Prefix ORF信息时不会考虑这些仍未接收到匹配该二元组路由的BGP-VPN实例。
VPN Prefix ORF信息的具体值为<RD、源设备地址>。其中“RD”和“源设备地址”的值为vpn-prefix-quota命令中超过告警阈值的二元组的路由标识符和源设备地址。
对等体收到携带VPN Prefix ORF信息的Route-refresh消息后,会撤销所有与VPN Prefix ORF信息中“RD、源设备地址”同时匹配的BGP EVPN路由(其中与VPN Prefix ORF信息中“源设备地址”匹配的路由信息是路由的下一跳属性),并且不会再向本地发送与VPN Prefix ORF信息匹配的BGP EVPN路由。
如果设备已发布过VPN Prefix ORF信息,则该信息将一直在对等体上生效以过滤路由的发布,此时需要执行clear bgp vpn-prefix-orf命令撤销已经发布过的VPN Prefix ORF信息,对等体才能重新发布由于VPN Prefix ORF信息被撤销或过滤的路由。
在图1-4的组网中,各PE设备上VPN实例的配置如图所示。RR反射同一AS内来自PE 1、PE 2和PE 3的路由,PE 1和PE 2均与RR协商成功了VPN Prefix ORF能力。PE 1在VPN1和VPN2对应的BGP-VPN实例内通过vpn-prefix-quota命令指定二元组为<RD31,PE3>、告警阈值为70%。PE 2在VPN1对应的BGP-VPN实例内通过vpn-prefix-quota命令指定二元组为<RD31,PE3>、告警阈值为70%。
图1-4 VPN Prefix ORF功能应用组网图
PE 3通过BGP EVPN发布VPN1内的路由同时导致PE 1和PE 2的BGP-VPN实例路由超限时,PE 1和PE 2的VPN Prefix ORF功能工作机制如下:
· PE 1
PE 1内仅VPN1对应的BGP-VPN实例路由超限、且其中匹配<RD31,PE3>的路由数量超过总路由数量的70%时,由于VPN2与VPN1设置了相同的二元组,且VPN2对应的BGP-VPN实例仍可以接收来自PE 3、携带RT 1和RT 2的VPN1私网路由,因此,PE 1不会发布携带VPN Prefix ORF信息的Route-refresh消息,VPN1对应的BGP-VPN实例仍可以继续接收路由。只有等到VPN1和VPN2对应的BGP-VPN实例路由均超限、且匹配二元组<RD31,PE3>的私网路由都超过了告警阈值时,PE 1才会向RR发布携带VPN Prefix ORF信息的Route-refresh消息。发布的VPN Prefix ORF信息值为<RD31、min(VPN1对应的BGP-VPN实例支持的最大路由数量,VPN2对应的BGP-VPN实例支持的最大路由数量)、PE3地址>。
RR收到携带VPN Prefix ORF信息的Route-refresh消息后,会向PE 1撤销同时满足如下条件的已发布路由,并且不再向PE 1发布满足如下条件的所有路由,如图1-5所示:
¡ 路由携带的标识符为RD31
¡ 下一跳地址为PE 3的地址
图1-5 VPN Prefix ORF信息生效示意图
· PE 2
PE 2内VPN1对应的BGP-VPN实例路由超限时,由于没有其他VPN设置了相同的二元组,PE 2会立即向RR发布携带VPN Prefix ORF信息的Route-refresh消息。发布的VPN Prefix ORF信息具体值为<RD31、VPN1对应的BGP-VPN实例支持的最大路由数量、PE3地址>。
RR收到携带VPN Prefix ORF信息的Route-refresh消息后,会向PE 2撤销同时满足如下条件的所有路由,并且不再向PE 2发布满足如下条件的所有路由:
¡ 路由携带的标识符为RD31
¡ 下一跳地址为PE 3的地址
目前,仅支持同一AS内的VPN Prefix ORF功能,不支持跨AS域的VPN Prefix ORF功能。
必须要同时配置route-limit、vpn-prefix-quota route-distinguisher和peer capability-advertise orf vpn-prefix命令,VPN Prefix ORF功能才能正常生效。
无论是IPv4私网路由还是IPv6私网路由触发了VPN Prefix ORF信息,对于VPN Prefix ORF信息的接收端,在撤销BGP EVPN路由时不会区分IPv4和IPv6路由,所有匹配VPN Prefix ORF信息的BGP EVPN路由均会被撤销。
(1) 进入系统视图。
system-view
(2) 创建VPN实例,并进入VPN实例视图。
ip vpn-instance vpn-instance-name
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(3) 配置VPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未配置VPN实例的RD。
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(4) 配置VPN实例的Route Target。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未配置VPN实例的Route Target。
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
有关本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(3) 进入BGP-VPN实例视图。
ip vpn-instance vpn-instance-name
有关本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(4) 进入BGP-VPN IPv4单播地址族视图或BGP-VPN IPv6单播地址族视图,请至少选择其中一项进行配置。
¡ 进入BGP-VPN IPv4单播地址族视图。
address-family ipv4 [ unicast ]
¡ 进入BGP-VPN IPv6单播地址族视图。
address-family ipv6 [ unicast ]
有关本配置步骤命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(5) 设置BGP-VPN实例支持的最大路由数量。
route-limit limit
缺省情况下,BGP-VPN实例支持的最大路由数量为4294967295。
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(6) 设置用于匹配路由的二元组,并设置匹配二元组路由的告警阈值。
vpn-prefix-quota route-distinguisher route-distinguisher source-address { ipv4-address | ipv6-address } quota threshold evpn
缺省情况下,未设置匹配指定二元组的路由的告警阈值,即不会触发匹配指定二元组路由的告警信息。
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 开启与指定BGP对等体/对等体组协商VPN Prefix ORF的能力。
peer { group-name | ipv4-address [ mask-length ] |ipv6-address [ prefix-length ] } capability-advertise orf vpn-prefix { both | send | receive }
缺省情况下,本端与BGP对等体/对等体组协商VPN Prefix ORF的能力处于关闭状态。
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
(5) (可选)撤销已发布的VPN Prefix ORF信息。
a. 依次执行以下命令,退回用户视图。
quit
quit
quit
b. 撤销已发布的VPN Prefix ORF信息。
clear bgp [ instance instance-name ] vpn-prefix-orf [ vpn-instance vpn-instance-name | route-distinguisher route-distinguisher source-address { ipv4-address | ipv6-address } ] evpn
有关本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后EVPN L3VPN的运行情况,通过查看显示信息验证配置的效果。
display ip routing-table vpn-instance命令的详细介绍请参见“三层技术-IP路由命令参考”中的“IP路由基础”。
display bgp group vpnv4、display bgp peer vpnv4、display bgp routing-table vpnv4、display ip vpn-instance命令的详细介绍请参见“MPLS命令参考”中的“MPLS L3VPN”。
表1-1 EVPN L3VPN显示和维护
操作 |
命令 |
显示BGP EVPN的IP前缀路由的入标签 |
display bgp [ instance instance-name ] l2vpn evpn inlabel |
显示BGP VPNv4对等体组信息 |
display bgp [ instance instance-name ] group vpnv4 [ vpn-instance vpn-instance-name ] [ group-name group-name ] |
显示BGP VPNv6对等体组信息 |
display bgp [ instance instance-name ] group vpnv6 [ group-name group-name ] |
显示BGP VPNv4对等体信息 |
display bgp [ instance instance-name ] peer vpnv4 [ vpn-instance vpn-instance-name ] [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
显示BGP VPNv6对等体信息 |
display bgp [ instance instance-name ] peer vpnv6 [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
显示BGP VPNv4路由信息 |
display bgp [ instance instance-name ] routing-table vpnv4 [ [ route-distinguisher route-distinguisher ] [ ipv4-address [ { mask-length | mask } [ longest-match ] ] | ipv4-address [ mask-length | mask ] advertise-info | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } ] | [ vpn-instance vpn-instance-name ] peer ipv4-address { advertised-routes | received-routes } [ ipv4-address [ mask-length | mask ] | statistics ] | statistics ] |
显示BGP VPNv6路由信息 |
display bgp [ instance instance-name ] routing-table vpnv6 [ [ route-distinguisher route-distinguisher ] [ ipv6-address prefix-length [ advertise-info ] | as-path-acl as-path-acl-number | community-list { { basic-community-list-number | comm-list-name } [ whole-match ] | adv-community-list-number } ] | peer ipv4-address { advertised-routes | received-routes } [ ipv6-address prefix-length | statistics ] | statistics ] |
显示与VPN实例相关联的IP路由表 |
display ip routing-table vpn-instance vpn-instance-name [ statistics | verbose ] |
显示指定VPN实例信息 |
display ip vpn-instance [ instance-name vpn-instance-name ] |
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换EVPN路由信息。
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
XGE3/1/1 |
10.1.1.1/24 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
XGE3/1/4 |
172.1.1.2/24 |
|
XGE3/1/1 |
10.1.1.2/24 |
|
XGE3/1/5 |
172.2.1.1/24 |
|
XGE3/1/2 |
10.2.1.2/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
XGE3/1/4 |
172.1.1.1/24 |
|
XGE3/1/1 |
10.3.1.2/24 |
CE 2 |
XGE3/1/1 |
10.2.1.1/24 |
|
XGE3/1/2 |
10.4.1.2/24 |
CE 3 |
XGE3/1/1 |
10.3.1.1/24 |
|
XGE3/1/4 |
172.2.1.2/24 |
CE 4 |
XGE3/1/1 |
10.4.1.1/24 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface ten-gigabitethernet 3/1/4
[PE1-Ten-GigabitEthernet3/1/4] ip address 172.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/4] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface ten-gigabitethernet 3/1/4
[P-Ten-GigabitEthernet3/1/4] ip address 172.1.1.2 24
[P-Ten-GigabitEthernet3/1/4] quit
[P] interface ten-gigabitethernet 3/1/5
[P-Ten-GigabitEthernet3/1/5] ip address 172.2.1.1 24
[P-Ten-GigabitEthernet3/1/5] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface ten-gigabitethernet 3/1/4
[PE2-Ten-GigabitEthernet3/1/4] ip address 172.2.1.2 24
[PE2-Ten-GigabitEthernet3/1/4] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface ten-gigabitethernet 3/1/4
[PE1-Ten-GigabitEthernet3/1/4] mpls enable
[PE1-Ten-GigabitEthernet3/1/4] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/4] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface ten-gigabitethernet 3/1/4
[P-Ten-GigabitEthernet3/1/4] mpls enable
[P-Ten-GigabitEthernet3/1/4] mpls ldp enable
[P-Ten-GigabitEthernet3/1/4] quit
[P] interface ten-gigabitethernet 3/1/5
[P-Ten-GigabitEthernet3/1/5] mpls enable
[P-Ten-GigabitEthernet3/1/5] mpls ldp enable
[P-Ten-GigabitEthernet3/1/5] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface ten-gigabitethernet 3/1/4
[PE2-Ten-GigabitEthernet3/1/4] mpls enable
[PE2-Ten-GigabitEthernet3/1/4] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/4] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置VPN实例,将CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip binding vpn-instance vpn1
[PE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.2 24
[PE1-Ten-GigabitEthernet3/1/1] quit
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn2
[PE1-Ten-GigabitEthernet3/1/2] ip address 10.2.1.2 24
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip binding vpn-instance vpn1
[PE2-Ten-GigabitEthernet3/1/1] ip address 10.3.1.2 24
[PE2-Ten-GigabitEthernet3/1/1] quit
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn2
[PE2-Ten-GigabitEthernet3/1/2] ip address 10.4.1.2 24
[PE2-Ten-GigabitEthernet3/1/2] quit
# 按图1-6配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
以PE 1和CE 1为例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 2
Total IPv4 VPN-Instances configured : 0
Total IPv6 VPN-Instances configured : 0
Total IPv4 VPN-Instances EVPN configured : 0
Total IPv6 VPN-Instances EVPN configured : 0
VPN-Instance Name RD Address family Create time
vpn1 100:1 N/A 2018/12/13 12:49:08
vpn2 100:2 N/A 2018/12/13 12:49:20
[PE1] ping -vpn-instance vpn1 10.1.1.1
Ping 10.1.1.1 (10.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 10.1.1.1: icmp_seq=0 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=1 ttl=255 time=2.000 ms
56 bytes from 10.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 10.1.1.1: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 10.1.1.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 10.1.1.1 in VPN instance vpn1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.800/2.000/0.748 ms
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 10.2.1.1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn2] peer 10.2.1.1 enable
[PE1-bgp-default-ipv4-vpn2] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 3.3.3.9 enable
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 1.1.1.9 enable
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer l2vpn evpn命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
(6) 在PE设备上配置开启EVPN通告VPN路由功能
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] address-family ipv4
[PE1-vpn-ipv4-vpn1] evpn mpls routing-enable
[PE1-vpn-ipv4-vpn1] quit
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] address-family ipv4
[PE1-vpn-ipv4-vpn2] evpn mpls routing-enable
[PE1-vpn-ipv4-vpn2] quit
[PE1-vpn-instance-vpn2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] address-family ipv4
[PE2-vpn-ipv4-vpn1] evpn mpls routing-enable
[PE2-vpn-ipv4-vpn1] quit
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] address-family ipv4
[PE2-vpn-ipv4-vpn2] evpn mpls routing-enable
[PE2-vpn-ipv4-vpn2] quit
[PE2-vpn-instance-vpn2] quit
配置完成后,在PE设备上执行display bgp l2vpn evpn命令,可以在PE上看到从CE接收的VPN路由已经进入EVPN路由表。
(7) 在PE之间配置发布MPLS封装的IP前缀路由。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 3.3.3.9 advertise encap-type mpls
[PE1-bgp-default-evpn] peer 3.3.3.9 next-hop-local
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 1.1.1.9 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 1.1.1.9 next-hop-local
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
配置完成后,在PE设备上执行display bgp l2vpn evpn命令,可以在PE上看到对端PE发送的IP前缀路由。
# 在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1上的VPN 1为例:
[PE1] display ip routing-table vpn-instance vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 Direct 0 0 10.1.1.2 XGE3/1/1
10.1.1.0/32 Direct 0 0 10.1.1.2 XGE3/1/1
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.255/32 Direct 0 0 10.1.1.2 XGE3/1/1
10.3.1.0/24 BGP 255 0 3.3.3.9 XGE3/1/4
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。
例如:CE 1能够Ping通CE 3(10.3.1.1),但不能Ping通CE 4(10.4.1.1)。
· CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
· VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换EVPN路由信息。
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
XGE3/1/1 |
2001:1::1/96 |
P |
Loop0 |
2.2.2.9/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
|
XGE3/1/4 |
172.1.1.2/24 |
|
XGE3/1/1 |
2001:1::2/96 |
|
XGE3/1/5 |
172.2.1.1/24 |
|
XGE3/1/2 |
2001:2::2/96 |
PE 2 |
Loop0 |
3.3.3.9/32 |
|
XGE3/1/4 |
172.1.1.1/24 |
|
XGE3/1/1 |
2001:3::2/96 |
CE 2 |
XGE3/1/1 |
2001:2::1/96 |
|
XGE3/1/2 |
2001:4::2/96 |
CE 3 |
XGE3/1/1 |
2001:3::1/96 |
|
XGE3/1/4 |
172.2.1.2/24 |
CE 4 |
XGE3/1/1 |
2001:4::1/96 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface ten-gigabitethernet 3/1/4
[PE1-Ten-GigabitEthernet3/1/4] ip address 172.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/4] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface ten-gigabitethernet 3/1/4
[P-Ten-GigabitEthernet3/1/4] ip address 172.1.1.2 24
[P-Ten-GigabitEthernet3/1/4] quit
[P] interface ten-gigabitethernet 3/1/5
[P-Ten-GigabitEthernet3/1/5] ip address 172.2.1.1 24
[P-Ten-GigabitEthernet3/1/5] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface ten-gigabitethernet 3/1/4
[PE2-Ten-GigabitEthernet3/1/4] ip address 172.2.1.2 24
[PE2-Ten-GigabitEthernet3/1/4] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,PE 1、P、PE 2之间应能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface ten-gigabitethernet 3/1/4
[PE1-Ten-GigabitEthernet3/1/4] mpls enable
[PE1-Ten-GigabitEthernet3/1/4] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/4] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface ten-gigabitethernet 3/1/4
[P-Ten-GigabitEthernet3/1/4] mpls enable
[P-Ten-GigabitEthernet3/1/4] mpls ldp enable
[P-Ten-GigabitEthernet3/1/4] quit
[P] interface ten-gigabitethernet 3/1/5
[P-Ten-GigabitEthernet3/1/5] mpls enable
[P-Ten-GigabitEthernet3/1/5] mpls ldp enable
[P-Ten-GigabitEthernet3/1/5] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface ten-gigabitethernet 3/1/4
[PE2-Ten-GigabitEthernet3/1/4] mpls enable
[PE2-Ten-GigabitEthernet3/1/4] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/4] quit
上述配置完成后,PE 1、P、PE 2之间应能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置IPv6 VPN实例,将CE接入PE
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip binding vpn-instance vpn1
[PE1-Ten-GigabitEthernet3/1/1] ipv6 address 2001:1::2 96
[PE1-Ten-GigabitEthernet3/1/1] quit
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn2
[PE1-Ten-GigabitEthernet3/1/2] ipv6 address 2001:2::2 96
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip binding vpn-instance vpn1
[PE2-Ten-GigabitEthernet3/1/1] ipv6 address 2001:3::2 96
[PE2-Ten-GigabitEthernet3/1/1] quit
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn2
[PE2-Ten-GigabitEthernet3/1/2] ipv6 address 2001:4::2 96
[PE2-Ten-GigabitEthernet3/1/2] quit
# 按图1-7配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。
以PE 1和CE 1为例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 2
Total IPv4 VPN-Instances configured : 0
Total IPv6 VPN-Instances configured : 0
Total IPv4 VPN-Instances EVPN configured : 0
Total IPv6 VPN-Instances EVPN configured : 0
VPN-Instance Name RD Address family Create time
vpn1 100:1 N/A 2018/12/13 12:49:08
vpn2 100:2 N/A 2018/12/13 12:49:20
[PE1] ping ipv6 -vpn-instance vpn1 2001:1::1
Ping6(56 bytes) 2001:1::2 --> 2001:1::1, press CTRL_C to break
56 bytes from 2001:1::1, icmp_seq=0 hlim=64 time=9.000 ms
56 bytes from 2001:1::1, icmp_seq=1 hlim=64 time=1.000 ms
56 bytes from 2001:1::1, icmp_seq=2 hlim=64 time=0.000 ms
56 bytes from 2001:1::1, icmp_seq=3 hlim=64 time=0.000 ms
56 bytes from 2001:1::1, icmp_seq=4 hlim=64 time=0.000 ms
--- Ping6 statistics for 2001:1::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/2.000/9.000/3.521 ms
(4) 在PE与CE之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 另外3个CE设备(CE 2~CE 4)配置与CE 1设备配置类似,配置过程省略。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 2001:2::1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn2] peer 2001:2::1 enable
[PE1-bgp-default-ipv6-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# PE 2的配置与PE 1类似,配置过程省略。
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) 在PE之间建立MP-IBGP对等体
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 3.3.3.9 enable
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 1.1.1.9 enable
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
配置完成后,在PE设备上执行display bgp peer l2vpn evpn命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
(6) 在PE设备上配置开启IP前缀路由通告VPN路由功能
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] address-family ipv6
[PE1-vpn-ipv6-vpn1] evpn mpls routing-enable
[PE1-vpn-ipv6-vpn1] quit
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] address-family ipv6
[PE1-vpn-ipv6-vpn2] evpn mpls routing-enable
[PE1-vpn-ipv6-vpn2] quit
[PE1-vpn-instance-vpn2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] address-family ipv6
[PE2-vpn-ipv6-vpn1] evpn mpls routing-enable
[PE2-vpn-ipv6-vpn1] quit
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] address-family ipv6
[PE2-vpn-ipv6-vpn2] evpn mpls routing-enable
[PE2-vpn-ipv6-vpn2] quit
[PE2-vpn-instance-vpn2] quit
配置完成后,在PE设备上执行display bgp l2vpn evpn命令,可以在PE上看到从CE接收的VPN路由已经进入EVPN路由表。
(7) 在PE之间配置向对等体/对等体组发布MPLS封装的IP前缀路由。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 3.3.3.9 advertise encap-type mpls
[PE1-bgp-default-evpn] peer 3.3.3.9 next-hop-local
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 1.1.1.9 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 1.1.1.9 next-hop-local
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
配置完成后,在PE设备上执行display bgp l2vpn evpn命令,可以看到PE上接收到对端PE发送IP前缀路由。
# 在PE设备上执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1为例:
[PE1] display ipv6 routing-table vpn-instance vpn1
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/1 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:3::/96 Protocol : BGP4+
NextHop : ::FFFF:3.3.3.9 Preference: 255
Interface : XGE3/1/4 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
[PE1] display ipv6 routing-table vpn-instance vpn2
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/2 Cost : 0
Destination: 2001:2::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:4::/96 Protocol : BGP4+
NextHop : ::FFFF:3.3.3.9 Preference: 255
Interface : XGE3/1/4 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
# 同一VPN的CE能够相互Ping通,不同VPN的CE不能相互Ping通。例如:CE 1能够Ping通CE 3(2001:3::1),但不能Ping通CE 4(2001:4::1)。
· CE 1、CE 2属于VPN 1;
· PE与P设备属于同一自治系统,之间配置OSPF实现IGP互通;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE 1与P间通过MP-IBGP交换VPNv4路由;
· PE 2与P间通过MP-IBGP交换EVPN路由;
· P作为RR,负责在客户机PE 1和PE 2之间反射路由。
图1-8 MPLS L3VPN与EVPN L3VPN对接组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
1.1.1.9/32 |
P |
Loop0 |
2.2.2.9/32 |
|
XGE3/1/1 |
10.1.1.1/24 |
|
XGE3/1/1 |
10.1.1.2/24 |
|
XGE3/1/2 |
172.1.1.2/24 |
|
XGE3/1/2 |
10.2.1.2/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
CE 1 |
XGE3/1/1 |
172.1.1.1/24 |
|
XGE3/1/1 |
10.2.1.1/24 |
CE 2 |
XGE3/1/1 |
172.2.1.1/24 |
|
XGE3/1/2 |
172.2.1.2/24 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE间的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/1] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface ten-gigabitethernet 3/1/1
[P-Ten-GigabitEthernet3/1/1] ip address 10.1.1.2 24
[P-Ten-GigabitEthernet3/1/1] quit
[P] interface ten-gigabitethernet 3/1/2
[P-Ten-GigabitEthernet3/1/2] ip address 10.2.1.2 24
[P-Ten-GigabitEthernet3/1/2] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip address 10.2.1.1 24
[PE2-Ten-GigabitEthernet3/1/1] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,P与PE1、PE 2间应均能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] mpls enable
[PE1-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/1] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface ten-gigabitethernet 3/1/1
[P-Ten-GigabitEthernet3/1/1] mpls enable
[P-Ten-GigabitEthernet3/1/1] mpls ldp enable
[P-Ten-GigabitEthernet3/1/1] quit
[P] interface ten-gigabitethernet 3/1/2
[P-Ten-GigabitEthernet3/1/2] mpls enable
[P-Ten-GigabitEthernet3/1/2] mpls ldp enable
[P-Ten-GigabitEthernet3/1/2] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] mpls enable
[PE2-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/1] quit
上述配置完成后,P与PE 1、PE 2间应均能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置VPN实例,将CE设备接入对应PE;在P设备上配置VPN实例用于对接MPLS L3VPN和EVPN L3VPN
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn1
[PE1-Ten-GigabitEthernet3/1/2] ip address 172.1.1.2 24
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置P。
[P] ip vpn-instance vpn1
[P-vpn-instance-vpn1] route-distinguisher 100:1
[P-vpn-instance-vpn1] vpn-target 111:1
[P-vpn-instance-vpn1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn1
[PE2-Ten-GigabitEthernet3/1/2] ip address 172.2.1.2 24
[PE2-Ten-GigabitEthernet3/1/2] quit
# 按图1-8配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。PE 1/PE 2能ping通自己接入的CE。
以PE 1和CE 1为例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 1
Total IPv4 VPN-Instances configured : 0
Total IPv6 VPN-Instances configured : 0
Total IPv4 VPN-Instances EVPN configured : 0
Total IPv6 VPN-Instances EVPN configured : 0
VPN-Instance Name RD Address family Create time
vpn1 100:1 N/A 2018/12/13 12:49:08
[PE1] ping -vpn-instance vpn1 172.1.1.1
Ping 10.1.1.1 (172.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 172.1.1.1: icmp_seq=0 ttl=255 time=1.000 ms
56 bytes from 172.1.1.1: icmp_seq=1 ttl=255 time=2.000 ms
56 bytes from 172.1.1.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 172.1.1.1: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 172.1.1.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 172.1.1.1 in VPN instance vpn1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.800/2.000/0.748 ms
(4) 在PE 1和CE 1、PE 2和CE 2之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 172.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 172.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 172.1.1.1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 172.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
# 配置CE 2。
<CE2> system-view
[CE2] bgp 65420
[CE2-bgp-default] peer 172.2.1.2 as-number 100
[CE2-bgp-default] address-family ipv4 unicast
[CE2-bgp-default-ipv4] peer 172.2.1.2 enable
[CE2-bgp-default-ipv4] import-route direct
[CE2-bgp-default-ipv4] quit
[CE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 172.2.1.1 as-number 65420
[PE2-bgp-default-vpn1] address-family ipv4 unicast
[PE2-bgp-default-ipv4-vpn1] peer 172.2.1.1 enable
[PE2-bgp-default-ipv4-vpn1] quit
[PE2-bgp-default-vpn1] quit
配置完成后,在PE1设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) PE 1与P间通过MP-IBGP交换VPNv4路由,P与PE 2间通过MP-IBGP交换EVPN路由, P设备设置为RR,不对接收的路由进行Route target过滤。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 2.2.2.9 as-number 100
[PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv4] quit
[PE1-bgp-default] quit
# 配置P。
[P] bgp 100
[P-bgp-default] peer 1.1.1.9 as-number 100
[P-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[P-bgp-default] peer 3.3.3.9 as-number 100
[P-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[P-bgp-default] address-family vpnv4
[P-bgp-default-vpnv4] undo policy vpn-target
[P-bgp-default-vpnv4] peer 1.1.1.9 enable
[P-bgp-default-vpnv4] peer 1.1.1.9 reflect-client
[P-bgp-default-vpnv4] quit
[P-bgp-default] address-family l2vpn evpn
[P-bgp-default-evpn] undo policy vpn-target
[P-bgp-default-evpn] peer 3.3.3.9 enable
[P-bgp-default-evpn] peer 3.3.3.9 reflect-client
[P-bgp-default-evpn] quit
[P-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 2.2.2.9 enable
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
配置完成后,在PE 1设备上执行display bgp peer vpnv4命令,可以看到PE 1与P间的BGP对等体关系已建立,并达到Established状态;在PE 2设备上执行display bgp peer l2vpn evpn命令,可以看到PE 2与P间的BGP对等体关系已建立,并达到Established状态。
(6) 在P和PE 2设备上开启IP前缀路由通告VPN路由功能
# 配置P。
[P] ip vpn-instance vpn1
[P-vpn-instance-vpn1] address-family ipv4
[P-vpn-ipv4-vpn1] evpn mpls routing-enable
[P-vpn-ipv4-vpn1] quit
[P-vpn-instance-vpn1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] address-family ipv4
[PE2-vpn-ipv4-vpn1] evpn mpls routing-enable
[PE2-vpn-ipv4-vpn1] quit
[PE2-vpn-instance-vpn1] quit
配置完成后,在PE 2设备上执行display bgp l2vpn evpn命令,可以在PE上看到从CE接收的VPN路由已经进入EVPN路由表。
(7) 在P和PE 2上开启发布MPLS封装的IP前缀路由功能。
# 配置P。
[P] bgp 100
[P-bgp-default] address-family l2vpn evpn
[P-bgp-default-evpn] peer 3.3.3.9 advertise encap-type mpls
[P-bgp-default-evpn] peer 3.3.3.9 next-hop-local
[P-bgp-default-evpn] quit
[P-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 2.2.2.9 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 2.2.2.9 next-hop-local
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
(8) 在P上配置允许BGP VPNv4路由通过EVPN地址族发布给邻居,同时配置允许BGP EVPN路由通过VPNv4地址族发布给邻居。
# 配置P。
[P] bgp 100
[P-bgp-default] address-family vpnv4
[P-bgp-default-vpnv4] advertise evpn route
[P-bgp-default-vpnv4] quit
[P-bgp-default] address-family l2vpn evpn
[P-bgp-default-evpn] advertise l3vpn route
[P-bgp-default-evpn] quit
[P-bgp-default] quit
配置完成后,在PE设备上执行display bgp routing-table vpnv4命令,可以看到对端CE的VPNv4路由。
# 在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1上的VPN 1为例:
[PE1] dis ip routing-table vpn-instance vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.0/24 Direct 0 0 172.1.1.2 XGE3/1/2
172.1.1.0/32 Direct 0 0 172.1.1.2 XGE3/1/2
172.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
172.1.1.255/32 Direct 0 0 172.1.1.2 XGE3/1/2
172.2.1.0/24 BGP 255 0 2.2.2.9 XGE3/1/1
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
# CE 1和CE 2能够相互Ping通。
· CE 1、CE 2属于VPN 1;
· PE与P设备属于同一自治系统,之间配置OSPF实现IGP互通;
· CE与PE之间配置EBGP交换VPN路由信息;
· PE 1与P间通过MP-IBGP交换VPNv6路由;
· PE 2与P间通过MP-IBGP交换EVPN路由;
· P作为RR,负责在客户机PE 1和PE 2之间反射路由。
图1-9 MPLS L3VPN与EVPN L3VPN对接组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
1.1.1.9/32 |
P |
Loop0 |
2.2.2.9/32 |
|
XGE3/1/1 |
10.1.1.1/24 |
|
XGE3/1/1 |
10.1.1.2/24 |
|
XGE3/1/2 |
2001:1::2/96 |
|
XGE3/1/2 |
10.2.1.2/24 |
PE 2 |
Loop0 |
3.3.3.9/32 |
CE 1 |
XGE3/1/1 |
2001:1::1/96 |
|
XGE3/1/1 |
10.2.1.1/24 |
CE 2 |
XGE3/1/1 |
2001:2::1/96 |
|
XGE3/1/2 |
2001:2::2/96 |
|
|
|
(1) 在MPLS骨干网上配置IGP协议,实现骨干网PE间的互通
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/1] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface ten-gigabitethernet 3/1/1
[P-Ten-GigabitEthernet3/1/1] ip address 10.1.1.2 24
[P-Ten-GigabitEthernet3/1/1] quit
[P] interface ten-gigabitethernet 3/1/2
[P-Ten-GigabitEthernet3/1/2] ip address 10.2.1.2 24
[P-Ten-GigabitEthernet3/1/2] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip address 10.2.1.1 24
[PE2-Ten-GigabitEthernet3/1/1] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
配置完成后,P与PE 1、PE 2间应均能建立OSPF邻居,执行display ospf peer命令可以看到邻居达到FULL状态。执行display ip routing-table命令可以看到PE之间学习到对方的Loopback路由。
(2) 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] mpls enable
[PE1-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/1] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface ten-gigabitethernet 3/1/1
[P-Ten-GigabitEthernet3/1/1] mpls enable
[P-Ten-GigabitEthernet3/1/1] mpls ldp enable
[P-Ten-GigabitEthernet3/1/1] quit
[P] interface ten-gigabitethernet 3/1/2
[P-Ten-GigabitEthernet3/1/2] mpls enable
[P-Ten-GigabitEthernet3/1/2] mpls ldp enable
[P-Ten-GigabitEthernet3/1/2] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] mpls enable
[PE2-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/1] quit
上述配置完成后,P与PE 1、PE 2间应均能建立LDP会话,执行display mpls ldp peer命令可以看到LDP会话的状态为Operational。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3) 在PE设备上配置VPN实例,将CE设备接入对应PE;在P设备上配置VPN实例用于对接MPLS L3VPN和EVPN L3VPN
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn1
[PE1-Ten-GigabitEthernet3/1/2] ipv6 address 2001:1::2 96
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置P。
[P] ip vpn-instance vpn1
[P-vpn-instance-vpn1] route-distinguisher 100:1
[P-vpn-instance-vpn1] vpn-target 111:1
[P-vpn-instance-vpn1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn1
[PE2-Ten-GigabitEthernet3/1/2] ipv6 address 2001:2::2 96
[PE2-Ten-GigabitEthernet3/1/2] quit
# 按图1-9配置各CE的接口IP地址,配置过程略。
配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。PE 1/PE 2能ping通自己接入的CE。
以PE 1和CE 1为例:
[PE1] display ip vpn-instance
Total VPN-Instances configured : 1
Total IPv4 VPN-Instances configured : 0
Total IPv6 VPN-Instances configured : 0
Total IPv4 VPN-Instances EVPN configured : 0
Total IPv6 VPN-Instances EVPN configured : 0
VPN-Instance Name RD Address family Create time
vpn1 100:1 N/A 2018/12/13 15:12:47
[PE1] ping ipv6 -vpn-instance vpn1 2001:1::1
Ping6(56 data bytes) 2001:1::2 --> 2001:1::1, press CTRL_C to break
56 bytes from 2001:1::1, icmp_seq=0 hlim=64 time=2.000 ms
56 bytes from 2001:1::1, icmp_seq=1 hlim=64 time=1.000 ms
56 bytes from 2001:1::1, icmp_seq=2 hlim=64 time=0.000 ms
56 bytes from 2001:1::1, icmp_seq=3 hlim=64 time=1.000 ms
56 bytes from 2001:1::1, icmp_seq=4 hlim=64 time=1.000 ms
--- Ping6 statistics for 2001:1::1 in VPN instance vpn1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/1.000/2.000/0.632 ms
(4) 在PE 1和CE 1、PE 2和CE 2之间建立EBGP对等体,引入VPN路由
# 配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] router-id 3.3.3.9
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
# 配置CE 2。
<CE2> system-view
[CE2] bgp 65420
[CE2-bgp-default] router-id 4.4.4.9
[CE2-bgp-default] peer 2001:2::2 as-number 100
[CE2-bgp-default] address-family ipv6 unicast
[CE2-bgp-default-ipv6] peer 2001:2::2 enable
[CE2-bgp-default-ipv6] import-route direct
[CE2-bgp-default-ipv6] quit
[CE2-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] ip vpn-instance vpn1
[PE2-bgp-default-vpn1] peer 2001:2::1 as-number 65420
[PE2-bgp-default-vpn1] address-family ipv6 unicast
[PE2-bgp-default-ipv6-vpn1] peer 2001:2::1 enable
[PE2-bgp-default-ipv6-vpn1] quit
[PE2-bgp-default-vpn1] quit
配置完成后,在PE设备上执行display bgp peer ipv6 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。
(5) PE 1与P间通过MP-IBGP交换VPNv6路由,PE 2与P间通过MP-IBGP交换EVPN路由, P设备设置为RR,不对接收的路由进行Route target过滤。
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 2.2.2.9 as-number 100
[PE1-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 2.2.2.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置P。
[P] bgp 100
[P-bgp-default] peer 1.1.1.9 as-number 100
[P-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[P-bgp-default] peer 3.3.3.9 as-number 100
[P-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[P-bgp-default] address-family vpnv6
[P-bgp-default-vpnv6] undo policy vpn-target
[P-bgp-default-vpnv6] peer 1.1.1.9 enable
[P-bgp-default-vpnv6] peer 1.1.1.9 reflect-client
[P-bgp-default-vpnv6] quit
[P-bgp-default] address-family l2vpn evpn
[P-bgp-default-evpn] undo policy vpn-target
[P-bgp-default-evpn] peer 3.3.3.9 enable
[P-bgp-default-evpn] peer 3.3.3.9 reflect-client
[P-bgp-default-evpn] quit
[P-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 2.2.2.9 as-number 100
[PE2-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 2.2.2.9 enable
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
配置完成后,在PE 1设备上执行display bgp peer vpnv6命令,可以看到PE1与P间的BGP对等体关系已建立,并达到Established状态;在PE 2设备上执行display bgp peer l2vpn evpn命令,可以看到PE 2与P间的BGP对等体关系已建立,并达到Established状态。
(6) 在P和PE 2设备上配置开启IP前缀路由通告VPN路由功能
# 配置P。
[P] ip vpn-instance vpn1
[P-vpn-instance-vpn1] address-family ipv6
[P-vpn-ipv6-vpn1] evpn mpls routing-enable
[P-vpn-ipv6-vpn1] quit
[P-vpn-instance-vpn1] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] address-family ipv6
[PE2-vpn-ipv6-vpn1] evpn mpls routing-enable
[PE2-vpn-ipv6-vpn1] quit
[PE2-vpn-instance-vpn1] quit
配置完成后,在PE 2设备上执行display bgp l2vpn evpn命令,可以在PE上看到从CE接收的VPN路由已经进入EVPN路由表。
(7) 在PE 2和P上开启发布MPLS封装的IP前缀路由。
# 配置P。
[P] bgp 100
[P-bgp-default] address-family l2vpn evpn
[P-bgp-default-evpn] peer 3.3.3.9 advertise encap-type mpls
[P-bgp-default-evpn] peer 3.3.3.9 next-hop-local
[P-bgp-default-evpn] quit
[P-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 2.2.2.9 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 2.2.2.9 next-hop-local
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
(8) 在P设备上配置允许BGP VPNv6路由通过EVPN地址族发布给邻居,同时配置允许BGP EVPN路由通过VPNv6地址族发布给邻居
# 配置P。
[P] bgp 100
[P-bgp-default] address-family vpnv6
[P-bgp-default-vpnv6] advertise evpn route
[P-bgp-default-vpnv6] quit
[P-bgp-default] address-family l2vpn evpn
[P-bgp-default-evpn] advertise l3vpn route
[P-bgp-default-evpn] quit
[P-bgp-default] quit
配置完成后,在PE设备上执行display bgp routing-table vpnv6命令,可以看到对端CE的VPNv6路由。
# 在PE设备上执行display ipv6 routing-table vpn-instance命令,可以看到去往对端CE的路由。
以PE 1上的VPN 1为例:
[PE1] dis ipv6 routing-table vpn-instance vpn1
Destinations : 5 Routes : 5
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:1::/96 Protocol : Direct
NextHop : :: Preference: 0
Interface : XGE3/1/2 Cost : 0
Destination: 2001:1::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2001:2::/96 Protocol : BGP4+
NextHop : ::FFFF:2.2.2.9 Preference: 255
Interface : XGE3/1/1 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : InLoop0 Cost : 0
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!