03-EVPN VPLS配置
本章节下载: 03-EVPN VPLS配置 (451.63 KB)
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,公网隧道可以是PW、GRE隧道或MPLS TE隧道。
· VSI(Virtual Switch Instance,虚拟交换实例):VSI是PE设备上为一个VPLS实例提供二层交换服务的虚拟实例。VSI可以看是PE设备上的一台虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VPLS通过VSI实现在VPLS实例内转发二层数据报文。
PE通过IMET路由自动发现邻居、建立PW。PE接收IMET路由时,将路由中的Route Target属性与本地VSI实例下的EVPN实例视图下配置的Import Target进行比较,如果一致则根据路由中携带的PE地址、PW标签等信息建立一条单向的虚拟连接。当两端的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上收到的泛洪报文禁止向其他LSP转发,只能转发到AC。
为了避免广播发送的ARP请求报文占用核心网络带宽,PE会根据接收到的ARP请求和ARP应答报文、BGP EVPN路由在本地建立ARP泛洪抑制表项。当PE再收到本地站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的表项,则通过PW将ARP请求泛洪到其他站点。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
图1-2 ARP泛洪抑制示意图
如图1-2所示,ARP泛洪抑制的处理过程如下:
(1) 虚拟机CE 1发送ARP请求,获取CE 2的MAC地址。
(2) PE 1根据接收到的ARP请求,建立CE 1的ARP泛洪抑制表项,向VSI内的本地CE和远端PE(PE 2和PE 3)泛洪该ARP请求(图1-2以单播路由泛洪方式为例)。PE 1还会通过BGP EVPN将该表项同步给PE 2和PE 3。
(3) 远端PE解封装报文,获取原始的ARP请求报文后,向VSI内的本地CE泛洪该ARP请求。
(4) CE 2接收到ARP请求后,回复ARP应答报文。
(5) PE 2接收到ARP应答后,建立CE 2的ARP泛洪抑制表项,通过PW将ARP应答发送给PE 1。PE 2通过BGP EVPN将该表项同步给PE 1和PE 3。
(6) PE 1解封装报文并获取原始的ARP应答,将ARP应答报文发送给CE 1。
(7) 在PE 1上建立ARP泛洪抑制表项后,CE 4发送ARP请求,获取CE 1的MAC地址。
(8) PE 1接收到ARP请求后,建立CE 4的ARP泛洪抑制表项,并查找本地ARP泛洪抑制表项,根据已有的表项回复ARP应答报文,不会对ARP请求进行泛洪。
(9) CE 3发送ARP请求,获取CE 1的MAC地址。
(10) 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-3所示,在两端的PE节点上均开启L2VPN流标签功能后,入口PE对数据报文进行封装时,会在内层标签前加入一个流标签(Flow label)字段,不同类型的数据流可以添加不同的流标签。P节点根据流标签进行负载分担。出口PE剥离内层标签和流标签后,将报文转发到本地站点。
图1-3 L2VPN流标签示意图
PE节点上的L2VPN流标签能力分为:
· 流标签接收能力:PE从PW上接收到报文后,能够识别报文中的流标签,并在解封装时删除流标签字段。
· 流标签发送能力:PE在通过PW发送报文时,会为报文添加流标签字段。
EVPN VPLS组网中两端PE的L2VPN流标签能力需要手工指定,由用户保证两端PE的L2VPN流标签能力匹配,即一端具有接收能力、另一端具有发送能力。否则,可能会导致流量处理失败。
EVPN VPLS组网中两端PE不允许仅单边配置L2VPN流标签功能,否则可能导致流量不通。
EVPN VPLS配置任务如下:
(1) 配置VSI
a. 创建VSI
b. (可选)配置VSI参数
(2) 配置EVPN实例
(3) 配置AC与VSI关联
(4) 配置BGP发布EVPN路由
b. (可选)控制BGP EVPN路由的优选和发布
c. (可选)维护BGP会话
(5) (可选)配置PW模板
(6) (可选)管理远端MAC地址和远端ARP信息学习
(7) (可选)优化和维护EVPN VPLS网络
(8) (可选)开启L2VPN告警功能
(9) (可选)检测EVPN PW的连通性
PE上配置EVPN VPLS功能时,用户侧、公网侧端口必须位于以下接口板:
· FC系列接口板
· FD系列接口板
· FE系列接口板
· SG系列接口板
· SH系列接口板
仅当PE的用户侧、公网侧端口位于FE/SH系列接口板时,PE上配置的EVPN VPLS功能支持L2VPN流标签功能(flow-label)。关于flow-label命令的介绍,请参见“MPLS命令参考”中的“VPLS”。
EVPN VPLS功能与EVPN数据中心互联支持双ED功能互斥,请不要在EVPN VPLS组网中配置evpn edge group命令。EVPN数据中心互联支持双ED功能的详细介绍请参见“EVPN配置指导”中的“EVPN数据中心互联”。
EVPN VPLS功能不支持和MAC地址认证功能配合使用。关于MAC地址认证的介绍,请参见“安全配置指导”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启L2VPN功能 |
l2vpn enable |
缺省情况下,L2VPN功能处于关闭状态 |
创建VSI,并进入VSI视图 |
vsi vsi-name |
- |
开启VSI |
undo shutdown |
缺省情况下,VSI处于开启状态 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
配置VSI的描述信息 |
description text |
缺省情况下,未配置VSI的描述信息 |
配置VSI的MTU值 |
mtu mtu |
缺省情况下,VSI的MTU值为1500字节 |
开启VSI的MAC地址学习功能 |
mac-learning enable |
缺省情况下,VSI的MAC地址学习功能处于开启状态 |
PE在发布EVPN路由时,携带VSI实例下的EVPN实例视图下配置的RD和RT。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
创建EVPN实例,并进入EVPN实例视图 |
evpn encapsulation mpls |
- |
配置EVPN实例的RD |
route-distinguisher route-distinguisher |
缺省情况下,未指定EVPN实例的RD |
配置EVPN实例的Route Target属性 |
vpn-target { vpn-target&<1-8> } [ both | export-extcommunity | import-extcommunity ] |
缺省情况下,未指定EVPN实例的Route Target属性 建议为EVPN实例配置的Import target不要与VPN实例、公网实例的Export target匹配,反之亦然 |
将以太网服务实例与VSI关联后,从该接口接收到的、符合以太网服务实例报文匹配规则的报文,将通过查找关联VSI的MAC地址表进行转发。以太网服务实例提供了多种报文匹配规则(包括接口接收到的所有报文、所有携带VLAN Tag的报文和所有不携带VLAN Tag的报文等),为报文关联VSI提供了更加灵活的方式。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
不能通过重复执行encapsulation命令修改报文匹配规则。如需修改报文匹配规则,请先通过undo encapsulation命令删除报文匹配规则,再执行encapsulation命令。
删除以太网服务实例下的报文匹配规则后,会自动取消以太网服务实例与VSI的关联。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
· 进入二层以太网接口视图 · 进入二层聚合接口视图 |
- |
创建以太网服务实例,并进入以太网服务实例视图 |
service-instance instance-id |
- |
配置以太网服务实例的报文匹配规则 |
· encapsulation s-vid vlan-id-list [ only-tagged ] · encapsulation s-vid vlan-id c-vid { vlan-id-list | all } · encapsulation s-vid vlan-id-list c-vid vlan-id-list · encapsulation c-vid vlan-id-list · encapsulation { default | tagged | untagged } |
同一个接口上最多只能有一个服务实例采用缺省的报文匹配规则 如果接口上只存在一个配置了encapsulation default规则的以太网服务实例,则该接口上的所有报文都匹配该以太网服务实例 缺省情况下,未配置报文匹配规则 |
将以太网服务实例与VSI关联 |
xconnect vsi vsi-name [ access-mode { ethernet | vlan } ] [ track track-entry-number&<1-3> ] |
缺省情况下,以太网服务实例未关联VSI |
BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置全局Router ID |
router id router-id |
缺省情况下,未配置全局Router ID |
启动BGP实例,并进入BGP实例视图 |
bgp as-number [ instance instance-name ] |
缺省情况下,系统没有运行BGP |
将远端PE配置为对等体 |
peer { group-name | ipv4-address [ mask-length ] } as-number as-number |
- |
创建BGP EVPN地址族,并进入BGP EVPN地址族视图 |
address-family l2vpn evpn |
- |
使能本地路由器与指定对等体/对等体组交换BGP EVPN路由的能力 |
peer { group-name | ipv4-address [ mask-length ] } enable |
缺省情况下,本地路由器不能与对等体/对等体组交换BGP EVPN路由 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入BGP实例视图 |
bgp as-number [ instance instance-name ] |
- |
进入BGP EVPN地址族视图 |
address-family l2vpn evpn |
- |
配置对于从对等体/对等体组接收的BGP消息,允许本地AS号在该消息的AS_PATH属性中出现,并配置允许出现的次数 |
peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ] |
缺省情况下,不允许本地AS号在接收消息的AS_PATH属性中出现 |
开启BGP EVPN路由的VPN-Target过滤功能 |
policy vpn-target |
缺省情况下,BGP EVPN路由的VPN-Target过滤功能处于开启状态 |
(可选)配置BGP路由延迟优选 |
route-select delay delay-value |
缺省情况下,延迟时间为0秒,即路由优选不延迟 |
配置根据EBGP路由的第一个AS号来过滤发布对象 |
peer-as-check enable |
缺省情况下,设备接收到EBGP路由后,会将其发布给除发送该路由的对等体之外的所有BGP对等体,不会根据EBGP路由的第一个AS号来过滤发布对象。 配置本命令后,BGP向EBGP对等体发布EBGP路由时,会检查AS_Path属性中的第一个AS号,不会向EBGP对等体发布第一个AS号与该EBGP对等体所在的AS相同的路由 |
配置本机作为路由反射器,对等体/对等体组作为路由反射器的客户机 |
peer { group-name | ipv4-address [ mask-length ] } reflect-client |
缺省情况下,没有配置路由反射器及其客户机 |
(可选)允许路由反射器在客户机之间反射EVPN路由 |
reflect between-clients |
缺省情况下,允许路由反射器在客户机之间反射EVPN路由 |
(可选)配置路由反射器的集群ID |
reflector cluster-id { cluster-id | ipv4-address } |
缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID |
(可选)配置路由反射器对反射的EVPN路由进行过滤 |
rr-filter ext-comm-list-number |
缺省情况下,路由反射器不会对反射的EVPN路由进行过滤 |
(可选)允许路由反射器反射路由时修改路由属性 |
reflect change-path-attribute |
缺省情况下,不允许路由反射器反射路由时修改路由属性 |
在本机上开启Route Server功能,配置对等体/对等体组作为Route Server的客户机 |
peer { group-name | ipv4-address [ mask-length ] } route-server-client [ external ] |
缺省情况下,未配置Route Server功能及其客户机。 在本机上配置Route Server功能后,对等设备上需要配置peer ignore-first-as命令,不检查从指定EBGP对等体发来的更新消息中AS_Path属性的第一个AS号,否则邻居关系无法正常建立 |
配置向EBGP对等体/对等体组发布路由时不改变下一跳 |
peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable |
缺省情况下,向EBGP对等体/对等体组发布路由时会将下一跳改为自己的地址 |
对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略 |
peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import } |
缺省情况下,没有为对等体/对等体组指定路由策略 |
设置基于二层ACL的路由过滤策略 |
· peer { group-name | ipv4-address [ mask-length ] } filter-policy { mac-acl-number | name mac-acl-name } { export | import } · filter-policy { mac-acl-number | name mac-acl-name } export · filter-policy { mac-acl-number | name mac-acl-name } import |
缺省情况下,未设置基于二层ACL的路由过滤策略。 在二层ACL中,rule [ rule-id ] { deny | permit } dest-mac dest-address dest-mask命令配置的规则用来过滤携带指定MAC地址的MAC/IP发布路由,不能过滤其他类型的BGP EVPN路由。除了上述规则之外,二层ACL中的其他规则对EVPN路由的过滤不生效 |
配置向对等体/对等体组发布团体属性 |
peer { group-name | ipv4-address [ mask-length ] } advertise-community |
缺省情况下,不向对等体/对等体组发布团体属性 |
为指定对等体/对等体组配置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 |
请在用户视图下执行如下命令,复位或软复位BGP会话。
· 复位EVPN地址族下的BGP会话。
reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } l2vpn evpn
· 手工对EVPN地址族下的BGP会话进行软复位。
refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } l2vpn evpn
在PW模板中可以指定PW的属性,如PW的数据封装类型、是否使用控制字等。具有相同属性的PW可以通过引用相同的PW模板,实现对PW属性的配置,从而简化配置。关于PW模板的配置,请参见“MPLS配置指导”中的“VPLS”。
执行本配置指定引用PW模板后,该PW模板将应用于当前EVPN实例下建立的所有PW。
建议在同一PW的两端PE上配置相同的数据封装类型。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入EVPN实例视图 |
evpn encapsulation mpls |
- |
指定引用的PW模板 |
pw-class class-name |
缺省情况下,未引用PW模板 |
PE可能会同时向远端PE通告MAC地址信息和ARP/ND信息。其中,ARP/ND信息中已经包含MAC地址信息。为了避免重复,可以执行本配置来禁止本端PE向远端PE通告MAC地址信息。执行本配置后,本端PE还会撤销已经发布的MAC地址信息。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入EVPN实例视图 |
evpn encapsulation mpls |
- |
配置禁止通告MAC地址信息,并撤销已经通告的MAC地址信息 |
mac-advertising disable |
缺省情况下,允许通告MAC地址信息 |
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地址后再对外通告。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启MAC地址反复迁移抑制功能 |
evpn route mac-mobility suppression[ detect-cycle detect-time | detect-threshold move-times | suppression-time [ suppression-time | permanent ] ] * |
缺省情况下,MAC地址反复迁移抑制功能处于关闭状态 |
PE可能会同时接收到远端PE通告的MAC地址信息和ARP信息。其中,ARP信息中包含MAC地址信息。为了避免重复,可以在PE上执行本配置来禁止EVPN从ARP信息中学习MAC地址表项,EVPN仅通过MAC地址信息学习远端MAC地址表项。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入EVPN实例视图 |
evpn encapsulation mpls |
- |
配置禁止EVPN从ARP信息中学习MAC地址表项 |
arp mac-learning disable |
缺省情况下,EVPN可以从ARP信息中学习MAC地址表项 |
在EVPN VPLS组网中,如果同一个VPLS内的所有用户终端都部署在同一台PE下,则EVPN不需要通告该VPLS内的ARP信息。此时,可以配置本命令禁止EVPN通告ARP信息,以减少占用的设备和网络资源。执行本命令后,设备还会撤销已经发布的ARP信息。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入EVPN实例视图 |
evpn encapsulation mpls |
- |
配置禁止通告ARP信息,并撤销已经通告的ARP信息 |
arp-advertising disable |
缺省情况下,允许通告ARP信息 |
缺省情况下,PE从本地站点内接收到目的MAC地址为广播、未知单播和未知组播的数据帧后,会在该VSI内除接收接口外的所有本地接口和PW上泛洪该数据帧,将该数据帧发送给VSI内的所有站点。如果用户希望把某类数据帧限制在本地站点内,不通过PW将其转发到远端站点,则可以通过本命令手工禁止该类数据帧向远端站点泛洪。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
关闭VSI的泛洪功能 |
flooding disable { all | { broadcast | unknown-multicast | unknown-unicast } * } |
缺省情况下,VSI泛洪功能处于开启状态 |
开启ARP泛洪抑制时,如果同时执行flooding disable命令关闭了VSI的泛洪功能,则建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
开启ARP泛洪抑制功能 |
arp suppression enable |
缺省情况下,ARP泛洪抑制功能处于关闭状态 |
配置以太网服务实例的报文统计功能时,需要注意:
· 开启报文统计功能后,可以使用display l2vpn service-instance verbose命令查看以太网服务实例的报文统计信息,使用reset l2vpn statistics ac命令清除以太网服务实例的报文统计信息。
· 只有为以太网服务实例配置了报文匹配方式并绑定了VSI实例,报文统计功能才会生效。如果在报文统计过程中修改报文匹配方式或绑定的VSI实例,则重新进行报文统计计数。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
· 进入二层以太网接口视图 · 进入二层聚合接口视图 |
- |
进入以太网服务实例视图 |
service-instance instance-id |
- |
开启以太网服务实例的报文统计功能 |
statistics enable |
缺省情况下,以太网服务实例的报文统计功能处于关闭状态 |
开启EVPN实例下所有PW的报文统计功能后,可以使用display evpn mpls statistcs inbound查看所有PW的入方向报文统计信息总和,使用display l2vpn pw命令查看每条PW的出方向报文统计信息,使用reset l2vpn statistics pw命令清除PW的报文统计信息。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VSI视图 |
vsi vsi-name |
- |
进入EVPN实例视图 |
evpn encapsulation mpls |
- |
开启所有PW的报文统计功能 |
statistics enable |
缺省情况下,EVPN实例下所有PW的报文统计功能处于关闭状态 |
开启L2VPN告警功能后,当PW的up-down状态发生变化、PW删除或主备PW切换时会产生告警信息。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。
有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启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-ip | -c count | -exp exp-value | -h ttl-value | -m wait-time | -r reply-mode | -rtos tos-value | -s packet-size | -t time-out | -v ] * |
可在任意视图下执行本命令 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后EVPN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令来清除EVPN的相关信息。
display bgp group、display bgp peer、display bgp update-group命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP”。
reset l2vpn statistics ac命令的详细介绍请参见“MPLS命令参考”中的“VPLS”。
表1-1 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 { advertised-routes | received-routes } [ statistics ] | [ route-distinguisher route-distinguisher | route-type { auto-discovery | es | imet | ip-prefix | mac-ip } ] * [ { evpn-route route-length | evpn-prefix } [ advertise-info ] | { ipv4-address | ipv6-address | mac-address } [ verbose ] ] | statistics ] |
显示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 ] |
显示EVPN通过BGP自动发现的邻居信息 |
display evpn auto-discovery { { imet | mac-ip } [ mpls | vxlan ] [ peer ip-address] [ vsi vsi-name ] | macip-prefix [ nexthop next-hop ] [ count ] } |
显示PW入方向的报文统计信息 |
display evpn mpls statistics inbound [ vsi vsi-name ] |
显示EVPN的ARP信息 |
display evpn route arp [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ count ] |
显示EVPN的ARP泛洪抑制信息 |
display evpn route arp suppression [ mpls | vxlan ] [ local | remote ] [ vsi vsi-name ] [ count ] |
显示EVPN的MAC地址信息 |
display evpn route mac [ mpls | vxlan ] [ local | remote ] [ vsi vsi-name ] [ count ] |
显示EVPN的MAC地址迁移信息 |
display evpn [ ipv6 ] route mac-mobility [ vsi vsi-name ] [ mac-address mac-address ] |
显示EVPN的ND信息 |
display evpn route nd [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ count ] |
显示EVPN的路由表信息 |
display evpn routing-table { public-instance | vpn-instance vpn-instance-name } [ count ] |
取消对MAC地址迁移的抑制 |
reset evpn route mac-mobility suppression [ vsi vsi-name [ mac mac-address ] ] |
清除AC的报文统计信息 |
reset l2vpn statistics ac [ interface interface-type interface-number [ service-instance instance-id ] ] |
用户网络有两个站点,分别为CE 1和CE 2。CE 1的VLAN 10和CE 2的VLAN10希望通过骨干网运行EVPN VPLS功能实现二层互通。
在PE 1和PE 2分别创建以太网服务实例1000,匹配接口Ten-GigabitEthernet1/0/1接收到的VLAN Tag为10的报文。
图1-4 EVPN VPLS单归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Vlan-int10 |
10.1.1.10/24 |
P |
Loop0 |
3.3.3.3/32 |
PE 1 |
Loop0 |
1.1.1.1/32 |
|
Vlan-int23 |
11.1.1.2/24 |
|
Vlan-int23 |
11.1.1.1/24 |
|
Vlan-int26 |
11.1.2.2/24 |
CE 2 |
Vlan-int10 |
10.1.1.20/24 |
PE 2 |
Loop0 |
2.2.2.2/32 |
|
|
|
|
Vlan-int26 |
11.1.2.1/24 |
进行下面的配置之前,请先在各台设备上创建VLAN,并将相应接口加入VLAN。
(1) 配置CE 1
<CE1> system-view
[CE1] interface vlan-interface 10
[CE1-Vlan-interface10] ip address 10.1.1.10 24
[CE1-Vlan-interface10] 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的接口Vlan-interface23,在此接口上使能LDP。
[PE1] interface vlan-interface 23
[PE1-Vlan-interface23] ip address 11.1.1.1 24
[PE1-Vlan-interface23] mpls enable
[PE1-Vlan-interface23] mpls ldp enable
[PE1-Vlan-interface23] undo shutdown
[PE1-Vlan-interface23] 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] 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-GigabitEthernet1/0/1上创建以太网服务实例1000,并允许VLAN 10通过。
[PE1] interface ten-gigabitethernet 1/0/1
[PE1-Ten-GigabitEthernet1/0/1] port link-type trunk
[PE1-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[PE1-Ten-GigabitEthernet1/0/1] service-instance 1000
[PE1-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 10
# 配置以太网服务实例1000与VSI实例vpna关联。
[PE1-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna
[PE1-Ten-GigabitEthernet1/0/1-srv1000] quit
[PE1-Ten-GigabitEthernet1/0/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的接口Vlan-interface23,在此接口上使能LDP。
[P] interface vlan-interface 23
[P-Vlan-interface23] ip address 11.1.1.2 24
[P-Vlan-interface23] mpls enable
[P-Vlan-interface23] mpls ldp enable
[P-Vlan-interface23] undo shutdown
[P-Vlan-interface23] quit
# 配置连接PE 2的接口Vlan-interface26,在此接口上使能LDP。
[P] interface vlan-interface 26
[P-Vlan-interface26] ip address 11.1.2.2 24
[P-Vlan-interface26] mpls enable
[P-Vlan-interface26] mpls ldp enable
[P-Vlan-interface26] undo shutdown
[P-Vlan-interface26] 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的接口Vlan-interface26,在此接口上使能LDP。
[PE2] interface vlan-interface 26
[PE2-Vlan-interface26] ip address 11.1.2.1 24
[PE2-Vlan-interface26] mpls enable
[PE2-Vlan-interface26] mpls ldp enable
[PE2-Vlan-interface26] undo shutdown
[PE2-Vlan-interface26] quit
# 在PE 2上运行OSPF,用于建立LSP和BGP邻居。
[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] 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-GigabitEthernet1/0/1上创以太网建服务实例1000,并允许VLAN 10通过。
[PE2] interface ten-gigabitethernet 1/0/1
[PE2-Ten-GigabitEthernet1/0/1] port link-type trunk
[PE2-Ten-GigabitEthernet1/0/1] port trunk permit vlan 10
[PE2-Ten-GigabitEthernet1/0/1] service-instance 1000
[PE2-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 10
# 配置以太网服务实例1000与VSI实例vpna关联。
[PE2-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna
[PE2-Ten-GigabitEthernet1/0/1-srv1000] quit
[PE2-Ten-GigabitEthernet1/0/1] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface vlan-interface 10
[CE2-Vlan-interface10] ip address 10.1.1.20 24
[CE2-Vlan-interface10] 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通。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!