导图社区 EVPN
什么是EVPN?该导图从此方面入手,介绍了其技术优势、网络模型、分层结构、识别所谓的vxlan、转发二层流量等内容。
编辑于2021-07-26 15:36:40EVPN
概述
技术优势
继承了mp-bgp和vxlan的有点还增加了如下特点:1.简化配置 2.分离控制层面和数据层面 3. 支持IRB(集成路由信息和桥接)VTEP既可以进行二层转发和三层转发。
网络模型

VSI(虚拟交换实例)类似于基于vxlan二层转发的虚拟交换机
VTEP VXLAN的隧道端点,EVPN的边缘设备,EVPN的相关处理都在VTEP上
ES以太网段,目前只能一条链路对应一个VTEP
核心设备P,进行三层转发不参EVPN的转发
分层结构
spine(核心)——leaf(分支)
leaf设备作为vtep对报文EVPN处理
spin设备作为核心设备对报文进行转发
如果两个vetp处于拓扑处于同一个自治系统那么两个spine要配置反射器,为了获得完成的路由信息和避免全连接。
MP-BGP的EVPN的拓展
RT路由信息evpn的地址族路由属性。EXPORT Target:本地的vtep将bgp 的update报文发送evpn路由给远端的vtep时vpn taget属性设置为export target属性
import target 本端的vtep收到其他的vetp发送update消息中将其中evpn export属性和自己的import tatget属性进行比较,如果有交集则接受该evpn路由
RD用来区分不同的vxlan的evpn路由
路由类型
MAC/IP发布路由,用来通告本地Mac地址信息和主机路由信息(arp信息和ND信息)
IMET(包含性以太网标签路由),用来通告vtep及其所属的Vxlan信息,实现自动发现vtep,vxlan隧道自动建立,vxlan和vxlan隧道相互关联
IP前缀路由,用BGP前缀路由通告bgp ipv4单播路由或者bgp ipv6单播路由
自动发现、建立隧道、关联隧道
方式一:IMET路由通过vtep通告自身vxlan信息,每个vtep都能通过收到所属的vxlan信息,如果本地和远端属于同一个vxlan则自动建立,隧道和vxlan进行关联。
方式二:mac/ip发布路由和ip前缀路由,在evpn进行三层转发的时候,本地的vtep收到远端的发来的Mac/ip发布路由和ip前缀路由,根据该路由携带的export target属性和本地import target属性是否一致,如果一致则自动简历隧道
识别所属的vxlan
evpn的mac表arp表ND表表象学习和流量转发都是根据报文所属的的vxlan进行,所以vtep要先识别报文所属的vxlan
vtep将本地站点以太网服务实例与vsi关联,vtep从以太网服务实例收集到数据帧后,查找与其关联vsi,在vsi中创建的vxlan与之关联。
在 VXLAN 中,与VSI 关联的以太网服务实例称为AC
转发二层流量
本地MAC地址学习:vtep接受到数据帧的时候先判断是否属于那个vsi,并且将该数据帧中携带的源Mac加入Mac地址表中,并且该源Mac和接口进行绑定。
远端Mac地址学习:远端站点内Mac地址学习,主要通过mp-bgp协议将远端vtep内Mac地址表和所属的vxlan信息通告给远端, 远端vtep所属的vxlan对应vsi的Mac地址表。
转发已知单播流量:先判断所属的vsi,查看该vsi内Mac地址表,如果是本地的vtep接口则直接进行转发,如果是接口是tunnel口则在vtep进行vxlan封装后进行转发
转发泛洪流量,将(广播、组播、未知单播)进行头端复制后以单播的形式在该本地站点进行转发,并通过vxlan隧道发送给所有远端vtep
为了避免环路,远端vtep接受到vxlan封装包,不会发送到其他的vxlan隧道。
子主题
EVPN的转发三层流量
集中式网关:vxlan之间的转发和外网数据转发交付同一evpn网关处理,evpn网关压力较大
分布式网关:每一个vtep都可以作为evpn网关,分担压力
对称IRB:即报文连接源和目的网关上都要进行二层转发和三层转发
每一个分布式evpn网关拥有一个为了router Mac地址作为网关之间vxlan隧道流量转发,报文在网关之间转发时,内层Mac地址为出口网关router Mac
L3VNI(L3 vxlan ID):网关之间通过vxlan隧道进行三层转发时由l3VNI进行标识,L3VNI为已关联一个VPN实例,确保不通的业务之间实现隔离。
分布式网关的部署要求:
1.作为分布式网关接口和vsi虚接口,该接口需要要与vsi接口 和VPN实例相关联。不同的网关GW上相同的vsi虚接口IP地址必须相同,该ip地址作为该vxlan内用户的网关地址
2.L3VNI的vsi虚接口必须要与VPN实例先关联,并指定L3VNI,关联VPN实例和vsi虚接口必须公用一个L3VNI
边界border上也需要承载L3VNI和vsi接口
三层转发表项的学习
evpn在引入外部路由时,vtep通过mp-bgp将该路由所属的L3VNI发给远端的vtep,远端的vtep学习到该路由将l3VNI对应的vpn实例的FIB表加入其中。表象的出接口为两个vtep的vxlan隧道出接口(tunnel),下一跳为路由携带的next-hop属性,即远端的vtep地址。
本地ARP学习:
vtep接受用户的arp信息,加入到arp表和fib表。判断所属的vsi,根据vsi查找所属的vsi虚接口,并把arp表和fib表出接口更新为收到该消息的接口。该表项所属的vpn实例为该vsi所属的vpn实例。
远端arp学习:
远端站点内学习arp,vtep通过mp-bgp将本端的vtep的arp表项和L3VNI发送通告给远端的vtep,远端的vtep学习但不添加arp表项。而是通过路由管理模块加入到fib表项中。fib表项中的出接口为L3BNI关联的VSI虚接口。下一跳为携带的NEXT-HOP属性地址即远端的vtep地址。该表项所属的vpn实例为L3VNI对应的vpn实例。
流量转发过程
相同站点的三层流量转发过程
不同站点的三层流量转发过程
查找FIB表过程为
1. 访问相同子网和不同子网时发送arp请求获得arp信息
2. GW接受arp请求后判断所属的vsi,根据vsi所关联的vsi虚接口Mac地址进行应答
3. 用户终端发送给GW
4. GW收到报文根据所属的vsi,确定vsi与之关联的VIS虚接口。再根据vsi虚接口与之关联的vpn实例查找fib表,根据其匹配项进行转发
1.如果出接口是本地接口,则将目的Mac地址更新为最终用户Mac。源Mac为本地vsi虚接口Mac
2.如果出接口为Vsi虚接口,则将目的Mac地址更新为远端GW routerMac,源Mac地址为本地GW routerMac。添加vxlan封装后发送给远端GW.添加的vxlan的封装为关联的vpn实例的L3VNI
5. 目的GW收到报文,根据报文所属的L3VNI所属的VPN实例,进行Vxlan解封装。再根据VPN实例的arp查找转发
转发公网私网互通
公网实例可以看做特殊的VPN实例,分布式evpn网关处理公网实例和vpn实例完全相同
公网实例也包括RT RD L3VNI
如果vsi虚接口没有绑定任何实例则该vsi虚接口为公网实例。合理规划可以实现公私网互通。
RD和RT的选择
发送IMED和发布含Mac地址信息的Mac/ip路由携带evpn视图下配置的RD 和RT,接受该类路由时将路由携带的router targer和本地evpn实例的import targer进行比较
发布包含arp信息和ND信息的Mac/IP路由时,携带evpn实例配置的RD,并携带evpn实例配置下的export target和vpn实例/公网实例下配置的export target进行比较。接受该类路由时,将路由中router target属性与本地vpn实例import targer进行比较
发布 IP 前缀路由时,携带VPN 实例/公网实例下为IPv4 VPN 配置(VPN 实例视图、VPN 实例IPv4 VPN 视图、公网实例IPv4 VPN 视图下配置)或IPv6 VPN 配置(VPN 实例视图、VPN实例IPv6 VPN 视图、公网实例IPv6 VPN 视图下配置)的Export Target;接收该类路由时,将路由中的Route Target 属性与本地VPN 实例/公网实例下为IPv4 VPN 或IPv6 VPN 配置的Import Target 进行比较。
ARP和ND的泛洪抑制
为了避免广播arp信息和ND信息请求时占用过多的带宽,vtep会根据收到的ARP/ND请求、arp/ND应该 、bgp evpn路由在本地建立APR./ND抑制表项。后续收到arp/ND请求时首先查找arp/nd抑制表项进行应答。如果没有对应的表项则通过vxlan隧道泛洪到其他站点。arp/nd泛洪抑制功能可以极大的减少arp/ND泛洪次数。
示意图
1.用户终端T1发送arp请求获得T7Mac地址
2.vtep1收到arp请求简历arp抑制泛洪表项,在vxlan隧道泛洪arp请求。并通过 BGP EVPN隧道将表项同步给vtep2和vtep3
3.远端vtep收到报文请求先接触vxlan封装,获取原始的arp请求,在本地站点置顶vxlan内泛洪arp请求
4.vm7收到arp请求后回复arp请求
5.vtep2收到arp回复后建立arp泛洪抑制表项,并通过vxlan隧道把arp回复发送给vtep1,并且将arp泛洪抑制表项同步给其他的vtep。
6.vtep1收到arp应答先解除vxlan封装,然后将原始arp应答信息发送给vm1
7.VTEP1收到建立泛洪抑制表项,VM4发送arp请求获得vm1的Mac地址
8.vtep1收到arp请求,建立vm4的泛洪抑制表项,并查找泛洪抑制表项。根据已有的泛洪抑制表项进行应答,不会将arp请求进行泛洪。
9.vm10发送arp请求获取vm1Mac地址
10.vtep3收到arp请求时,建立vm10泛洪抑制表项。并查找本地泛洪抑制表项,并根据已有的表项(通过 bgp evpn进行同步后)进行应道,不会将arp请求进行泛洪。
Mac地址迁移
Mac迁移指的是用户终端或主机从一个ES迁移到另一个ES,原有的vtep无法感知,新ES段所在的vtep需要重新发布Mac/Ip路由,原来的vtep收到此路由,撤销原来通告的路由,每次Mac迁移,迁移序号依次递增。
EVPN VXLAN 分布式聚合(DRNI)
功能简介
将两台物理设备虚拟成一台设备(使用这个虚拟设备既可以进行二层转发也可以作为evpn的网关)防止单点故障以提高网络的可靠性。
同步arp信息和Mac地址信息
作为DR device 设备的两个vtep通过IPL(内部控制链路)惊醒arp和Mac信息同步,以确保两台vtep信息保持一致,IPL既可以是vxlan隧道也可以是以太网聚合链路
公用虚拟vtep地址
两个vtep设备共用一个虚拟vtep地址,其他vtep使用这个虚拟vtep地址与其建立vxlan隧道
使用不同的bgp对等体地址
两台vtep设备使用不同的地址作为bgp对等体地址。分别与其他的vtep建立bgp evpn邻居,利用underlay的等价路由机制,两个vtep会受到相同的流量,实现负载分担和冗余备份。
备份用户侧链路
IPL为以太网链路时用户侧备份机制为
根据用户侧AC自动创建:用户侧配置以太网服务实例,配置匹配规则并关联vsi。vtep会在IPL上自动创建相同的AC
根据vxlanID 映射方式进行自动创建:vtep创建vxlan后IPL后自动创建以太网服务实例,根据vxlan id 创建相同的匹配规则,以太网服务实例和vxlan对应的vsi进行关联。
当一台vtep上一台AC故障时,vxlan隧道收到的报文转发IPL上另一台vtep。该vtep根据上IPL配置AC判断属于vsi并进行转发,保证不中断。
IPL为vxlan隧道时用户侧备份机制
如果vtep上一台AC故障时,根据Ivtep的Vxlan隧道接受到发送给故障AC的报文,为报文添加vxlan封装。封装vxlan ID为故障ac所对应vsi关联的vxlan ID,并通过IPL上的vxlan隧道转发给另一台vtep。该vtep根据vxlan ID判断所属vsi转发报文
主题
evpn 配置
集中式网关配置
配置步骤
配置IP地址和单播路由,核心设备配置ospf保证路由可达
配置switch A
开启l2vpn
关闭远端Mac地址学习和arp自动学习
配置vsi vpn A创建 evpn实例,并且配置自动生成evpn实例的RD 和 RT
创建vxlan
vxlan10
配置bgp发布evpn 路由
在接入服务器的接口Ten-GigabitEthernet1/0/1 上创建以太网服务实例1000,该实例用来匹配VLAN 2 的数据帧
配置以太网服务实例1000 与VSI 实例vpna 关联
子主题
分布式网关配置
主题
注意事项
分布式聚合配置evpn两台vtep必须保持一致,并且只能手动创建AC
开启和关闭evpn的分布式聚合时需要在bgp试图先配置address family l2vpn evpn 以便设备采用新源地址与对端地址建立隧道
分布式聚合vtep的虚拟地址不能作为接口指定的从ip地址
子主题