一、VXLAN转发面EVPN与集中式分布式网关
ospf
bgp
bridge-domain 1000
vxlan vni 5010
int nve 1
source ip 1.1.1.1
vni 5010 head-end peer-list 2.2.2.2
int g0/0/1.1000 mode l2
encapsulation dot1q vid 100
bridge-domain 1000
无非是这几个内容
1、underlay使用ospf实现互联互通与可靠性
2、overlay使用bgp实现ipv4和evpn控制面的调度
3、overlay使用bd和evpn instance实现数据面的转发
4、overlay使用nve实现vxlan转发的源目接口与ip
5、业务接入点
一个tips:
dis vxlan tunnel
显示vxlan隧道是down的,说明vxlan目的地址是没有路由的,只要有路由就up,不管是否可达
1、通讯模型
1.1 二层通讯
①、p1.1 查arp表,无1.2arp表项
②、p1.1 发送arp请求,FFFF广播帧
③、server->leaf 带tag100,进入g0/1.1000(子接口关联到bd1000)
interface g0/1.1000
bridge-doamin 1000
④、bd1000收到广播帧,向用户侧、网络侧泛洪
用户侧通过bd泛洪,不说
⑤、网络侧通过vxlan泛洪,隧道标识为5010,隧道起点接口为nve1 源地址为1.1.1.1
bridge-domain 1000
vxlan vni 5010
根据nve的源目列表进行头端复制,以发送到多个vxlan隧道
vxlan报文的udp源端口是根据内层的源目mac进行hash得出
⑥、VTEP 2.2.2.2收到广播帧 p1.2进行单播回应
⑦、bd1000收到单播帧 源mac2 目的mac1,在交换机查mac表,目的mac1有没有
mac-address | VLAN/VSI/BD | Learned-From |
---|---|---|
M2 | 1000 | P1.1000 |
M1 | 1000 | 1111 |
⑧、交换机2封装vxlan报文
1111 | 2222 | 4789/hash | 5010 | M1 | M2 | 1.1/1.2 |
⑨、交换机1收到单播报文,形成mac地址表
2、evpn概述
evpn(ethernet virtual private network),bgp为evpn新规定了一种NRLL报文,用于承载evpn,也即熟知的bgp的type2、3、5类路由
①、Type2路由(MAC/IP路由):用于主机MAC地址/ARP/IP路由通告。
②、Type3路由(Inclusive Multicast路由):用于传递二层VNI和VTEP IP地址信息,实现VTEP的自动发现和VXLAN隧道的动态建立,实现BUM报文转发。
③、Type5路由(IP前缀路由):用于主机IP路由通告及外部网络路由通告。
原先的vxlan静态配置太慢,随着bd的增多,依赖数据面路由学习太慢了,而且mac还容易超时,
2.1 静态方式配置VXLAN的问题
①、N台设备建立VXLAN隧道,手工配置方式最高达到 N(N-1)/2 次头端列表配置。操作太多,配置太复杂
②、静态VXLAN隧道只有数据转发平面,不能实现VTEP的自动发现、主机信息相互通告等
③、只能通过ARP广播的方式学习远端MAC地址,全网的广播泛洪太多,mac表项容易不完整,mac地址容易超时
2.2 Type2-MAC/IP路由

