配置普通EVPN功能
配置普通EVPN功能包括配置EVPN实例、BGP EVPN对等体关系、BGP EVPN路由反射器和接口的ESI值。
应用环境
本节介绍EVPN组网配置,配置EVPN功能之后,将可以实现不同二层网络间的互联。
在各个PE上配置EVPN实例,并与连接至Site的接口进行绑定;
配置EVPN源地址,标识EVPN组网内的PE设备;
配置接口上的ESI(Ethernet Segment Identifier)值,连接同一CE设备的接口上的ESI值相同;
为了通过路由传递各个Site内的MAC地址,则需要在骨干网上各个PE间建立BGP EVPN对等体关系;
为了减少BGP EVPN对等体关系的数量,则可以在组网中配置路由反射器(RR)。
前置任务
在配置普通EVPN之前,需完成以下任务:
对骨干网配置IGP,实现骨干网的IP连通性
对骨干网配置MPLS LDP或TE隧道,建立公网隧道
在CE和PE间配置二层连接
配置EVPN实例
在PE上配置EVPN实例,用以管理EVPN路由。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令evpn vpn-instance vpn-instance-name,创建EVPN实例,并进入EVPN实例视图。
- (可选)执行命令description description-information,配置EVPN实例的描述信息。
描述信息的作用类似于主机名和接口描述信息,可以方便用户记忆EVPN实例的创建信息。
- 执行命令route-distinguisher route-distinguisher,配置EVPN实例的RD(Route Distinguisher)。
EVPN实例只有配置了RD后才生效。同一PE上的不同EVPN实例下的RD不能相同。
RD配置后不能被修改,但是可以被删除。如果删除了RD,则该EVPN实例下的配置的VPN-target扩展团体属性也会被删除。
- 执行命令vpn-target vpn-target &<1-8> [ both | export-extcommunity | import-extcommunity ],为EVPN实例配置VPN-target扩展团体属性。
VPN Target是BGP的扩展团体属性,用来控制EVPN路由信息的接收和发布。一条vpn-target命令最多可以配置8个VPN Target。如果希望在EVPN实例地址族下配置更多的VPN Target,可以多次使用vpn-target命令进行配置。
以太网段路由使用的RT是由ESI的中间6字节生成的,例如ESI是0011.1001.1001.1001.1002,那么以太网段路由使用的RT为11.1001.1001.10。
- (可选)执行命令filter-policy { acl-number | acl-name acl-name } export,配置EVPN实例对发布的MAC通告路由进行过滤。
如果需要精确地控制EVPN路由,则需要配置出方向路由策略。出方向路由策略可以对发布给其他PE的路由进行过滤。
- (可选)执行命令filter-policy { acl-number | acl-name acl-name } import,配置EVPN实例对接收的MAC通告路由进行过滤。
如果需要精确地控制EVPN路由,则需要配置入方向路由策略。入方向路由策略可以对从其他PE接收的路由进行过滤。
- (可选)执行命令mac limit number [ simply-alert | mac-unchanged ],配置EVPN实例中MAC地址数量的最大值。
设备引入太多MAC地址会占用较多的系统资源,在系统业务繁忙时,有可能影响设备的正常运行。为提高系统的安全性和可靠性,可以配置mac limit命令对EVPN实例中MAC地址数量进行限制。配置此命令后,当MAC地址数超过预先设定的值时,系统会输出告警信息,从而提醒用户检查系统中存在的MAC地址的有效性。
配置EVPN实例中MAC地址数量的最大值后,可以选择通过mac threshold-alarm upper-limit upper-limit-value lower-limit lower-limit-value命令配置EVPN实例中MAC地址阈值告警的阈值。可提前通过告警的产生和清除感知系统中MAC地址的超限情况。
- (可选)执行命令tnl-policy policy-name,配置当前EVPN实例与指定的隧道策略进行关联。
配置当前EVPN实例与指定的隧道策略进行关联可以使PE间传输数据报文使用TE隧道。
- (可选)执行命令isolate spoken,使能当前EVPN实例的转发隔离功能。
当使用相同业务的用户绑定在同一个EVPN中时,配置当前EVPN实例的转发隔离功能可以禁止用户之间的互访。
- 执行命令commit,提交配置。
配置ESI
在PE连接CE的接口上需要配置ESI,并且不同PE连接同一CE的接口的ESI相同。
背景信息
在PE连接CE的接口上配置ESI后,PE间可以通过路由传播而获取其他PE的ESI值,从而感知到哪些PE和自身连接的是同一个CE。这些信息可以用于形成负载分担或FRR等功能。
配置ESI的接口已经通过evpn binding vpn-instance命令绑定了EVPN实例;
配置ESI的接口必须处于Up状态,否则无法生成以太网段路由。在CE双归场景中,CE需要配置Eth-Trunk类型接口接入PE,而PE同样需要配置Eth-Trunk类型接口连接CE。为了实现快速收敛,可以在两个PE设备上配置E-Trunk功能。
静态配置ESI
动态生成ESI
推荐用户使用静态配置ESI的方式。与动态生成ESI相比,如果在双归双活场景中配置静态ESI,则在DF切换时,EVPN可以更快速的实现流量切换。
单归场景下,EVPN双归场景所需要的快速收敛、水平分割、df选举等特性均已无效。所以单归PE上配置ESI为可选操作。
动态生成的ESI的格式为xxxx.xxxx.xxxx.xxxx.xxxx,其中x为十六进制数,以01开头、然后依次由LACP的系统MAC和LACP的端口Key值组成,剩余不足的位以0补齐。
配置BGP EVPN对等体关系
通过在PE间配置BGP EVPN对等体关系,使PE设备之间传播EVPN路由。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
- 执行命令peer ipv4-address as-number as-number,将对端PE配置为对等体。
- 执行命令peer ipv4-address connect-interface loopback interface-number,指定BGP建立TCP连接的接口。
PE之间必须使用32位掩码的Loopback接口地址来建立MP-IBGP对等体关系,以便能够迭代到隧道。以Loopback接口地址为目的地址的路由通过MPLS骨干网上的IGP发布给对端PE。
- 执行命令l2vpn-family evpn,进入BGP-EVPN地址族视图。
- 执行命令peer { ipv4-address | group-name } enable,使能对等体或组间交换EVPN路由信息的能力。
- (可选)执行命令peer ipv4-address group group-name,向对等体组中加入BGP EVPN对等体。
配置BGP EVPN对等体加入到对等体组后,可以简化BGP网络的配置和管理。
- (可选)执行命令timer
df-delay delay-value,指定DF选举延迟定时器的时间间隔。
如果网络结构不稳定,PE上与CE相连的接口状态经常会发生变化,这将会导致DF的频繁重新选举,大大影响网络的性能。这种情况下建议通过配置timer df-delay命令增大DF选举延迟定时器的时间间隔,避免DF频繁选举,保证网络的稳定性。
在EVPN双归组网场景下,且基于接口进行DF选举时,用户需要配置此命令将选举延迟时间间隔设置为0,避免回切时出现长时间双备的情况,使流量中断。
- (可选)执行命令peer { group-name | ipv4-address } mac-limit number [ percentage ] [ alert-only | idle-forever | idle-timeout times ],配置对从对等体收到的MAC通告路由数量进行限制。
当EVPN实例可能从某些对等体引入很多无用的MAC通告路由导致从这些对等体收到的MAC通告路由数占该设备上总的MAC通告路由数的比例较大时,建议配置此命令。配置此命令后,当从某一对等体收到的MAC通告路由数超过预先设定的值时,系统会输出告警信息,从而提醒用户检查EVPN实例收到的MAC通告路由的有效性。
- (可选)执行如下步骤,配置向BGP EVPN对等体发布Large-community属性。
Large-community可以完整的表示2字节或者4字节的AS编号,而且有两个4字节的LocalData属性标识,管理员可以更加灵活地应用策略。在配置向BGP EVPN对等体发布Large-community属性之前,需要先配置Large-community属性相关路由策略,通过路由策略设置适当的Large-community属性值。
- 执行命令commit,提交配置。
(可选)配置全局冗余模式
(可选)配置BGP EVPN路由反射器
通过配置BGP EVPN路由反射器,可以减少BGP EVPN对等体关系连接的数量,节约网络资源。
背景信息
在一个AS内,其中一台路由器作为路由反射器RR,其它路由器可以作为客户机。客户机与路由反射器之间建立BGP EVPN对等体关系。路由反射器和它的客户机组成一个集群(Cluster)。路由反射器在客户机之间传递(反射)路由信息,而客户机之间不需要建立IBGP连接。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
- 执行命令l2vpn-family evpn,进入BGP-EVPN地址族视图。
- 执行命令peer { ipv4-address | group-name } reflect-client,配置路由反射器及其客户。
配置peer reflect-client命令的路由器作为路由反射器,并同时将指定的对等体(组)作为其客户机。
- (可选)执行命令undo reflect between-clients,禁止客户机之间通过RR的路由反射。
如果路由反射器的客户机已经是全连接的,可以使用undo reflect between-clients命令禁止客户机间通过RR的反射,以便减少开销。undo reflect between-clients命令只能在路由反射器上配置。
- (可选)执行命令reflector cluster-id cluster-id,配置路由反射器的集群ID。
当一个集群里有多个路由反射器时,需要使用此命令给所有位于同一个集群内的路由反射器配置相同的cluster-id。
reflector cluster-id命令只能在路由反射器上配置。
- 执行命令commit,提交配置。
(可选)配置基于ESI粒度设置冗余模式和DF优先级
在多个CE同时双归接入PE的场景中,如果用户希望向不同CE发送单播流量时采用不同的传输方式(负载分担或非负载分担)或者希望通过配置优先级指定转发流量的DF时,则可以配置基于ESI粒度设置冗余模式和DF优先级功能。
背景信息
如图12-2所示,CE1和CE2同时双归接入到PE1和PE2,PE1和PE2连接CE1的接口对应的ESI值为ESI1,连接CE2的接口对应的ESI值为ESI2。如果用户希望CE3发往CE1的单播流量采用负载分担方式进行传输,而CE3发往CE2的单播流量采用非负载分担方式进行传输时,则可以配置基于ESI粒度设置冗余模式功能。即CE1接入PE的冗余模式设置为多活跃模式,CE2接入PE的冗余模式设置为单活跃模式。
如果用户希望CE3发往CE2的BUM流量使用PE1进行转发,则可以在PE1和PE2上配置基于ESI粒度的DF优先级选举功能,指定PE1为主DF设备。
用户在配置ESI时可以选择两种方式中的一种进行配置,即动态生成ESI或静态配置ESI。因此用户在配置基于ESI粒度设置冗余模式功能时,也需要根据ESI的配置方式而进行配置。
(可选)配置DF联动BFD功能
在CE双归且接入链路故障的场景后,通过配置DF联动BFD功能,可以大大提升DF切换的速度。
背景信息
在CE双归场景下,为了提升接入链路故障时DF的切换速度,用户可以现在两个PE设备间创建BFD会话绑定信息,并指定BFD会话监视接口为接入侧的Eth-Trunk接口或PW-VE接口,然后配置接口联动BFD会话。完成配置后,当主DF所在PE的接入侧链路发生故障时,BFD可以快速感知故障并通过BFD会话传递到另一个PE设备,使其快速升为主DF。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令bfd,全局使能BFD功能,并进入BFD全局视图。
- 执行命令quit,退回上一级视图。
- 执行命令bfd bfd-session-name bind peer-ip pe-ip-address track-interface interface interface-type interface-number,创建BFD会话绑定信息,并进入BFD会话视图。其中pe-ip-address为另一端PE的IP地址,interface-type interface-number为接入侧的Eth-Trunk接口或PW-VE接口的接口类型和接口编号。
- 配置标识符:
执行命令discriminator local discr-value,配置本地标识符。
执行命令discriminator remote discr-value,配置远端标识符。
BFD会话两端的本地标识符和远端标识符要分别对应。
- 执行命令quit,退回上一级视图。
- 执行命令interface { eth-trunk trunk-id | PW-VE interface-number },进入Eth-Trunk接口视图或PW-VE接口。
- 执行命令es track bfd bfd-session-name,配置接口联动BFD会话。
- 执行命令commit,提交配置。
(可选)采用主控板选路
在报文入EVPN/BD EVPN公网进行BUM(Broadcast&Unknown-unicast&Multicast)转发时采用主控板选路可以提升链路的切换性能。
背景信息
目前EVPN、VPLS、L2MC、L3MC等业务使用GRE TRUNK内部保留口来实现BUM转发流程的公私网解耦,环回单板拔出时,BUM流量会短时间断流。同时,任意单板插入或拔出时,可能会导致非此单板上的叶子也会出现瞬时的丢包或多包。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令evpn reserve-interface enhancement,在报文入EVPN/BD EVPN公网进行BUM(Broadcast&Unknown-unicast&Multicast)转发时采用主控板选路。
在报文入EVPN/BD EVPN公网进行BUM(Broadcast&Unknown-unicast&Multicast)转发时控制选路策略是基于接口板TRUNK选路还是主控板选路,默认行为是基于接口板TRUNK选路,使能evpn reserve-interface enhancement命令后改为主控板选路,在不同单板上下发主,备叶子做保护,拔板后通过保留口pst down快速切换到备叶子,提升了链路的切换性能。
- 执行命令commit,提交配置。
检查配置结果
配置EVPN功能后,可以查看到EVPN网络中各个功能的运行状态与信息。
操作步骤
- 使用display default-parameter evpn命令查看EVPN初始化时的各项缺省配置信息。
- 使用display evpn vpn-instance [ name vpn-instance-name ]命令查看EVPN实例信息。
- 使用display evpn vpn-instance name vpn-instance-name df result [ esi esi ]命令查看EVPN实例的DF选举结果。
- 使用display evpn vpn-instance name vpn-instance-name df-timer state命令查看EVPN实例DF定时器状态。
- 使用display bgp evpn { all | vpn-instance vpn-instance-name } esi [ esi ]命令查看EVPN实例的ESI信息。
- 使用display bgp evpn { all | route-distinguisher route-distinguisher | vpn-instance vpn-instance-name } routing-table [ { ad-route | es-route | inclusive-route | mac-route | prefix-route } prefix ]命令查看BGP EVPN的路由信息。
- 使用display bgp evpn all routing-table statistics命令查看BGP EVPN的路由统计信息。
- 使用display evpn mac routing-table命令查看EVPN实例的MAC路由信息。
- 使用display evpn mac routing-table limit命令查看EVPN实例中MAC地址的限制信息。
- 使用display evpn mac routing-table statistics命令用来查看EVPN实例的MAC路由的统计信息。
- 使用display arp broadcast-suppress user bridge-domain bd-id命令用来查看指定BD域的ARP广播抑制表。
- 使用display arp packet statistics bridge-domain bd-id命令用来查看指定BD域的ARP报文的统计信息。