目录
EVPN简介:
·EVPN颠覆了传统L2VPN转发层面/数据层面学习MAC的方式,引入控制层面学习MAC和IP指导数据转发,实现了转控分离
·EVPN解决了L2VPN的典型问题,实现双活、快速收敛、简化运维等特性
·EVPN的控制平面采用MP-BGP(多协议BGP),数据平面支持多种类型的隧道,例如MPLS、GRE Tunnel、SRv6。
-数据平面:由IP隧道或MPLS标签转发路径组成数据转发路径。只负责数据转发,无需广播泛洪学习MAC地址
EVPN优势:
·支持CE双活接轨PE
·支持PE成员自动发现
·环路避免
·广播流量优化
·支持ECMP
EVPN路由:
随着RFC7432定义了EVPN的Type1 ~ Type4共4类路由,随着EVPN协议的发展,越来越多的路由被新定义,这里首先介绍EVPN四种类型的路由:
基本四种EVPN路由
(Type3)Inclusive Muticast Route集成组播路由:组播隧道端点自动发现&组播类型自动发现——支持BUM流量转发
(Type4)Ethernet Segment Route以太段路由:ES成员自动发现、DF(Designated Forwarder)选举——多活支持、单活支持
(Type1)Ethernet A-D(Autonomous-Discovery) Route 以太自动发现路由:别名、MAC地址批量撤销、多活指示、通告ESI标签——环路避免、快速收敛、负载分担
(Type2)MAC/IP Advertisement Route MAC/IP通告路由:MAC/IP地址学习通告、MAC/IP绑定、MAC地址移动性——ARP抑制、主机迁移
扩展:
Type5处于草案阶段
Type6 ~ Type11用于组播流量优化,标准还不成熟
EVPN工作流程:
EVPN的工作流程分为两个阶段:
1.启动阶段:
概述:
·EVPN对等体交互EVPN Type3路由(Inclusive Multicast Route,集成组播路由)建立BUM流量转发表
·EVPN对等体交互Type 4路由(Ethernet Segment Route,以太段路由)完成ES发现和DF选举(在ES多归属场景下才会进行DF选举,以防止PE收到两份重复的流量)
·EVPN交互Type 1路由(Ethernet A-D Route,以太自动发现路由),以交互ESI标签,进而实现水平分割、别名等功能
详述:
topo如图
1)BUM流量转发表:
1.配置PE之间对等体(Peer)关系。以PE1为例,它将发送Type3路由(Inclusive Multicast Route)发现邻居并分配标签
2.PE2、PE3生成BUM流量转发表
3.这个过程中所有PE均发送Type 3路由(Inclusive Multicast Route),最终形成稳定的BUM流量转发表
在PE连接CE的接口配置ESI。PE会交换Type4路由(Ethernet Segment Route),传播ESI并进行DF选举
2)DF选举:
1.当CE多归到多个PE时,只能有1个PE向CE转发BUM流量,选出这个PE的过程被称为DF选举
2.PE通过特定算法选举出DF。本topo中假设PE1和PE3被选举为DF,则只允许PE1和PE3转发BUM流量给CE
3)分发ESI标签:
1.水平分割:
·PE通过Type1路由(Ethernet A-D Route)分发ESI标签。ESI label用于水平分割防止同一ES来的流量又绕回该ES
·此过程中所有PE均发送type1路由(Ethernet A-D Route),生成完整的ES成员信息表
启动阶段总结:
EVPN的启动阶段生成MAC-VRF、BUM流量转发表和ES成员信息表。此时MAC-VRF表项为空
2.流量转发:
概述:
·CE侧流量触发PE通过Type2路由(MAC/IP Advertisement Route)通告MAC/IP地址,该路由携带分配的标签信息,后续根据该标签执行单播流量转发
详述:
·EVPN流量转发阶段由CE侧用户流量发起开始
·用户CE1和CE2不感知PE设备的EVPN协议交互
topo:
1)本地MAC地址学习:
·CE1访问CE2,首先发送ARP请求。PE1接收报文,生成本地MAC表条目
2)MAC地址通告:
1.PE1 EVPN将本地MAC地址条目生成Type2路由(MAC/IP Advertisement Route),携带PE1分配的标签301
2.远端的PE设备通过MP-BGP学习到的EVPN路由,生成MAC表条目
3.EVPN支持CE多活接入PE。PE2感知直连CE1,刷新最优的MAC表条目,并生成和通告Type2路由(MAC/IP Advertisement Route)
3)远端MAC地址学习:
1.因PE1和PE2分配不同的MPLS标签,PE3有两条路径到达CE1
4)ARP广播转发:
·CE1发送的ARP请求达到PE1。PE1通过转发面学习到CE1的MAC地址,然后通过Type2路由(MAC/IP Advertisement Route,MAC/IP 通告路由)发送给所有邻居
·控制平面行为完成后,PE1将执行转发平面行为,即转发ARP广播请求。最后因PE3为DF,PE3转发ARP广播报文到CE2
1.PE1 to PE3:
PE1到PE3的ARP报文查询BUM流量转发表转发,携带103标签。PE3为DF,转发报文到e1/0/1
2.PE1 to PE2:
·由于PE1和PE2属于相同的ES,PE1到PE2的流量携带ESI标签202和BUM标签102。PE2接收到报文发现有标签202,则丢弃该报文
3.PE3 to PE2
·PE3到PE2的流量携带BUM标签302,PE2根据标签确认是BUM流量,因PE2为非DF,丢弃报文
5)ARP单播应答:
1)CE2单播回复ARP应答。PE3首先本地学习CE2的MAC地址,然后触发EVPN控制面行为,即发送Type2路由(MAC/IP Advertisement Route)。PE3查询MAC地址转发单播报文到PE1,最后PE1转发ARP报文到CE1
2)本地学习MAC地址:
·CE2回复单播ARP应答。PE3通过转发面学习到CE2的MAC地址,生成本地MAC-VRF表项
3)MAC地址通告:
1.PE3生成并通告Type2路由(MAC/IP Advertisement Route)。其他PE接收PE3发出的Type2路由(MAC/IP Advertisement Route),刷新本地MAC表项
4)数据平面转发:
·PE3通过负载分担算法找出下一跳(如PE1)发送报文,携带MAC-VRF标签301,PE1接收报文后向e1/0/0/转发
路由次序整理:
根据工作流程整理,EVPN对等体依次交互的路由是3-4-1-2
总结:
1)EVPN解决双活带来问题:
·Type1路由(Ethernet A-D Route)携带的ESI解决CE侧环路问题。
·Type4路由(Ethernet Segement Route)实现DF选举,解决广播流量向CE发送多份的问题
2)EVPN实现负载分担:
·EVPN实现全路径负载分担
3)EVPN故障快速收敛
·PE检测到CE链路故障,首先删除自己本地MAC表项,然后通过Type1路由(Ethernet A-D Route)通告给所有PE撤销该ES相关的所有MAC地址
EVPN基本术语:
1.ES(Ethernet Segment):代表用户站点(设备或网络)连接到PE的一组以太链路,使用ESI(Ethernet Segment Identifier)来表示
2.EVI(EVPN Insatnce):代表一个EVPN实例,用以标识一个EVPN客户。
3.MAC-VRF:是PE上属于EVI的MAC地址
4.RD(Route-Distinguisher):是EVPN的唯一标识,用以区分EVI——与MPLS VPN中VRF的RD值等同
5.RT(Route Target)用于控制EVPN路由的引入——与MPLS VPN中VRF的RT值等同
6.ESI Label(Ethernet Segmet Identifier Label):是EVPN Type1路由所携带的扩展团体属性。多归场景下用于实现快速收敛和水平分割
7.BUM(Broadcast、Unknow Unicast、Multicast):是由EVPN的Type3路由携带,用于转发BUM流量
EVPN表项:
·EVPN维护三张表项,用于指导流量转发,它是MAC-VRF表、BUM流量转发表、ES成员表
·MAC-VRF表用于记录已知单播流量的转发
·BUM流量转发表用于指导广播、未知单播和组播流量转发
·ES成员表用于记录成员接入PE信息
EVPN支持的多种服务模式:
简介:
在EVPN网络边缘的PE设备可以部署多个EVPN实例(EVI,EVPN Instance), 每个EVPN实例可以连接一个或者多个用户网络。EVPN支持通过多种服务模式来接入用户网络
1.Port Based:
简介:
连接用户网络的物理接口直接绑定普通EVI,只能承载二层业务
配置实现:
在接口视图下键入
evpn binding vpn-instance [EVI-name]//在接口视图下绑定EVI
2.VLAN Based:
简介:
连接用户网络的物理接口划分不同子接口,每个子接口与EVI绑定。每个用户单独使用一个EVI,可用于承载二层业务或三层业务。
在VLAN Based模式下,连接用户网络的物理接口划分成不同子接口,每个子接口关联不同的VLAN且接入不同的广播域BD(Brdige-Domain)。每个广播域BD会与单独的一个EVI进行绑定
配置实现:
bridge-domian 1//创建广播域1
evpn binding vpn-instance [evi-name]//在BD视图下绑定EVI
int g0/0/1.1 mode l2
encapsulation dot1q vid 10//进入.1子接口,工作模式为二层模式
bridge-domain 1//封装vlan-id为10
3.VLAN Bundle:
简介:
不同用户间使用VLAN进行划分,不同VLAN与EVI绑定,可用于承载二层业务或三层业务
在VLAN Bundle模式下,一个EVI可以连接多个用户,不同用户间使用VLAN进行划分,而该EVI回绑定到一个广播域BD上。此类型服务模式中,接入同一个EVI的不同用户共同一个MAC-VRF表,因此需要网络中用户的MAC地址唯一。
配置实现:
bridge-domain 1//创建BD域1
evpn binding vpn-instance [EVI-name]//在BD域中绑定EVI
int g1/0/0.1 mode l2//进入.1子接口,工作模式为二层模式
encasulation dot1q vid 10//封装vlan-id为10
VLAN-Aware Bundle:
简介:
不同用户间使用VLAN进行划分,不同VLAN通过同一EVI绑定,可用于承载二层业务或三层业务
MPLS-EVPN配置实施:
1.三层EVPN:
topo:
配置:
1.ISP内部预配(IP与IGP):
NE1:
isis 1
network-entity 10.0001.0000.0001.00
is-level level-2
int ether1/0/1
ip address 12.0.0.1 24
isis enable
int loopback 0
ip address 1.1.1.1 32
isis enable
NE2:
isis 1
network-entity 10.0001.0000.0002.00
is-level level-2
int ether1/0/0
ip address 12.0.0.2 24
isis enable
int ether1/0/1
ip address 23.0.0.2 24
isis enable
int loopback 0
ip address 2.2.2.2 32
isis enable
NE3:
isis 1
network-entity 10.0001.0000.0003.00
is-level level-2
int ether1/0/0
ip address 23.0.0.3 24
isis enable
int loopback 0
ip address 3.3.3.3 32
isis enable
2.配置MPLS LDP:
NE1:
mpls lsr-id 1.1.1.1
mpls
mpls ldp
int ether1/0/1
mpls
mpls ldp
NE2:
mpls lsr-id 2.2.2.2
mpls
mpls ldp
int ether1/0/0
mpls
mpls ldp
int ether1/0/1
mpls
mpls ldp
NE3:
mpls lsr-id 3.3.3.3
mpls
mpls ldp
int ether1/0/0
mpls
mpls ldp
3.配置BGP会话
NE1:
bgp 100
router-id 1.1.1.1
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface loopback 0
NE3:
bgp 100
router-id 3.3.3.3
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface loopback 0
4.创建与绑定EVI(EVPN实例)
NE1:
ip vpn-instnace vpn-a
ipv4-famliy
route-distinguisher 1:1
vpn-target 1:1 evpn
evpn mpls routing-enable//使能EVPN生成和发布IP前缀路由和IRB路由的功能
int ether1/0/0
ip binding vpn-instance vpn-a
ip address 11.0.0.254 24
NE3:
ip vpn-instance vpn-a
ipv4-family
route-distinguisher 3:2
vpn-target 3:2 evpn
evpn mpls routing-enable
int ether1/0/1
ip binding vpn-instance vpn-a
ip address 32.0.0.254 24
5.配置PE与CE互联与MP-BGP:
NE1(PE1):
bgp 100
l2vpn-family evpn
peer 3.3.3.3 enable
ipv4-family vpn-instance vpn-a
peer 11.0.0.1 as-number 200
advertisement l2vpn evpn
AR1(CE1):
int g0/0/0
ip address 11.0.0.1 24
int loopback 0
ip address 11.11.11.11 32
bgp 200
peer 11.0.0.254 as-number 100
network 11.11.11.11 32
network 11.0.0.0 24
NE3(PE2):
bgp 100
l2vpn-family evpn
peer 1.1.1.1 enable
ipv4-family vpn-instance vpn-a
peer 32.0.0.2 as-number 200
advertisement l2vpn evpn
AR2(CE2):
int g0/0/0
ip address 32.0.0.2 24
int loopback 0
ip address 22.22.22.22 32
ospf 1 router-id 22.22.22.22
area 0
network 32.0.0.2 0.0.0.0
network 22.22.22.22 0.0.0.0
测试:
1)CE2拥有CE1的私网路由,并且能够与之实现三层通信
2)CE1拥有CE2的私网路由,并且能够与之实现三层通信
二层双活EVPN:
topo:
配置:
1.ISP预配(IP与IGP)
PE1(NE1):
isis 1
network-entity 10.0001.0000.0000.0001.00
is-level level-2
int ether1/0/1
ip address 12.0.0.1 24
isis enable
int ether1/0/2
ip address 13.0.0.1 24
isis enable
int loopback 0
ip address 1.1.1.1 32
isis enable
PE2(NE2):
isis 1
network-entity 10.0001.0000.0000.0002.00
is-level level-2
int ether1/0/1
ip address 12.0.0.2 24
isis enable
int ether1/0/2
ip address 23.0.0.2 24
isis enable
int loopback 0
ip address 2.2.2.2 32
isis enable
P1(NE3):
isis 1
network-entity 10.0001.0000.0000.0003.00
is-level level-2
int ether1/0/0
ip address 13.0.0.3 24
isis enable
int ether1/0/1
ip address 23.0.0.3 24
isis enable
int ether1/0/2
ip address 34.0.0.3 24
isis enable
int loopback 0
ip address 3.3.3.3 32
isis enable
PE3(NE4):
isis 1
network-entity 10.0001.0000.0000.0004.00
is-level level-2
int ether1/0/0
ip address 34.0.0.4 24
isis enable
int loopback 0
ip address 4.4.4.4 32
isis enable
2.配置MPLS LDP(ISP内部)
PE1(NE1):
mpls lsr-id 1.1.1.1
mpls
mpls ldp
int ether1/0/2
mpls
mpls ldp
int ether1/0/1
mpls
mpls ldp
PE2(NE2):
mpls lsr-id 2.2.2.2
mpls
mpls ldp
int ether1/0/2
mpls
mpls ldp
int ether1/0/2
mpls
mpls ldp
P1(NE3):
mpls lsr-id 3.3.3.3
mpls
mpls ldp
int ether1/0/0
mpls
mpls ldp
int ether1/0/1
mpls
mpls ldp
int ether1/0/2
mpls
mpls ldp
PE3(NE4):
mpls lsr-id 4.4.4.4
mpls
mpls ldp
int ether1/0/0
mpls
mpls ldp
3.配置BD域
PE1(NE1):
evpn vpn-instance vpn-a bd-mode
route-distinguisher 1:1
vpn-target 1:1
bridge-domain 1
evpn binding vpn-instance vpn-a
PE2(NE2):
evpn vpn-instance vpn-a bd-mode
route-distinguisher 2:1
vpn-target 1:1
bridge-domain 1
evpn binding vpn-instance vpn-a
PE3(NE4):
evpn vpn-instance vpn-a bd-mode
route-distinguisher 4:2
vpn-target 1:1
bridge-domain 1
evpn binding vpn-instance vpn-a
4.配置CE双活与单活
PE1(NE1):
evpn source-address 1.1.1.1//配置EVPN源地址,用于在EVPN网络中标识PE设备
lacp e-trunk system-id 0000-0000-0001
e-trunk 1
peer-address 2.2.2.2 source-address 1.1.1.1
int eth-trunk 1
mode lacp-static
e-trunk 1
esi 0000.1111.2222.3333.4444
int eth-trunk 1.1 mode
encapsulation dot1q vid 10//按照802.1q标准封装,vid为10
rewrite pop single//剥离单层vlan tag
bridge-domain 1//绑定BD域1
int eth-trunk 1
trunkport e 1/0/0
evpn source-address 2.2.2.2//配置EVPN源地址,用于在EVPN网络中标识PE设备
PE2(NE2):
lacp e-trunk system-id 0000-0000-0001
e-trunk 1
peer-address 1.1.1.1 source-address 2.2.2.2
int eth-trunk 1
mode lacp-static
e-trunk 1
esi 0000.1111.2222.3333.4444
int eth-trunk 1.1 mode
encapsulation dot1q vid 10//按照802.1q标准封装,vid为10
rewrite pop single//剥离单层vlan tag
bridge-domain 1//绑定BD域1
int eth-trunk 1
trunkport e 1/0/0
CE1(SW1):
int eth-trunk 1
mode lacp-static
port link-type trunk
port trunk allow-pass vlan all
trunkport g 0/0/1 to 0/0/2
PE3(PE3):
evpn source-address 4.4.4.4
int eth-trunk 1
mode lacp-static
int eth-trunk 1.1 mode l2
encapsulation dot1q vid 10
rewrite pop single
bridge-domain 1
int eth-trunk 1
trunkport e 1/0/1
CE2(SW2):
int eth-trunk 1
mode lacp-static
port link-type trunk
port trunk allow-pass vlan all
trunkport g0/0/1
5.配置MP-BGP
PE1(NE1):
bgp 100
peer 4.4.4.4 as-number 100
peer 4.4.4.4 connect-interface loopback 0
l2vpn-family evpn
port vpn-target
peer 4.4.4.4 enable
PE2(NE2):
bgp 100
peer 4.4.4.4 as-number 100
peer 4.4.4.4 connect-interface loopback 0
l2vpn-family evpn
port vpn-target
peer 4.4.4.4 enable
PE3(NE3):
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface loopback 0
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface loopback 0
l2vpn-family evpn
port vpn-target
peer 1.1.1.1 enable
peer 2.2.2.2 enable
6.CE上配置vlanif10
CE1(SW1):
vlan10
int vlan 10
ip address 192.168.10.1 24
CE2(SW2):
vlan10
int vlan 10
ip address 192.168.10.2 24
测试:
1.看双活效果:
2.测试CE1和CE2的二层通信:
1)先查看arp表
可以看出,三层交换机是通过ARP表指导转发的
2)CE1 ping CE2
可以看到,CE1和CE2能够跨越EVPN网络实现二层通信。
拓展:
EVPN在数据中心(DC)的应用:
·在云数据中心采用EVPN的NVO(Network Virutalization Overlay)解决方案
·推荐数据平面使用VXLAN封装,控制平面使用EVPN,构建灵活的Overlay网络
——数据中心的业务均在VXLAN Overlay承载
——Spine-Leaf组成的Underlay网络负责高速转发
EVPN在SD-WAN的应用:
·SD-WAN是新一代企业分支互联解决方案,支持智能动态选路、ZTP(零配置开局)和可视化等特性
·SD-WAN解决方案,在RR与CPE之间部署EVPN用于在控制平面传递SD-WAN的Overlay VPN路由,转发平面采用IPsec VPN构建安全的转发通道
标签:详述,vpn,int,mpls,MPLS,MAC,EVPN,路由 From: https://blog.csdn.net/a728800/article/details/140533152