HCIE-路由交换专题-EVPN原理与配置

发布时间 2023-10-24 16:45:43作者: Qurare

HCIE-路由交换专题-EVPN原理与配置

华为官方文档: EVPN基本原理

1 EVPN简介

传统网络中有很多种协议, 比如在L2VPN技术里面有VPLS(虚拟专用局域网技术和VPWS(虚拟专用线路技术), L3VPN里面有MPLS VPN技术等, 这些VPN技术彼此独立运行与控制, 操作成本比较高, 于是乎需要一种能统一二层三层多种VPN控制平面的技术来实现整合, 这种技术就是EVPN(Ethernet VPN, 以太网VPN)

EVPN作为一种网络新技术, 其不仅功能众多, 在技术可靠性上也优于传统VPN技术, 通过BGP技术的高扩展性来传递L2和L3的可达信息.

1.1 EVPN发展背景

1.1.1 什么是L2&3 VPN

image-20231022094525952

上图是一张典型的L3 MPLS VPN组网拓扑, 不同站点的相同业务处于不同的广播域(100.0.123.0/24和100.0.213.0/24), 去过Site1和Site2的Video业务处于相同网段, 则会因为ARP报文无法通过公网传播的原因无法通信.

而L2 VPN让处于不同物理位置的用户通过接入不同的PE设备, 实现用户之间的互相通信, 从用户角度来开, 整个L2 VPN的网络就是一个二层交换网, 用户之间就像直接通过LAN互联在一起一样.

L2 VPN的使用场景为: 银行等网络对网络的私密性要求比较高, 并不希望将自己的私网路由通告给运营商, 这个时候就可以部署L2 VPN

1.1.2 VPLS简介

可以了解一下

VPLS实现原理:

  1. 在每台设备上创建一张虚拟mac地址表(VSI, 虚拟交换实例, 类似L3 VPN中的VRF)

  2. 在公网采用标签传递L2报文

  3. 创建PW(伪线), 其类似L3 VPN中的私网标签(route-distinguish), 通过标签识别数据应该被放入哪一个VSI中, 其中PW的创建方式有三种:

    • (繁琐)手工静态配置
    • (常用)通过LDP信令创建(Martini): 在两个CE之间创建阔设备的LDP邻居
    • (废弃)通过BGP信令创建(Kompella): 在两个PE之间创建建MP-BGP, 通过MP-BGP分配标签
  4. 绑定PW和AC(Attachment Circuit, 接入电路, 即PE与CE之间连接的链路)到VSI中, PW和AC绑定后, VSI就会向交换机一样记录不同的mac地址并生成mac地址表项

    image-20231022100449897

VPLS转发过程:

image-20231022100817229

  1. CE1发送ARP请求, PE1收到报文后对CE1地址存表, 并根据目的ip地址进行查表转发或向所有PW泛洪, 将所得mac地址都存入VSI中
  2. PE在向PW泛洪时, ARP的广播报文携带两层标签, 内层标签是指定到PE2内PW 1的标签, 外层标签是PE1直连设备去往PE2的标签
  3. PE 2 从PW A中收到ARP广播报文后, 根据内层标签知道数据是给本地的VSI A的, 所以将标签剥离
  4. PE2查找VSI A的mac地址表, 将数据转发给CE2

VPLS水平分割

VPLS规定了数据如果是从PW收到的, 就只能发给AC, 而不能转发给其他PW, 所以要实现全网互联, 必须两两设备建立VPLS, 对网络链路开销巨大, 扩展性差

VPLS面临问题

image-20231022154216179

VPLS面对CE多归场景下需要部署STP协议来防止环路, 导致多归场景的负载分担链路变为主备链路

VPLS最大的问题是故障收敛时间通常非常长, VPLS每次故障收敛会清空mac表项, 导致链路要重新进行mac地址学习, 网络整体故障手来你时间完全取决于mac地址的数量

VPLS在mac学习时需要进行mac地址泛洪, 会造成带宽资源的浪费

1.2 EVPN基本概念

ES和ESI

PE连接到ES的链路成为一条以太网段(ES, Ethenet Segment)(相当于VPLS中的AC), 每个ES需要一个10byte标识符ESI

image-20231022154826415

注: 在同一个ES的CE多归的两个PE上, ESI必须完全相同

ESI配置方式一共有六种(华为设备仅支持前两种):

  1. 管理员手工配置

    int e-trunk 1
    	esi 0000.1111.2222.1111.1111
    

    查看本地ESI信息

    dis bgp evpn all esi
    
  2. 当PE与CE之间配置LACP(动态链路聚合)时, ESI的值为:

    CE LACP System MAC adderss(6 Btye) + CE LACP Port Key(2 Byte) + 0x00(1 Byte)

  3. MSTP自动生成

  4. 系统mac + 本地标识符

  5. Router ID + 本地标识符

  6. AS Number + 本地标识符

注: 在CE多归场景下, 链路聚合通常为跨设备链路聚合, 比如一个聚合口中的两个物理端口会分别连接到两台PE设备上(PE设备之间有使用堆叠线进行连接, 可能是做堆叠或M-LAG)

EVI和MAC-VRF

EVI(EVPN Instance)就是一个EVPN实例, 类似L3VPN中的vpn-instance

MAC-VRF就是PE上输入EVI的mac地址表

RD和RT

路由识别, 概念同L3 VPN, 在evpn instance中配置

1.3 EVPN工作原理

1.3.1 EVPN路由

EVPN在BGP原有的协议基础上做了扩展, 新增了一个地址簇, 即EVPN NLRI, 并定义了8种类型的路由, 这里介绍前5种路由:

  1. type1: 以太自动发现路由(Ethernet A-D Route), 用于水平分割、快速收敛、别名、指导二层流量转发(EVPN VPWS)、通告ESI标签

    image-20231023102245316

    这个路由可以细分为:

    1. Per ES A-D Route: 在双活接入时为ES分配ESI
    2. Per EVI A-D Route: 实现别名功能(其实还是ESI)
  2. type2: MAC/IP通告路由(MAC/IP Route), 用于mac通告、ARP通告、邻居发现通告和IRB通告

    image-20231023101735266

  3. type3: 集成多播以太标记路由(IMET Route), 用于邻居自动发现指导BUM流量转发

    image-20231023101416256

  4. type4: 以太网段路由(ES Route), 用于ES发现、DF(类似主备关系中的主)选举和多活场景

    image-20231023101840147

  5. type5: IP前缀路由(Prefix), 用于通告网段和主机IP

    image-20231023102022575

先别急着记这些路由, 结合下文讲解记忆效果更佳

1.3.2 EVPN基本工作原理概述

启动阶段

image-20231024105221589

让网络具备基本的L2路由转发能力

  1. 指导BUM报文流量如何转发

    EVPN对等体之间交互Type3(IMET Route)路由, 建立BUM流量转发表(为发送到自己的BUM流量分发一个标签)

  2. 交互Type4(ES Route)完成ES发现DF选举

  3. EVPN对等体交互type1(Ethernet A-D Route)路由交互ESI标签, 进而实现水平分割和别名等功能

此时MAC-VRF表项为空

流量转发

image-20231024105149805

CE侧流量触发PE通过Type 2(MAC/IP Route)路由通告mac地址, 该路由携带分配的标签信息, 后续根据该标签执行单播流量转发

总结一下:

image-20231023094733512

BUM流量: Broadcast、Unknown unicast和Multicast流量统称

1.3.3 EVPN表项

EVPN维护三张表用于知道流量转发, 分别是MAC-VRF表BUM流量转发表ES成员列表

三张表各有一个Label, 务必区分清楚!

MAC-VRF表

MAC-VRF表用于记录已知单播流量的转发

MAC ESI Next_Hop Tunnel Label
1-1-1 ESI 1 port 1 null
2-2-2 ESI 2 PE3 303
3-3-3 ESI 2 PE4 304

Tunnel Label: 前往目的地址的转发标签

BUM流量转发表

BUM流量转发表用于指导广播未知单播组播流量转发, 简单来说就是不定向转发

Peer BUM Label
PE2 102
PE3 103
PE4 104

BUM标签: 指导流量转发到其他PE用的标签

ES成员表

ES成员表用于记录用户接入PE信息

序号 ESI 成员 ES Label
0 ESI 1 PE2 202
1 ESI 1 PE1 201

ES标签: 在同一个ESI中标识不同PE成员的标签

1.4 EVPN技术愿景实现原理

1.4.1 简化网络中VPN的配置和维护

每个设备启动EVPN之后就会配置L2 VPN实例, 即EVI, 配置完之后每个设备就会产生一个MAC-VRF

image-20231022164835828

邻居自动发现

BUM流量的转发

当PE从CE收到一份BUM流量但不知如何转发时, 就会想要进行泛洪, 但自己发送的BUM流量如何让对端识别到自己是否需要接收呢?

image-20231022165317482

  1. EVPN在启动之后就会向其他设备泛洪一份Type 3路由, 携带该EVPN实例的RDPE源地址BUM流量转发标签(BUM Label)

  2. 每台设备在本地BUM流量转发表上记录其他PE的地址已经对应的标签值(BUM Label)

  3. 最终在所有设备上都形成一张BUM转发表(见1.3.3), 表中存放前往每一个PE对应的标签(BUM Label)

ESI成员自动发现

image-20231022193502572

  1. CE接口绑定EVPN实例EVI双活接入PE, 在PE上配置CE接入接口与EVI绑定, 从接口进入报文将进入EVI

  2. 让CE接入的ESI信息(包括序号、ESI和其成员信息)通过Type4路由在网络中进行同步, 同步后同一台CE双归接入的不同PE之间能知道他们连接着同一台CE设备, 这一切的前提是CE双归连接不同PE的ESI相同

避免全连接

在VPLS中, PE之间必须采用两两邻接的全连接的组网结构, EVPN借助了BGP的RR反射器, 每个PE只需要和RR反射器建立邻居关系即可

image-20231022193746685

简化协议配置

image-20231022194207701

统一使用BGP作为数据平面, 统一使用EVPN作为控制平面, 至此来达到简化配置和维护的要求

1.4.2 支持双活接入-避免BUM重复接收

image-20231022194511787

在双活场景下, 如果PE1和PE2同时发送相同的流量给CE1, 那CE1会收到重复的两份数据, 造成不必要的带宽浪费, 此时EVPN就会在PE之间选举出一个DF, 从网络侧收到的报文只会由DF来转发给CE设备, 避免重复发送

DF的选举过程

image-20231022205511505

前提: 接口UP

  1. 基于接口选举: 优选接口源地址小的
  2. 基于VLAN选举: 根据V mod N = i来计算, V是VLAN ID, N是连接同一个CE的PE数量, i就是ES成员列表中被选为DF的PE序号

华为设备上可配置DF选举方式。缺省情况下设备基于接口来进行DF选举,可能会导致多归链路上流量集中在一条链路上。配置基于VLAN来进行DF选举,可以让PE到CE的BUM流量基于VLAN均衡地分担到多归链路上

接入侧双活基础-ESI成员列表

image-20231022214154376

PE设备丢弃来自同一个ESI的PE的BUM流量, 检测同一个ESI成员的原理如下:

  1. PE1和PE2首先发送ES-Route(Type4), 其中包括ESI信息、源地址、ESI Label, 各自将对端的EVPN源地址加入本地的ES成员列表里
  2. PE1和PE2相互发送Type1(Per ES A-D Route)路由(携带ESI和一个Label)
  3. PE1和PE2收到对端Type1路由, 如果检测到相同的ESI, 则将ESI Label信息绑定到成员列表中

image-20231022214720933

假设CE1发送一个BUM报文, PE1收到之后就广播发送泛洪处理, 这个报文发送给PE2时会携带上一个PE2分发的BUM Label(假设是102), 同时PE2在PE1的成员列表中, 所以还会携带一个ESI Label(假设是L2)

PE2收到这个报文时, 拆除BUM Label, 发现ESI标签和本地ESI(L2)成员标签列表一致, 且位于同一个ESI中, 执行丢弃处理.

1.4.3 尽量少广播

流量转发过程

对于用户来说, 最理想的状态就是两个CE完全不需要感知中间有P和PE设备的存在, 可以直接将报文发送给对端的CE, 就像CE1和CE2之间使用以太网线路连接一样, 收到ARP请求就能直接生成mac表条目

image-20231023115049183

EVPN传递ARP报文时放弃了VPLS的泛洪操作, 改使用type2(MAC/IP Route)路由通过BGP向其他PE通告, type2除了MAC地址、ESI信息和RD值之外, 还携带了本设备分配的MPLS标签(如下图的301)

image-20231024093644098

  1. CE1访问CE2, 首先广播发送ARP请求, PE1&2接收ARP报文, 生成本地mac条目
  2. PE1的EVPN将本地mac地址条目生成Type2路由, 携带PE设备分配的MPLS标签301, PE2同理
  3. 远端PE设备通过MP-BGP学习到EVPN路由, 生成mac表条目
  4. PE2感知直连CE1, 刷新最优的mac表条目(防止次优路径), 并生成和通告Type2路由
  5. 因PE1和PE2分配不同的MPLS标签, PE3和PE4有两条路径到达CE1

上述PE1和PE2收到CE1的ARP请求后会获得CE1的mac和ip地址, 即一条完整的ARP信息, PE1&2会将这条ARP信息通告给PE3&4

ARP通告路由

CE1发送的ARP请求达到PE1。PE1通过数据面学习到CE1的MAC地址,然后通过Type2路由发送给所有邻居。
控制平面行为完成后,PE1将执行数据平面行为,即转发ARP广播请求。最后因PE3为DF,PE3转发ARP广播报文到CE2

image-20231024111335330

  • PE1到PE3的ARP报文查询BUM流量转发表转发,携带103标签。PE3为DF,转发报文到Port3

    image-20231024115722590

  • PE1到PE4的流量携带标签104。PE4根据标签确认是BUM流量,因PE4为非DF,丢弃报文

    image-20231024115733832

  • 由于PE1和PE2属于相同ES,PE1到PE2的流量同时携带ESI标签202和BUM标签102。PE2接收到报文发现有标签202,则丢弃该报文(水平分割)

    image-20231024115744207

1.4.4 流量负载均衡

假设现在CE1有四条不同业务的流量需要发送给CE2

  1. 流量在CE1上双活链路负载分担, 将流量分别转发给PE1和PE2
  2. 在PE1和PE2上, 事先会有两条目的mac地址都为2-2-2, 并且下一跳都不同的mac路由, 流量会通过不同的路径发送给PE3和PE4
  3. PE3和PE4收到流量后, 分别根据本地mac地址表从对应的接口将流量发送给CE1(相同的流量才会由DF来发送)

image-20231024115453998

别名技术

CE1双归接入PE1和PE2, 正常情况下PE1和PE2都会学习到1-1-1, 但是此时因为某种原因, PE2没学到, 此时只有PE1学到, PE3和PE4的mac地址表的1-1-1也只有一个下一跳, 此时无法实现负载分担

image-20231024143034177

别名技术可以理解为同一个ESI的设备有一个共同的名字, 依靠type1(EVI AD Route)路由来实现, 具体过程如下:

  1. PE1生成MAC/IP Route, 正常向PE3和PE4通告
  2. PE2向PE3和PE4发布type1(EVI AD Route)路由, 携带ESI, 单播转发的标签值
  3. PE3和PE4收到PE2的type1路由发现与PE1的type2路由中ESI值相等, 于是他们认为将路由通告给PE2的话也能到达CE1, 于是更新mac地址表
  4. 此时PE3和PE4收到去访问CE1的流量仍然会负载分担到PE1与PE2上

看到这里你应该也能发现, 即使PE3&4知道把流量转发给PE2, 但PE2还是没有CE1的mac地址, 那么这个流量还是只能被丢弃

那这个负载分担的意义在哪? 别急, 还是有办法解决这"最后一公里"的

MAC重定向

mac重定向是实现别名技术的关键拼图

PE1生成MAC/IP Route之后也会向PE2通告1-1-1, PE2发现这个type2 Route携带的ESI已经存在自己的ES成员表中, 于是PE2将1-1-1的出接口重定向到PE1的接口上, 这样PE3&4转发到PE2的流量也能通过PE1最后到达CE1了, 保证了网络侧的负载均衡

image-20231024150146630

1.4.5 故障快速收敛

PE3检测到CE2链路故障,首先删除自己本地MAC表项,然后通过Type1(Per AD Route)路由通告所有PE撤销下一跳为PE3的ESI2的MAC路由, 此时前往CE2的路由只会通过PE4进行转发

image-20231024115543618

1.5 EVPN接入概述

在EVPN网络边缘的PE设备上可以部署多个EVPN实例(EVI,EVPN Instance),每个EVPN实例可以连接一个或者多个用户网络。EVPN支持通过多种服务模式来接入用户网络

服务模式 场景
Port Based 连接用户网络的物理接口直接绑定普通EVPN实例,只能用于承载二层业务
VLAN Based 连接用户网络的物理接口划分成不同子接口,每个子接口与EVPN实例绑定。每个用户单独使用一个EVPN实例,可用于承载二层业务或三层业务
VLAN Bundle 不同用户间使用VLAN进行划分,不同VLAN与EVPN实例绑定,可用于承载二层业务或三层业务
VLAN-Aware Bundle 不同用户间使用VLAN进行划分,不同VLAN通过与同一EVPN实例绑定,可用于承载二层业务或三层业务

Port Based模式

Port Base模式是一种整个接口接入业务的方式,即连接用户网络的物理接口直接绑定普通EVPN实例,且该接口不创建子接口。此种服务模式只能用于承载二层业务

image-20231024152358594

int g1/0/0
	evpn bingding vpn-instance evpna
	qu

VLAN Based模式

在VLAN Based模式下,连接用户网络的物理接口划分成不同子接口,每个子接口关联不同的VLAN且加入不同的广播域BD(Bridge Domain)。每个广播域BD会与单独的一个EVPN实例进行绑定。此种服务模式可以用于承载二层业务或三层业务。本例有User1和User2,分别使用不同的子接口接入

image-20231024152457140

bridge-domain 10
	evpn bingding vpn-instance evpna
	qu
int g1/0/0.1 mode l2
	encapsulation dot1q vid 10
	bridge-domain 10
	qu

VLAN Bundle模式

在VLAN Bundle模式下,一个EVPN实例可以连接多个用户,不同用户间使用VLAN进行划分,而该EVPN实例会绑定到一个广播域BD上。此类型服务模式中,接入同一个EVPN实例的不同用户共用同一个MAC转发表,因此需要网络中用户的MAC地址唯一。此种服务模式可以用于承载二层业务或三层业务

image-20231024152648252

bridge-domain 10
	evpn bingding vpn-instance evpna
	qu
int g1/0/0.1 mode l2
	encapsulation dot1q vid 10
	qu

VLAN-Aware Bundle模式

在VLAN-Aware Bundle模式下,一个EVPN实例可以连接多个用户,不同用户间使用VLAN进行划分绑定不同的BD。此类型服务模式中,接入同一个EVPN实例的不同用户分别使用独立的与BD对应的MAC转发表(以BD-tag标识)

image-20231024152758497

bridge-domain 10
	evpn bingding vpn-instance evpna bd-tag 10
	qu
int g1/0/0.1 mode l2
	encapsulation dot1q vid 10
	bridge-domain 10
	qu

2 跨域EVPN

一般的EVPN的体系结构都是在一个自治系统(Autonomous System,AS)内运行,任何EVPN的路由信息都是只能在一个AS内按需扩散,没有提供AS内的VPN信息向其他AS扩散的功能。在一些复杂场景下,可能存在企业拥有多个AS,这就需要扩展现有EVPN体系框架,提供一种跨域(Inter-AS)的EVPN

跨域的EVPN借鉴跨域MPLS VPN的方式,也有三种:

Option A、Option B、Option C

Option A

  • 跨域的EVPN-OptionA中PE和ASBR之间建立EVPN邻居关系,ASBR之间不需要运行EVPN
  • ASBR之间采用创建多个子接口并绑定VPN的方式实现IP路由传递。
  • OptionA的域内流量有两层标签,域间流量无标签

image-20231024153438753

Option B

  • 跨域的EVPN-OptionB中PE和ASBR之间建立EVPN邻居关系,ASBR之间也建立EVPN邻居关系
  • ASBR在收到MAC/IP路由后,修改下一跳为自己,并重新分配标签发给跨域的ASBR
  • OptionB的域内流量有两层标签,域间流量有一层EVPN标签

image-20231024153350545

Option C

  • 跨域的EVPN-OptionC中Site1和Site2的PE间建立端到端的BGPLSP。
  • PE1和PE2建立EVPN邻居关系。ASBR不感知MAC/IP路由。
  • OptionC的域内流量有三层标签,域间流量有两层标签(EVPN和BGP标签)

image-20231024153500241

3 EVPN基本配置

3.1 EVPN承载二层业务

配置命令

  1. 配置EVPN实例

    bridge-domain 10
    	evpn binding vpn-instance evpna [bd-tag bd-tag]
    

    在MPLS转发方式下,BD直接配置绑定EVPN实例evpna。此处BD的ID为10。通过设置不同的bd-tag,用户可以将多个BD绑定到相同的EVPN实例下,实现不同的VLAN对应的广播域接入同一个EVPN实例,但是属于不同广播域的业务相互隔离

  2. 将二层子接口加入BD, 允许通过广播域BD转发

    int eth-trunk10.1 mode l2
    	encapsulation dot1q vid 2
    	rewrite pop single
    	bridge-domain 10
    

    将二层子接口加入BD,允许报文通过广播域BD转发。此处子接口ID为Eth-Trunk10.1

配置举例(双归双活)

image-20231024154041178

配置需求

  1. CE1双归属到PE1和PE2,通过E-Trunk来实现双活
  2. CE1的ESI为0000.1111.2222.1111.1111
  3. CE1和CE2的IP地址分别为192.168.1.1/24、192.168.1.2/24
  4. EVPN实例名称evpna
  5. 各个PE的EVPN实例evpna的RD值分别为100:1、200:1、300:1,RT值均为1:1

配置思路

  1. 在骨干网上配置IGP实现各个PE设备之间的互通

  2. 在骨干网上配置MPLS基本能力和MPLS LDP,建立MPLS LSP

  3. 配置PE上的BD EVPN实例

    PE1举例, PE2同理

    evpn vpn-instance evpna bd-mode	#配置evpn实例
    	route-distinguisher 100:1	#配置RD值
    	vpn-target 1:1	#配置RT
    	qu
    bridge-domain 10	
    	evpn binding vpn-instance evpna	#bd绑定evpn实例
    	qu
    evpn source-address 1.1.1.1	#配置PE源地址
    
  4. 配置ESI和E-Trunk功能实现双归双活

    以PE1为例配置ESI和E-Trunk功能实现双归双活

    lacp e-trunk system-id 00e0-fc00-0000
    lacp e-trunk priority 1
    e-trunk 1
    	peer-address 2.2.2.2 source-address 1.1.1.1
    	qu
    int eth-trunk 10
    	mode lacp-static
    	e-trunk 1
    	e-trunk mode force-master
    	esi 0000.1111.2222.1111.1111
    	qu
    int eth-trunk 10.1 mode l2
    	encapsulation dot1q vid 2
    	rewrite pop single
    	bridge-domain 10
    	qu
    int g0/1/0
    	eth-trunk 10
    	qu
    

    注: PE2的E-Trunk System-id需要和PE1一致

  5. 配置本端、远端MAC路由快速重路由功能

    以PE1为例配置本端、远端MAC路由快速重路由功能

    epvn 
    	vlan-extend private enable
    	vlan-extend redirect enable
    	local-remote frr enable
    	qu
    
    • 在CE多归场景中,通过MAC路由重定向功能,可以使连接同一个CE的PE设备都将去往该CE的MAC路由出接口重定向到本地AC接口,从而缩短转发路径,提升转发效率。
    • 另外当其中一个PE上的AC接口故障时,MAC路由可以快速重定向出接口,通过另外的多活PE转发,提升可靠性
  6. 配置建立BGP EVPN对等体关系

    以PE1为例配置建立BGPEVPN对等体关系

    bgp 100
    	peer 10.0.2.2 as-number 100
    	peer 10.0.2.2 connect-interface loopback 1
    	peer 10.0.3.3 as-number 100
    	peer 10.0.3.3 connect-interface loopback 1
    	l2vpn-family evpn
    		peer 10.0.2.2 enable
    		peer 10.0.3.3 enable
    		qu
    	qu
    
  7. 配置CE通过Eth-Trunk接口接入PE

    以CE1为例配置CE通过Eth-Trunk接口接入PE

    vlan 2
    	qu
    int eth-trunk 10
    	portswitch
    	port link-type trunk
    	port trunk allow-pass vlan2
    	mode lacp-static
    	qu
    int g0/1/0
    	eth-trunk 10
    	qu
    int g0/2/0
    	eth-trunk 10
    	qu
    
  8. 配置结果验证

    在PE3上查看BGP EVPN邻居关系

    dis bgp epvn peer
    

    在PE3上查看四类路由

    display bgp evpn all routing-table inclusive-route	 #type4
    display bgp evpn all routing-table es-route			#type3
    display bgp evpn all routing-table mac-route		#type2
    display bgp evpn all routing-table ad-route			#type1
    

    在CE2上查看ARP表并pingCE1

    dis arp
    

    在PE3上查看evpna的MAC地址表

    display evpn mac routing-table evpn-instance evpna verbose
    

3.2 EVPN承载三层业务

配置命令

配置L3VPN实例

ip vpn-instance vpna
	route-distinguisher route-distinguisher	#RD
	vpn-target vpn-target [both | export-extcommunity | import-extcommunity] evpn	#配置RT, 注意RT值后面需要添加关键字evpn
	evpn mpls routing-enable	#使能EVPN生成和发布IP前缀路由和IRB路由的功能
	advertise l2vpn evpn	#配置发布IP前缀类型的路由
  • 创建一个名字为vpna的L3VPN实例,进入L3VPN实例视图,并配置RD和RT。注意RT值后面需要添加关键字evpn
  • 在EVPNL3VPN业务场景中,当公网隧道采用MPLS或SR-MPLS隧道时,使能EVPN生成和发布IP前缀路由和IRB路由的功能,使本端设备向EVPN对等体发布IP前缀路由和IRB路由。当公网隧道采用VXLAN、SRv6等非MPLS类型隧道时,无需配置此命令
  • 缺省情况下,VPN实例的本地交叉路由是不会上送给EVPN实例的,为了解决不同VPN实例互访问题,可以使能VPN实例向EVPN实例发布本地交叉功能,使VPN实例收集的本地交叉路由发送给EVPN实例,然后通过BGP EVPN对等体关系发送给远端设备

配置举例

image-20231024160952262

配置需求

  • 在网络中配置EVPN功能,实现三层流量互访
  • CE1的网关为192.168.1.254/24、CE2的网关为192.168.2.254/24
  • L3VPN实例名称vpna
  • 各个PE的VPN实例vpna的RD值分别为100:1、200:1,RT值均为1:1

配置思路

  1. 在骨干网上配置IGP实现各个PE设备之间的互通

  2. 在骨干网上配置MPLS基本能力和MPLSLDP,建立MPLS LSP

  3. 配置PE上的L3VPN实例

    以PE1为例配置PE上的L3VPN实例

    ip vpn-instance vpna
    	ipv4-family
    		route-distinguisher 100:1
    		vpn-target 1:1 both evpn
    		evpn mpls routing-enable
    		qu
    	qu
    

    以PE1为例配置建立BGPEVPN对等体关系

    bgp 100
    	peer 10.0.3.3 as-number 100
    	peer 10.0.3.3 connect-int loop0
    	l2vpn-family evpn
    		peer 10.0.3.3 enable
    		qu
    	qu
    
  4. 配置CE接入PE,发布路由

    以PE1为例配置CE接入PE

    int g0/1/0
    	ip bind vpn-instance vpna
    	ip add 192.168.1.254 24
    	qu
    

    以PE1为例配置发布CE侧路由

    bgp 100
    	ipv4-family vpn-instance vpna
    		import-route direct
    		qu
    	qu
    
  5. 配置结果验证

    在PE1上查看Type5路由的详细信息

    dis bgp evpn all routing-table prefix-route 0:192.168.2.0:24
    

    在PE1上查看vpna的路由表

    dis ip routing-table vpn-instance vpna
    

    最后在CE1上ping 192.168.2.1