2.2.1 主机MAC地址通告(2元)
① 二元报文与场景
只存在①和③时,为两元
MAC |
L2 VNI |
由用户侧产生的mac信息,并通过bgp发布到RR的为两元路由。相同子网主机互访场景下进行主机MAC地址通告,包含主机MAC信息和二层VNI。
Mac Address | VLAN/VSI/BD | Learned-From | 标记 |
M3 | 1000 | 10G 0/1.1000 | 用户侧产生 |
M1 | 1000 | 1111 | VXLAN学习 |
M2 | 1000 | 1111 | VXLAN学习 |
② EVPN VPN-Instance
ip vpn-instance=l3 vpn= ip vrf 有三层转发表 ip 转发表
evpn vpn-instance=l2 vpn=mac vrf 有两层转发表 mac转发表
一个设备上有多个MAC VRF,RD区分不同L2 VRF的路由,RT用作入向接受标记和出向发送标记,下图想要实现路由相互进入,不仅需要vpn的rt标识,还需要做路由泄露。
ip vpn-instance ipv4与mac vpn-instance evpn代码对比:
ip vpn-instance abc
vxlan vni 5000
ipv4-family
route-distinguisher 1:1
vpn-target 1:5000 export-extcommunity
vpn-target 1:5000 import-extcommunity
bridge-domain 1000
vxlan vni 5010
evpn
route-distinguisher 1:1
vpn-target 1:1000 export-extcommunity
vpn-target 1:1000 import-extcommunity
③ 虚机迁移拓展团体属性(vMotion)
拓展团体属性的新旧序列号比较
2.2.2 主机ARP通告(3元)
只存在①和②和③时,为三元
MAC |
IP |
L2 VNI |
集中式网关部署场景下通告ARP类型路由,包含主机IP信息、MAC信息和二层VNI。
2.2.3 主机IP路由通告(4元) IRB
存在①②③④时,为四元
MAC |
IP |
L2 VNI |
L3 VNI |
分布式网关部署不同子网互访场景下,进行IRB类型路由通告。它包括主机MAC信息、IP信息、二层VNI和三层VNI
2.3 Type3-Inclusive Multicast路由
该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立.PMSI中得VTEP IP标识该VTEP-IP具有组播能力
只有以下命令配置后,才可以产生type3路由
vni 5010 head-end peer-list protocol bgp
2.4 Type5路由(IP前缀路由)
实现VXLAN网络中的主机访问外部网络
bgp 100
ipv4-family vpn-instance abc
import-route static/bgp/ospf
advertise l2vpn evpn
引入ipv4-vpn的bgp路由表中,随后使用advertise发布到evpn中
对称性分布式网关在学习了type2 4元 type5路由后,形成以下路由表
1111路由表 | ||||
B | 1.2/32 | 2222 | VNI:3000 | |
B | 3.1/32 | 2222 | VNI:3000 | |
B | 2.2/32 | 3333 | VNI:3000 | |
B | 3.2/32 | 3333 | VNI:3000 | |
D | 1.0/24 | vbdif1000 | VNI 1000 | |
D | 2.0/24 | vbdif2000 | VNI 2000 | |
B | 100.1.1.0/24 | 3333 | VNI:3000 |
2.5 evpn在二层网络得应用
体现type2和type3路由
2.5.1 拓扑
2.5.2 脚本配置
① underlay:接口、ospf
② overlay-控制面
bgp采用路由反射器方案
leaf
bgp 100 instance abc
peer 11.3.3.3 as-number 100
peer 11.3.3.3 connect-interface LoopBack1
peer 11.4.4.4 as-number 100
peer 11.4.4.4 connect-interface LoopBack1
#
l2vpn-family evpn
policy vpn-target
peer 11.3.3.3 enable
y
peer 11.4.4.4 enable
y
#
spine
bgp 100
router-id 11.4.4.4
peer 11.1.1.1 as-number 100
peer 11.1.1.1 connect-interface LoopBack1
peer 11.2.2.2 as-number 100
peer 11.2.2.2 connect-interface LoopBack1
#
ipv4-family unicast
peer 11.1.1.1 enable
peer 11.2.2.2 enable
#
l2vpn-family evpn
undo policy vpn-target
peer 11.1.1.1 enable
y
peer 11.1.1.1 reflect-client
peer 11.2.2.2 enable
y
peer 11.2.2.2 reflect-client
#
③ overlay-数据转发面
bridge-domain 1000
vxlan vni 5010
evpn
route-distinguisher 1:1
vpn-target 5010:1 export-extcommunity
vpn-target 5010:1 import-extcommunity
#
interface Nve1
source 1.1.1.1
vni 5010 head-end peer-list protocol bgp
#
interface GE1/0/0.100 mode l2
encapsulation dot1q vid 100
bridge-domain 1000
#
interface ge 1/0/0
ports
④ 验证
display mac-address bridge-domain 1000
可以查看来自用户侧和网络侧收发的路由
dis vxlan tunnel
dis vxlan vni
dis vxlan peer
查看用户侧的type2-2元路由
display bgp evpn all routing-table mac-route
查看用户侧的type2-2元路由-明细
查看type3路由
查看type3路由-明细
3 集中式网关
3.1 概述与脚本
集中式网关需要在spine上也配置数据面bd和vxlan头端复制,网关vbdif也部署在spine上和ip vpn-instance,分布式网关spine-leaf无需部署,脚本如下
SW3
bridge-domain 100
vxlan vni 1000
evpn
route-dis 1:1
vpn-target 1:1000
bridge-domain 200
vxlan vni 2000
evpn
route-dis 2:2
vpn-target 2:2000
interface nve 1
source 3.3.3.3
vni 1000 head-end peer-list protocol bgp
vni 2000 head-end peer-list protocol bgp
ip vpn-instance router1
route-dis 1:1
int vbdif 100
ip binding vpn-instance router1
ip add 192.168.1.254 24
int vbdif 200
ip binding vpn-instance router1
ip add 192.168.2.254 24
- 优点:对跨子网流量进行集中管理,网关的部署和管理比较简单。
- 缺点:
- 转发路径不是最优:同一二层网关下跨子网的数据中心三层流量都需要经过集中三层网关转发。
- ARP表项规格瓶颈:由于采用集中三层网关,通过三层网关转发的终端租户的ARP表项都需要在三层网关上生成,而三层网关上的ARP表项规格有限,这不利于数据中心网络的扩展。
3.2 多活集中式网关
spine共同脚本
bd
vbdif
#多活时,vbdif的mac需要手动设置为相同
int lo 0
ip add 45.45.45.45 32
int nve
source 45.45.45.45
vni xxx
spine1
int lo 1
ip add 4444
dfs-group 1
source 4444
active-active-gateway
peer 5555
spine2
int lo 1
ip add 555
dfs-group 1
source 5555
active-active-gateway
peer 4444
多活网关arp同步
如果是更多的网关,则增加更多peer即可
dfs-group 1
source 5555
active-active-gateway
peer 4444
peer 6666
peer 7777
……
主机互访可以实现双活且ECMP,但是源为网关访问主机却存在问题,如图
3.3 ARP广播抑制抑制
主机通告得ARP目的为FFFF,通过在交换机接口配置后,该广播报文到达交换机,通过查询MAC地址表,目的得FFFF将会被替换为MAC表中有的表项,例如MAC表中共有M2 2222 M3 3333,那么目的mac和ip会被相应得替换,源广播帧替换为单播发送到全网(leaf已经学到得表项,经过头端复制后发送)中,其他vtep就会学到该主机得arp信息
既然leaf已经有表项了,为什么还需要发送arp广播呢,因为实际情况中,有些业务需要心跳,通过发送arp询问,保持表项为最新
3.3.1 二层arp广播泛洪抑制
bridge-domain 1000
arp broadcast-suppress enable
3.3.2 三层arp转变为evpn路由
使能BGP EVPN进行主机信息搜集功能
int vbdif 1000
arp collect host enable
……
3.3.3 配置发布ARP类型得路由
bgp 100
l2vpn-family evpn
peer x.x.x.x advertise arp
4 分布式网关
4.1 概述
特点:
每个leaf都是vtep的端点,都是具有三层和二层网关功能,spine不再作为vtep,不感知Vxlan隧道转发
每个leaf自行学习arp信息,无需spine集中网关学习arp,提高设备运行效率
4.2 分布式网关原理
4.2.1 未引入evpn的情况
1.1访问2.2
① 1.1到网关1.254
最外层 | BD 1000 | M1 | M11 | 2.2 | 1.1 | 载荷 |
② 查表,命中下面路由
2.0/24 | vbdif 2000 |
③ 查vbdif2000得arp表,但实际上该bd下只能由本地产生得arp,因此以下这个数据包是不存在得。即使流量到了本地得BD 2000,因为没有2.2得arp信息,所以还是无法访问2.2.
最外层 | BD 2000 | M22 | M2 | 2.2 | 1.1 | 载荷 |
4.2.2 引入evpn的情况
分布式网关情况下,会在用户侧生成type2 2元路由,会发送到vxlan网络中type2 4元、type3路由
① 1.1访问2.2时,在leaf1,ip vrf中查L3(type2 4元产生)转发表,从leaf1发出的数据报应该如下格式:
1111路由表 | ||||
B | 1.2/32 | 2222 | VNI 5010 | VNI:3000 |
B | 3.1/32 | 2222 | VNI 5030 | VNI:3000 |
B | 2.2/32 | 3333 | VNI 5020 | VNI:3000 |
B | 3.2/32 | 3333 | VNI 5020 | VNI:3000 |
D | 1.0/24 | vbdif1000 | 本地产生 | |
D | 2.0/24 | vbdif2000 | 本地产生 |
load | 1.1 | 2.2 | Leaf1 NVE MAC/Leaf3 NVE MAC | 3000 | hash/4789 | 1111 | 3333 |
vxlan内部load | vxlan | udp | ip |
vxlan内的mac不是1.1和2.2的mac,而是nve的mac
② 1.1访问1.2时,在leaf1,bd1000中查L2(type2 4元产生)转发表,从leaf1发出的数据报应该如下格式:
M12 | 2222 | 5010 |
load | 1.1 | 1.2 | M11/M12 | 5010 | hash/4789 | 1111 | 2222 |
vxlan内部load | vxlan | udp | ip |
4.2.3 ARP L3网关代打及非对称场景
ARP L3 GW代答
int vbdif 1000
arp proxy enable
bridge-domain 1000
arp broadcast-suppress enable
arp l2-proxy gateway-mac
开启三层网关代答后,同网段的访问,也会通过网关查路由表的跨网段的通讯行为,不过大二层减少了泛洪
4.2.4 分布式网关Type5场景和MPLS L3 VPN
数据中心互联除了MPLS,也可以通过EVPN VXLAN互联
ip vpn-in abc
vxlan vni 3000
rd rt
#
int eth 0
ip binding vpn-ins abc
ip addr 192.168.1.254 24
#
bgp 65000 instance def
peer r2 as-num 65000
ipv4-family vpn-instance abc
import direct
advertise l2vpn evpn
l2vpn-family evpn
peer r2 enable
#
int nve 1
source 1.1.1.1
5 实验