1 VXLAN:云计算时代的隧道技术(二)
如图1-1所示,这是一个典型的VXLAN组网架构图,其采用Border/Spine/Leaf三层架构设计。Border Leaf作为VXLAN出口网关,Spine作为南北向流量,Leaf作为VXLAN分布式网关。VXLAN部署在Leaf与Leaf之间Border Leaf与Leaf之间。VXLAN在网络中是如何进行工作的,下文中我们会详细介绍。VXLAN的概念介绍请参见:https://www.ruijie.com.cn/jszl/88850/。
图1-1 常见的数据中心VXLAN网络架构图
1.1 VXLAN工作过程
VXLAN的运行主要包含如下几个部分:
(1) 在设备上创建VXLAN实例。
(2) VTEP之间建立隧道,并将隧道和VXLAN实例关联。
(3) 学习MAC地址,作为转发的依据。
(4) VTEP判断接收的MAC帧的VXLAN归属,封装为VXLAN报文后,根据MAC地址的学习结果选择合适的隧道进行转发;对端VTEP则从隧道中接收报文,并进行解封装和转发。
(5) VXLAN网关对跨VXLAN子网的报文进行三层路由转发。
1.1.1 VXLAN隧道建立
VXLAN报文通过VXLAN隧道在两个VTEP之间传输。业务报文在进入隧道时进行封装,通过Underlay网络的三层转发将封装后的报文传输给远端VTEP,再由远端VTEP对其进行出隧道解封装处理。因此,需要在VTEP之间建立VXLAN隧道。建立的VXLAN隧道需要关联VXLAN实例,才能被用于传输该VXLAN实例的报文。VXLAN隧道可以通过手动或自动两种方式创建。手动建立VXLAN隧道称为静态VXLAN隧道,自动建立VXLAN称为动态VXLAN隧道。
1. 手工建立VXLAN隧道
手工建立VXLAN隧道意味着通过VXLAN隧道传输数据的一切必要条件都需要人工配置。具体过程如下:
(1) 创建VXLAN隧道接口,并指定隧道的源IP和目的IP。
(2) 创建VXLAN路由接口。
(3) 创建VXLAN实例,并与VXLAN隧道接口和VXLAN路由接口绑定。
(4) (可选)手工配置终端的ARP表和MAC地址表。
2. 自动建立VXLAN隧道
云计算中的数据中节点数量是庞大的,逐一手工建立VXLAN隧道几乎是不可能的。EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)能够实现VXLAN隧道自动建立。
自动建立VXLAN隧道的实现过程大致如下。VTEP设备首先需要同其他VTEP或者IBGP路由反射器建立BGP邻居关系。之后,VTEP向支持BGP-EVPN的邻居发送EVPN 3类路由(Inclusive Multicast Ethernet Tag),EVPN 3类路由主要包含了VTEP信息、VNI信息和RD值。VTEP之间通过互相发送EVPN 3类路由,完成VTEP发现,并创建VXLAN隧道OverlayTunnel。隧道本端的地址为本机的VTEP-IP,隧道对端的地址为通过3类路由学习到的对端的VTEP-IP。利用EVPN自动创建的VXLAN隧道会自动关联VXLAN实例。创建VXLAN隧道后,VTEP还将通过EVPN 2类路由(MAC/IP Advertisement Route)通告主机MAC地址、主机ARP和主机路由信息,此部分为EVPN相关知识,本文不作过多介绍。
1.1.2 如何识别VXLAN流量
设备识别接入报文所属VXLAN的方式有以下两种:
● 配置VXLAN网络实例关联的VLAN。当设备在某个VLAN上接收到MAC帧时,如果该VLAN被关联到某个VXLAN,则设备会将接收到的MAC帧封装为VXLAN报文,并在对应VXLAN的隧道上进行转发。在同一个接入设备上,不同的VXLAN实例不可以关联相同的VLAN。当一个VLAN被VXLAN关联后,其所有报文将被封装成VXLAN报文,对应VLAN将无法创建SVI接口充当IP网关。
● 配置二层以太网子接口接入指定VXLAN网络。设备在二层以太网子接口接收到MAC帧后,如果该二层以太网子接口已配置接入VXLAN网络,则该报文归属于配置的VXLAN网络,设备会将接收到的MAC帧封装为VXLAN报文并转发。二层以太网子接口支持不携带VLAN Tag封装、携带VLAN Tag封装与QinQ封装接入VXLAN网络。在二层以太网子接口生效的前提下,二层以太网子接口的封装规则优先级比VXLAN实例的关联VLAN高。
1.1.3 VXLAN如何进行MAC地址学习
VTEP需要学习用户的MAC地址作为VXLAN报文转发时的依据。VTEP的MAC地址学习包括本地MAC地址学习和远端MAC地址学习。除此之外,也可以手动配置MAC地址表项,指定其所属的VLAN、接口以及VNI,手动绑定静态MAC和静态ARP比动态学习更加稳定安全。
1. 本地MAC地址学习
本地MAC地址学习是由转发面动作触发的,VTEP在接收到本地主机的数据帧后,判断该数据帧属于哪一个VXLAN实例。若确定数据帧属于某个VXLAN实例,VTEP会将数据帧的源MAC地址添加到VXLAN实例的MAC地址表中,并记录VNI和接收到数据帧的接口。
2. 远端MAC地址学习
远端MAC地址的学习方式根据VXLAN隧道建立方式的不同而有所区别。
● 静态VXLAN隧道
使用静态隧道配置时,MAC表和ARP表都是通过转发面行为触发学习远端源MAC地址。当VTEP设备收到远端VTEP邻居发送的VXLAN报文时,VTEP进行解封装,还原二层数据帧,并将VNI与内层源MAC地址(远端主机MAC地址)记录在MAC地址表中。如图1-2所示,VM-a与VM-c都属于VNI10,VM-a已知VM-c的IP地址IP-c,请求VM-c的MAC地址过程如下:
图1-2 静态隧道MAC地址动态学习
a VM-a广播发送目的IP为IP-c的ARP请求报文。
b VTEP-1收到ARP请求后,根据接口判断该ARP请求报文属于VNI10。VTEP-1学习VM-a的MAC地址(MAC-a)、VNI(VNI10)和来源端信息(Gi0/1)。
c VTEP-1对该ARP请求进行VXLAN封装,并通过VXLAN隧道泛洪给对端VTEP,示例中为VTEP-2和VTEP-3。如图1-2中发送给VTEP-2的报文3,外层源MAC地址为MAC-1,外层目的MAC为下一跳设备的MAC地址(MAC-n),外层源IP为VTEP-1的IP IP-1,外层目的IP为VTEP-2的IP IP-2。封装后的报文通过Underlay网络转发至VTEP-2和VTEP-3。
d VTEP-2和VTEP-3收到报文后进行解封装,同时学习VM-a的MAC地址(MAC-a)、VNI(VNI10)和来源端信息(IP-1),并记录在VTEP本地MAC地址表中。
e VTEP-2和VTEP-3在本地二层域内广播ARP请求。VM-c收到ARP请求后,比对ARP请求的目的IP,并单播回复ARP应答报文。VM-c的ARP应答报文的封装与解封装过程与VM-a的ARP请求过程类似,VTEP-2、VTEP-1与VM-a都将学习到VM-c的MAC地址。
说明
在VXLAN进行跨子网的三层通信时,只需学习三层网关的MAC地址,其动态学习过程与上文相同。
● 通过EVPN建立动态VXLAN隧道
从逻辑架构上看,EVPN作为VXLAN的控制面,使VTEP可以通过主动发布EVPN的2类路由MAC/IP Advertisement Route传递主机MAC,从而减少VXLAN网络的流量泛洪。当VTEP设备学习到本地主机的MAC信息后,可以发布一条MAC-ONLY的2类路由,将该MAC地址和其对应的VNI信息通告给其他VTEP邻居。
1.1.4 VXLAN报文如何进行转发
VXLAN的转发分为二层转发和三层转发。相同VNI用户之间通过VXLAN二层转发,不同VNI用户之间通过VXLAN三层转发。VXLAN三层转发需要通过VXLAN网关设备。
1. VXLAN二层转发
VTEP判断MAC帧属于某个VXLAN后会将该MAC帧封装为VXLAN报文。VXLAN报文由UDP报文承载,在添加IP头部后由IP网络进行传输。在接收方,VTEP对VXLAN报文进行解封装得到MAC帧,再进行转发。如下图所示:
图1-3 VXLAN二层转发
(1) 交换机Device1收到以太网报文,将以太网报文封装成VXLAN报文。
(2) VXLAN报文在IP核心网中进行转发,如上图Device2对VXLAN报文进行转发。
(3) Device3收到VXLAN报文,对报文进行解封装,在本地局域网进行二层转发。
下面我们以一个例子来介绍VXLAN二层转发的过程。如图1-4,三个服务器通过IP网络使用VXLAN进行二层互联,使用的VXLAN VNI为100。
图1-4 VXLAN二层转发拓扑示意图
以Server A向Server B发送ARP请求,Server B回复ARP应答过程为例,说明VXLAN的报文转发过程。
说明
本章节中提到的Next Hop MAC和Last Hop MAC指的是Underlay网络传输的下一跳和上一跳MAC地址,Next Hop MAC和Last Hop MAC在不同图例中取值不同。
图1-5 静态VXLAN隧道中Server A向Server B发送ARP请求
(1) Server A发送ARP请求,交换机VTEP1收到报文ARP请求的广播报文,由于报文是广播报文,所以需要通过隧道进行泛洪,封装成2份单播报文分别通过隧道发送到VTEP2和VTEP3。
(2) IP核心网对单播VXLAN报文进行转发。
图1-6 VTEP3对VXLAN报文的解封装和地址学习
(3) VTEP3收到VXLAN报文,将该报文解封装成以太网报文并进行VXLAN地址学习(VNI为100,MAC地址为0000.0000.0001,VTEP IP地址为192.168.1.100),解封装后的报文广播泛洪至Server C。
图1-7 VTEP2对VXLAN报文的解封装和地址学习
(4) VTEP2收到VXLAN报文,将报文解封装成以太网报文,对以太网报文网进行地址学习(VNI为100,MAC地址为0000.0000.0001,VTEP IP地址为192.168.1.100)并转发,Server B收到ARP请求并应答。
图1-8 VTEP2查找地址表,交换机封装报文为单播VXLAN报文
(5) VTEP2收到Server B发送的ARP应答报文,查找地址表,得到出口目的为IP 192.168.1.100地址。交换机将报文封装成发往交换机192.168.1.100的单播VXLAN报文,外层源IP为192.168.2.100。
图1-9 VTEP1收到VXLAN报文,解封装并进行地址学习
(6) IP核心网对VXLAN报文进行转发
(7) VTEP1收到Server B的ARP应答VXLAN封装报文,将报文解封装成以太网报文,进行地址学习(VNI为100,MAC地址为0000.0000.0002,IP地址为192.168.2.100)和转发,Server A收到ARP应答。
说明
Server A获取到Server B的MAC地址后,将以单播的形式与Server B进行交互,其过程与Server B回复ARP应答过程类似,此处不再赘述。
2. VXLAN三层转发
如果要为VXLAN站点内的虚拟机提供三层业务,则需要在网络中部署VXLAN网关,以便站点内的虚拟机通过VXLAN网关与外界网络或其他VXLAN网络内的虚拟机进行三层通信。VXLAN的网关类型分为集中式网关和分布式网关,具体介绍请参见1.2 VXLAN路由部署类型。本章节将以集中式网关介绍VXLAN三层转发过程。
说明
本章节中提到的NH MAC(Next Hop MAC,下一跳MAC地址)指的是Underlay网络传输的下一跳MAC地址,NH MAC在不同图例中取值不同。
? VXLAN内不同VNI用户之间的三层转发
如图1-10所示,VTEP-1和VTEP-2负责VXLAN二层转发,VTEP-3作为VXLAN网关设备,负责路由转发。VTEP-1与VTEP-3建立1个VNI10隧道,VTEP-2与VTEP-3建立1个VNI20隧道。
VTEP之间已经通过EVPN完成MAC和ARP信息同步。各设备已有的ARP和MAC表项请参考表1-1、表1-2和表1-3。
设备 | VNI | 隧道 | SIP | DIP | 设备 | VNI | 隧道 | SIP | DIP |
VTEP-1 | 10 | Tunnel3 | IP-1 | IP-3 | VTEP-3 | 10 | Tunnel1 | IP-3 | IP-1 |
VTEP-2 | 20 | Tunnel3 | IP-2 | IP-3 | VTEP-3 | 20 | Tunnel2 | IP-3 | IP-2 |
设备 | MAC | VNI | Destination | 设备 | MAC | VNI | Destination |
VTEP-1 | MAC-a | 10 | Port1 | VTEP-2 | MAC-b | 20 | Port2 |
VTEP-1 | MAC-3 | 10 | Remote IP-3 | VTEP-2 | MAC-3 | 20 | Remote IP-3 |
IP | VNI | 下一跳 | MAC | IP | VNI | 下一跳 | MAC |
IP-a | 10 | Remote IP-1 | MAC-a | IP-b | 20 | Remote IP-2 | MAC-b |
VM-a与VM-b进行通信的过程如下:
图1-10 VM-a请求网关MAC地址
a 由于VM-a和VM-b属于不同网段,VM-a通过广播ARP报文请求网关IP-3的MAC地址。
b VTEP-1收到来自VM-a的ARP报文,封装VXLAN头(VNI 10)后通过隧道发送到VTEP-3。
c VTEP-3对报文进行解封装,发现是VM-a通过ARP请求自身的MAC地址,因此回复ARP应答报文,报文中携带IP-3的MAC地址MAC-3,封装VXLAN(VNI 10)后发往VTEP-1。
d VTEP-1收到封装为VXLAN(VNI 10)报文的ARP报文,解封装后根据MAC表项发往VM-a。
图1-11 VXLAN内虚拟机间ICMP请求转发
e VM-a学习到ARP信息后,向VM-b发送ICMP报文。因为二者是跨网段通信,所以报文的目的MAC为网关VTEP-3的MAC-3。
f ICMP请求报文到达VTEP-1,进行二层地址表查找,匹配地址表MAC-3+VNI10+出口为远端隧道IP-3,则VTEP-1对报文进行VXLAN封装发往VTEP-3,内层报文不变,外层目的MAC为路由表中目的为IP-3的下一跳MAC地址。
g VTEP-3收到VXLAN封装报文,进行VXLAN解封装,得到内层报文。
h VTEP-3是网关设备,解封装后的内层报文触发三层转发,匹配路由表出口为远端隧道IP-2。则VTEP-3进行路由VXLAN封装转发,内层报文目的MAC替换成MAC-b,外层VNI为VNI10。
i VXLAN封装报文到达VTEP-2,进行VXLAN解封装,得到内层报文进行二层单播直接转发给VM-b。
图1-12 VXLAN内虚拟机间ICMP应答转发
j VM-b收到ICMP请求报文,判断是发给本端的,则进行ICMP应答,发出ICMP应答报文。
k ICMP应答报文达到VTEP-2,进行二层单播VXLAN封装转发。
l VTEP-3收到VXLAN封装报文,进行VXLAN解封装,得到内层报文。
m VTEP-3是网关设备,解封装后的内层报文触发三层转发,匹配路由表出口是远端隧道IP-1,进行路由VXLAN封装转发,内层报文目的MAC替换为MAC-a,外层VNI为VNI10。
n VXLAN封装报文达到VTEP-1,进行VXLAN解封装,得到内层报文进行二层单播直接转发给VM-a。VM-a收到报文后,判断是给本端的,则显示ping通。
? VXLAN内用户和VXLAN外用户的通信
VXLAN内部用户与VXLAN外部用户通讯需要通过VXLAN网关设备,外部的Underlay网络通过VXLAN网关与虚拟化Overlay网络相连。VXLAN网关的Overlay路由表中导入Underlay网络路由表,使得在VTEP间通过Overlay网络进行通信转发。VXLAN内部用户和VXLAN外部用户通讯过程与VXLAN内三层通讯过程相似,差别在于VXLAN网关在收到内部对外通讯流量时,是往Internet转发,故此处不再对转发过程赘述。
1.2 VXLAN路由部署类型
当前VXLAN路由主要有两种部署形式,一种是面向小规模的数据中心的集中式VXLAN网关部署,另一种是面向大规模的数据中心的分布式VXLAN网关部署。
1.2.1 集中式网关
如图1-13所示,VXLAN网关均集中部署在核心设备,跨VNI的流量都必须经过核心设备的VXLAN网关转发。核心设备需要学习拓扑中所有虚拟机的MAC地址和ARP信息。所有接入设备只进行VXLAN二层转发,不进行VXLAN流量的跨VNI转发。
● 优点:跨子网流量集中管理,便于管理员对跨子网流量进行监控和配置安全策略。
● 缺点:同网关下的跨子网通讯存在绕行,核心网关存在转发性能瓶颈;核心网关需要学习所有虚机的MAC地址和ARP表项,存在MAC地址表项和ARP表项容量瓶颈。
● 场景:适合小规模的数据中心。
图1-13 集中式网关流量走向图
1.2.2 分布式网关
如所示,布式网关部署方式中,每台VTEP都是本地直连虚拟机的网关,因此跨VNI的流量无需在集中式网关处绕行。这种方式既可以保证路径最优,又可以缓解集中式网关设备流量转发的压力。分布式网关部署方式分为非对称网关和对称网关。
图1-14 分布式网关流量走向图
1. 分布式非对称网关
数据报文在跨VNI转发过程中只在入口VTEP查找路由,并根据目的端主机所属的VNI进行封装转发。每个VTEP配置VXLAN网络中所有VNI,以保证VXLAN网络中所有VNI之间相互可达。如图1-15所示,VTEP 1下没有VNI B的主机,但是为了保证Host 1能与Host 2进行三层通信,VTEP 1下也需要创建VNI B。同理,如图1-16VTEP 2下也需要创建 VNI A。VTEP同时做VXLAN桥和VXLAN路由转发,VTEP需要学习所有VNI下的终端主机ARP和地址表项,包括不在本地的终端主机,所以分布式非对称网关的拓展性不佳。
● 优点:非对称网关组网在转发报文时路径是最优的,并支持虚拟机的无缝迁移。
● 缺点:VTEP需要配置本地网络中不存在的VNI信息,需要学习非本地终端主机的MAC地址和ARP信息,扩展性不佳。
● 场景:适合中小型数据中心。
图1-15 分布式非对称网关发送流量
图1-16 分布式非对称网关应答流量
2. 分布式对称网关
分布式对称网关引入了一个L3VNI的概念,L3VNI负责VTEP所有三层流量的转发。如图1-17所示,虚拟机的三层流量会在直接连接的VTEP上触发一次三层转发,然后封装成VXLAN报文到达对端VTEP后解封装再次触发三层转发,相比非对称网关,在整体上看起来是对称的,因此称之为VXLAN对称网关。
部署分布式对称网关时,如果同一个VNI转发,则在入口VTEP上做VXLAN二层转发;如果是跨网段的通信,在入口VTEP路由到L3VNI,再在目的VTEP设备上根据内层IP路由到终端。这种模式下,入口的VTEP不需要配置目的端设备的VNI信息,因此不需要学习远端终端的MAC和ARP信息,减少了MAC地址表和ARP邻接表的消耗。
● 优点:转发报文时路径是最优的,减轻了VTEP设备的MAC地址表容量压力,具备更好的扩展性。
● 缺点:虚拟机的无缝迁移因VTEP单边部署VNI会受到一定限制。
● 场景:适用于中大型数据中心。
图1-17 分布式对称网关流量走向图
1.3 VXLAN典型组网应用
VXLAN的典型组网应用及在锐捷设备上的配置指南请进入锐捷文档中心,选择交换机或者路由器分类,选择对应产品型号后,打开配置调测中的配置指南,进入“数据中心配置指南-VXLAN配置-典型配置举例章节”进行阅读。
相关链接
相关标签:
点赞
更多技术博文
-
全调度以太网(GSE),中国智算网络新标准
GSE网络作为一种全调度以太网技术,专为大规模AI训练集群设计,通过按需调度实现无损性能,提供灵活快速的部署方案,构建开放生态,显著提升智算效率和运维体验。
-
#知识百科
-
-
以太和PON,谁能更好地支撑办公室横向流量业务?
了解以太彩光与PON的区别,解析办公资源共享难题,锐捷极简以太彩光方案助您高效适配办公网,共享打印无压力!
-
#交换机
-
-
场景无线 驱动高效办公!锐捷新一代企业无线办公解决方案全新发布!
面对企业数智化转型中的无线办公网络挑战,锐捷新一代企业无线办公解决方案通过全场景AP、智能调度与云端智能运维等技术,实现网络性能、用户体验与运维效率的全面提升。
-
#无线网
-
#办公网
-
-
以太彩光和PON,运维管理谁技高一筹?
锐捷网络提供极简以太全光方案,简化配置流程,降低学习成本,让全光网络升级更平滑。
-
#交换机
-