03-EVPN VPLS配置
本章节下载: 03-EVPN VPLS配置 (1.46 MB)
目 录
1.1.13 EVPN VXLAN网络与EVPN VPLS网络互通
1.1.14 EVPN VPLS over mLDP P2MP
1.7.8 配置向对等体/对等体组发送BGP RPKI验证结果
1.7.9 通过将所有路由更新信息保存在本地实现BGP软复位
1.9.11 配置MAC/IP发布路由中的MAC地址重生成功能
1.9.14 配置发布以太网自动发现路由和MAC/IP发布路由时忽略以太网标签
1.9.15 配置向BGP EVPN对等体仅发送包含非全零MAC地址的MAC/IP发布路由
1.10.4 配置禁止EVPN从ARP/ND信息中学习MAC地址表项
1.10.5 配置AC的源MAC地址检查表项并开启AC的源MAC地址检查功能
1.11.4 配置VSI实例下的EVPN实例的E-Tree功能
1.13 配置EVPN VPLS over mLDP P2MP
1.20.2 EVPN VPLS多归属配置举例(聚合链路接入)
1.20.3 EVPN VPLS多归属配置举例(S-Trunk接入)
1.20.6 EVPN VPLS over mLDP配置举例
EVPN VPLS是控制层采用MP-BGP通告EVPN路由信息,数据层采用MPLS封装的二层VPN技术。PE通过查找MAC地址表转发数据报文,为用户提供点到多点的二层服务。
图1-1 EVPN VPLS网络模型示意图
如图1-1所示,EVPN VPLS网络中主要包括如下几部分:
· CE(Customer Edge,用户网络边缘):直接与服务提供商网络相连的用户网络侧设备。
· PE(Provider Edge,服务提供商网络边缘):与CE相连的服务提供商网络侧设备。PE主要负责EVPN VPLS业务的接入,完成报文从用户网络到公网隧道、从公网隧道到用户网络的映射与转发。
· AC(Attachment Circuit,接入电路):连接CE和PE的物理电路或虚拟电路。
· PW(Pseudowire,伪线):两个PE之间的虚拟双向连接。PW由一对方向相反的单向虚拟连接构成。
· 公网隧道(Tunnel):穿越IP或MPLS骨干网、用来承载PW的隧道。一条公网隧道可以承载多条PW,公网隧道可以是LSP、GRE隧道或MPLS TE隧道。
· VSI(Virtual Switch Instance,虚拟交换实例):VSI是PE设备上为一个VPLS实例提供二层交换服务的虚拟实例。VSI可以看作是PE设备上的一台虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VPLS通过VSI实现在VPLS实例内转发二层数据报文。
EVPN VPLS组网中,邻居自动发现、PW建立的过程为:
(1) PE为每个VSI实例分配两个PW标签,分别用于转发已知单播报文和BUM(Broadcast/Unknown unicast/Unknown Multicast,广播/未知单播/未知组播)报文。
(2) 本端PE通过MAC/IP发布路由或以太网自动发现路由将转发已知单播报文的PW标签通告给远端PE;通过IMET路由将转发BUM报文的PW标签通告给远端PE。路由中携带VPN Target属性。
(3) 远端PE接收到MAC/IP发布路由、以太网自动发现路由或IMET路由后,将路由中的VPN Target属性与EVPN实例的Import Target进行匹配,如果一致则根据路由中携带的PE地址、PW标签等信息建立一条单向的虚拟连接。
(4) 当两端的PE间建立了两条方向相反的单向虚拟连接,则PW建立完成。
PE根据学习到的MAC地址表项转发二层单播流量。PE上MAC地址学习分为两部分:
· 本地MAC地址学习:PE接收到本地CE发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地CE的MAC地址)添加到该VSI的MAC地址表中,该MAC地址对应的接口为接收到数据帧的接口。
· 远端MAC地址学习:PE通过MAC/IP发布路由将本地学习的MAC地址通告给远端PE。远端PE接收到该信息后,将其添加到对应的VSI的MAC地址表中,该MAC地址的出接口为两个PE之间PW的索引。
· 本地MAC地址老化:PE学习本地MAC地址后,如果MAC地址老化定时器超时,则删除该MAC地址表项,减少占用的MAC地址表资源。
· 远端MAC地址老化:PE从MAC/IP发布路由中学习远端MAC地址,在接收到撤销该MAC地址的路由前,MAC地址会一直存在MAC地址表中。
AC状态变为down时,EVPN会向所有远端PE发送不可达信息撤销该AC对应的MAC地址,远端PE根据不可达信息删除指定VSI内的指定MAC地址,以加快MAC地址表的收敛速度。
· PE从AC接收到已知单播报文后,会在对应的VSI内查找MAC地址表,从而确定如何转发报文:
¡ 表项的出接口为PW索引时,为报文封装私网标签,再添加公网隧道封装后,通过PW将该报文转发给远端PE。如果公网隧道为LSP或MPLS TE隧道,则通过PW转发报文时将为报文封装两层标签:内层标签为私网标签,用来决定报文转发给相应的VSI;外层标签为公网LSP或MPLS TE隧道标签,用来保证报文在PE之间正确传送。
¡ 表项的出接口为连接本地CE的接口时,直接通过出接口将报文转发给本地CE。
· PE从PW接收到已知单播报文后,在其所属的VSI内查找MAC地址表,出接口应为连接本地站点的接口,PE通过该出接口将报文转发给本地站点。
PE从AC上接收到泛洪流量后,向该AC关联的VSI内的所有其他AC和所有PW泛洪该报文。
PE从PW上接收到泛洪流量后,向该PW所属VSI内的所有AC泛洪该报文。
为避免环路,一般的二层网络都要求使用环路预防协议,比如STP(Spanning Tree Protocol,生成树协议)。但在骨干网的PE上部署环路预防协议,会增加管理和维护的难度。因此,EVPN VPLS采用如下方法避免环路:
· PE之间建立全连接,即一个EVPN实例内的每两个PE之间必须都建立PW。
· 采用水平分割转发规则,即从PW上收到的泛洪报文禁止向其他PW转发,只能转发到AC。
多归属站点是指一个站点通过不同的以太网链路连接到多台PE,这些链路构成一个ES(Ethernet Segment,以太网段),并以一个相同的ESI(ES Identifier)标识其属于同一个ES。连接的多台PE组成冗余备份组,可以避免PE单点故障对网络造成影响,从而提高网络的可靠性。目前仅支持双归属。
图1-2 多归属站点示意图
当一个CE连接到多台PE时,为了避免冗余备份组中的PE均发送泛洪流量给该CE,需要在冗余备份组中选举一个PE作为DF(Designated Forwarder,指定转发者),负责将泛洪流量转发给本地站点。其他PE作为BDF(Backup DF,备份DF),不会向本地CE转发泛洪流量。多归属成员通过发送以太网段路由,向其它PE通告ES及其连接的PE信息,仅配置了ESI的PE会接收以太网段路由并根据其携带的ES、PE信息选举出DF。
设备支持多种DF选举算法,用户可以根据业务需要灵活地选择DF选举算法,使组网中DF能够均匀分布,提高网络设备的使用率。
图1-3 DF示意图
· 基于VLAN Tag的DF选举算法
基于VLAN Tag的DF选举算法根据VLAN Tag和VTEP的IP地址为每个AC选举DF。
图1-4 基于VLAN Tag的DF选举
如图1-4所示,以允许VLAN Tag 4通过的AC 1的DF选举为例,基于VLAN Tag的DF选举算法为:
a. 选取AC内允许通过的最小VLAN Tag代表该AC。在本例中,代表AC 1的VLAN Tag为4。
b. VTEP根据接收到的以太网段路由,对携带相同ESI的路由中的源IP地址按升序排列,编号从0开始。在本例中,源IP 1.1.1.1、2.2.2.2对应的编号依次为0、1。
c. 根据VLAN Tag除以N的余数M来选举DF,N代表冗余备份组中成员的数量,M对应的编号为该AC的DF。在本例中,4除以2的余数为0,即AC 1的DF为编号为0的VTEP 1。
· 基于优先级的DF选举算法
基于优先级的DF选举算法根据DF选举优先级、DP(Don't Preempt Me,不可回切)位和VTEP的IP地址为每个ES选举DF。其中,DP位的取值包括:
¡ 1:表示开启了基于优先级DF选举算法不回切功能。即当前设备被选举为DF后,即使后续选举出了新的设备作为DF,依然使用当前设备作为DF。
¡ 0:表示关闭了基于优先级DF选举算法不回切功能。即当前设备被选举为DF后,如果后续选举出了新的设备作为DF,则直接使用新的设备作为DF。
如图1-5所示,以ES 1、ES 2的DF选举为例,基于优先级的DF选举算法为:
d. 同一ES内DF选举优先级(数值越大则优先级越高)最高的VTEP作为该ES的DF。在本例中,选举VTEP 2作为ES 1的DF。
e. 若优先级相同,则DP位为1的VTEP作为DF。
f. 若DP位相同,则IP地址小的VTEP作为DF。在本例中,选举VTEP 1作为ES 2的DF。
EVPN VPLS组网场景支持的冗余备份模式包括:单活冗余模式和多活冗余模式。
· 单活冗余备份模式下,冗余备份组中所有PE会选举一台PE作为主用设备转发流量,其余PE作为主设备的备份,当主用设备故障时,备份设备能够代替主用设备转发流量。
· 多活冗余备份模式下,冗余备份组中的PE均参与单播数据报文的转发,实现负载分担。
在多活模式下,冗余备份组中的PE都会通过MP-BGP向远端PE通告同一ES的信息。即使只有一个PE学习到了MAC/ARP信息并发布给远端PE,远端PE除了会添加下一跳为该PE的IP地址,还会添加下一跳为冗余备份组中其他PE的IP地址,以实现自动在不同PE之间形成等价路径。该功能称为Aliasing。
如图1-6所示,EVPN VPLS多归属站点组网中,CE 1双归属接入PE 1和PE 2,其中PE 1为DF。当PE 1侧的AC故障时,PE 1会删除对应的MAC地址表项,并向PE 2及远端PE通告本地不可达信息撤销MAC地址,此时已经从远端PE发送到PE 1的数据报文由于没有出接口,会被丢弃。EVPN VPLS通过FRR功能解决该问题。在PE 1上启用FRR功能,使PE 1侧的AC故障时,不删除对应的MAC地址表项,而是将出接口变更为PE 1与PE 2间建立的PW的索引,将数据报文转发至PE 2,再由PE 2转发至CE 1,从而减少AC故障导致的丢包。
图1-6 FRR功能原理图
为了避免广播发送的ARP请求报文占用核心网络带宽,PE会根据接收到的ARP请求和ARP应答报文、BGP EVPN路由在本地建立ARP泛洪抑制表项。当PE再收到本地站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的表项,则通过PW将ARP请求泛洪到其他站点。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
图1-7 ARP泛洪抑制示意图
如图1-7所示,ARP泛洪抑制的处理过程如下:
(2) 虚拟机CE 1发送ARP请求,获取CE 2的MAC地址。
(3) PE 1根据接收到的ARP请求,建立CE 1的ARP泛洪抑制表项,向VSI内的本地CE和远端PE(PE 2和PE 3)泛洪该ARP请求(图1-7以单播路由泛洪方式为例)。PE 1还会通过BGP EVPN将该表项同步给PE 2和PE 3。
(4) 远端PE解封装报文,获取原始的ARP请求报文后,向VSI内的本地CE泛洪该ARP请求。
(5) CE 2接收到ARP请求后,回复ARP应答报文。
(6) PE 2接收到ARP应答后,建立CE 2的ARP泛洪抑制表项,通过PW将ARP应答发送给PE 1。PE 2通过BGP EVPN将该表项同步给PE 1和PE 3。
(7) PE 1解封装报文并获取原始的ARP应答,将ARP应答报文发送给CE 1。
(8) 在PE 1上建立ARP泛洪抑制表项后,CE 4发送ARP请求,获取CE 1的MAC地址。
(9) PE 1接收到ARP请求后,建立CE 4的ARP泛洪抑制表项,并查找本地ARP泛洪抑制表项,根据已有的表项回复ARP应答报文,不会对ARP请求进行泛洪。
(10) CE 3发送ARP请求,获取CE 1的MAC地址。
(11) PE 3接收到ARP请求后,建立CE 3的ARP泛洪抑制表项,并查找ARP泛洪抑制表项,根据已有的表项(PE 1通过BGP EVPN同步)回复ARP应答报文,不会对ARP请求进行泛洪。
控制字字段位于MPLS标签栈和二层数据之间,用来携带额外的二层数据帧的控制信息,如序列号等。控制字具有如下功能:
· 避免报文乱序:在多路径转发的情况下,报文有可能产生乱序,此时可以通过控制字的序列号字段对报文进行排序重组。
· 指示净载荷长度:如果PW上传送报文的净载荷长度小于64字节,则需要对报文进行填充,以避免报文发送失败。此时,通过控制字的载荷长度字段可以确定原始载荷的长度,以便从填充后的报文中正确获取原始的报文载荷。
在EVPN VPLS中,控制字字段是可选的,由两端的配置共同决定是否携带控制字:如果两端PE上都使能了控制字功能,则报文中携带控制字字段;否则,报文中不携带控制字字段。
不同类型的数据流可能通过同一条PW来传输,这些数据流在PE节点上封装完全相同的内层标签。封装了内层标签的报文到达P节点时,尽管P节点上存在多条隧道可以进行负载分担,但同一条PW的多条数据流仍然只能选择同一条路径转发,不能针对不同的数据流进行负载分担。L2VPN流标签功能可以实现在P设备上针对不同的数据流进行负载分担。
如图1-8所示,在两端的PE节点上均开启L2VPN流标签功能后,入口PE对数据报文进行封装时,会在内层标签前加入一个流标签(Flow label)字段,不同类型的数据流可以添加不同的流标签。P节点根据流标签进行负载分担。出口PE剥离内层标签和流标签后,将报文转发到本地站点。
图1-8 L2VPN流标签示意图
PE节点上的L2VPN流标签能力分为:
· 流标签接收能力:PE从PW上接收到报文后,能够识别报文中的流标签,并在解封装时删除流标签字段。
· 流标签发送能力:PE在通过PW发送报文时,会为报文添加流标签字段。
EVPN VPLS组网中两端PE的L2VPN流标签能力需要手工指定,由用户保证两端PE的L2VPN流标签能力匹配,即一端具有接收能力、另一端具有发送能力。否则会导致错包。
EVPN VPLS组网中两端PE不允许仅单边配置L2VPN流标签功能,否则会导致错包。
MAC地址迁移是指虚拟机或主机从一个ES迁移到另一个ES。原ES连接的PE无法感知MAC地址已经迁移到其他ES段。新迁移到的ES所在PE需要重新通告该MAC/IP路由。原PE在收到此路由后,撤销之前通告的路由。MAC地址每次迁移,迁移序列号依次递增,以便在MAC地址多次迁移时,通过序列号来标识最近一次迁移。
在EVPN VPLS组网中,属于同一个EVPN实例的所有AC均可以互相访问。EVPN承载接入用户的网络中,为了提高用户的安全性,减少用户之间的相互影响,通常需要控制AC侧用户之间的相互访问。EVPN E-Tree功能通过将AC分为Root和Leaf角色,实现了同一EVPN实例内AC之间单播流量和泛洪流量(广播、组播和未知单播流量)的隔离:
· Leaf AC连接的用户只能和Root AC连接的用户相互访问。
· 不同Leaf AC连接的用户之间相互隔离。
· Root AC连接的用户既可以和其它Root AC连接的用户相互通信,也可以和Leaf AC连接的用户相互通信。
图1-9 EVPN E-Tree示意图
对于同一PE连接的本地AC之间的流量,EVPN E-Tree通过如下方式实现流量隔离:
· PE从Leaf AC接收到报文后,仅将其转发到Root AC,不会转发到其他的Leaf AC。
· PE从Root AC接收到报文后,将其转发给同一VSI内的所有本地AC。
不同PE连接的AC之间互访时,EVPN E-Tree通过为MAC地址添加Leaf标记,实现已知单播流量之间的隔离:
(1) PE从Leaf AC接收到报文后,学习报文的源MAC地址,并为该MAC地址添加Leaf标记。
(2) PE通过EVPN的MAC/IP发布路由将MAC地址发布给远端PE,EVPN路由中携带E-Tree扩展团体属性,在该属性中携带Leaf标记。
(3) 远端PE将携带Leaf标记的MAC地址添加到MAC地址表中。
(4) 远端PE从本地AC接收到报文后,根据目的MAC地址查找MAC地址表。如果查找到的表项携带Leaf标记,则表示目的MAC地址连接的AC为Leaf AC;否则,为Root AC。
(5) 远端PE根据该报文所属AC的角色及目的MAC地址连接AC的角色,决定如何处理该报文:
¡ 如果报文来自Root AC,则转发该报文。
¡ 如果报文来自Leaf AC,则目的MAC地址连接Leaf AC时,丢弃该报文;目的MAC地址连接Root AC时,转发该报文。
开启EVPN E-Tree功能后,PE为E-Tree分配Leaf标签,将该标签添加到E-Tree扩展团体属性中,并通过EVPN的以太网自动发现路由发布给远端PE。
不同PE连接的AC之间互访时,EVPN E-Tree通过为泛洪流量添加Leaf标签,实现泛洪流量之间的隔离:
(1) PE从Leaf AC接收到报文后,为其添加Leaf标签,并添加私网标签和公网标签后,将该报文发送给远端PE。
(2) 远端PE剥离公网标签和私网标签后,如果发现报文携带Leaf标签,则表示该报文来自Leaf AC,仅将其发送给本地的Root AC,不会发送给Leaf AC。
在实际组网中,可能会存在传统的VPLS网络与EVPN VPLS网络共存的情况。LDP PW或静态PW接入EVPN PW功能,通过将VPLS网络中的LDP PW或静态PW看作EVPN VPLS网络的AC(该PW称为UPW),实现报文在EVPN PW与UPW之间相互转发,从而实现VPLS网络与EVPN VPLS网络的互通。
本功能不仅支持一条LDP PW或静态PW接入一条EVPN PW,还支持将两条LDP PW或静态PW多归属接入两条EVPN PW。如图1-10所示,在VPLS网络中,PE 1与PE 2、PE 3分别建立主备LDP PW或静态PW,该PW称为UPW;在EVPN VPLS网络中,PE 4与PE 2、PE 3分别建立EVPN PW。UPW作为EVPN VPLS网络中的AC,PE 2或PE 3从UPW接收到报文后,会解除MPLS封装,查找MAC地址表获取到对应的EVPN PW,为报文添加该EVPN PW对应的MPLS封装,并将其转发给PE 4;PE 2或PE 3从EVPN PW接收报文的处理方法与此类似。
图1-10 LDP PW或静态PW接入EVPN PW组网示意图
在实际组网中,EVPN VXLAN网络和EVPN VPLS网络可能会共存,并需要互相通信。EVPN VXLAN网络与EVPN VPLS网络互通的典型应用场景如图1-11所示。两个EVPN VXLAN网络通过EVPN VPLS网络互联。GW 1、GW 2、GW 3和GW 4为EVPN VXLAN网络和EVPN VPLS网络的边界设备。MAC/IP发布路由在边界设备上需要重新生成并发布到另一种网络,实现路由跨越EVPN VXLAN网络和EVPN VPLS网络传递,从而实现EVPN VXLAN网络和EVPN VPLS网络的互通。
图1-11 EVPN VXLAN网络与EVPN VPLS网络互通典型应用场景
如图1-11所示,GW从EVPN VXLAN网络接收到MAC/IP发布路由后,将重生成该路由,即为该路由分配并添加MPLS标签、将路由的封装类型修改为MPLS封装、修改路由的RD和RT,之后将该路由发送到EVPN VPLS网络。GW从EVPN VPLS网络接收到MAC/IP发布路由后,将重生成该路由,即查找该路由对应的VXLLAN ID并为路由添加VXLAN ID、将路由的封装类型修改为VXLAN封装、修改路由的RD和RT,之后将该路由发送到EVPN VXLAN网络。通过MAC/IP发布路由完成MAC地址表项学习后,GW将根据学习到的表项为接收到的报文添加VXLAN或MPLS封装,将报文转发到EVPN VXLAN或EVPN VPLS网络。
EVPN VXLAN网络与EVPN VPLS网络互通的配置方法,请参见“EVPN配置指导”中的“EVPN VXLAN”。
传统EVPN VPLS网络转发二层泛洪流量(组播、广播和未知单播流量)时,PE将对泛洪流量进行复制,将其转发给除接收接口外的所有本地接口和PW。如图1-12所示,以组播报文为例,PE 1将一份组播报文复制成两份,分别通过PE 1和PE 2、PE 1和PE 3之间的公网隧道,将组播报文发送给PE 2和PE 3。网络中的PE设备数量增加时,PE 1需要将流量复制的份数也随之增加,PE 1和P之间链路承载的流量会越来越多,造成不必要的带宽占用。
图1-12 传统EVPN VPLS网络转发组播流量示意图
在EVPN VPLS网络中通过mLDP(Multipoint extensions for LDP,LDP的多点扩展)协议建立P2MP(point-to-multipoint,点到多点)隧道,并使用mLDP P2MP隧道在公网中转发泛洪流量,可以解决上述问题,节省带宽资源。如图1-13所示,泛洪流量不再使用PW进行转发,而是通过mLDP P2MP隧道在公网中进行转发,并且PE 1无需复制泛洪报文,由mLDP的分支节点将泛洪流量复制成多份后再分别发送给各个mLDP的叶子节点。
有关mLDP P2MP、根节点、分支节点以及叶子节点的详细介绍,请参见“MPLS配置指导”中的“mLDP”。
图1-13 EVPN VPLS over mLDP P2MP网络转发组播流量示意图
EVPN VPLS网络中使用的mLDP P2MP隧道,包含以下两种类型:
· Inclusive-Tunnel(相容性隧道):承载来自于一个VSI的所有泛洪流量。一个VSI唯一对应一条相容性隧道。PE将泛洪流量报文统一封装为mLDP公网数据报文,并通过相容性隧道发送到公网中。
· Selective-Tunnel(选择性隧道):承载来自于一个或多个特定组播组的组播业务。一个VSI实例可以对应多条选择性隧道。PE将特定组播组的组播数据报文封装为mLDP公网组播数据报文,并通过选择性隧道发送到公网中。
在如图1-14所示的组网中,相容性隧道的创建过程如下:
(1) PE 1和PE 2、PE 3分别建立BGP EVPN地址族下的IBGP会话,PE 1向PE 2和PE 3发布mLDP P2MP隧道类型的包含性组播以太网标签路由。该路由中携带了如下属性:
¡ Route Target:用于控制路由的发布和接收。
¡ PMSI Tunnel attribute:用于通告相容性隧道信息,包括mLDP P2MP的根节点地址、Opaque Value值等信息。有关根节点地址以及Opaque Value的详细介绍,请参见“MPLS配置指导”中的“LDP”。
(2) PE 2和PE 3收到PE 1发送的包含性组播以太网标签路由后,将路由中的Route Target属性与本地VSI实例下的EVPN实例视图配置的Import Target进行比较。如果匹配,则接收此路由。本例中,假设PE 2和PE 3都接收了PE 1发送的包含性组播以太网标签路由。
(3) PE 2和PE 3根据包含性组播以太网标签路由中携带的根节点地址,选择到根节点的最优单播路由,并将该路由的下一跳作为自己的上游节点。在本例中,假设PE 2和PE 3的上游节点为P。
(4) PE 2和PE 3为上游分配标签,向上游发送以根节点地址和Opaque值为FEC的Label mapping消息,并生成标签转发表项。
(5) P收到来自下游的Label mapping消息后,根据Label mapping消息中包含的根节点地址,选择到根节点的最优单播路由,并将该路由的下一跳作为自己的上游节点。在本例中,假设P的上游节点为PE 1。P会查询是否给PE 1发送过为上游分配标签的Label mapping消息。如果没有给PE 1发送过Label mapping消息,则向PE 1发送同样以根节点地址和Opaque值为FEC的Label mapping消息,并生成标签转发表项。如果已经发送过,则无需再次发送。
(6) 根节点PE 1收到下游发送的Label mapping消息后,建立mLDP P2MP隧道,并生成标签转发表项。
图1-14 EVPN VPLS over mLDP P2MP网络转发组播流量示意图
至此,EVPN VPLS网络中形成了一条以PE 1为根、PE 2或PE 3为叶的mLDP P2MP隧道,该mLDP P2MP隧道为EVPN VPLS网络中的相容性隧道。隧道的形成过程如图1-15所示。
图1-15 mLDP P2MP相容性隧道建立过程示意图
由于相容性隧道承载同一个VSI的所有泛洪流量,因此建立了相容性隧道以后,对于接收侧的所有PE,无论该PE是否有下游接收者,均会接收到泛洪流量,造成了网络中的带宽浪费,并且加重了接收侧PE设备的处理负担。选择性隧道用于承载特定(S,G)表项的组播流量,组播源侧PE会将满足特定(S,G)表项的组播流量封装到选择性隧道中进行转发,以便将只有部分接收侧PE存在下游接收者的组播流量从相容性隧道中分离出来,以减轻相容性隧道的流量承载压力。在如图1-16所示的组网中,选择性隧道切换的过程如下:
图1-16 EVPN VPLS over mLDP P2MP网络转发组播流量示意图
(1) 接收侧PE收到CE转发的组播接收者请求加入特定组播组的IGMP报告报文后,形成选择性组播以太网标签路由(Selective multicast Ethernet tag route),其中携带了IGMP成员报告的组播源IP地址、组播组IP地址和Route Target属性。形成的选择性组播以太网标签路由通过BGP EVPN会话发送出去。
(2) 其他PE收到选择性组播以太网标签路由后,将路由中的Route Target属性与本地VSI实例下的EVPN实例视图配置的Import Target进行比较。如果匹配,则接收此路由。在本例中,假设组播源侧的PE 1接收了PE 3发送的选择性组播以太网标签路由。
(3) PE 1根据选择性组播以太网标签路由携带的(S,G)信息,判断该(S,G)是否在允许创建选择性隧道的地址范围内。如果(S,G)不在允许创建选择性隧道的地址范围内,则PE 1不进行后续处理;如果(S,G)在允许创建选择性隧道的地址范围内,则PE 1通过BGP EVPN地址族的IBGP会话向PE 2和PE 3发送S-PMSI A-D route。该路由中携带了如下属性:
¡ Route Target:用于控制路由的发布和接收。
¡ PMSI Tunnel attribute:用于通告选择性隧道信息,包括mLDP P2MP的根节点地址、Opaque Value值等信息。有关根节点地址以及Opaque Value的详细介绍,请参见“MPLS配置指导”中的“LDP”。
¡ 进行选择性隧道切换的组播源地址和组播组地址,该地址即为PE 1收到的选择性组播以太网标签路由中携带的地址。
(4) PE 2和PE 3收到PE 1发送的S-PMSI A-D route后,将路由中的Route Target属性与本地VSI实例下的EVPN实例视图配置的Import Target进行比较。如果匹配,则接收并记录此路由。在本例中,假设PE 2和PE 3都接收了PE 1发送的S-PMSI A-D route。
(5) PE 2和PE 3检查本节点的下游是否存在S-PMSI A-D route中携带的组播源地址和组播组地址对应的下游接收者。存在下游接收者的PE向上游发送Label mapping消息、生成标签转发表项,以形成以组播源侧PE为根、自身为叶的mLDP P2MP隧道,该隧道为EVPN VPLS网络中的选择性隧道;不存在下游接收者的PE则不创建mLDP P2MP隧道。创建mLDP P2MP LSP的具体过程与相容性隧道相同,请参见“创建相容性隧道”。在本例中,假设PE 2存在下游接收者,PE 3不存在下游接收者,则创建的选择性隧道如图1-17所示。
图1-17 选择性隧道创建过程示意图
叶子节点通过与组播接收者交互IGMP报文生成二层组播转发表项,根节点通过与叶子节点交互SMET路由生成二层组播转发表项。mLDP P2MP隧道路径上的各个节点通过Label mapping消息生成标签转发表。对于组播报文,在根节点上,先查找二层组播转发表项获取报文的出接口,再查找标签转发表获取报文的出标签;中间节点和分支节点根据报文的入标签,查找标签转发表获取报文的出标签;在叶子节点上,查找二层组播转发表项获取报文的出接口,通过出接口将报文转发给本地组播接收者。
如图1-18所示,CE 1、CE 2和CE 3属于同一个EVPN VPLS网络。以CE 1发送组播报文为例,EVPN VPLS over mLDP P2MP的报文转发过程为:
· 根节点PE 1从CE 1接收到报文后,首先判断报文是否为组播报文,从而确定如何转发报文:
¡ 对于非组播报文,查找VSI的MAC地址表。若存在匹配的MAC地址表项,则按照MAC地址表项对报文进行转发;若不存在匹配的MAC地址表项,则查找二层组播转发表,将报文从指定的相容性隧道转发出去。
¡ 对于组播报文,查找二层组播转发表。若表项出接口为连接本地站点的AC接口,则通过该AC接口将报文转发给本地站点;若表项出接口为相容性隧道/选择性隧道接口,则需要先为报文添加相容性隧道/选择性隧道的出标签Label a,再将报文从该相容性隧道/选择性隧道转发出去;若不存在匹配的二层组播转发表项,则为报文添加相容性隧道的出标签,再将报文从该相容性隧道转发出去。
· 中间节点P 1收到报文后,查找标签转发表,将报文的入标签Label a交换为出标签Label b后将报文从出接口转发出去。
· 分支节点P 2收到报文后,查找标签转发表,发现存在两条匹配的表项,则将报文复制两份。将其中一份报文的入标签Label b交换为出标签Label c后从Interface D转发出去;将另一份报文的入标签剥离后从Interface C转发出去。
· 叶子节点PE 2收到报文后,首先剥离标签Label c,再判断报文是否为组播报文,从而确定如何转发报文:
¡ 对于非组播报文,查找VSI的MAC地址表。若存在匹配的MAC地址表项,则按照MAC地址表项对报文进行转发;若不存在匹配的MAC地址表项,则向该相容性隧道所属VSI内的所有AC泛洪该报文。
¡ 对于组播报文,查找二层组播转发表,若存在匹配的二层组播转发表项,则通过表项的出接口将报文转发给本地站点。若不存在匹配的二层组播转发表项,则向该相容性隧道所属VSI内的所有AC泛洪该报文。
有关根节点、中间节点、分支节点以及叶子节点的详细介绍,请参见“MPLS配置指导”中的“mLDP”。
EVPN VPLS配置任务如下:
(1) 配置VSI
g. 创建VSI
h. (可选)配置VSI参数
(2) 配置EVPN实例
(3) 配置AC与VSI关联
(4) 配置BGP发布EVPN路由
k. (可选)配置BGP EVPN路由属性
l. (可选)配置BGP EVPN路由发布和优选
m. (可选)配置BGP 路由反射
n. (可选)配置BGP EVPN路由过滤
o. (可选)配置向对等体/对等体组发送BGP RPKI验证结果
p. (可选)通过将所有路由更新信息保存在本地实现BGP软复位
q. (可选)维护BGP会话
(5) (可选)配置PW模板
(6) (可选)配置多归属站点
r. 配置ESI
s. (可选)配置DF选举算法
t. (可选)开启AC状态影响DF选举功能
u. (可选)配置DF选举延迟时间
v. (可选)配置DF选举不回切功能
w. (可选)配置延迟发布以太网段路由
x. (可选)配置以太网自动发现路由延迟发布功能
y. (可选)配置EVPN VPLS的FRR功能
z. (可选)配置MAC/IP发布路由中的MAC地址重生成功能
aa. (可选)开启VSI忽略AC状态功能
bb. (可选)配置禁止通告以太网自动发现路由和以太网段路由
cc. (可选)配置发布以太网自动发现路由和MAC/IP发布路由时忽略以太网标签
dd. (可选)配置向BGP EVPN对等体仅发送包含非全零MAC地址的MAC/IP发布路由
ee. (可选)配置成员设备监视BGP邻居状态
ff. (可选)配置延时回切时间
(7) (可选)管理MAC地址和ARP信息学习
¡ 配置AC的源MAC地址检查表项并开启AC的源MAC地址检查功能
(8) (可选)开启EVPN E-Tree功能
(9) (可选)配置LDP PW或静态PW接入EVPN PW
(10) (可选)配置EVPN VPLS over mLDP P2MP
(11) (可选)优化和维护EVPN VPLS网络
standard工作模式下,EVPN VPLS功能仅在下表所列单板上配置生效。
表1-1 单板信息一览表
单板类型 |
单板丝印 |
CEPC单板 |
CEPC-CQ8L、CEPC-CQ8LA、CEPC-CQ8L1A、CEPC-CQ8L3A、CEPC-CQ16L1、CEPC-DQ2L1-G |
CSPEX单板 |
CSPEX-1502XA、CSPEX-1802X、CSPEX-1802XA、CSPEX-1812X-E、CSPEX-2304X-G、CSPEX-2304X-LG、CSPEX-2612XA、CSPEX-2612X3A |
SPE单板 |
RX-SPE200-E |
sdn-wan工作模式下,EVPN VPLS功能仅在下表所列单板上配置生效。
表1-2 单板信息一览表
单板类型 |
单板丝印 |
CEPC单板 |
CEPC-XP4LX、CEPC-XP24LX、CEPC-XP48RX、CEPC-CP4RX、CEPC-CP4RXA、CEPC-CP4RX-L、CEPC-CQ8L、CEPC-CQ8LA、CEPC-CQ8L1A、CEPC-CQ8L3A、CEPC-CQ16L1、CEPC-DQ2L1-G |
CSPEX单板 |
CSPEX-1304X、CSPEX-1404X、CSPEX-1502X、CSPEX-1504X、CSPEX-1504XA、CSPEX-1602X、CSPEX-1602XA、CSPEX-1804X、CSPEX-1512X、CSPEX-1612X、CSPEX-1812X、CSPEX-1502XA、CSPEX-1802X、CSPEX-1802XA、CSPEX-1812X-E、CSPEX-2304X-G、CSPEX-2304X-LG、CSPEX-2612XA、CSPEX-2612X3A |
SPE单板 |
RX-SPE200、RX-SPE200-E |
EVPN VPLS功能与EVPN数据中心互联支持双ED功能互斥,请不要在EVPN VPLS组网中配置evpn edge group命令。
CFD和NQA组网场景下,不支持E-Tree功能。关于CFD、NQA的介绍,请分别参见“可靠性配置指导”中的“CFD”、“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 开启L2VPN功能。
l2vpn enable
缺省情况下,L2VPN功能处于关闭状态。
(3) 创建VSI,并进入VSI视图。
vsi vsi-name
(4) 开启VSI。
undo shutdown
缺省情况下,VSI处于开启状态。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 配置VSI的描述信息。
description text
缺省情况下,未配置VSI的描述信息。
(4) 配置VSI的MTU值。
mtu mtu
缺省情况下,VSI的MTU值为1500字节。
(5) 配置VSI的已知单播流量的最大带宽。
bandwidth bandwidth
缺省情况下,未配置VSI的最大已知单播流量带宽,即不限制已知单播流量带宽。
(6) 配置VSI的广播、组播或未知单播抑制带宽。
restrain { broadcast | multicast | unknown-unicast } bandwidth
缺省情况下,VSI的广播、组播、未知单播抑制带宽均为5120kbps。
(7) 配置VSI的MAC地址学习功能。
gg. 开启VSI的MAC地址学习功能。
mac-learning enable
缺省情况下,VSI的MAC地址学习功能处于开启状态。
hh. (可选)配置当VSI学习到的MAC地址数达到最大值后,禁止转发源MAC地址不在MAC地址表里的报文。
mac-table limit drop-unknown
缺省情况下,当VSI学习到的MAC地址数达到最大值后,允许转发源MAC地址不在MAC地址表里的报文,但是不会学习报文的源MAC地址。
配置mac-table limit drop-unknown命令对从EVPN PW对端收到的流量不生效。即当VSI学习到的MAC地址数达到最大值后,对于从EVPN PW对端收到的报文,即使这类报文的源MAC地址不在MAC地址表里,设备仍会转发这些报文。
创建EVPN实例后,可以为其配置RD和RT属性。PE在发布EVPN路由时,携带对应EVPN实例视图下配置的RD和RT。
EVPN实例的创建方式包括以下几种:
· 系统视图下创建EVPN实例:创建EVPN实例后,不同的VSI均可以关联该EVPN实例,无需在各个VSI下重复配置相同的EVPN实例,以简化配置。
· VSI实例下创建EVPN实例:创建EVPN实例时,该EVPN实例直接与该VSI关联,无需手动关联VSI与EVPN实例。
EVPN实例视图和VSI实例下的EVPN实例视图下,均可以配置入方向和出方向路由策略。其中:
· 入方向路由策略:用来对从BGP EVPN协议引入到EVPN实例的路由进行过滤。
· 出方向路由策略:用来对EVPN实例发布给BGP EVPN协议的路由进行过滤。
VSI实例视图下创建EVPN实例后,该VSI不能与系统视图下的EVPN实例关联;反之亦然。
(1) 进入系统视图。
system-view
(2) 创建EVPN实例,并进入EVPN实例视图。
evpn instance instance-name
(3) 配置EVPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未指定EVPN实例的RD。
(4) 配置EVPN实例的Route Target属性。
vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未指定EVPN实例的Route Target属性。
参数 |
使用说明 |
export-extcommunity |
不同EVPN实例的Export target不能相同;不同视图(系统视图、VSI视图、VPN实例视图、公网实例视图、交叉连接组视图)下EVPN实例的Export target也不能相同 |
import-extcommunity |
VPN实例、公网实例、各视图下EVPN实例的Import target建议不要与交叉连接组EVPN实例的Export target相同,反之亦然 |
(5) (可选)配置EVPN实例引用PW模板。
pw-class class-name
缺省情况下,EVPN实例未引用PW模板。
执行本配置指定引用PW模板后,该PW模板将应用于当前EVPN实例下建立的所有PW。
(6) (可选)指定引用的隧道策略。
tunnel-policy tunnel-policy-name
缺省情况下,未引用隧道策略。
(7) (可选)配置EVPN的出方向路由策略。
export route-policy route-policy
缺省情况下,未配置EVPN的出方向路由策略,即不对发布的路由进行过滤。
(8) (可选)配置EVPN的入方向路由策略。
import route-policy route-policy
缺省情况下,未配置EVPN的入方向路由策略,即如果接收到的路由携带的Route Target属性中存在与本地配置的Import Target相同的值,则接收该路由。
(9) 退回系统视图。
quit
(10) 进入VSI视图。
vsi vsi-name
(11) 配置VSI与EVPN实例关联。
evpn encapsulation mpls binding instance instance-name vsi-tag tag-id
缺省情况下,VSI未关联EVPN实例。
一个VSI实例可以关联一个或者两个EVPN实例。关联两个EVPN实例时,其中一个EVPN实例的封装类型必须为MPLS,另一个EVPN实例的封装类型必须为VXLAN。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 创建EVPN实例,并进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 配置EVPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未指定EVPN实例的RD。
(5) 配置EVPN实例的Route Target属性。
vpn-target { vpn-target&<1-8> } [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未指定EVPN实例的Route Target属性。
参数 |
使用说明 |
export-extcommunity |
不同VSI实例下EVPN实例的Export target不能相同;不同视图(系统视图、VSI视图、VPN实例视图、公网实例视图、交叉连接组视图)下EVPN实例的Export target也不能相同 |
import-extcommunity |
VPN实例、公网实例、各视图下EVPN实例的Import target建议不要与交叉连接组EVPN实例的Export target相同,反之亦然 |
(6) (可选)配置EVPN实例引用PW模板。
pw-class class-name
缺省情况下,EVPN实例未引用PW模板。
执行本配置指定引用PW模板后,该PW模板将应用于当前EVPN实例下建立的所有PW。
(7) (可选)指定引用的隧道策略。
tunnel-policy tunnel-policy-name
缺省情况下,未引用隧道策略。
(8) (可选)配置EVPN的出方向路由策略。
export route-policy route-policy
缺省情况下,未配置EVPN的出方向路由策略,即不对发布的路由进行过滤。
(9) (可选)配置EVPN的入方向路由策略。
import route-policy route-policy
缺省情况下,未配置EVPN的入方向路由策略,即如果接收到的路由携带的Route Target属性中存在与本地配置的Import Target相同的值,则接收该路由。
(10) (可选)配置广播、组播或未知单播的抑制带宽。
restrain { broadcast | multicast | unknown-unicast } bandwidth
缺省情况下,未配置广播、组播或未知单播的抑制带宽。
将三层接口与VSI关联后,从三层接口接收到的报文,将通过查找关联VSI的MAC地址表进行转发。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(1) 进入系统视图。
system-view
(2) 进入三层接口视图。
interface interface-type interface-number
(3) 将三层接口与VSI关联。
xconnect vsi vsi-name [ access-mode { ethernet | vlan } ] [ track track-entry-number&<1-3> ]
缺省情况下,三层接口未关联VSI。
将以太网服务实例与VSI关联后,从该接口接收到的、符合以太网服务实例报文匹配规则的报文,将通过查找关联VSI的MAC地址表进行转发。以太网服务实例提供了多种报文匹配规则(包括接口接收到的所有报文、所有携带VLAN Tag的报文和所有不携带VLAN Tag的报文等),为报文关联VSI提供了更加灵活的方式。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
不能通过重复执行encapsulation命令修改报文匹配规则。如需修改报文匹配规则,请先通过undo encapsulation命令删除报文匹配规则,再执行encapsulation命令。
删除以太网服务实例下的报文匹配规则后,会自动取消以太网服务实例与VSI的关联。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
(3) 创建以太网服务实例,并进入以太网服务实例视图。
service-instance instance-id
(4) 匹配报文的外层VLAN tag。
encapsulation s-vid vlan-id
缺省情况下,未配置报文匹配规则。
(5) 将以太网服务实例与VSI关联。
xconnect vsi vsi-name [ access-mode { ethernet | vlan } ] [ track track-entry-number&<1-3> ]
缺省情况下,以太网服务实例未关联VSI。
BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 配置全局Router ID。
router id router-id
缺省情况下,未配置全局Router ID。
(3) 启动BGP实例,并进入BGP实例视图。
bgp as-number [ instance instance-name ]
缺省情况下,系统没有运行BGP。
(4) 将远端PE配置为对等体。
peer { group-name | ipv4-address [ mask-length ] } as-number as-number
(5) 创建BGP EVPN地址族,并进入BGP EVPN地址族视图。
address-family l2vpn evpn
(6) 使能本地路由器与指定对等体/对等体组交换BGP EVPN路由的能力。
peer { group-name | ipv4-address [ mask-length ] } enable
缺省情况下,本地路由器不能与对等体/对等体组交换BGP EVPN路由。
EVPN VPLS组网中,需要在PE上配置本功能,使得PE向对等体/对等体组发布MPLS封装的EVPN路由,以便在PE间建立PW。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置向对等体/对等体组发布MPLS封装的EVPN路由。
peer { group name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise encap-type mpls
缺省情况下,向对等体/对等体组发布VXLAN封装的EVPN路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 为从指定对等体/对等体组接收的路由分配首选值。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value
缺省情况下,从对等体/对等体组接收的路由的首选值为0。
(5) 配置对于从对等体/对等体组接收的BGP消息,允许本地AS号在该消息的AS_PATH属性中出现,并配置允许出现的次数。
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]
缺省情况下,不允许本地AS号在接收消息的AS_PATH属性中出现。
(6) 配置向指定EBGP对等体/对等体组发送BGP更新消息时删除或替换AS_PATH属性的私有AS号。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only [ { force | limited } [ replace ] [ include-peer-as ] ]
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } public-as-only [ force [ include-peer-as ] ] keep-local-as
缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,不会删除或替换AS_PATH属性中的私有AS号,即可以同时携带公有AS号和私有AS号。
(7) 配置向EBGP对等体/对等体组发布路由时不改变下一跳。
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable
缺省情况下,向EBGP对等体/对等体组发布路由时会将下一跳改为自己的地址。
(8) 配置向对等体/对等体组发布团体属性或Large团体属性。
¡ 配置向对等体/对等体组发布团体属性。
peer { group-name | ipv4-address [ mask-length ] } advertise-community
缺省情况下,不向对等体/对等体组发布团体属性。
¡ 配置向对等体/对等体组发布Large团体属性。
peer { group-name | ipv4-address [ mask-length ] } advertise-large-community
缺省情况下,不向对等体/对等体组发布Large团体属性。
(9) 为对等体/对等体组配置SoO(Site of Origin,源站点)属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } soo site-of-origin
缺省情况下,没有为BGP对等体/对等体组配置SoO属性。
(10) 为对等体/对等体组配置链路带宽属性。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } bandwidth
缺省情况下,没有为对等体/对等体组配置链路带宽属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置BGP路由优选。
¡ 为指定对等体/对等体组设置高优先级,路由选路时优选从该对等体/对等体组学习到的路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } high-priority [ preferred ]
缺省情况下,BGP不为指定对等体/对等体组设置高优先级,选路规则不发生变化。
本命令的配置在BGP选路规则中的具体优先级顺序,请参见“三层技术-IP路由配置指导”中的“BGP概述”。
¡ 配置BGP路由的下一跳地址类型影响路由优选。
bestroute nexthop-priority { ipv4 | ipv6 } [ preferred ]
缺省情况下,BGP优选下一跳地址为IPv4地址的路由。
本命令的配置在BGP选路规则中的具体优先级顺序,请参见“三层技术-IP路由配置指导”中的“BGP概述”。
¡ 配置BGP路由延迟优选。
route-select delay delay-value
缺省情况下,延迟时间为0秒,即路由优选不延迟。
(5) 配置BGP路由衰减。
¡ 配置EBGP路由的衰减。
dampening [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
¡ 配置IBGP路由的衰减。
dampening ibgp [ half-life-reachable half-life-unreachable reuse suppress ceiling | route-policy route-policy-name ] *
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。
缺省情况下,未配置BGP路由衰减。
有关路由衰减的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
(6) 开启下一跳路由迭代变化延迟响应功能。
nexthop recursive-lookup [ non-critical-event ] delay [ delay-value ]
缺省情况下,下一跳路由迭代变化延迟响应功能处于关闭状态。
(7) 配置Add-Path功能。
¡ 开启Add-Path功能。
peer { group-name | ipv4-address [ mask-length ] } additional-paths { receive | send } *
缺省情况下,未配置Add-path功能。
¡ 配置向指定对等体/对等体组发送的Add-Path优选路由的最大条数。
peer { group-name | ipv4-address [ mask-length ] } advertise additional-paths best number
缺省情况下,向指定对等体/对等体组发送的Add-Path优选路由的最大条数为1。
¡ 配置Add-Path优选路由的最大条数。
additional-paths select-best best-number
缺省情况下,Add-Path优选路由的最大条数为1。
(8) 设置允许从指定对等体/对等体组接收的BGP EVPN路由的最大数量。
¡ 设置允许从指定对等体/对等体组接收的所有类型的BGP EVPN路由的最大数量。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only| discard | reconnect reconnect-time } | percentage-value ] *
¡ 设置允许从指定对等体/对等体组接收的MAC/IP发布路由的最大数量。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } macip-route-limit route-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ]
缺省情况下,不限制从对等体/对等体组接收的路由数量。
在BGP EVPN地址族视图下,对于同一对等体/对等体组,peer macip-route-limit命令和peer route-limit命令互斥。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机。
peer { group-name | ipv4-address [ mask-length ] } reflect-client
缺省情况下,没有配置路由反射器及其客户机。
(5) (可选)允许路由反射器在客户机之间反射EVPN路由。
reflect between-clients
缺省情况下,允许路由反射器在客户机之间反射EVPN路由。
(6) (可选)配置路由反射器的集群ID。
reflector cluster-id { cluster-id | ipv4-address }
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。
(7) (可选)配置路由反射器对反射的EVPN路由进行过滤。
rr-filter { ext-comm-list-number | ext-comm-list-name }
缺省情况下,路由反射器不会对反射的EVPN路由进行过滤。
(8) (可选)允许路由反射器反射路由时修改路由属性。
reflect change-path-attribute
缺省情况下,不允许路由反射器反射路由时修改路由属性。
(9) (可选)配置将指定对等体/对等体组加入就近反射组。
peer { group-name | ipv4-address [ mask-length ] } reflect-nearby-group
缺省情况下,就近反射组中不存在任何对等体或对等体组
路由反射器在就近反射组内的对等体/对等体组之间反射路由时,不修改下一跳属性。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 开启BGP EVPN路由的VPN-Target过滤功能。
policy vpn-target
缺省情况下,BGP EVPN路由的VPN-Target过滤功能处于开启状态。
(5) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }
缺省情况下,没有为对等体/对等体组指定路由策略。
(6) 配置通过存在策略对BGP EVPN发布路由进行控制。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-nameexist-policy exist-policy-name
缺省情况下,不对发布的BGP EVPN路由进行控制。
(7) 配置通过不存在策略对BGP EVPN发布路由进行控制。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise-policy advertise-policy-name non-exist-policy non-exist-policy-name
缺省情况下,不对发布的BGP EVPN路由进行控制。
(8) 为对等体/对等体组设置基于二层ACL的路由过滤策略。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } filter-policy { mac-acl-number | name mac-acl-name } { export | import }
缺省情况下,没有为对等体/对等体组设置基于二层ACL的路由过滤策略。
在二层ACL中,rule [ rule-id ] { deny | permit } dest-mac dest-address dest-mask命令配置的规则用来过滤携带指定MAC地址的MAC/IP发布路由。除了上述规则之外,二层ACL中的其他规则对EVPN路由的过滤不生效。
(9) 为对等体/对等体组设置基于地址前缀列表的路由过滤策略,来过滤IPv4类型的BGP EVPN路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } prefix-list ipv4-prefix-list-name { export | import }
缺省情况下,未配置基于地址前缀列表的BGP路由过滤策略。
本配置只能过滤携带了主机路由信息的MAC/IP发布路由,无法过滤其他类型的EVPN路由。
BGP RPKI验证结果以扩展团体属性的方式传递。有关BGP RPKI的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置向对等体/对等体组发送BGP RPKI验证结果。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise origin-as-validation
缺省情况下,不会向对等体/对等体组发送BGP RPKI验证结果。
对于不支持Route-refresh功能的设备,可以配置本功能,将从对等体接收的所有原始路由更新信息保存在本地,当选路策略发生改变后,对保存在本地的所有路由使用新的路由策略进行重新过滤,以实现BGP软复位。
有关Route-refresh功能以及BGP软复位的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 保存所有来自指定对等体/对等体组的原始路由更新信息。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } keep-all-routes
缺省情况下,不保存来自对等体/对等体组的原始路由更新信息。
请在用户视图下执行如下命令,复位或软复位BGP会话。
· 复位EVPN地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | all | external | group group-name | internal } l2vpn evpn
· 手工对EVPN地址族下的BGP会话进行软复位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] | all | external | group group-name | internal } { export | import } l2vpn evpn
在PW模板中可以指定PW的属性,如PW的数据封装类型、是否使用控制字等。具有相同属性的PW可以通过引用相同的PW模板,实现对PW属性的配置,从而简化配置。
PW模板相关命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
同一条PW的两端PE必须配置相同的数据封装类型。
同一条PW的两端PE的控制字功能配置必须保持一致,即两端均开启控制字功能或均不开启控制字功能,否则会导致错包。
(1) 进入系统视图。
system-view
(2) 创建PW模板,并进入PW模板视图。
pw-class class-name
(3) 开启控制字功能。
control-word enable
缺省情况下,控制字功能处于关闭状态。
(4) PW数据封装类型。
pw-type { ethernet | vlan }
缺省情况下,PW数据封装类型为VLAN。
(5) 配置流标签功能。
flow-label { both | receive | send } static
缺省情况下,流标签功能处于关闭状态。
目前,EVPN VPLS仅支持静态流标签,即必须指定static参数,否则流标签功能不生效。
多归属站点组网中,冗余备份组中每个成员设备上的AC的配置应该保持一致。
主接口及其子接口上均可以配置ESI:
· 若主接口及其子接口上都配置了ESI,或仅在子接口上配置了ESI,则子接口的ESI以该子接口上的配置为准,子接口的ES相关配置(evpn redundancy-mode、evpn df-election algorithm、evpn df-election preference、evpn df-election preference non-revertive和evpn timer es-delay命令)也以该子接口上的配置为准。
· 若仅在主接口上配置了ESI,则子接口继承主接口的ESI和ES相关配置。即使 子接口上执行了ES相关配置,也不会生效。
ESI是ES的唯一标识,ESI相同的接口(或VSI)属于同一个ES,报文可以在这些接口(或VSI)之间进行负载分担。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
¡ 进入FlexE物理接口视图。
interface interface-type interface-number
¡ 进入FlexE业务接口视图。
interface flexe interface-number
(3) 配置接口ESI。
esi esi-id
缺省情况下,未配置接口的ESI。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 配置VSI的ESI。
esi esi-id
缺省情况下,未配置VSI的ESI。
多归属站点的冗余备份模式包括单活冗余模式和多活冗余模式。
冗余备份组中的各PE分别与远端PE建立EVPN PW,若需两条EVPN PW间形成主备关系,则使用单活冗余模式;若需EVPN PW间形成等价负载分担,则使用多活冗余模式。
多归属站点与S-Trunk功能配合使用时,如果多归属站点的冗余备份模式为单活模式,则需要通过s-trunk port-role auto命令将S-Trunk成员接口的角色配置为自动模式;如果多归属站点的冗余备份模式为多活模式,则需要通过s-trunk port-role primary命令将S-Trunk成员接口的角色配置为强制主用接口。S-Trunk功能的详细介绍,请参见“可靠性配置指导”中的“S-Trunk”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
¡ 进入FlexE物理接口视图。
interface interface-type interface-number
¡ 进入FlexE业务接口视图。
interface flexe interface-number
(3) 配置接口的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活冗余模式。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 配置VSI的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活冗余模式。
在EVPN多归属组网中,用户可以通过本功能灵活地选择DF选举算法,以提高设备的利用率。
如果在作为AC的子接口上配置了模糊VLAN终结,则不能使用基于VLAN Tag的DF选举算法。否则,会导致流量转发错误。
系统视图和接口视图下均可以配置DF选举算法。系统视图的配置对所有ES都有效,而接口视图下的配置只对当前接口下的ES有效。对于一个ES来说,优先采用该接口视图下的配置,只有该接口下未进行配置时,才采用系统视图的配置。
(1) 进入系统视图。
system-view
(2) 全局配置DF选举算法。
evpn df-election algorithm algorithm
缺省情况下,采用基于VLAN Tag的算法。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
¡ 进入FlexE物理接口视图。
interface interface-type interface-number
¡ 进入FlexE业务接口视图。
interface flexe interface-number
(3) 配置DF选举算法。
evpn df-election algorithm algorithm
缺省情况下,以系统视图下配置的DF选举算法为准。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
¡ 进入FlexE物理接口视图。
interface interface-type interface-number
¡ 进入FlexE业务接口视图。
interface flexe interface-number
(3) 配置DF选举优先级。
evpn df-election preference preference
缺省情况下,DF选举优先级为32767。
DF选举优先级数值越大则优先级越高。
缺省情况下,在EVPN多归属组网中,同一ES内的所有PE都将参与DF选举,PE上AC的状态不影响PE是否参与DF选举。若选举为DF的PE上AC的状态为Down,会导致PE无法通过AC转发流量,此时可以通过配置本命令来解决此问题。
配置本命令之后,只有当AC状态为Up时PE才会参与DF选举。PE通过如下方式判断AC状态:
· 对于本端PE,通过检查本端AC是否Up来判断本端PE是否参与DF选举,只有AC状态为Up的本端PE才可以参与DF选举。
· 对于远端PE,通过检查是否收到远端PE发布的AD per ES路由和AD per EVI路由来判断远端PE是否参与DF选举,只有收到远端PE发布的AD per ES 路由和AD per EVI路由时,本端PE才认为远端PE上AC为Up状态,可以参与DF选举。
只有当冗余备份组中的所有PE上都开启本功能时,本功能才生效。
(1) 进入系统视图。
system-view
(2) 开启AC状态影响DF选举功能。
evpn df-election ac-influence enable
缺省情况下,AC状态影响DF选举功能处于关闭状态。
AC所在接口的状态、多归属成员设备数量或者接口下ESI值的频繁变化都会导致DF频繁选举,极大影响了网络的性能。通过本配置可以指定DF选举的时间间隔,避免频繁选举DF,保证网络的稳定性。
(1) 进入系统视图。
system-view
(2) 配置DF选举延迟时间。
evpn multihoming timer df-delay delay-value
缺省情况下,DF选举的延迟时间为3秒。
在EVPN多归属组网中,配置变化、设备重启或者进程重启都会触发DF重新选举,DF切换可能会造成转发丢包。在PE设备上配置本功能可以解决此问题。
以PE 1与PE 2组成冗余备份组,其中PE 1为DF为例,讲解DF选举不回切功能。当PE 1重启导致PE 2重新选举为DF时:
· 若PE 1重启后收到PE 2发布的以太网段路由,则PE 1比较以太网段路由中携带的DF选举优先级与本地配置的DF选举优先级。
¡ 若PE 1本地配置的DF选举优先级<收到的以太网段路由中携带的DF选举优先级,则PE 1发布的以太网段路由中携带的DF选举优先级为本地配置的DF选举优先级。
¡ 若PE 1本地配置的DF选举优先级=收到的以太网段路由中携带的DF选举优先级,则比较IP地址。
- PE 1的IP地址<PE 2的IP地址,则PE 1发布的以太网段路由中携带的DF选举优先级为本地配置的DF选举优先级、DP(Don't Preempt Me,不可回切)位为0。
- PE 1的IP地址>PE 2的IP地址,则PE 1发布的以太网段路由中携带的DF选举优先级为本地配置的DF选举优先级、DP位为1。
¡ 若PE 1本地配置的DF选举优先级>收到的以太网段路由中携带的DF选举优先级,则PE 1发布的以太网段路由中携带的DF选举优先级为PE 2发布的以太网段路由中的DF选举优先级、DP位为0。
· 若PE 1重启后未收到PE 2发布的以太网段路由,则PE 1发布的以太网段路由中携带的DF选举优先级为本地配置的DF选举优先级。
在EVPN多归属组网采用多活冗余模式时,建议配置本功能,解决DF回切造成的丢包问题;采用单活冗余模式时,不建议配置本功能,否则会影响DF回切性能。
在DF设备重启或者进程重启触发DF重新选举的场景中,DF设备重启或进程重启后会立刻发布以太网段路由,以便快速恢复为DF,但是由于接入侧连接恢复较慢,设备切换为DF后,会导致丢包。此时,可以配合evpn timer es-recovery命令,使设备在等待接入侧连接恢复后再发送以太网段路由。建议在多归属成员设备上同时配置evpn df-election preference non-revertive命令与evpn timer es-recovery命令。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
(3) 开启基于优先级DF选举的不回切功能。
evpn df-election preference non-revertive
缺省情况下,基于优先级算法的DF选举不回切功能处于关闭状态。
在DF设备重启或者进程重启触发DF重新选举的场景中,DF设备重启或进程重启后会立刻发布以太网段路由,以便快速恢复为DF。但是,由于接入侧连接恢复较慢,设备切换为DF后,可能会因为AC状态未up而导致丢包。此时,可以配置本功能,使设备在等待接入侧连接恢复后再发送以太网段路由。
在EVPN多归属组网采用多活冗余模式时,建议配置本功能,解决DF回切造成的丢包问题;采用单活冗余模式时,不建议配置本功能,否则会影响DF回切性能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
(3) 配置基于优先级选举DF时,延迟发布以太网段路由。
evpn timer es-recovery recovery-time
缺省情况下,基于优先级选举DF时,不延迟发布以太网段路由。
EVPN VPLS组网中,CE 1通过聚合口或S-trunk双归属接入PE 1和PE 2,PE 3为远端PE连接CE 2。CE 1选择PE 1侧发送流量至CE 2,CE 2通过PE 1和PE 2两侧均可将流量转发至CE 1。PE 1完成重启后,在PE 2发送MAC/IP发布路由同步CE 1的MAC地址之前,PE 1先发送携带下一跳信息的以太网自动发现路由至PE 3,导致PE 3查找CE 1的MAC地址转发流量时会将流量转发给PE 1和PE 2,此时PE 1未学习到CE 1的MAC地址,报文会被丢弃。
为解决上述问题,可在PE 1连接CE 1的接口上配置本功能,延迟发布以太网自动发现路由,使PE 1先学习到CE 1的MAC地址,再发布以太网自动发现路由,减少丢包。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启以太网自动发现路由延迟发布功能,并指定延迟发布时间。
evpn timer ad-delay delay-time
缺省情况下,以太网自动发现路由延迟发布功能处于关闭状态,即不延迟发布以太网自动发现路由。
本功能是指多归属站点AC故障时,将需要通过故障AC转发的流量临时通过冗余备份组成员PE间的PW转发,减少AC故障导致的丢包。
如果全局视图下开启EVPN实例FRR功能的同时,在指定EVPN实例下执行了evpn frr local命令,则当前EVPN实例的FRR功能状态以EVPN实例下的配置为准。
如果在指定EVPN实例下开启了EVPN的FRR功能,则执行undo evpn multihoming vpls-frr local命令不会关闭该EVPN实例下的FRR功能。
本功能配置在冗余备份组成员PE上。
(1) 进入系统视图。
system-view
(2) 开启全局EVPN VPLS的FRR功能。
evpn multihoming vpls-frr local
缺省情况下,EVPN VPLS的FRR功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 开启或关闭指定EVPN实例的FRR功能。
evpn frr local { disable | enable }
缺省情况下,EVPN实例的FRR功能状态与EVPN VPLS全局FRR功能状态保持一致。
(1) 进入系统视图。
system-view
(2) 进入VSI实例视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 开启或关闭指定EVPN实例的FRR功能。
evpn frr local { disable | enable }
缺省情况下,EVPN实例的FRR功能状态与EVPN VPLS全局FRR功能状态保持一致。
EVPN VPLS组网中,CE 1通过聚合口或S-trunk双归属接入PE 1和PE 2,PE 3为远端PE连接CE 2。CE 1选择PE 1侧发送流量至CE 2,CE 2通过PE 1和PE 2两侧均可将流量转发至CE 1。当PE 1侧AC故障时,PE 1会撤销发送至PE 2和PE 3的MAC/IP发布路由,此时PE 2需要重新从CE 1学习MAC地址并同步给PE 3,在此期间PE 3没有CE 1的MAC地址表项,导致断流。
为解决上述问题,可在PE 1和PE 2上均配置本命令,PE 2接收到PE 1同步的MAC/IP发布路由时,在本地重新生成CE 1的MAC地址表项并发布给PE 3,这样即使PE 1侧的AC故障导致PE 1撤销MAC/IP发布路由,PE 3仍有CE 1的MAC地址表项,避免断流。
在PE1和PE2上配置MAC/IP发布路由重生成功能后,PE 2接收到PE 1同步的MAC/IP发布路由时,在本地重新生成CE 1的MAC地址表项并发布给PE 3。在PE1或PE2收到PE2或PE1设备的MAC/IP路由删除后,会在evpn multihoming re-originated mac age-time命令配置的时间超时后,老化重生成MAC。
配置本命令前,需要先开启EVPN VPLS的FRR功能。
本功能需要在冗余备份组中的每个成员设备上都配置才会生效。
(1) 进入系统视图。
system-view
(2) 配置本地重生成MAC/IP发布路由中的MAC地址。
evpn multihoming re-originated mac
缺省情况下,本地不会重生成MAC/IP发布路由中的MAC地址。
(3) 配置本地重生成MAC地址的老化时间。
evpn multihoming re-originated mac age-time seconds
缺省情况下,本地重生成MAC地址的老化时间为120秒。
EVPN VPLS多归属单活组网中,CE 1采用S-Trunk方式双归属接入PE 1和PE 2,PE 1为主用设备,PE 2为备份设备,PE 2上AC状态为Down。当PE 1上AC故障时,PE 1会撤销以太网自动发现路由,同时PE 2上的AC状态为Up,并向远端PE发送以太网自动发现路由,远端PE需要收到PE 2发送的以太网自动发现路由,才能切换至备份路径,路径切换过程速度较慢,会导致报文丢失。为解决上述问题,可在PE 2上配置本命令,使PE 2忽略AC状态并向远端PE发送以太网自动发现路由,远端PE保存该路由。当PE 1的AC故障时,远端PE将流量快速切换至备份路径,减少丢包。
系统视图和VSI视图下均可以配置VSI忽略AC状态功能。系统视图的配置对所有VSI都有效,而VSI视图的配置只对当前VSI有效。对于一个VSI来说,优先采用该VSI内的配置,只有该VSI内未进行配置时,才采用系统视图的配置。
本功能可以与本地重生成MAC/IP发布路由中的MAC地址功能配合使用。
(1) 进入系统视图。
system-view
(2) 全局开启VSI忽略AC状态功能。
l2vpn ignore-ac-state [ evpn-vpls ]
缺省情况下,VSI忽略AC状态的功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入VSI实例视图。
vsi vsi-name
(3) 开启或关闭指定VSI忽略AC状态的功能。
ignore-ac-state { enable | disable }
缺省情况下,指定VSI忽略AC状态的功能与全局VSI忽略AC功能状态的开关情况保持一致。
在多归属站点组网中,用户需要重启其中一台PE时,重启该PE前,可以通过在该PE上执行本命令,来禁止通告以太网自动发现路由和以太网段路由,并撤销已经通告的该类路由,以便其他PE及时更新本地的EVPN路由表,确保PE的重启不会影响报文转发。
(1) 进入系统视图。
system-view
(2) 配置禁止通告以太网自动发现路由和以太网段路由,并撤销已经通告的该类路由。
evpn multihoming advertise disable
缺省情况下,允许通告EVPN以太网自动发现路由和以太网段路由。
多归属站点组网中,为冗余备份组成员上的AC配置ESI后,冗余备份组成员发送以太网自动发现路由和MAC/IP发布路由时会携带AC的以太网标签。如果对端设备无法识别以太网标签,为了与该对端设备互通,需要在本端设备上配置本命令,使得本端设备将发送的以太网自动发现路由和MAC/IP发布路由中的以太网标签字段填为0。
执行本命令后,设备会撤销已经发布的以太网自动发现路由和MAC/IP发布路由,并重新发布以太网标签字段为0的以太网自动发现路由和MAC/IP发布路由。
为二层以太网接口或二层聚合接口配置ESI后,同一个接口上创建的不同以太网服务实例不能关联相同的VSI,具有相同ESI的接口上的以太网服务实例也不能关联相同的VSI。
为三层主接口配置ESI后,如果该接口上的子接口未配置ESI,则子接口会继承主接口的ESI。此时,具有相同ESI的子接口不能关联相同的VSI。
(1) 进入系统视图。
system-view
(2) 配置发布以太网自动发现路由和MAC/IP发布路由时忽略以太网标签。
evpn multihoming advertise ignore-ethernet-tag
缺省情况下,PE发送以太网自动发现路由和MAC/IP发布路由时携带以太网标签。
在多归属组网中,站点内MAC地址较多时,PE会生成大量MAC/IP发布路由。将这些MAC/IP路由发布给对端PE后,会给对端PE带来巨大的路由表项以及MAC地址表项管理压力。特别是对端PE处于汇聚层时,如果汇聚层PE的MAC地址表项达到饱和,可能无法学习到站点内部分用户的MAC地址,导致这些用户无法上线。
为了减少对端PE的MAC地址学习数量,多归属站点连接的PE可以在VSI中的EVPN实例下配置unknown-mac-route send detail-suppressed命令。配置了该命令后,设备不再向BGP EVPN对等体发送具体的MAC地址信息,而是发送UMR路由(即MAC地址为0-0-0的MAC/IP发布路由)。
但是,属于同一ES的PE之间需要发送包含非全零MAC地址的明细MAC/IP发布路由,以实现MAC地址表项的同步。配置了unknown-mac-route send detail-suppressed命令时,缺省情况下,属于同一ES的PE之间无法实现MAC地址表项的同步。此时可以在连接多归属站点的PE上,为属于同一ES的另一台PE配置本功能,以实现设备向属于同一ES的另一台PE仅发送包含非全零MAC地址的MAC/IP发布路由。
(1) 进入系统视图。
system-view
(2) 进入BGP实例视图。
bgp as-number [ instance instance-name ]
(3) 进入BGP EVPN地址族视图。
address-family l2vpn evpn
(4) 配置向指定对等体仅发送包含非全零MAC地址的MAC/IP发布路由。
peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise evpn mac-route detail-only
缺省情况下,设备向BGP EVPN对等体既会发送包含非全零MAC地址的MAC/IP发布路由,也会发送包含全零MAC地址的MAC/IP发布路由。
在多归属组网中,冗余备份组的一台成员设备因故障等原因重启后,站点间的广播流量转发可能会失败。为了解决这个问题,可以在成员设备连接CE的接口上执行本配置。这样,当成员设备从故障中恢复且连接CE的接口状态变为Up时,成员设备会启动以太网段路由的延迟发送定时器,并对指定的BGP邻居状态进行监控。如果在定时器超时前,所有设备的BGP邻居状态均Up,则本地成员设备正常发送以太网段路由;否则,定时器超时后,本地成员设备向所有BGP邻居状态为Up的设备发送以太网段路由。定时器超时或所有监控的BGP邻居均Up后,本地成员设备根据收到的所有以太网段路由进行DF选举。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
¡ 进入FlexE物理接口视图。
interface interface-type interface-number
¡ 进入FlexE业务接口视图。
interface flexe interface-number
(3) 配置冗余备份组中的成员设备监视其它PE设备的BGP邻居状态。
evpn track peer peer-address
缺省情况下,冗余备份组中的成员设备不会监视其它设备的BGP邻居状态。
(4) 开启以太网段路由延迟发布功能,并指定延迟发布时间。
evpn timer es-delay delay-time
缺省情况下,以太网段路由延迟发布功能处于关闭状态,即不延迟发布以太网段路由。
在EVPN VPLS多归属组网中,当主PE的接入侧链路或主PE设备故障恢复后,主PE上将会生成AD Per EVI路由,然后会通过BGP EVPN邻居关系将AD Per EVI路由发布给远端PE。远端PE在收到AD Per EVI路由并生成转发表项后,会将流量从发往备PE的路径切换到发往主PE的路径。此时主PE上可能会由于未完全生成转发表项而产生少量丢包。为了避免此情况的发生,用户可以在远端PE上通过配置本命令配置一个合适的延时切换时间。远端PE在收到EVI AD路由后将延迟生成转发表项,等待主PE上转发表项稳定。当延时超时后,远端PE上将生成新的转发表项,然后流量将被切换发往主PE,避免了丢包现象的发生。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 配置延时回切时间。
revertive wtr wtr-time
缺省情况下,延迟回切时间为0,即不延迟回切。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 配置延时回切时间。
revertive wtr wtr-time
缺省情况下,延迟回切时间为0,即不延迟回切。
PE可能会同时向远端PE通告MAC地址信息和ARP/ND信息。其中,ARP/ND信息中已经包含MAC地址信息。为了避免重复,可以执行本配置来禁止本端PE向远端PE通告MAC地址信息。执行本配置后,本端PE还会撤销已经发布的MAC地址信息。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 配置禁止通告MAC地址信息,并撤销已经通告的MAC地址信息。
mac-advertising disable
缺省情况下,允许通告MAC地址信息。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 配置禁止通告MAC地址信息,并撤销已经通告的MAC地址信息。
mac-advertising disable
缺省情况下,允许通告MAC地址信息。
UMR(Unknown MAC Route,未知MAC路由)是指MAC地址为0-0-0的MAC/IP发布路由。
在PE上开启UMR路由发布能力后,该PE将向BGP对等体发布UMR路由。
在PE上开启UMR路由的接收能力后,如果该PE(本端PE)从远端PE接收到UMR路由,则会在相应VSI的MAC地址表中添加MAC地址为0-0-0的表项,该表项称为缺省MAC地址表项。缺省MAC地址表项与缺省路由的用法相似:本端PE从AC接收到报文后,先根据目的MAC地址在VSI的MAC地址表中查找与其匹配的表项;如果没有查找到匹配的表项,则根据缺省MAC地址表项转发该报文。
UMR路由主要应用在以下场景:
· 当站点网络中的主机较多时,本端PE需要发布大量的MAC/IP发布路由,远端PE需要保存大量的MAC地址表项,占用过多网络和系统资源。通过UMR路由可以减少本端发布的MAC/IP发布路由数量,以及远端PE上的MAC地址表的规模。
· 本端PE上开启未知单播流量泛洪抑制功能时,该PE将丢弃接收到的未知单播流量。远端PE可以通过发布UMR路由,通知本端PE将未知单播流量转发给该远端PE,从而避免丢包。
多归属组网中,PE设备发布UMR路由时,在该路由中携带VSI视图下配置的ESI,以标识路由对应的ES。在VSI视图下,还可以配置该ES的冗余备份模式。ESI和冗余备份模式的配置方法,请分别参见“配置ESI”和“配置VSI的冗余备份模式”。
表1-3 单板信息一览表
单板类型 |
单板丝印 |
CEPC单板 |
CEPC-CQ8L、CEPC-CQ8LA、CEPC-CQ8L1A、CEPC-CQ8L3A、CEPC-CQ16L1、CEPC-DQ2L1-G |
CSPEX单板 |
CSPEX-1502XA、CSPEX-1802X、CSPEX-1802XA、CSPEX-1812X-E、CSPEX-2304X-G、CSPEX-2304X-LG、CSPEX-2612XA、CSPEX-2612X3A |
SPE单板 |
RX-SPE200-E |
开启UMR路由的发布和接收能力后,所有未知单播流量均会转发给发布UMR路由的PE设备,增加该PE设备的负担。并且,如果未知单播流量的目的主机未在该PE设备连接的站点内,则会造成流量转发失败。因此,请根据实际组网需求,谨慎使用本命令。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 开启UMR路由的发布或接收能力。
unknown-mac-route { receive | send [ detail-suppressed ] [ receive ] }
缺省情况下,UMR路由的发布和接收能力均处于关闭状态。
EVPN VPLS组网中,不同PE下的设备如果错误地配置了相同的MAC地址,会造成PE间不断同步MAC地址信息,并更新本地EVPN的MAC地址表项。此时PE认为该设备在不断迁移。这种情况可能会使PE间形成环路,占用大量的链路带宽。开启本功能后,若在检测周期内某MAC地址从本地迁移到远端的次数超过阈值,则抑制最后一次由远端向本地迁移,即仅本地学习但不对外通告该MAC地址,避免PE间形成环路。
执行undo evpn route mac-mobility suppression命令或MAC地址的抑制时间超过抑制恢复时间时,如果PE上被抑制迁移的MAC地址未老化,则立即向远端通告该MAC地址;如果PE上被抑制迁移的MAC地址已经老化,则PE重新从本地学习该MAC地址后再对外通告。
当MAC地址表项和ARP表项均发生冲突时,需要同时开启MAC地址反复迁移抑制功能和ARP反复迁移抑制功能。如果仅开启MAC地址表项抑制功能,则会导致MAC地址表项抑制失败。
系统视图、EVPN实例视图、VSI实例下的EVPN实例视图和三层接口视图下均可以开启MAC地址反复迁移抑制功能。系统视图的配置对所有EVPN实例都有效,EVPN实例视图下的配置对关联该EVPN实例的所有VSI有效,VSI实例下的EVPN实例视图下的配置仅对该VSI有效,三层接口视图下的配置仅对该接口有效。对于一个MAC地址来说,MAC地址反复迁移抑制功能生效的优先级为三层接口视图>EVPN实例视图/VSI实例下的EVPN实例视图>系统视图。
(1) 进入系统视图。
system-view
(2) 开启MAC地址反复迁移抑制功能。
evpn route mac-mobility suppression [ detect-cycle detect-time | detect-threshold move-times | suppression-time [ suppression-time | permanent ] ] *
缺省情况下,MAC地址反复迁移抑制功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 开启MAC地址反复迁移抑制功能。
evpn route mac-mobility suppression [ detect-cycle detect-time | detect-threshold move-times | suppression-time [ suppression-time | permanent ] ] *
缺省情况下,MAC地址反复迁移抑制功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation vxlan
(4) 开启MAC地址反复迁移抑制功能。
evpn route mac-mobility suppression [ detect-cycle detect-time | detect-threshold move-times | suppression-time [ suppression-time | permanent ] ] *
缺省情况下,MAC地址反复迁移抑制功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入三层接口视图。
interface interface-type interface-number
(3) 开启MAC地址反复迁移抑制功能。
evpn route mac-mobility suppression [ detect-cycle detect-time | detect-threshold move-times | suppression-time [ suppression-time | permanent ] ] *
缺省情况下,MAC地址反复迁移抑制功能处于关闭状态。
PE可能会同时接收到远端PE通告的MAC地址信息和ARP/ND信息。其中,ARP/ND信息中包含MAC地址信息。为了避免重复,可以在PE上执行本配置来禁止EVPN从ARP/ND信息中学习MAC地址表项,EVPN仅通过MAC地址信息学习远端MAC地址表项。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 配置禁止EVPN从ARP信息中学习MAC地址表项。
arp mac-learning disable
缺省情况下,EVPN可以从ARP信息中学习MAC地址表项。
(4) 配置禁止EVPN从ND信息中学习MAC地址表项。
nd mac-learning disable
缺省情况下,EVPN可以从ND信息中学习MAC地址表项。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 配置禁止EVPN从ARP信息中学习MAC地址表项。
arp mac-learning disable
缺省情况下,EVPN可以从ARP信息中学习MAC地址表项。
(5) 配置禁止EVPN从ND信息中学习MAC地址表项。
nd mac-learning disable
缺省情况下,EVPN可以从ND信息中学习MAC地址表项。
在EVPN VPLS组网中,本地学习的MAC地址通过EVPN路由同步到远端设备上。在某些情况下,由于流量异常,远端设备可能会从本地AC学习到相同的MAC地址。此时,远端设备认为MAC地址发生迁移,刷新MAC地址表项,后续访问该MAC地址的流量会因表项错误而导致转发失败。
为了避免上述情况,可以在设备上配置本功能。开启本功能后,设备将判断从AC接收到的报文的源MAC地址是否在本配置指定的MAC地址范围内。若在其范围内,则不进行源MAC地址学习,从而避免设备学习到错误的MAC地址表项。
不同情况下,多次执行mac-address source-mac-check ac mac-address mask命令对源MAC地址检查功能影响不同:
· mac-address参数不同时,设备上会生成多条源MAC地址检查表项。
· mac-address参数相同、mask参数不同,则最后一次执行的命令生效。
在VSI视图下执行display this命令,可以查看设备上当前存在的源MAC地址检查表项。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 配置AC的源MAC地址检查表项并开启AC的源MAC地址检查功能。
mac-address source-mac-check ac mac-address mask
缺省情况下,AC的源MAC地址检查功能处于关闭状态。
在EVPN VPLS组网中,如果同一个VPLS内的所有用户终端都部署在同一台PE下,则EVPN不需要通告该VPLS内的ARP信息。此时,可以配置本命令禁止EVPN通告ARP信息,以减少占用的设备和网络资源。执行本命令后,设备还会撤销已经发布的ARP信息。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 配置禁止通告ARP信息,并撤销已经通告的ARP信息。
arp-advertising disable
缺省情况下,允许通告ARP信息。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 配置禁止通告ARP信息,并撤销已经通告的ARP信息。
arp-advertising disable
缺省情况下,允许通告ARP信息。
EVPN E-Tree功能用来实现AC之间流量的隔离,以便更好地控制AC之间的访问,提高安全性。
e-tree enable命令用于开启本地AC与远端AC的EVPN E-Tree功能,若仅需要控制本地AC之间的访问,则无需配置本命令。
(1) 进入系统视图。
system-view
(2) 进入EVPN实例视图。
evpn instance instance-name
(3) 开启本地AC与远端AC的EVPN E-Tree功能。
e-tree enable
缺省情况下,本地AC与远端AC的EVPN E-Tree功能处于关闭状态。
(4) 退回系统视图。
quit
(5) 三层接口作为AC时,配置AC为Leaf角色。
ii. 进入三层接口视图。
interface interface-type interface-number
jj. 配置AC为Leaf角色。
xconnect vsi vsi-name leaf
未指定leaf参数时,AC为Root角色。
(6) 以太网服务实例作为AC时,配置AC为Leaf角色。
kk. 进入二层以太网接口视图或二层聚合接口视图。
interface interface-type interface-number
ll. 进入以太网服务实例视图。
service-instance instance-id
mm. 配置AC为Leaf角色。
xconnect vsi vsi-name leaf
未指定leaf参数时,AC为Root角色。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation mpls
(4) 开启本地AC与远端AC的EVPN E-Tree功能。
e-tree enable
缺省情况下,本地AC与远端AC的EVPN E-Tree功能处于关闭状态。
(5) 退回系统视图。
quit
quit
(6) 三层接口作为AC时,配置AC为Leaf角色。
nn. 进入三层接口视图。
interface interface-type interface-number
oo. 配置AC为Leaf角色。
xconnect vsi vsi-name leaf
未指定leaf参数时,AC为Root角色。
(7) 以太网服务实例作为AC时,配置AC为Leaf角色。
pp. 进入二层以太网接口视图或二层聚合接口视图。
interface interface-type interface-number
qq. 进入以太网服务实例视图。
service-instance instance-id
rr. 配置AC为Leaf角色。
xconnect vsi vsi-name leaf
未指定leaf参数时,AC为Root角色。
本功能用来实现VPLS网络与EVPN VPLS网络的互通。
建议为同一冗余备份组中各PE连接多归属站点的UPW配置相同的冗余备份模式。
在多归属站点组网中,如果采用多活模式,则必须在多归属接入的PE上执行protection dual-receive命令配置PW冗余保护的双收功能。
LDP PW和EVPN PW的数据封装类型必须与AC的接入模式一致,即同为Ethernet,或同为VLAN。否则,会导致PW状态异常。
除本节列出的配置步骤外,LDP PW或静态PW接入SRv6 PW组网中,还需要完成以下任务:
· 在VPLS网络中的PE设备上完成VPLS相关配置,建立LDP PW或静态PW。
· 在EVPN VPLS网络中的PE设备上完成EVPN VPLS相关配置,建立EVPN PW。
LDP PW接入EVPN PW场景中,LDP PW的数据封装类型必须与AC的接入模式一致,即同为Ethernet或同为VLAN。若二者不同,则需要在LDP PW引用的PW class下执行pw-type命令修改LDP PW的数据封装类型,或通过xconnect vsi命令中的access-mode参数修改AC的接入模式。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 退回VSI视图。
quit
(5) 指定VSI使用LDP信令建立PW,并进入VSI LDP信令视图。
pwsignaling ldp
缺省情况下,未指定VSI使用的PW信令协议。
(6) 配置VPLS的LDP PW,指定该LDP PW不采用水平分割方式,并进入VSI LDP PW视图。
peer ip-address [ pw-id pw-id ] no-split-horizon [ hub | ignore-standby-state | pw-class class-name | tunnel-policy tunnel-policy-name ] *
本命令配置的LDP PW称为UPW,作为SRv6网络的AC。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(7) (可选)配置UPW的ESI。
esi esi-id
缺省情况下,未配置PW的ESI。
在多归属站点组网中,需要在VPLS网络与EVPN VPLS网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(8) (可选)配置UPW的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活模式。
在多归属站点组网中,可以在VPLS网络与EVPN VPLS网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(9) 配置VPLS的备份PW,并进入VSI LDP备份PW视图。
backup-peer ip-address [ pw-id pw-id ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *
在多归属站点组网中,多归属接入的PE上需要执行本命令。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation mpls
(4) 退回VSI视图。
quit
(5) 指定VSI采用静态配置方式建立PW,并进入VSI静态配置视图。
pwsignaling static
缺省情况下,未指定VSI使用的PW信令协议。
(6) 配置VPLS的静态PW,指定该静态PW不采用水平分割方式,并进入VSI静态PW视图。
peer ip-address [ pw-id pw-id ] in-label label-value out-label label-value no-split-horizon [ hub | pw-class class-name | tunnel-policy tunnel-policy-name ] *
本命令配置的静态PW称为UPW,作为SRv6网络的AC。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(7) (可选)配置UPW的ESI。
esi esi-id
缺省情况下,未配置PW的ESI。
在多归属站点组网中,需要在VPLS网络与EVPN VPLS网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(8) (可选)配置UPW的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活模式。
在多归属站点组网中,可以在VPLS网络与EVPN VPLS网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(9) 配置VPLS的备份PW,并进入VSI静态备份PW视图。
backup-peer ip-address [ pw-id pw-id ] in-label label-value out-label label-value [ pw-class class-name | tunnel-policy tunnel-policy-name ] *
在多归属站点组网中,多归属接入的PE上需要执行本命令。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
需要在mLDP P2MP LSP的根节点上执行本节配置,在mLDP P2MP LSP的叶子节点上只需要执行provider-tunnel命令。
请不要在同一设备上同时配置MPLS L2VPN和EVPN VPLS over mLDP P2MP功能、不要同时配置VPLS和EVPN VPLS over mLDP P2MP 功能,否则,可能导致这些功能不可用。
配置本功能前,需要在mLDP P2MP LSP经过的各节点上开启mLDP P2MP功能;在mLDP P2MP LSP经过的首尾节点上开启IGMP Snooping功能。mLDP P2MP的详细配置方法请参见“MPLS配置指导”中的“mLDP”;IGMP Snooping的详细配置方法请参见“IP组播配置指导”中的“IGMP Snooping”。
(1) 进入系统视图。
system-view
(2) 创建EVPN实例,并进入EVPN实例视图。
evpn instance instance-name
(3) 创建组播隧道,并进入组播隧道视图。
provider-tunnel
(4) 创建组播相容性隧道,并进入组播相容性隧道视图。
inclusive-provider-tunnel
(5) 配置当前节点作为mLDP P2MP隧道的根节点。
role root
缺省情况下,当前节点不是组播EVPN的根节点。
(6) 配置mLDP P2MP类型的隧道作为相容性隧道,并进入mLDP视图。
mldp p2mp
缺省情况下,不使用mLDP P2MP类型的隧道作为相容性隧道和选择性隧道。
(7) 配置mLDP P2MP隧道根节点的IP地址。
root-ip ip-address
缺省情况下,未配置mLDP P2MP隧道根节点的IP地址。
(8) 依次执行以下命令退回系统视图。
ss. quit
tt. quit
uu. quit
vv. quit
(9) 进入VSI视图。
vsi vsi-name
(10) 配置VSI与EVPN实例关联。
evpn encapsulation vxlan binding instance instance-name vsi-tag { tag-id | auto-vxlan }
缺省情况下,VSI未关联EVPN实例。
为了避免相容性隧道向选择性隧道频繁切换,影响报文的正常转发,可以通过本功能,配置由相容性隧道向选择性隧道切换的条件和切换的延迟时间。
为了简化配置,组播选择性隧道视图会自动继承组播相容性隧道视图的所有配置。
(1) 进入系统视图。
system-view
(2) 创建EVPN实例,并进入EVPN实例视图。
evpn instance instance-name
(3) 创建组播隧道,并进入组播隧道视图。
provider-tunnel
(4) 创建组播选择性隧道,并进入组播选择性隧道视图。
selective-provider-tunnel
(5) 配置向选择性隧道切换的地址范围和切换条件。
(IPv4网络)
group group-address { group-mask | group-mask-length } [ source source-address { source-mask | source-mask-length } ] mldp [ limit number ]
(IPv6网络)
group group-ipv6-address group-prefix-length [ source source-ipv6-address source-prefix-length ] mldp [ limit number ]
缺省情况下,不会向选择性隧道切换。
(6) 配置由相容性隧道向选择性隧道切换的延迟时间。
switch-delay delay-time
缺省情况下,由相容性隧道向选择性隧道切换的延迟时间为5秒。
缺省情况下,PE从本地站点内接收到目的MAC地址为广播、未知单播和未知组播的数据帧后,会在该VSI内除接收接口外的所有本地接口和PW上泛洪该数据帧,将该数据帧发送给VSI内的所有站点。如果用户希望把某类数据帧限制在本地站点内,不通过PW将其转发到远端站点,则可以通过本命令手工禁止该类数据帧向远端站点泛洪。
禁止泛洪功能后,为了将某些MAC地址的数据帧泛洪到远端站点以保证某些业务的流量在站点间互通,可以配置选择性泛洪的MAC地址,当数据帧的目的MAC地址匹配该MAC地址时,该数据帧可以泛洪到远端站点。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 关闭VSI的泛洪功能。
flooding disable { all | { broadcast | unknown-multicast | unknown-unicast } * }
缺省情况下,VSI泛洪功能处于开启状态。
(4) (可选)配置VSI选择性泛洪的MAC地址。
selective-flooding mac-address mac-address
开启ARP泛洪抑制时,如果同时执行flooding disable命令关闭了VSI的泛洪功能,则建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 开启ARP泛洪抑制功能。
arp suppression enable
缺省情况下,ARP泛洪抑制功能处于关闭状态。
本配置用来控制AC(作为AC的三层接口或以太网服务实例)上学习的最大MAC地址数,以避免某个AC的MAC地址表项过多,占用过多的MAC地址表项资源。
(1) 进入系统视图。
system-view
(2) 进入三层以太网接口视图或三层聚合接口视图。
interface interface-type interface-number
(3) 配置作为AC的三层接口允许学习的最大MAC地址数,及达到最大MAC地址数时的转发和告警行为。
ac mac-limit { action { discard | forward } | alarm { disable | enable } | maximum mac-limit } *
缺省情况下,不对作为AC的三层接口学习到的最大MAC地址数进行限制。
关于该命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
(3) 进入以太网服务实例视图。
service-instance instance-id
(4) 配置作为AC的以太网服务实例允许学习的最大MAC地址数,及达到最大MAC地址数后的转发和告警行为。
mac-limit { action { discard | forward } | alarm { disable | enable } | maximum mac-limit } *
缺省情况下,不对作为AC的以太网服务实例学习到的最大MAC地址数进行限制。
关于该命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
配置AC的报文统计功能
配置作为AC的三层接口的报文统计功能时,需要注意:
· 开启报文统计功能后,可以使用display l2vpn interface verbose命令查看作为AC的三层接口的报文统计信息,使用reset l2vpn statistics ac命令清除AC的报文统计信息。
· 只有为三层接口绑定了VSI实例,报文统计功能才会生效。如果在报文统计过程中修改绑定的VSI,则重新进行报文统计计数。
配置以太网服务实例的报文统计功能时,需要注意:
· 开启报文统计功能后,可以使用display l2vpn service-instance verbose命令查看以太网服务实例的报文统计信息,使用reset l2vpn statistics ac命令清除以太网服务实例的报文统计信息。
· 只有为以太网服务实例配置了报文匹配方式并绑定了VSI实例,报文统计功能才会生效。如果在报文统计过程中修改报文匹配方式或绑定的VSI实例,则重新进行报文统计计数。
·
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入三层以太网接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
(3) 开启作为AC的三层接口的报文统计功能。
ac statistics enable
缺省情况下,作为AC的三层接口的报文统计功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
(3) 进入以太网服务实例视图。
service-instance instance-id
(4) 开启以太网服务实例的报文统计功能。
statistics enable
缺省情况下,以太网服务实例的报文统计功能处于关闭状态。
如果承载同一条PW的公网隧道为多条等价LDP LSP,缺省情况下,PW上的报文会在各LDP LSP上平均分配。开启本功能后,设备会获取LDP LSP对应出接口的带宽值,根据出接口的带宽值计算出各个LDP LSP应该分配的报文比例,然后按比例对报文进行转发。
仅承载PW的公网隧道为LDP LSP时,EVPN VPLS才支持基于带宽的负载分担功能。
(1) 进入系统视图。
system-view
(2) 开启L2VPN基于带宽的负载分担功能。
l2vpn bandwidth-based-sharing
缺省情况下,L2VPN基于带宽的负载分担功能处于关闭状态。
开启L2VPN告警功能后,当PW的up-down状态发生变化、PW删除或主备PW切换时会产生告警信息。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启L2VPN告警功能。
snmp-agent trap enable l2vpn [ pw-delete | pw-switch | pw-up-down ] *
缺省情况下,L2VPN告警功能处于关闭状态。
EVPN VPLS组网中,本端PE设备与远端PE设备间通过PW传输数据报文,当PE间出现丢包或断流现象时,可通过本功能检测PE设备间的PW连通性。具体检测过程为:
(1) 本端PE设备构造MPLS echo request报文,请求报文的目的MAC地址为本命令指定的MAC地址。本端PE设备根据目的MAC地址,在指定VSI的MAC地址表中查找匹配的表项,获取PW标签,为MPLS echo request报文封装PW标签后,通过PW将报文发送给远端PE。
(2) 远端PE收到MPLS echo request报文后,通过查找IP路由表向该请求报文的源IP地址(即本端PE)发送MPLS echo reply报文。
(3) 本端PE设备根据是否收到应答报文、收到应答报文的时间,判断该PW连通性,并输出相应的统计信息。
可在任意视图下执行本命令,检测EVPN VPLS组网中本端PE到指定主机连接的远端PE的PW连通性。
ping evpn vsi vsi-name mac mac-address [ -a source-ipv4 | -c count | -exp exp-value | -h ttl-value | -m wait-time | -r reply-mode | -rtos tos-value | -s packet-size | -t time-out | -v ] *
EVPN VPLS组网中,本端PE设备与远端PE设备间通过PW传输数据报文。当PE间出现丢包或断流现象时,可通过本命令查看本端PE到指定主机连接的远端PE间PW所经过的路径,并根据应答信息对错误点进行定位。具体检测过程为:
(1) 本端PE设备构造MPLS echo request报文,请求报文的目的MAC地址为本命令指定的MAC地址。本端PE设备根据目的MAC地址,在指定VSI的MAC地址表中查找匹配的表项,获取PW标签,为MPLS echo request报文封装PW标签后,通过PW将报文发送给远端PE。此时MPLS报文头部的TTL字段的取值设置为1。
(2) 下一跳节点收到报文后,将TTL值减1,变为0。该节点通过查找IP路由表向该请求报文的源IP地址(即本端PE)发送ICMP超时报文。
(3) 如果本端PE收到ICMP超时报文或未在time-out时间内收到应答报文,则会将TTL字段的取值加1(此时设置为2)继续发送MPLS echo request报文。
(4) 下游节点收到报文后,依次将TTL值减1,直到TTL值变为0。TTL值减为0的节点通过查找IP路由表向该请求报文的源IP地址(即本端PE)发送ICMP超时报文;若该节点为远端PE,则向首节点发送MPLS echo reply报文。
(5) 本端PE依次重复上述过程,直至MPLS echo request报文中TTL达到配置的最大值或收到远端PE的应答报文。
(6) 本端PE设备根据是否收到应答报文、收到应答报文的时间,判断该PW连通性、该PW经过的路径,并输出相应的统计信息。
可在任意视图下执行本命令,查看EVPN VPLS组网中本端PE到指定主机连接的远端PE间PW所经过的路径,并根据应答信息对错误点进行定位。
tracert evpn vsi vsi-name mac mac-address [ -a source-ipv4 | -exp exp-value | -h ttl-value | -r reply-mode | -rtos tos-value | -t time-out ] *
在完成上述配置后,在任意视图下执行display命令可以显示配置后EVPN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令来清除EVPN的相关信息。
display bgp group、display bgp peer、display bgp update-group命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP”。
表1-4 EVPN显示和维护
操作 |
命令 |
显示BGP对等体组的信息 |
display bgp [ instance instance-name ] group l2vpn evpn [ group-name group-name ] |
显示BGP EVPN路由信息 |
display bgp [ instance instance-name ] l2vpn evpn [ peer { ipv4-address | ipv6-address } { advertised-routes | received-routes } [ { evpn-route route-length | evpn-prefix } [ verbose ] | statistics ] | [ route-distinguisher route-distinguisher | route-type { auto-discovery | es | imet | mac-ip } ] * [ { evpn-route route-length | evpn-prefix } [ advertise-info ] | ipv4-address | ipv6-address | mac-address ] | statistics ] display bgp [ instance instance-name ] l2vpn evpn [ peer { ipv4-address | ipv6-address } { accepted-routes | not-accepted-routes } ] display bgp [ instance instance-name ] l2vpn evpn [ route-distinguisher route-distinguisher ] [ route-type { inter-as | intra-as | leaf | s-pmsi | shared-tree | source-active | source-tree } ] time-range min-time max-time |
显示BGP对等体或对等体组的状态和统计信息 |
display bgp [ instance instance-name ] peer l2vpn evpn [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ] |
显示BGP打包组的相关信息 |
display bgp [ instance instance-name ] update-group l2vpn evpn [ ipv4-address ] |
显示衰减的BGP EVPN路由信息 |
display bgp [ instance instance-name ] l2vpn evpn dampened |
显示BGP EVPN路由衰减参数 |
display bgp [ instance instance-name ] dampening parameter l2vpn evpn |
显示BGP EVPN路由的震荡统计信息 |
display bgp [ instance instance-name ] l2vpn evpn flap-info |
显示BGP中来源为EVPN进程的Route Target以及ES-Import Route Target信息 |
display bgp [ instance instance-name ] route-target evpn |
显示EVPN通过BGP自动发现的邻居信息 |
display evpn auto-discovery { ethernet-ad mpls [ peer ip-address ] [ vsi vsi-name ] | { imet | mac-ip } [ mpls | vxlan ] [ peer ip-address] [ vsi vsi-name ] | macip-prefix [ nexthop next-hop ] [ count ] } |
显示EVPN实例的选择性组播业务接口路由信息 |
display evpn auto-discovery s-pmsi |
显示DF选举的信息 |
display evpn df-election [ vsi vsi-name ] [ esi esi-id ] |
显示EVPN的ES信息 |
display evpn es { local [ count | [ vsi vsi-name ] [ esi esi-id ] [ verbose ] ] | remote [ vsi vsi-name ] [ esi esi-id ] [ nexthop next-hop ] [ verbose ] } |
显示EVPN实例内mLDP P2MP隧道的信息 |
display evpn mldp p2mp [ vsi vsi-name ] |
显示EVPN的ARP信息 |
display evpn route arp [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ ip ip-address ] [ count ] |
显示EVPN的ARP泛洪抑制信息 |
display evpn route arp suppression [ mpls ] [ local | remote ] [ vsi vsi-name ] [ ip ip-address ] [ count ] |
显示EVPN的MAC地址信息 |
display evpn route mac [ mac-address mac-address | umr [ verbose ] ] [ mpls | vxlan ] [ local | remote ] [ vsi vsi-name ] [ count ] |
显示EVPN的MAC地址迁移信息 |
display evpn route mac-mobility [ evpn-instance instance-name | interface interface-type interface-number | vsi vsi-name ] [ mac-address mac-address ] [ verbose ] |
显示EVPN的ND信息 |
display evpn route nd [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ ipv6 ipv6-address ] [ count ] |
显示EVPN实例的选择性组播以太网标签路由信息 |
display evpn route smet [ local | remote ] [ vsi vsi-name ] [ count ] |
显示EVPN的路由表信息 |
display evpn routing-table { public-instance | vpn-instance vpn-instance-name } [ count ] |
显示EVPN实例的相关信息 |
display evpn instance [ vsi vsi-name ] [ verbose ] |
显示EVPN多归属组网中满足水平分割原则的接口信息 |
(独立运行模式) display l2vpn forwarding evpn split-horizon { ac interface interface-type interface-number | ac interface interface-type interface-number service-instance instance-id | tunnel tunnel-number } [ slot slot-number [ cpu cpu-number ] ] (IRF模式) display l2vpn forwarding evpn split-horizon { ac interface interface-type interface-number | ac interface interface-type interface-number service-instance instance-id | tunnel tunnel-number } [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] |
显示EVPN VPLS组网中EVPN的转发信息 |
(独立运行模式) display l2vpn forwarding evpn vsi [ name vsi-name ] [ slot slot-number [ cpu cpu-number ] ] [ verbose ] (IRF模式) display l2vpn forwarding evpn vsi [ name vsi-name ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ verbose ] |
显示mLDP P2MP隧道的转发信息 |
(独立运行模式) display l2vpn forwarding mldp p2mp [ slot slot-number [ cpu cpu-number ] ] (IRF模式) display l2vpn forwarding mldp p2mp [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] |
显示VSI实例内mLDP P2MP隧道信息 |
display l2vpn mldp p2mp [ vsi vsi-name ] |
清除BGP EVPN路由的衰减信息,并解除对BGP EVPN路由的抑制 |
reset bgp [ instance instance-name ] dampening l2vpn evpn |
清除BGP EVPN路由的震荡统计信息 |
reset bgp [ instance instance-name ] flap-info l2vpn evpn [ as-path-acl { as-path-acl-number | as-path-acl-name } | peer [ ipv4-address [ mask-length ] | peer ipv6-address [ prefix-length ] ] ] |
取消对MAC地址迁移的抑制 |
reset evpn route mac-mobility suppression [ evpn-instance instance-name | interface interface-type interface-number | vsi vsi-name ] [ mac mac-address ] |
用户网络有两个站点,分别为CE 1和CE 2。CE 1和CE 2通过以太网接口分别接入PE 1和PE 2并希望通过骨干网运行EVPN VPLS功能实现二层互通。
图1-19 EVPN VPLS单归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
XGE3/1/1 |
10.1.1.10/24 |
P |
Loop0 |
3.3.3.3/32 |
PE 1 |
Loop0 |
1.1.1.1/32 |
|
XGE3/1/1 |
11.1.1.2/24 |
|
XGE3/1/1 |
- |
|
XGE3/1/2 |
11.1.2.2/24 |
|
XGE3/1/2 |
11.1.1.1/24 |
PE 2 |
Loop0 |
2.2.2.2/32 |
CE 2 |
XGE3/1/1 |
10.1.1.20/24 |
|
XGE3/1/1 |
- |
|
|
|
|
XGE3/1/2 |
11.1.2.1/24 |
(1) 配置CE 1
<CE1> system-view
[CE1] interface ten-gigabitethernet 3/1/1
[CE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.10 24
[CE1-Ten-GigabitEthernet3/1/1] quit
(2) 配置PE 1
# 配置LSR ID。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.1 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 1.1.1.1
# 开启L2VPN功能。
[PE1] l2vpn enable
# 全局使能LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置连接P的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip address 11.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/2] mpls enable
[PE1-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/2] quit
# 在PE 1上运行OSPF,用于建立LSP和BGP邻居。
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在PE 1和PE 2之间建立IBGP连接,并配置在二者之间通过BGP发布路由信息。
[PE1] bgp 100
[PE1-bgp-default] peer 2.2.2.2 as-number 100
[PE1-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 2.2.2.2 enable
[PE1-bgp-default-evpn] peer 2.2.2.2 advertise encap-type mpls
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation mpls
[PE1-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-mpls] quit
[PE1-vsi-vpna] quit
# 将接入CE 1的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE1-Ten-GigabitEthernet3/1/1] quit
(3) 配置P
# 配置LSR ID。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 3.3.3.3 32
[P-LoopBack0] quit
[P] mpls lsr-id 3.3.3.3
# 全局使能LDP。
[P] mpls ldp
[P-ldp] quit
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/1,在此接口上使能LDP。
[P] interface ten-gigabitethernet 3/1/1
[P-Ten-GigabitEthernet3/1/1] ip address 11.1.1.2 24
[P-Ten-GigabitEthernet3/1/1] mpls enable
[P-Ten-GigabitEthernet3/1/1] mpls ldp enable
[P-Ten-GigabitEthernet3/1/1] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[P] interface ten-gigabitethernet 3/1/2
[P-Ten-GigabitEthernet3/1/2] ip address 11.1.2.2 24
[P-Ten-GigabitEthernet3/1/2] mpls enable
[P-Ten-GigabitEthernet3/1/2] mpls ldp enable
[P-Ten-GigabitEthernet3/1/2] quit
# 在P上运行OSPF,用于建立LSP。
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 11.1.2.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
(4) 配置PE 2
# 配置LSR ID。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.2 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.2
# 开启L2VPN功能。
[PE2] l2vpn enable
# 全局使能LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置连接P的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip address 11.1.2.1 24
[PE2-Ten-GigabitEthernet3/1/2] mpls enable
[PE2-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/2] quit
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] network 11.1.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在PE 1和PE 2之间建立IBGP连接,并配置在二者之间通过BGP发布路由信息。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.1 as-number 100
[PE2-bgp-default] peer 1.1.1.1 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 1.1.1.1 enable
[PE2-bgp-default-evpn] peer 1.1.1.1 advertise encap-type mpls
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation mpls
[PE2-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-mpls] quit
[PE2-vsi-vpna] quit
# 将接入CE 2的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE2-Ten-GigabitEthernet3/1/1] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface ten-gigabitethernet 3/1/1
[CE2-Ten-GigabitEthernet3/1/1] ip address 10.1.1.20 24
[CE2-Ten-GigabitEthernet3/1/1] quit
# 在PE 1上查看PW信息,可以看到建立了一条PW。
[PE1] display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 1
1 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI Name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
2.2.2.2 - 775127/775127 EVPN M 8 Up
# 在PE 2上也可以看到PW信息。
[PE2] display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 1
1 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI Name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
1.1.1.1 - 775127/775127 EVPN M 8 Up
# CE 1与CE 2之间能够ping通。
用户网络有两个站点,分别为CE 1和CE 2。CE 1通过聚合链路多归属于PE 1和PE 2,CE 2为PE 3下的单归属设备。CE 1和CE 2希望通过骨干网的EVPN VPLS功能二层互通。
图1-20 EVPN VPLS多归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
192.1.1.1/32 |
CE 1 |
RAGG1 |
100.1.1.1/24 |
|
XGE3/1/1 |
- |
CE 2 |
XGE3/1/1 |
100.1.1.2/24 |
|
XGE3/1/2 |
10.1.1.1/24 |
PE 3 |
Loop0 |
192.3.3.3/32 |
|
XGE3/1/3 |
10.1.3.1/24 |
|
XGE3/1/1 |
- |
PE 2 |
Loop0 |
192.2.2.2/32 |
|
XGE3/1/2 |
10.1.1.2/24 |
|
XGE3/1/1 |
- |
|
XGE3/1/3 |
10.1.2.2/24 |
|
XGE3/1/2 |
10.1.2.1/24 |
|
|
|
|
XGE3/1/3 |
10.1.3.2/24 |
|
|
|
(1) 配置CE 1
# 创建三层聚合接口1,采用静态聚合模式,并为其配置IP地址和子网掩码。
<CE1> system-view
[CE1] interface route-aggregation 1
[CE1-Route-Aggregation1] ip address 100.1.1.1 24
[CE1-Route-Aggregation1] quit
# 将接口Ten-GigabitEthernet3/1/1至Ten-GigabitEthernet3/1/2加入到聚合组1中。
[CE1] interface ten-gigabitethernet 3/1/1
[CE1-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[CE1-Ten-GigabitEthernet3/1/1] quit
[CE1] interface ten-gigabitethernet 3/1/2
[CE1-Ten-GigabitEthernet3/1/2] port link-aggregation group 1
[CE1-Ten-GigabitEthernet3/1/2] quit
(2) 配置PE 1
# 配置LSR ID。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.1.1.1 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.1.1.1
# 开启L2VPN功能。
[PE1] l2vpn enable
# 全局使能LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/2] mpls enable
[PE1-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/3,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/3
[PE1-Ten-GigabitEthernet3/1/3] ip address 10.1.3.1 24
[PE1-Ten-GigabitEthernet3/1/3] mpls enable
[PE1-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/3] quit
# 在PE 1上运行OSPF,用于建立LSP和BGP邻居。
[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 10.1.3.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.1.1.1 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE1] bgp 100
[PE1-bgp-default] peer 192.2.2.2 as-number 100
[PE1-bgp-default] peer 192.2.2.2 connect-interface loopback 0
[PE1-bgp-default] peer 192.3.3.3 as-number 100
[PE1-bgp-default] peer 192.3.3.3 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 192.2.2.2 enable
[PE1-bgp-default-evpn] peer 192.3.3.3 enable
[PE1-bgp-default-evpn] peer 192.2.2.2 advertise encap-type mpls
[PE1-bgp-default-evpn] peer 192.3.3.3 advertise encap-type mpls
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 在接入站点的接口Ten-GigabitEthernet3/1/1下配置ESI值。
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] esi 1.1.1.1.1
[PE1-Ten-GigabitEthernet3/1/1] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation mpls
[PE1-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-mpls] quit
[PE1-vsi-vpna] quit
# 将接入CE 1的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE1-Ten-GigabitEthernet3/1/1] quit
(3) 配置PE 2
# 配置LSR ID。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.2.2.2 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.2.2.2
# 开启L2VPN功能。
[PE2] l2vpn enable
# 全局使能LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip address 10.1.2.1 24
[PE2-Ten-GigabitEthernet3/1/2] mpls enable
[PE2-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/3,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/3
[PE2-Ten-GigabitEthernet3/1/3] ip address 10.1.3.2 24
[PE2-Ten-GigabitEthernet3/1/3] mpls enable
[PE2-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/3] quit
# 在PE 2上运行OSPF,用于建立LSP和BGP邻居。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE2] bgp 100
[PE2-bgp-default] peer 192.1.1.1 as-number 100
[PE2-bgp-default] peer 192.1.1.1 connect-interface loopback 0
[PE2-bgp-default] peer 192.3.3.3 as-number 100
[PE2-bgp-default] peer 192.3.3.3 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 192.1.1.1 enable
[PE2-bgp-default-evpn] peer 192.3.3.3 enable
[PE2-bgp-default-evpn] peer 192.1.1.1 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 192.3.3.3 advertise encap-type mpls
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 在接入站点的接口Ten-GigabitEthernet3/1/1下配置ESI值。
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] esi 1.1.1.1.1
[PE2-Ten-GigabitEthernet3/1/1] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation mpls
[PE2-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-mpls] quit
[PE2-vsi-vpna] quit
# 将连接CE 1的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE2-Ten-GigabitEthernet3/1/1] quit
(4) 配置PE 3
# 配置LSR ID。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 192.3.3.3 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 192.3.3.3
# 开启L2VPN功能。
[PE3] l2vpn enable
# 全局使能LDP。
[PE3] mpls ldp
[PE3-ldp] quit
# 配置连接PE 1和PE 2的接口Ten-GigabitEthernet3/1/2和Ten-GigabitEthernet3/1/3,并在这两个接口上使能LDP。
[PE3] interface ten-gigabitethernet 3/1/2
[PE3-Ten-GigabitEthernet3/1/2] ip address 10.1.1.2 24
[PE3-Ten-GigabitEthernet3/1/2] mpls enable
[PE3-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/2] quit
[PE3] interface ten-gigabitethernet 3/1/3
[PE3-Ten-GigabitEthernet3/1/3] ip address 10.1.2.2 24
[PE3-Ten-GigabitEthernet3/1/3] mpls enable
[PE3-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/3] quit
# 在PE 3上运行OSPF,用于建立LSP。
[PE3] ospf
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE3-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] quit
[PE3-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE3] bgp 100
[PE3-bgp-default] peer 192.1.1.1 as-number 100
[PE3-bgp-default] peer 192.1.1.1 connect-interface loopback 0
[PE3-bgp-default] peer 192.2.2.2 as-number 100
[PE3-bgp-default] peer 192.2.2.2 connect-interface loopback 0
[PE3-bgp-default] address-family l2vpn evpn
[PE3-bgp-default-evpn] peer 192.1.1.1 enable
[PE3-bgp-default-evpn] peer 192.2.2.2 enable
[PE3-bgp-default-evpn] peer 192.1.1.1 advertise encap-type mpls
[PE3-bgp-default-evpn] peer 192.2.2.2 advertise encap-type mpls
[PE3-bgp-default-evpn] quit
[PE3-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE3] vsi vpna
[PE3-vsi-vpna] evpn encapsulation mpls
[PE3-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE3-vsi-vpna-evpn-mpls] quit
[PE3-vsi-vpna] quit
#将接入CE 2的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE3] interface ten-gigabitethernet 3/1/1
[PE3-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE3-Ten-GigabitEthernet3/1/1] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface ten-gigabitethernet 3/1/1
[CE2-Ten-GigabitEthernet3/1/1] ip address 100.1.1.2 24
[CE2-Ten-GigabitEthernet3/1/1] quit
# 在PE 1上查看PW信息,可以看到已经建立了PW。
<PE1> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.3.3.3 - 710263/710265 EVPN M 8 Up
192.2.2.2 - 710263/710124 EVPN M 9 Up
# 在PE 1上查看本地ES信息。
<PE1> display evpn es local
Redundancy mode: A - All-active, S - Single-active
VSI name : vpna
EVPN instance: -
ESI Tag ID DF address Mode State ESI label
0001.0001.0001.0001.0001 0 192.1.1.1 A Up 775128
# 在PE 1上查看远端ES信息。
<PE1> display evpn es remote
Control Flags: P - Primary, B - Backup, C - Control word
Status codes: * - valid
VSI name : vpna
ESI : 0001.0001.0001.0001.0001
Ethernet segment routes :
192.2.2.2
A-D per ES routes :
Peer IP Remote Redundancy mode
192.2.2.2 All-active
A-D per EVI routes :
Tag ID Peer IP
0 192.2.2.2
# 在PE 2上也可以看到PW信息。
<PE2> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.1.1.1 - 710124/710263 EVPN M 8 Up
192.3.3.3 - 710124/710265 EVPN M 9 Up
# 在PE 3上也可以看到PW信息。
<PE3> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.1.1.1 - 710265/710263 EVPN M 8 Up
192.2.2.2 - 710265/710124 EVPN M 9 Up
# CE 1与CE 2之间能够ping通,当其中一条PW故障时,CE 1与CE 2之间仍能够ping通。
用户网络有两个站点,分别为CE 1和CE 2。CE 1双归属接入PE 1和PE 2,在PE 1和PE 2之间通过S-Trunk跨设备形成链路聚合,以提高可靠性;CE 2为PE 3下的单归属设备。CE 1和CE 2希望通过骨干网的EVPN VPLS功能二层互通。
图1-21 EVPN VPLS多归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
192.1.1.1/32 |
CE 1 |
RAGG1 |
100.1.1.1/24 |
|
XGE3/1/1 |
- |
CE 2 |
XGE3/1/1 |
100.1.1.2/24 |
|
XGE3/1/2 |
10.1.1.1/24 |
PE 3 |
Loop0 |
192.3.3.3/32 |
|
XGE3/1/3 |
10.1.3.1/24 |
|
XGE3/1/1 |
- |
PE 2 |
Loop0 |
192.2.2.2/32 |
|
XGE3/1/2 |
10.1.1.2/24 |
|
XGE3/1/1 |
- |
|
XGE3/1/3 |
10.1.2.2/24 |
|
XGE3/1/2 |
10.1.2.1/24 |
|
|
|
|
XGE3/1/3 |
10.1.3.2/24 |
|
|
|
(1) 配置CE 1
# 创建三层聚合接口1,采用动态聚合模式,并为其配置IP地址和子网掩码。
<CE1> system-view
[CE1] interface route-aggregation 1
[CE1-Route-Aggregation1] link-aggregation mode dynamic
[CE1-Route-Aggregation1] ip address 100.1.1.1 24
[CE1-Route-Aggregation1] quit
# 将接口Ten-GigabitEthernet3/1/1至Ten-GigabitEthernet3/1/2加入到聚合组1中。
[CE1] interface ten-gigabitethernet 3/1/1
[CE1-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[CE1-Ten-GigabitEthernet3/1/1] quit
[CE1] interface ten-gigabitethernet 3/1/2
[CE1-Ten-GigabitEthernet3/1/2] port link-aggregation group 1
[CE1-Ten-GigabitEthernet3/1/2] quit
(2) 配置PE 1
# 配置LSR ID。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.1.1.1 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.1.1.1
# 开启L2VPN功能。
[PE1] l2vpn enable
# 全局使能LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/2] mpls enable
[PE1-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/3,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/3
[PE1-Ten-GigabitEthernet3/1/3] ip address 10.1.3.1 24
[PE1-Ten-GigabitEthernet3/1/3] mpls enable
[PE1-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/3] quit
# 在PE 1上运行OSPF,用于建立LSP和BGP邻居。
[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 10.1.3.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.1.1.1 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE1] bgp 100
[PE1-bgp-default] peer 192.2.2.2 as-number 100
[PE1-bgp-default] peer 192.2.2.2 connect-interface loopback 0
[PE1-bgp-default] peer 192.3.3.3 as-number 100
[PE1-bgp-default] peer 192.3.3.3 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 192.2.2.2 enable
[PE1-bgp-default-evpn] peer 192.3.3.3 enable
[PE1-bgp-default-evpn] peer 192.2.2.2 advertise encap-type mpls
[PE1-bgp-default-evpn] peer 192.3.3.3 advertise encap-type mpls
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置S-Trunk,在PE 1和PE 2之间跨设备建立链路聚合。
[PE1] lacp system-priority 10
[PE1] lacp system-mac 1-1-1
[PE1] lacp system-number 1
[PE1] s-trunk id 1
[PE1-s-trunk1] s-trunk ip destination 10.1.3.2 source 10.1.3.1
[PE1-s-trunk1] quit
[PE1] interface route-aggregation 1
[PE1-Route-Aggregation1] link-aggregation mode dynamic
[PE1-Route-Aggregation1] s-trunk 1
[PE1-Route-Aggregation1] s-trunk port-role primary
[PE1-Route-Aggregation1] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[PE1-Ten-GigabitEthernet3/1/1] quit
# 在接入站点的接口Route-Aggregation1下配置ESI值和接口的冗余备份模式。
[PE1] interface route-aggregation 1
[PE1-Route-Aggregation1] esi 1.1.1.1.1
[PE1-Route-Aggregation1] evpn redundancy-mode all-active
[PE1-Route-Aggregation1] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation mpls
[PE1-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-mpls] quit
[PE1-vsi-vpna] quit
# 将接入CE 1的接口Route-Aggregation1与VSI绑定。
[PE1] interface route-aggregation 1
[PE1-Route-Aggregation1] xconnect vsi vpna
[PE1-Route-Aggregation1] quit
(3) 配置PE 2
# 配置LSR ID。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.2.2.2 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.2.2.2
# 开启L2VPN功能。
[PE2] l2vpn enable
# 全局使能LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip address 10.1.2.1 24
[PE2-Ten-GigabitEthernet3/1/2] mpls enable
[PE2-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/3,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/3
[PE2-Ten-GigabitEthernet3/1/3] ip address 10.1.3.2 24
[PE2-Ten-GigabitEthernet3/1/3] mpls enable
[PE2-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/3] quit
# 在PE 2上运行OSPF,用于建立LSP和BGP邻居。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE2] bgp 100
[PE2-bgp-default] peer 192.1.1.1 as-number 100
[PE2-bgp-default] peer 192.1.1.1 connect-interface loopback 0
[PE2-bgp-default] peer 192.3.3.3 as-number 100
[PE2-bgp-default] peer 192.3.3.3 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 192.1.1.1 enable
[PE2-bgp-default-evpn] peer 192.3.3.3 enable
[PE2-bgp-default-evpn] peer 192.1.1.1 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 192.3.3.3 advertise encap-type mpls
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 配置S-Trunk,在PE 1和PE 2之间跨设备建立链路聚合。
[PE2] lacp system-priority 10
[PE2] lacp system-mac 1-1-1
[PE2] lacp system-number 2
[PE2] s-trunk id 1
[PE2-s-trunk1] s-trunk ip destination 10.1.3.1 source 10.1.3.2
[PE2-s-trunk1] quit
[PE2] interface route-aggregation 1
[PE2-Route-Aggregation1] link-aggregation mode dynamic
[PE2-Route-Aggregation1] s-trunk 1
[PE2-Route-Aggregation1] s-trunk port-role primary
[PE2-Route-Aggregation1] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[PE2-Ten-GigabitEthernet3/1/1] quit
# 在接入站点的接口Route-Aggregation1下配置ESI值和接口的冗余备份模式。
[PE2] interface route-aggregation 1
[PE2-Route-Aggregation1] esi 1.1.1.1.1
[PE2-Route-Aggregation1] evpn redundancy-mode all-active
[PE2-Route-Aggregation1] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation mpls
[PE2-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-mpls] quit
[PE2-vsi-vpna] quit
# 将连接CE 1的接口Route-Aggregation1与VSI绑定。
[PE2] interface route-aggregation 1
[PE2-Route-Aggregation1] xconnect vsi vpna
[PE2-Route-Aggregation1] quit
(4) 配置PE 3
# 配置LSR ID。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 192.3.3.3 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 192.3.3.3
# 开启L2VPN功能。
[PE3] l2vpn enable
# 全局使能LDP。
[PE3] mpls ldp
[PE3-ldp] quit
# 配置连接PE 1和PE 2的接口Ten-GigabitEthernet3/1/2和Ten-GigabitEthernet3/1/3,并在这两个接口上使能LDP。
[PE3] interface ten-gigabitethernet 3/1/2
[PE3-Ten-GigabitEthernet3/1/2] ip address 10.1.1.2 24
[PE3-Ten-GigabitEthernet3/1/2] mpls enable
[PE3-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/2] quit
[PE3] interface ten-gigabitethernet 3/1/3
[PE3-Ten-GigabitEthernet3/1/3] ip address 10.1.2.2 24
[PE3-Ten-GigabitEthernet3/1/3] mpls enable
[PE3-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/3] quit
# 在PE 3上运行OSPF,用于建立LSP。
[PE3] ospf
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE3-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] quit
[PE3-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE3] bgp 100
[PE3-bgp-default] peer 192.1.1.1 as-number 100
[PE3-bgp-default] peer 192.1.1.1 connect-interface loopback 0
[PE3-bgp-default] peer 192.2.2.2 as-number 100
[PE3-bgp-default] peer 192.2.2.2 connect-interface loopback 0
[PE3-bgp-default] address-family l2vpn evpn
[PE3-bgp-default-evpn] peer 192.1.1.1 enable
[PE3-bgp-default-evpn] peer 192.2.2.2 enable
[PE3-bgp-default-evpn] peer 192.1.1.1 advertise encap-type mpls
[PE3-bgp-default-evpn] peer 192.2.2.2 advertise encap-type mpls
[PE3-bgp-default-evpn] quit
[PE3-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE3] vsi vpna
[PE3-vsi-vpna] evpn encapsulation mpls
[PE3-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE3-vsi-vpna-evpn-mpls] quit
[PE3-vsi-vpna] quit
#将接入CE 2的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE3] interface ten-gigabitethernet 3/1/1
[PE3-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE3-Ten-GigabitEthernet3/1/1] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface ten-gigabitethernet 3/1/1
[CE2-Ten-GigabitEthernet3/1/1] ip address 100.1.1.2 24
[CE2-Ten-GigabitEthernet3/1/1] quit
# 在PE 1上查看PW信息,可以看到已经建立了PW。
<PE1> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.3.3.3 - 710263/710265 EVPN M 8 Up
192.2.2.2 - 710263/710124 EVPN M 9 Up
# 在PE 1上查看本地ES信息。
<PE1> display evpn es local
Redundancy mode: A - All-active, S - Single-active
VSI name : vpna
EVPN instance: -
ESI Tag ID DF address Mode State ESI label
0001.0001.0001.0001.0001 0 192.1.1.1 A Up 775128
# 在PE 1上查看远端ES信息。
<PE1> display evpn es remote
Control Flags: P - Primary, B - Backup, C - Control word
Status codes: * - valid
VSI name : vpna
EVPN instance: -
ESI : 0001.0001.0001.0001.0001
Ethernet segment routes :
192.2.2.2
A-D per ES routes :
Peer IP Remote Redundancy mode
192.2.2.2 All-active
A-D per EVI routes :
Tag ID Peer IP
0 192.2.2.2
# 在PE 2上也可以看到PW信息。
<PE2> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.1.1.1 - 710124/710263 EVPN M 8 Up
192.3.3.3 - 710124/710265 EVPN M 9 Up
# 在PE 3上也可以看到PW信息。
<PE3> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.1.1.1 - 710265/710263 EVPN M 8 Up
192.2.2.2 - 710265/710124 EVPN M 9 Up
# CE 1与CE 2之间能够ping通,当其中一条PW故障时,CE 1与CE 2之间仍能够ping通。
用户网络有两个站点,分别为CE 1和CE 2。CE 1通过聚合链路多归属于PE 1和PE 2,CE 2为PE 3下的单归属设备。CE 1和CE 2希望通过骨干网的EVPN VPLS功能二层互通。在PE 1和PE 2上启用FRR功能,确保连接CE 1的AC故障时,流量转发不会中断。
图1-22 EVPN VPLS的FRR功能配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
192.1.1.1/32 |
CE 1 |
XGE3/1/1 |
100.1.1.1/24 |
|
XGE3/1/1 |
- |
CE 2 |
XGE3/1/1 |
100.1.1.2/24 |
|
XGE3/1/2 |
10.1.1.1/24 |
PE 3 |
Loop0 |
192.3.3.3/32 |
|
XGE3/1/3 |
10.1.3.1/24 |
|
XGE3/1/1 |
- |
PE 2 |
Loop0 |
192.2.2.2/32 |
|
XGE3/1/2 |
10.1.1.2/24 |
|
XGE3/1/1 |
- |
|
XGE3/1/3 |
10.1.2.2/24 |
|
XGE3/1/2 |
10.1.2.1/24 |
|
|
|
|
XGE3/1/3 |
10.1.3.2/24 |
|
|
|
(1) 配置CE 1
# 创建三层聚合接口1,采用动态聚合模式,并为其配置IP地址和子网掩码。
<CE1> system-view
[CE1] interface route-aggregation 1
[CE1-Route-Aggregation1] link-aggregation mode dynamic
[CE1-Route-Aggregation1] ip address 100.1.1.1 24
[CE1-Route-Aggregation1] quit
# 将接口Ten-GigabitEthernet3/1/1至Ten-GigabitEthernet3/1/2加入到聚合组1中。
[CE1] interface ten-gigabitethernet 3/1/1
[CE1-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[CE1-Ten-GigabitEthernet3/1/1] quit
[CE1] interface ten-gigabitethernet 3/1/2
[CE1-Ten-GigabitEthernet3/1/2] port link-aggregation group 1
[CE1-Ten-GigabitEthernet3/1/2] quit
(2) 配置PE 1
# 配置LSR ID。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 192.1.1.1 32
[PE1-LoopBack0] quit
[PE1] mpls lsr-id 192.1.1.1
# 开启L2VPN功能。
[PE1] l2vpn enable
# 全局使能LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/2] mpls enable
[PE1-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/3,在此接口上使能LDP。
[PE1] interface ten-gigabitethernet 3/1/3
[PE1-Ten-GigabitEthernet3/1/3] ip address 10.1.3.1 24
[PE1-Ten-GigabitEthernet3/1/3] mpls enable
[PE1-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/3] quit
# 在PE 1上运行OSPF,用于建立LSP和BGP邻居。
[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 10.1.3.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 192.1.1.1 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE1] bgp 100
[PE1-bgp-default] peer 192.2.2.2 as-number 100
[PE1-bgp-default] peer 192.2.2.2 connect-interface loopback 0
[PE1-bgp-default] peer 192.3.3.3 as-number 100
[PE1-bgp-default] peer 192.3.3.3 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 192.2.2.2 enable
[PE1-bgp-default-evpn] peer 192.3.3.3 enable
[PE1-bgp-default-evpn] peer 192.2.2.2 advertise encap-type mpls
[PE1-bgp-default-evpn] peer 192.3.3.3 advertise encap-type mpls
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置S-Trunk,在PE 1和PE 2之间跨设备建立链路聚合。
[PE1] lacp system-priority 10
[PE1] lacp system-mac 1-1-1
[PE1] lacp system-number 1
[PE1] s-trunk id 1
[PE1-s-trunk1] s-trunk ip destination 10.1.3.2 source 10.1.3.1
[PE1-s-trunk1] quit
[PE1] interface route-aggregation 1
[PE1-Route-Aggregation1] link-aggregation mode dynamic
[PE1-Route-Aggregation1] s-trunk 1
[PE1-Route-Aggregation1] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[PE1-Ten-GigabitEthernet3/1/1] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation mpls
[PE1-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-mpls] quit
[PE1-vsi-vpna] quit
# 在接入站点的接口Route-Aggregation1下配置ESI值。
[PE1] interface route-aggregation 1
[PE1-Route-Aggregation1] esi 1.1.1.1.1
# 将接入CE 1的接口Route-Aggregation1与VSI绑定。
[PE1-Route-Aggregation1] xconnect vsi vpna
[PE1-Route-Aggregation1] quit
# 开启全局EVPN VPLS的FRR功能。
[PE1] evpn multihoming vpls-frr local
(3) 配置PE 2
# 配置LSR ID。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 192.2.2.2 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 192.2.2.2
# 开启L2VPN功能。
[PE1] l2vpn enable
# 全局使能LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip address 10.1.2.1 24
[PE2-Ten-GigabitEthernet3/1/2] mpls enable
[PE2-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/3,在此接口上使能LDP。
[PE2] interface ten-gigabitethernet 3/1/3
[PE2-Ten-GigabitEthernet3/1/3] ip address 10.1.3.2 24
[PE2-Ten-GigabitEthernet3/1/3] mpls enable
[PE2-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/3] quit
# 在PE 2上运行OSPF,用于建立LSP和BGP邻居。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 192.2.2.2 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE2] bgp 100
[PE2-bgp-default] peer 192.1.1.1 as-number 100
[PE2-bgp-default] peer 192.1.1.1 connect-interface loopback 0
[PE2-bgp-default] peer 192.3.3.3 as-number 100
[PE2-bgp-default] peer 192.3.3.3 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 192.1.1.1 enable
[PE2-bgp-default-evpn] peer 192.3.3.3 enable
[PE2-bgp-default-evpn] peer 192.1.1.1 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 192.3.3.3 advertise encap-type mpls
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 配置S-Trunk,在PE 1和PE 2之间跨设备建立链路聚合。
[PE2] lacp system-priority 10
[PE2] lacp system-mac 1-1-1
[PE2] lacp system-number 2
[PE2] s-trunk id 1
[PE2-s-trunk1] s-trunk ip destination 10.1.3.1 source 10.1.3.2
[PE2-s-trunk1] quit
[PE2] interface route-aggregation 1
[PE2-Route-Aggregation1] link-aggregation mode dynamic
[PE2-Route-Aggregation1] s-trunk 1
[PE2-Route-Aggregation1] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] port link-aggregation group 1
[PE2-Ten-GigabitEthernet3/1/1] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation mpls
[PE2-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-mpls] quit
[PE2-vsi-vpna] quit
# 在接入站点的接口Route-Aggregation1下配置ESI值。
[PE2] interface route-aggregation 1
[PE2-Route-Aggregation1] esi 1.1.1.1.1
# 将接入CE 1的接口Route-Aggregation1与VSI绑定。
[PE2-Route-Aggregation1] xconnect vsi vpna
[PE2-Route-Aggregation1] quit
# 开启全局EVPN VPLS的FRR功能。
[PE2] evpn multihoming vpls-frr local
(4) 配置PE 3
# 配置LSR ID。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 192.3.3.3 32
[PE3-LoopBack0] quit
[PE3] mpls lsr-id 192.3.3.3
# 开启L2VPN功能。
[PE3] l2vpn enable
# 全局使能LDP。
[PE3] mpls ldp
[PE3-ldp] quit
# 配置连接PE 1和PE 2的接口Ten-GigabitEthernet3/1/2和Ten-GigabitEthernet3/1/3,并在这两个接口上使能LDP。
[PE3] interface ten-gigabitethernet 3/1/2
[PE3-Ten-GigabitEthernet3/1/2] ip address 10.1.1.2 24
[PE3-Ten-GigabitEthernet3/1/2] mpls enable
[PE3-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/2] quit
[PE3] interface ten-gigabitethernet 3/1/3
[PE3-Ten-GigabitEthernet3/1/3] ip address 10.1.2.2 24
[PE3-Ten-GigabitEthernet3/1/3] mpls enable
[PE3-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/3] quit
# 在PE 3上运行OSPF,用于建立LSP。
[PE3] ospf
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] network 192.3.3.3 0.0.0.0
[PE3-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] quit
[PE3-ospf-1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP发布路由信息。
[PE3] bgp 100
[PE3-bgp-default] peer 192.1.1.1 as-number 100
[PE3-bgp-default] peer 192.1.1.1 connect-interface loopback 0
[PE3-bgp-default] peer 192.2.2.2 as-number 100
[PE3-bgp-default] peer 192.2.2.2 connect-interface loopback 0
[PE3-bgp-default] address-family l2vpn evpn
[PE3-bgp-default-evpn] peer 192.1.1.1 enable
[PE3-bgp-default-evpn] peer 192.2.2.2 enable
[PE3-bgp-default-evpn] peer 192.1.1.1 advertise encap-type mpls
[PE3-bgp-default-evpn] peer 192.2.2.2 advertise encap-type mpls
[PE3-bgp-default-evpn] quit
[PE3-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,同时配置EVPN实例的RD与RT。
[PE3] vsi vpna
[PE3-vsi-vpna] evpn encapsulation mpls
[PE3-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE3-vsi-vpna-evpn-mpls] quit
[PE3-vsi-vpna] quit
#将接入CE 2的接口Ten-GigabitEthernet3/1/1与VSI绑定。
[PE3] interface ten-gigabitethernet 3/1/1
[PE3-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE3-Ten-GigabitEthernet3/1/1] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface ten-gigabitethernet 3/1/1
[CE2-Ten-GigabitEthernet3/1/1] ip address 100.1.1.2 24
[CE2-Ten-GigabitEthernet3/1/1] quit
# 在PE 1上查看PW信息,可以看到已经建立了PW。
<PE1> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.3.3.3 - 710263/710265 EVPN M 8 Up
192.2.2.2 - 710263/710124 EVPN M 9 Up
# 在PE 1上查看本地ES信息。
<PE1> display evpn es local
Redundancy mode: A - All-active, S - Single-active
VSI name : vpna
EVPN instance: -
ESI Tag ID DF address Mode State ESI label
0001.0001.0001.0001.0001 0 192.1.1.1 A Up 775128
# 在PE 1上查看远端ES信息。
<PE1> display evpn es remote
Control Flags: P - Primary, B - Backup, C - Control word
VSI name : vpna
EVPN instance: -
ESI : 0001.0001.0001.0001.0001
Ethernet segment routes :
192.2.2.2
A-D per ES routes :
Peer IP Remote Redundancy mode
192.2.2.2 All-active
A-D per EVI routes :
Tag ID Peer IP Control Flags
0 192.2.2.2 B
# 在PE 2上也可以看到PW信息。
<PE2> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.1.1.1 - 710124/710263 EVPN M 8 Up
192.3.3.3 - 710124/710265 EVPN M 9 Up
# 在PE 3上也可以看到PW信息。
<PE3> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 2
2 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
192.1.1.1 - 710265/710263 EVPN M 8 Up
192.2.2.2 - 710265/710124 EVPN M 9 Up
# CE 1与CE 2之间能够ping通,当其中一条PW故障时,CE 1与CE 2之间仍能够ping通。
PE 1、PE 2和PE 4位于VPLS网络,采用LDP信令协议建立LDP PW。PE 1、PE 2和PE 3位于EVPN VPLS网络。PE 1和PE 2为VPLS网络和EVPN VPLS网络的边缘设备。PE 1和PE 2上配置LDP PW接入EVPN PW功能,实现VPLS和EVPN VPLS网络的互通。其中,PE 4与PE 1、PE 4与PE 2之间的两条LDP PW作为UPW,多归属接入PE。
图1-23 LDP PW接入EVPN PW配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 3 |
Loop0 |
3.3.3.9/32 |
|
XGE3/1/1 |
10.1.1.1/24 |
|
XGE3/1/1 |
- |
|
XGE3/1/2 |
30.1.1.1/24 |
|
XGE3/1/2 |
30.1.1.3/24 |
|
XGE3/1/3 |
10.1.3.1/24 |
|
XGE3/1/3 |
10.1.2.3/24 |
PE 2 |
Loop0 |
2.2.2.9/32 |
PE 4 |
Loop0 |
4.4.4.9/32 |
|
XGE3/1/1 |
20.1.1.2/24 |
|
XGE3/1/3 |
- |
|
XGE3/1/2 |
10.1.2.2/24 |
|
XGE3/1/1 |
10.1.1.4/24 |
|
XGE3/1/3 |
10.1.3.2/24 |
|
XGE3/1/2 |
20.1.1.4/24 |
CE 1 |
XGE3/1/1 |
100.1.1.1/32 |
CE 2 |
XGE3/1/1 |
100.1.1.2/32 |
PE 1 |
Loop0 |
1.1.1.9/32 |
PE 3 |
Loop0 |
3.3.3.9/32 |
(1) 配置CE 1
# 将接口Ten-GigabitEthernet3/1/1为其配置IP地址和子网掩码。
<CE1> system-view
[CE1] interface ten-gigabitethernet 3/1/1
[CE1-Ten-GigabitEthernet3/1/1] ip address 100.1.1.1 24
[CE1-Ten-GigabitEthernet3/1/1] quit
(2) 配置PE 4
# 配置MPLS基本能力。
<PE4> system-view
[PE4] interface loopback 0
[PE4-LoopBack0] ip address 1.1.1.9 32
[PE4-LoopBack0] quit
[PE4] mpls lsr-id 1.1.1.9
# 全局使能LDP。
[PE4] mpls ldp
[PE4-ldp] quit
# 开启L2VPN功能。
[PE4] l2vpn enable
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/1。
[PE4] interface ten-gigabitethernet 3/1/1
[PE4-Ten-GigabitEthernet3/1/1] ip address 10.1.1.4 24
[PE4-Ten-GigabitEthernet3/1/1] ospf 1 area 0
[PE4-Ten-GigabitEthernet3/1/1] mpls enable
[PE4-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE4-Ten-GigabitEthernet3/1/1] undo shutdown
[PE4-Ten-GigabitEthernet3/1/1] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/2。
[PE4] interface ten-gigabitethernet 3/1/2
[PE4-Ten-GigabitEthernet3/1/2] ip address 20.1.1.4 24
[PE4-Ten-GigabitEthernet3/1/2] ospf 1 area 0
[PE4-Ten-GigabitEthernet3/1/2] mpls enable
[PE4-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE4-Ten-GigabitEthernet3/1/2] undo shutdown
[PE4-Ten-GigabitEthernet3/1/2] quit
# 配置VSI实例aaa采用LDP信令协议,并在PE 4和PE 1之间建立主PW,在PE 4和PE 2之间建立备PW,配置PW冗余保护的双收功能。
[PE4] vsi vpna
[PE4-vsi-vpna] protection dual-receive
[PE4-vsi-vpna] pwsignaling ldp
[PE4-vsi-vpna-ldp] peer 1.1.1.9 pw-id 500
[PE4-vsi-vpna-ldp-1.1.1.9-500] backup-peer 2.2.2.9 pw-id 500
[PE4-vsi-vpna-ldp-1.1.1.9-500-backup] quit
[PE4-vsi-vpna-ldp-1.1.1.9-500] quit
[PE4-vsi-vpna-ldp] quit
[PE4-vsi-vpna] quit
# 在接口Ten-GigabitEthernet3/1/3绑定VSI实例aaa。
[PE4] interface ten-gigabitethernet 3/1/3
[PE4-Ten-GigabitEthernet3/1/3] xconnect vsi vpna
[PE4-Ten-GigabitEthernet3/1/3] quit
(3) 配置PE 1
# 配置Loopback0接口。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack1] ip address 1.1.1.9 32
[PE1-LoopBack1] quit
# 配置MPLS基本能力。
[PE1] mpls lsr-id 1.1.1.9
# 全局使能LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 开启L2VPN功能。
[PE1] l2vpn enable
# 在PE 1上运行OSPF,用于建立LSP。
[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 30.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 10.1.3.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] quit
# 配置连接PE 4的接口Ten-GigabitEthernet3/1/1。
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/1] mpls enable
[PE1-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/1] undo shutdown
[PE1-Ten-GigabitEthernet3/1/1] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2。
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip address 30.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/2] mpls enable
[PE1-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/2] undo shutdown
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/3。
[PE1] interface ten-gigabitethernet 3/1/3
[PE1-Ten-GigabitEthernet3/1/3] ip address 10.1.3.1 24
[PE1-Ten-GigabitEthernet3/1/3] mpls enable
[PE1-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/3] undo shutdown
[PE1-Ten-GigabitEthernet3/1/3] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP EVPN发布路由信息。
[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] 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 2.2.2.9 enable
[PE1-bgp-default-evpn] peer 3.3.3.9 enable
[PE1-bgp-default-evpn] peer 2.2.2.9 advertise encap-type mpls
[PE1-bgp-default-evpn] peer 3.3.3.9 advertise encap-type mpls
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 创建PW class,并配置PW的数据封装类型为Ethernet。
[PE1] pw-class aaa
[PE1-pw-class-aaa] pw-type ethernet
[PE1-pw-class-aaa] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,配置EVPN实例的RD与RT。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation mpls
[PE1-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-mpls] quit
# 配置VSI实例vpna采用LDP信令协议,并在PE 4和PE 1之间建立UPW,并配置ESI值和接口的冗余备份模式。
[PE1-vsi-vpna] pwsignaling ldp
[PE1-vsi-vpna-ldp] peer 4.4.4.9 pw-id 500 no-split-horizon pw-class aaa
[PE1-vsi-vpna-ldp-4.4.4.9-500] esi 1.1.1.1.1
[PE1-vsi-vpna-ldp-4.4.4.9-500] evpn redundancy-mode all-active
[PE1-vsi-vpna-ldp-4.4.4.9-500] quit
[PE1-vsi-vpna-ldp] quit
[PE1-vsi-vpna] quit
(4) 配置PE 2
# 配置MPLS基本能力。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.9 32
[PE2-LoopBack0] quit
[PE2] mpls lsr-id 2.2.2.9
# 全局使能LDP。
[PE2] mpls ldp
[PE2-ldp] quit
# 开启L2VPN功能。
[PE2] l2vpn enable
# 在PE 2上运行OSPF,用于建立LSP。
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[PE2-ospf-1] quit
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/3。
[PE2] interface ten-gigabitethernet 3/1/3
[PE2-Ten-GigabitEthernet3/1/3] ip address 10.1.3.2 24
[PE2-Ten-GigabitEthernet3/1/3] mpls enable
[PE2-Ten-GigabitEthernet3/1/3] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/3] undo shutdown
[PE2-Ten-GigabitEthernet3/1/3] quit
# 配置连接PE 3的接口Ten-GigabitEthernet3/1/2。
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip address 10.1.2.1 24
[PE2-Ten-GigabitEthernet3/1/2] mpls enable
[PE2-Ten-GigabitEthernet3/1/2] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/2] undo shutdown
[PE2-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 4的接口Ten-GigabitEthernet3/1/1。
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip address 20.1.1.2 24
[PE2-Ten-GigabitEthernet3/1/1] mpls enable
[PE2-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/1] undo shutdown
[PE2-Ten-GigabitEthernet3/1/1] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP EVPN发布路由信息。
[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] peer 3.3.3.9 as-number 100
[PE2-bgp-default] peer 3.3.3.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] peer 3.3.3.9 enable
[PE2-bgp-default-evpn] peer 1.1.1.9 advertise encap-type mpls
[PE2-bgp-default-evpn] peer 3.3.3.9 advertise encap-type mpls
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 创建PW class,并配置PW的数据封装类型为Ethernet。
[PE2] pw-class aaa
[PE2-pw-class-aaa] pw-type ethernet
[PE2-pw-class-aaa] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,配置EVPN实例的RD与RT。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation mpls
[PE2-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-mpls] quit
# 配置VSI实例vpna采用LDP信令协议,并在PE 4和PE 2之间建立UPW,并配置ESI值和接口的冗余备份模式。
[PE2] vsi vpna
[PE2-vsi-vpna] pwsignaling ldp
[PE2-vsi-vpna-ldp] peer 1.1.1.9 pw-id 500 no-split-horizon pw-class aaa
[PE2-vsi-vpna-ldp-1.1.1.9-500] esi 1.1.1.1.1
[PE2-vsi-vpna-ldp-1.1.1.9-500] evpn redundancy-mode all-active
[PE2-vsi-vpna-ldp-1.1.1.9-500] quit
[PE2-vsi-vpna-ldp] quit
[PE2-vsi-vpna] quit
(5) 配置PE 3
# 配置MPLS基本能力。
<PE3> system-view
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 3.3.3.9 32
[PE3-LoopBack0] quit
[PE1] mpls lsr-id 3.3.3.9
# 全局使能LDP。
[PE1] mpls ldp
[PE1-ldp] quit
# 开启L2VPN功能。
[PE3] l2vpn enable
# 在PE 3上运行OSPF,用于建立LSP。
[PE3] ospf
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] network 30.1.1.0 0.0.0.255
[PE3-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE3-ospf-1] quit
# 配置连接PE 1的接口Ten-GigabitEthernet3/1/2。
[PE3] interface ten-gigabitethernet 3/1/2
[PE3-Ten-GigabitEthernet3/1/2] ip address 30.1.1.3 24
[PE3-Ten-GigabitEthernet3/1/2] undo shutdown
[PE3-Ten-GigabitEthernet3/1/2] quit
# 配置连接PE 2的接口Ten-GigabitEthernet3/1/3。
[PE3] interface ten-gigabitethernet 3/1/3
[PE3-Ten-GigabitEthernet3/1/3] ip address 10.1.2.3 24
[PE3-Ten-GigabitEthernet3/1/3] undo shutdown
[PE3-Ten-GigabitEthernet3/1/3] quit
# 在PE 1、PE 2和PE 3之间建立IBGP连接,并配置通过BGP EVPN发布路由信息。
[PE3] bgp 100
[PE3-bgp-default] peer 1.1.1.9 as-number 100
[PE3-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE3-bgp-default] peer 2.2.2.9 as-number 100
[PE3-bgp-default] peer 2.2.2.9 connect-interface loopback 0
[PE3-bgp-default] address-family l2vpn evpn
[PE3-bgp-default-evpn] peer 1.1.1.9 enable
[PE3-bgp-default-evpn] peer 2.2.2.9 enable
[PE3-bgp-default-evpn] peer 1.1.1.9 advertise encap-type mpls
[PE3-bgp-default-evpn] peer 2.2.2.9 advertise encap-type mpls
[PE3-bgp-default-evpn] quit
[PE3-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用MPLS封装,配置EVPN实例的RD与RT。
[PE3] vsi vpna
[PE3-vsi-vpna] evpn encapsulation mpls
[PE3-vsi-vpna-evpn-mpls] route-distinguisher 1:1
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 export-extcommunity
[PE3-vsi-vpna-evpn-mpls] vpn-target 1:1 import-extcommunity
[PE3-vsi-vpna-evpn-mpls] quit
# 将接口Ten-GigabitEthernet3/1/1与VSI关联。
[PE3] interface ten-gigabitethernet 3/1/1
[PE3-Ten-GigabitEthernet3/1/1] xconnect vsi vpna
[PE3-Ten-GigabitEthernet3/1/1] quit
(6) 配置CE 2
<CE2> system-view
[CE2] interface ten-gigabitethernet 3/1/1
[CE2-Ten-GigabitEthernet3/1/1] ip address 100.1.1.2 24
[CE2-Ten-GigabitEthernet3/1/1] quit
# 在PE 1上查看PW信息,可以看到PE 1与PE 4建立了LDP PW,PE 1与PE 2和PE 3建立了EVPN PW。
<PE1> display l2vpn pw
Flags: M - main, B - backup, E - ecmp, BY - bypass, H - hub link, S - spoke link
N - no split horizon, A - administration, ABY - ac-bypass
PBY - pw-bypass
Total number of PWs: 3
3 up, 0 blocked, 0 down, 0 defect, 0 idle, 0 duplicate
VSI Name: vpna
Peer PWID/RmtSite/SrvID In/Out Label Proto Flag Link ID State
4.4.4.9 500 1147/- LDP MN 8 Up
2.2.2.9 - 1148/1148 EVPN M 9 Up
3.3.3.9 - 1148/1149 EVPN M 10 Up
# 在PE 1上查看本地ES信息,可以看到LDP PW(即UPW)作为ES实现多归属接入。
<PE1> display evpn es local verbose
VSI name : vpna
EVPN instance: -
ESI : 0001.0001.0001.0001.0001
Interface : -
Redundancy mode : All-active
State : Up
UPWs :
Link ID Service instance ID Tag ID DF address ESI label
8 - 0 - 1146
# 在PE 2上的显示信息与PE 1类似。(具体显示信息略)
# CE 1与CE 2之间能够ping通。
图1-24所示的EVPN VPLS组网中,通过mLDP P2MP隧道在公网中转发泛洪流量,以避免流量在核心网上泛洪时占用过多的带宽资源。其中:
· PE 1连接组播源,PE 2和PE 3连接组播接收者。
· RR为路由反射器,在各PE之间反射BGP EVPN路由。
图1-24 EVPN VPLS over mLDP配置组网图
为了实现EVPN VPLS网络中的泛洪流量在公网上通过mLDP P2MP隧道转发,PE设备上除了配置EVPN VPLS基本功能外,还需要执行以下配置:
· RR和各PE设备上都需要开启mLDP功能,以便在公网上建立mLDP P2MP隧道。
· 连接组播源的PE 1上需要配置组播相容性隧道和选择性隧道,并将mLDP P2MP隧道根节点的IP地址配置为PE 1的Loopback接口地址。连接组播接收者的PE上仅需创建组播隧道,无需配置组播相容性隧道和选择性隧道。
· 在各PE设备上开启IGMP snooping功能,以监听IGMP报文。
(1) 在各PE和RR上配置接口的IP地址,并配置OSPF路由协议,以实现公网路由可达。
# 配置PE 1。
<PE1> system-view
[PE1] ospf 1
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.1 32
[PE1-LoopBack0] ospf 1 area 0
[PE1-LoopBack0] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip address 14.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/1] ospf 1 area 0
[PE1-Ten-GigabitEthernet3/1/1] quit
# 配置PE 2。
<PE2> system-view
[PE2] ospf 1
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 2.2.2.2 32
[PE2-LoopBack0] ospf 1 area 0
[PE2-LoopBack0] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip address 15.1.1.1 24
[PE2-Ten-GigabitEthernet3/1/1] ospf 1 area 0
[PE2-Ten-GigabitEthernet3/1/1] quit
# 配置PE 3。
<PE3> system-view
[PE3] ospf 1
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] quit
[PE3-ospf-1] quit
[PE3] interface loopback 0
[PE3-LoopBack0] ip address 3.3.3.3 32
[PE3-LoopBack0] ospf 1 area 0
[PE3-LoopBack0] quit
[PE3] interface ten-gigabitethernet 3/1/1
[PE3-Ten-GigabitEthernet3/1/1] ip address 16.1.1.1 24
[PE3-Ten-GigabitEthernet3/1/1] ospf 1 area 0
[PE3-Ten-GigabitEthernet3/1/1] quit
# 配置RR。
<RR> system-view
[RR] ospf 1
[RR-ospf-1] area 0
[RR-ospf-1-area-0.0.0.0] quit
[RR-ospf-1] quit
[RR] interface loopback 0
[RR-LoopBack0] ip address 4.4.4.4 32
[RR-LoopBack0] ospf 1 area 0
[RR-LoopBack0] quit
[RR] interface ten-gigabitethernet 3/1/1
[RR-Ten-GigabitEthernet3/1/1] ip address 14.1.1.2 24
[RR-Ten-GigabitEthernet3/1/1] ospf 1 area 0
[RR-Ten-GigabitEthernet3/1/1] quit
[RR] interface ten-gigabitethernet 3/1/2
[RR-Ten-GigabitEthernet3/1/2] ip address 15.1.1.2 24
[RR-Ten-GigabitEthernet3/1/2] ospf 1 area 0
[RR-Ten-GigabitEthernet3/1/2] quit
[RR] interface ten-gigabitethernet 3/1/3
[RR-Ten-GigabitEthernet3/1/3] ip address 16.1.1.2 24
[RR-Ten-GigabitEthernet3/1/3] ospf 1 area 0
[RR-Ten-GigabitEthernet3/1/3] quit
(2) 在各PE和RR上使能MPLS、LDP和mLDP。
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.1
[PE1] mpls ldp
[PE1-ldp] mldp p2mp
All associated LDP sessions will be reset. Continue? [Y/N]:y
[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
# 配置PE 2。
[PE2] mpls lsr-id 2.2.2.2
[PE2] mpls ldp
[PE2-ldp] mldp p2mp
All associated LDP sessions will be reset. Continue? [Y/N]:y
[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
# 配置PE 3。
[PE3] mpls lsr-id 3.3.3.3
[PE3] mpls ldp
[PE3-ldp] mldp p2mp
All associated LDP sessions will be reset. Continue? [Y/N]:y
[PE3-ldp] quit
[PE3] interface ten-gigabitethernet 3/1/1
[PE3-Ten-GigabitEthernet3/1/1] mpls enable
[PE3-Ten-GigabitEthernet3/1/1] mpls ldp enable
[PE3-Ten-GigabitEthernet3/1/1] quit
# 配置RR。
[RR] mpls lsr-id 4.4.4.4
[RR] mpls ldp
[RR-ldp] mldp p2mp
All associated LDP sessions will be reset. Continue? [Y/N]:y
[RR-ldp] quit
[RR] interface ten-gigabitethernet 3/1/1
[RR-Ten-GigabitEthernet3/1/1] mpls enable
[RR-Ten-GigabitEthernet3/1/1] mpls ldp enable
[RR-Ten-GigabitEthernet3/1/1] quit
[RR] interface ten-gigabitethernet 3/1/2
[RR-Ten-GigabitEthernet3/1/2] mpls enable
[RR-Ten-GigabitEthernet3/1/2] mpls ldp enable
[RR-Ten-GigabitEthernet3/1/2] quit
[RR] interface ten-gigabitethernet 3/1/3
[RR-Ten-GigabitEthernet3/1/3] mpls enable
[RR-Ten-GigabitEthernet3/1/3] mpls ldp enable
[RR-Ten-GigabitEthernet3/1/3] quit
(3) 在各PE和RR上配置BGP EVPN路由协议
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 4.4.4.4 as-number 100
[PE1-bgp-default] peer 4.4.4.4 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 4.4.4.4 enable
[PE1-bgp-default-evpn] peer 4.4.4.4 advertise encap-type mpls
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 4.4.4.4 as-number 100
[PE2-bgp-default] peer 4.4.4.4 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 4.4.4.4 enable
[PE2-bgp-default-evpn] peer 4.4.4.4 advertise encap-type mpls
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 配置PE 3。
[PE3] bgp 100
[PE3-bgp-default] peer 4.4.4.4 as-number 100
[PE3-bgp-default] peer 4.4.4.4 connect-interface loopback 0
[PE3-bgp-default] address-family l2vpn evpn
[PE3-bgp-default-evpn] peer 4.4.4.4 enable
[PE3-bgp-default-evpn] peer 4.4.4.4 advertise encap-type mpls
[PE3-bgp-default-evpn] quit
[PE3-bgp-default] quit
# 配置RR。
[RR] bgp 100
[RR-bgp-default] peer 1.1.1.1 as-number 100
[RR-bgp-default] peer 1.1.1.1 connect-interface loopback 0
[RR-bgp-default] peer 2.2.2.2 as-number 100
[RR-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RR-bgp-default] peer 3.3.3.3 as-number 100
[RR-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RR-bgp-default] address-family l2vpn evpn
[RR-bgp-default-evpn] undo policy vpn-target
[RR-bgp-default-evpn] peer 1.1.1.1 enable
[RR-bgp-default-evpn] peer 1.1.1.1 reflect-client
[RR-bgp-default-evpn] peer 1.1.1.1 advertise encap-type mpls
[RR-bgp-default-evpn] peer 2.2.2.2 enable
[RR-bgp-default-evpn] peer 2.2.2.2 reflect-client
[RR-bgp-default-evpn] peer 2.2.2.2 advertise encap-type mpls
[RR-bgp-default-evpn] peer 3.3.3.3 enable
[RR-bgp-default-evpn] peer 3.3.3.3 reflect-client
[RR-bgp-default-evpn] peer 3.3.3.3 advertise encap-type mpls
[RR-bgp-default-evpn] quit
[RR-bgp-default] quit
(4) 在各PE上使能L2VPN。
# 配置PE 1。
[PE1] l2vpn enable
# 配置PE 2。
[PE2] l2vpn enable
# 配置PE 3。
[PE3] l2vpn enable
(5) 在各PE上配置EVPN实例,在EVPN实例下创建组播隧道。在连接组播源的PE 1上创建组播相容性隧道和选择性隧道,并配置mLDP P2MP类型的隧道作为相容性隧道。
# 配置PE 1。
[PE1] evpn instance vpna
[PE1-evpn-instance-vpna] route-distinguisher 1:1
[PE1-evpn-instance-vpna] vpn-target 1:1
[PE1-evpn-instance-vpna] provider-tunnel
[PE1-evpn-instance-vpna-provider] inclusive-provider-tunnel
[PE1-evpn-instance-vpna-provider-inclusive] role root
[PE1-evpn-instance-vpna-provider-inclusive] mldp p2mp
[PE1-evpn-instance-vpna-provider-inclusive-mldp] root-ip 1.1.1.1
[PE1-evpn-instance-vpna-provider-inclusive-mldp] quit
[PE1-evpn-instance-vpna-provider-inclusive] quit
[PE1-evpn-instance-vpna-provider] selective-provider-tunnel
[PE1-evpn-instance-vpna-provider-selective] switch-delay 10
[PE1-evpn-instance-vpna-provider-selective] group 239.1.1.0 255.255.255.0 mldp
[PE1-evpn-instance-vpna-provider-selective] quit
[PE1-evpn-instance-vpna-provider] quit
[PE1-evpn-instance-vpna] quit
# 配置PE 2。
[PE2] evpn instance vpna
[PE2-evpn-instance-vpna] route-distinguisher 1:1
[PE2-evpn-instance-vpna] vpn-target 1:1
[PE2-evpn-instance-vpna] provider-tunnel
[PE2-evpn-instance-vpna-provider] quit
[PE2-evpn-instance-vpna] quit
# 配置PE 3。
[PE3] evpn instance vpna
[PE3-evpn-instance-vpna] route-distinguisher 1:1
[PE3-evpn-instance-vpna] vpn-target 1:1
[PE3-evpn-instance-vpna] provider-tunnel
[PE3-evpn-instance-vpna-provider] quit
[PE3-evpn-instance-vpna] quit
(6) 在各PE上创建VSI实例,配置VSI与EVPN实例关联,并在VSI下配置IGMP snooping功能。
# 配置PE 1。
[PE1] igmp-snooping
[PE1-igmp-snooping] quit
[PE1] vsi vsi1
[PE1-vsi-vsi1] igmp-snooping enable
[PE1-vsi-vsi1] igmp-snooping version 3
[PE1-vsi-vsi1] igmp-snooping proxy enable
[PE1-vsi-vsi1] evpn encapsulation mpls binding instance vpna
[PE1-vsi-vsi1-evpn-mpls-bind] quit
[PE1-vsi-vsi1] quit
# 配置PE 2。
[PE2] igmp-snooping
[PE2-igmp-snooping] quit
[PE2] vsi vsi1
[PE2-vsi-vsi1] igmp-snooping enable
[PE2-vsi-vsi1] igmp-snooping version 3
[PE2-vsi-vsi1] igmp-snooping proxy enable
[PE2-vsi-vsi1] evpn encapsulation mpls binding instance vpna
[PE2-vsi-vsi1-evpn-mpls-bind] quit
[PE2-vsi-vsi1] quit
# 配置PE 3。
[PE3] igmp-snooping
[PE3-igmp-snooping] quit
[PE3] vsi vsi1
[PE3-vsi-vsi1] igmp-snooping enable
[PE3-vsi-vsi1] igmp-snooping version 3
[PE3-vsi-vsi1] igmp-snooping proxy enable
[PE3-vsi-vsi1] evpn encapsulation mpls binding instance vpna
[PE3-vsi-vsi1-evpn-mpls-bind] quit
[PE3-vsi-vsi1] quit
(7) 在各PE上配置接口与VSI实例关联。
# 配置PE 1。
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] xconnect vsi vsi1
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置PE 2。
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] xconnect vsi vsi1
[PE2-Ten-GigabitEthernet3/1/2] quit
# 配置PE 3。
[PE3] interface ten-gigabitethernet 3/1/2
[PE3-Ten-GigabitEthernet3/1/2] xconnect vsi vsi1
[PE3-Ten-GigabitEthernet3/1/2] quit
# 在PE 1上执行display mpls mldp lsp p2mp和display evpn mldp p2mp命令,可以看到PE 1作为根建立了mLDP P2MP隧道,该隧道用来承载VSI实例vsi1的泛洪流量。
<PE1> display mpls mldp lsp p2mp
Ingress: 1 Transit: 0 Egress: 0 Bud: 0
FECs: 1 Liberal: 0
Root IP : 1.1.1.1 Instance : --
Opaque decoded : LSP-ID 1025
Opaque value : 01000400000401
Tunnel ID : 1
LSR type : Ingress
Trigger type : EVPN
Downstream info:
Peer: 4.4.4.4:0
Out label: 1279 State: Established
Next hops: 14.1.1.2 XGE3/1/1
<PE1> display evpn mldp p2mp
Total Num of Tunnels : 1
1 up, 0 down
VSI name: vsi1
EVPN instance: vpna
Source address : 0.0.0.0
Group address : 0.0.0.0
Mac address : 0000-0000-0000
Tunnel ID : 1
VN ID : 0x80000001
Tunnel state : Up
Root IP : 1.1.1.1
Opaque value : 0x01000400000401
# 在PE 2、PE 3和RR上执行display mpls mldp lsp p2mp命令,可以看到PE 2、PE 3和RR上也建立了以PE 1为根的mLDP P2MP隧道。
<PE2> display mpls mldp lsp p2mp
Ingress: 0 Transit: 0 Egress: 1 Bud: 0
FECs: 1 Liberal: 0
Root IP : 1.1.1.1 Instance : --
Opaque decoded : LSP-ID 1025
Opaque value : 01000400000401
Tunnel ID : 1
LSR type : Egress
Trigger type : EVPN
In label : 1407
Upstream info:
Peer: 4.4.4.4:0 State: Established
<PE3> display mpls mldp lsp p2mp
Ingress: 0 Transit: 0 Egress: 1 Bud: 0
FECs: 1 Liberal: 0
Root IP : 1.1.1.1 Instance : --
Opaque decoded : LSP-ID 1025
Opaque value : 01000400000401
Tunnel ID : 1
LSR type : Egress
Trigger type : EVPN
In label : 1407
Upstream info:
Peer: 4.4.4.4:0 State: Established
<RR> display mpls mldp lsp p2mp
Ingress: 0 Transit: 1 Egress: 0 Bud: 0
FECs: 1 Liberal: 0
Root IP : 1.1.1.1 Instance : --
Opaque decoded : LSP-ID 1025
Opaque value : 01000400000401
Tunnel ID : 1
LSR type : Transit
Trigger type : --
In label : 1279
Upstream info:
Peer: 1.1.1.1:0 State: Established
Downstream info:
Peer: 2.2.2.2:0
Out label: 1407 State: Established
Next hops: 15.1.1.1 XGE3/1/2
Peer: 3.3.3.3:0
Out label: 1407 State: Established
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!