摘要:为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生。
1 概述
传统数据中心网络面临的问题
- 虚拟机规模受设备表项规格限制
在传统二层网络中,交换机通过查询MAC地址表来转发数据帧,虚拟机的数量受限于MAC地址表的容量。
服务器虚拟化后,VM的数量比原有的物理机发生了数量级的增长,而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。
- 网络隔离能力限制
VLAN Tag只有12bit。对于大型虚拟化云计算服务的场景而言,VLAN的隔离能力无法满足。
传统二层网络中的VLAN无法满足网络动态调整的需求。
- 虚拟机迁移范围受限
虚拟机迁移必须发生在一个二层网络中。
传统的二层网络将虚拟机迁移限制在了一个较小的局部范围内。
VXLAN简介
- VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)在本质上属于一种***技术,能够在任意路由可达的网络上叠加二层虚拟网络,通过VXLAN网关实现VXLAN网络内部的互通,同时,也可以实现与传统的非VXLAN网络的互通。
- VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,中间的传输网络无需关注虚拟机的MAC地址,且路由网络无网络结构限制,具备大规模扩展能力。通过路由网络,虚拟机迁移不受网络架构限制。
VXLAN在数据中心的应用
服务器虚拟化技术的广泛部署,极大地增加了数据中心的计算密度;同时,为了实现业务的灵活变更,虚拟机VM(Virtual Machine)需要能够在网络中不受限迁移,这给传统的“二层+三层”数据中心网络带来了新的挑战。为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生,其能够很好地解决如下问题:
-
针对虚拟机规模受设备表项规格限制
- 服务器虚拟化后,VM的数量比原有的物理机发生了数量级的增长,而接入侧二层设备的MAC地址表规格较小,无法满足快速增长的VM数量。
- VXLAN将管理员规划的同一区域内的VM发出的原始报文封装成新的UDP报文,并使用物理网络的IP和MAC地址作为外层头,这样报文对网络中的其他设备只表现为封装后的参数。因此,极大降低了大二层网络对MAC地址规格的需求。
-
针对网络隔离能力限制
- VLAN作为当前主流的网络隔离技术,在标准定义中只有12bit,因此可用的VLAN数量仅4096个。对于公有云或其它大型虚拟化云计算服务这种动辄上万甚至更多租户的场景而言,VLAN的隔离能力无法满足。
- VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,有效地解决了云计算中海量租户隔离的问题。
-
虚拟机迁移范围受限
- 虚拟机迁移是指将虚拟机从一个物理机迁移到另一个物理机。为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址保持不变,这就要求虚拟机迁移必须发生在一个二层网络中。而传统的二层网络,将虚拟机迁移限制在了一个较小的局部范围内。
- VXLAN将VM发出的原始报文进行封装后通过VXLAN隧道进行传输,隧道两端的VM不需感知传输网络的物理架构。这样,对于具有同一网段IP地址的VM而言,即使其物理位置不在同一个二层网络中,但从逻辑上看,相当于处于同一个二层域。即VXLAN技术在三层网络之上,构建出了一个虚拟的大二层网络,只要虚拟机路由可达,就可以将其规划到同一个大二层网络中。这就解决了虚拟机迁移范围受限问题。
在园区网络中使用VXLAN实现“一网多用”
- 通过引入虚拟化技术,在园区网络中基于一张物理网络创建多张虚拟网络(VN,Virtual Network)。不同的虚拟网络应用于不同的业务,例如办公、研发或物联网等。
- 通过iMaster NCE(华为园区网络SDN控制器)实现全网设备集中管理,管理员通过图形化界面实现网络配置。
- iMaster NCE将管理员的网络业务配置意图“翻译”成设备命令,通过NETCONF协议将配置下发到各台设备,实现网络的自动驾驶。
2 VXLAN的基本概念
VXLAN的报文格式
NVE(Network Virtualization Edge,网络虚拟边缘)
NVE是实现网络虚拟化功能的网络实体,可以是硬件交换机也可以是软件交换机。NVE在三层网络上构建二层虚拟网络,是运行VXLAN的设备。图中SW1和SW2都是NVE。
VTEP(VXLAN Tunnel Endpoints, VXLAN隧道端点)
- VTEP是VXLAN隧道端点,位于NVE中,用于VXLAN报文的封装和解封装。
- VXLAN报文(的外层IP头部)中源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址。
- 一对VTEP地址就对应着一条VXLAN隧道。
- 在源端封装报文后通过隧道向目的端VTEP发送封装报文,目的端VTEP对接收到的封装报文进行解封装。
- 通常情况下使用设备的Loopback接口地址作为VTEP地址。
VNI(VXLAN Network Identifier,VXLAN网络标识)
- 类似VLAN ID,用于区分VXLAN段。不同VXLAN段的虚拟机不能直接二层相互通信。
- 一个租户可以有一个或多个VNI,VNI长度为24bit。
BD(Bridge Domain)
- 类似传统网络中采用VLAN划分广播域,在VXLAN网络中一个BD就标识一个大二层广播域。
- VNI以1:1方式映射到广播域BD,同一个BD内的终端可以进行二层互通。
VAP(Virtual Access Point,虚拟接入点)
实现VXLAN的业务接入。VAP有两种配置方式,二层子接口方式或者VLAN绑定方式:
- 二层子接口方式接入,例如本例在SW1创建二层子接口关联BD 10,表示仅这个接口下的特定流量注入到BD 10。
- VLAN绑定方式接入,例如本例在SW2配置VLAN 10与广播域BD 10关联,表示所有VLAN10的流量注入到BD 10。
3 VXLAN二层网关、三层网关
二层(L2)网关:实现流量进入VXLAN虚拟网络,也可用于同一VXLAN虚拟网络的同子网通信。例如下图中的Edge1和Edge2。
三层(L3)网关:用于VXLAN虚拟网络的跨子网通信以及外部网络(非VXLAN网络)的访问。例如下图中的Border。
4 VBDIF
- 类似于传统网络中采用VLANIF解决不同广播域互通的方法,在VXLAN中引入了VBDIF的概念。
- VBDIF接口在VXLAN三层网关上配置,是基于BD创建的三层逻辑接口。
- 通过VBDIF接口配置IP地址可实现不同网段的VXLAN间,及VXLAN和非VXLAN的通信,也可实现二层网络接入三层网络。
5 分布式与集中式网关
集中式网关
L3网关部署在一台设备上。所有跨子网的流量都通过网关转发,实现流量的集中管理。
优点:跨子网流量集中管理,简化网关部署和管理。
缺点:转发路径并非最优。
分布式网关
L3网关部署在多台设备上,VTEP节点既是L2网关,又是L3网关。
优点:跨子网流量转发路径更优。
缺点:网关部署、故障定位及网络运维相对集中式网关复杂。VTEP节点之间需交互及维护主机路由。
6 VXLAN隧道的建立方式
VXLAN隧道由一对VTEP IP地址确定,报文在VTEP设备进行封装之后在VXLAN隧道中依靠路由进行传输。在进行VXLAN隧道的配置之后,只要VXLAN隧道的两端VTEP IP是三层路由可达的,VXLAN隧道就可以建立成功。
静态VXLAN:隧道建立
VXLAN隧道由一对VTEP IP地址确定;静态VXLAN隧道的创建通过手工配置本端和远端的VNI、VTEP IP地址来完成,只要VXLAN隧道的两端VTEP IP是三层路由可达的,VXLAN隧道就可以建立成功。
使用BGP E***作为控制面协议
最初的VXLAN方案(RFC 7348)中没有定义控制平面,即用户需手工配置VXLAN隧道,然后通过流量泛洪的方式学习主机地址,这种方式会导致网络中存在很多泛洪流量,并且网络扩展起来困难。
为了解决上述问题,VXLAN引入了E***(Ethernet Virtual Private Network,以太网虚拟专用网)作为VXLAN的控制平面。E***可视为BGP协议的一种扩展,定义了几种新的路由类型来实现VTEP的自动发现、主机地址学习等。
7 VXLAN在CloudCampus解决方案中的典型应用
需求
Fabric需求:
- 基于物理网络构建一个Fabric。
- 采用分布式网关方案。
VN需求:
- 创建2个VN,分别为办公(OA)及研发(RD)。
- 缺省时,2个VN完全隔离,VN内可实现同子网、跨子网互访。
- 2个VN均可访问FW所上联的外部网络。
- 2个VN内的终端均可通过DHCP Server获取IP地址。
Fabric管理
Fabric创建及配置:
- 用户根据业务需求,将物理设备(核心交换机、汇聚交换机及接入交换机)添加到Fabric中。
- 用户指定交换机的角色:Border节点及Edge节点。
- iMaster NCE自动将Border指定为RR,优化网络逻辑架构、BGP对等体关系模型。
- 用户预定义2个“外部网络”,用于供2个VN到达外部网络。
- 用户定义1个“网络服务资源”,用于后续终端通过该资源(中的DHCP Server)获取IP地址。
Fabric及Underlay网络自动化部署:
- iMaster NCE根据已发现的物理网络拓扑,结合用户所定义的Fabric网络,自动进行网络编排(用户可选择OSPF多区域或单区域,是否针对OSPF报文进行认证等)。
- iMaster NCE根据网络编排结果将Underlay网络配置自动下发到设备,使得设备之间IP可达。完成本步骤后,交换机便自动获得互联IP地址、VLAN配置,以及OSPF配置,交换机之间实现了路由可达。
- iMaster NCE将Fabric配置自动下发到设备,设备之间建立BGP E***对等体关系,完成控制面的准备工作。
VN管理
创建VN:
- 用户分别创建OA及RD虚拟网络,指定虚拟网络的IP网段/VLAN、网关地址、所关联的外部网络及网络服务资源,以及终端接入点位。
- iMaster NCE将用户意图翻译成配置下发到网络设备上。
VXLAN隧道自动建立
- BGP E***将用于建立VXLAN隧道的相关信息在对等体之间通告。
- 设备之间建立VXLAN隧道,为后续的数据转发做准备。
终端获取地址
- 销售员工A接入网络,首先完成用户认证,认证成功后,认证点Edge1获得该用户的授权结果,将用户划分到对应VLAN。
- A发起DHCP请求,该请求到达网关设备Edge1后,后者将DHCP请求进行中继,中继报文通过VXLAN隧道转发给Border。
- Border将VXLAN解封装,并将DHCP中继报文转发给DHCP Server。
- DHCP Server为A分配IP地址。
相同VN内的同子网互访
- 销售员工A与B通过准入认证,接入园区网络。
- 以销售员工B为例,Edge2将其MAC地址通过BGP更新报文通告给Border,后者将其反射给Edge1。
- Edge1学习到MAC地址0000.0002。
- 当A发送数据给B时,流量到达Edge1后,Edge1将其执行VXLAN封装,然后转发到Edge2。后者VXLAN解封装后送达目的地。
相同VN内的跨子网互访
- 销售员工C通过准入认证,接入园区网络。
- Edge2将其主机路由通过BGP更新报文通告给Border,后者将其反射给Edge1。
- Edge1学习到1.20.1/32路由,路由下一跳为2.2.2.2,出接口为VXLAN隧道接口。
- 当A发送数据给C时,流量到达Edge1后,Edge1将其执行VXLAN封装,然后转发到Edge2。后者VXLAN解封装后送达目的地。
访问外部网络
- 当用户将外部网络(目的网段为2.3.0/24)关联到OA虚拟网络后,iMaster NCE会将路由信息下发至Border,并由Border将上述外部路由重分发到BGP,通告给Edge1和Edge2。
- 当A发送数据到2.3.0/24时,流量送达Edge1后,由其进行VXLAN封装,然后送至Border,后者将VXLAN解封装,然后将IP报文转发给FW。
本文分享自华为云社区《新HCIE知识点:VXLAN与园区网络虚拟化》,原文作者:迷图小书童 。