《重识云原生系列》专题索引:
- 第一章——不谋全局不足以谋一域
- 第二章计算第1节——计算虚拟化技术总述
- 第二章计算第2节——主流虚拟化技术之VMare ESXi
- 第二章计算第3节——主流虚拟化技术之Xen
- 第二章计算第4节——主流虚拟化技术之KVM
- 第二章计算第5节——商用云主机方案
- 第二章计算第6节——裸金属方案
- 第三章云存储第1节——分布式云存储总述
- 第三章云存储第2节——SPDK方案综述
- 第三章云存储第3节——Ceph统一存储方案
- 第三章云存储第4节——OpenStack Swift 对象存储方案
- 第三章云存储第5节——商用分布式云存储方案
- 第四章云网络第一节——云网络技术发展简述
- 第四章云网络4.2节——相关基础知识准备
- 第四章云网络4.3节——重要网络协议
- 第四章云网络4.3.1节——路由技术简述
- 第四章云网络4.3.2节——VLAN技术
- 第四章云网络4.3.3节——RIP协议
- 第四章云网络4.3.4节——OSPF协议
- 第四章云网络4.3.4.3节——OSPF协议工作原理
- 第四章云网络4.3.4.4节——[转载]OSPF域内路由
- 第四章云网络4.3.4.5节——[转载]OSPF外部路由
- 第四章云网络4.3.4.6节——[转载]OSPF特殊区域之Stub和Totally Stub区域详解及配置
- 第四章云网络4.3.4.7节——[转载]OSPF特殊区域之NSSA和Totally NSSA详解及配置
- 第四章云网络4.3.5节——EIGRP协议
- 第四章云网络4.3.6节——IS-IS协议
- 第四章云网络4.3.7节——BGP协议
- 第四章云网络4.3.7.2节——BGP协议概述
- 第四章云网络4.3.7.3节——BGP协议实现原理
- 第四章云网络4.3.7.4节——高级特性
- 第四章云网络4.3.7.5节——实操
- 第四章云网络4.3.7.6节——MP-BGP协议
- 第四章云网络4.3.8节——策略路由
- 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
- 第四章云网络4.3.10节——VXLAN技术
- 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
- 第四章云网络4.3.10.3节——VXLAN隧道机制
- 第四章云网络4.3.10.4节——VXLAN报文转发过程
- 第四章云网络4.3.10.5节——VXlan组网架构
- 第四章云网络4.3.10.6节——VXLAN应用部署方案
- 第四章云网络4.4节——Spine-Leaf网络架构
- 第四章云网络4.5节——大二层网络
- 第四章云网络4.6节——Underlay 和 Overlay概念
- 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
- 第四章云网络4.7.2节——virtio网络半虚拟化简介
- 第四章云网络4.7.3节——Vhost-net方案
- 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
- 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
- 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
- 第四章云网络4.7.8节——SR-IOV方案
- 第四章云网络4.7.9节——NFV
- 第四章云网络4.8.1节——SDN总述
- 第四章云网络4.8.2.1节——OpenFlow概述
- 第四章云网络4.8.2.2节——OpenFlow协议详解
- 第四章云网络4.8.2.3节——OpenFlow运行机制
- 第四章云网络4.8.3.1节——Open vSwitch简介
- 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
- 第四章云网络4.8.4节——OpenStack与SDN的集成
- 第四章云网络4.8.5节——OpenDayLight
- 第四章云网络4.8.6节——Dragonflow
-
第四章云网络4.9.1节——网络卸载加速技术综述
-
第四章云网络4.9.2节——传统网络卸载技术
-
第四章云网络4.9.3.1节——DPDK技术综述
-
第四章云网络4.9.3.2节——DPDK原理详解
-
第四章云网络4.9.4.1节——智能网卡SmartNIC方案综述
-
第四章云网络4.9.4.2节——智能网卡实现
-
《云原生进阶之容器》专题第六章容器6.1.1节——容器综述
-
【云原生进阶之PaaS中间件】第一章Redis-1.1简介
-
【云原生进阶之PaaS中间件】第二章Zookeeper-1-综述
-
【云原生进阶之PaaS中间件】第三章Kafka-1-综述
-
【云原生进阶之PaaS中间件】第四章RabbitMQ-1-简介及工作模式
-
【云原生进阶之数据库技术】第一章MySQL-1-基础概述
-
【云原生进阶之数据库技术】第二章-Oracle-1-简介
-
【云原生进阶之数据库技术】第三章-PostgreSQL-1-综述
《云原生进阶之容器》专题索引:
-
第一章Docker核心技术1.1节——Docker综述
-
第一章Docker核心技术1.2节——Linux容器LXC
-
第一章Docker核心技术1.3节——命名空间Namespace
-
第一章Docker核心技术1.4节——chroot技术
-
第一章Docker核心技术1.5.1节——cgroup综述
-
第一章Docker核心技术1.5.2节——cgroups原理剖析
-
第一章Docker核心技术1.5.3节——cgroups数据结构剖析
-
第一章Docker核心技术1.5.4节——cgroups使用
-
第一章Docker核心技术1.6节——UnionFS
-
第一章Docker核心技术1.7节——Docker镜像技术剖析
-
第一章Docker核心技术1.8节——DockerFile解析
-
第一章Docker核心技术1.9节——docker-compose容器编排
-
第一章Docker核心技术1.10节——Docker网络模型设计
-
第二章——Kubernetes概述
-
第二章Controller Manager原理剖析--2.1节Controller Manager综述
-
第二章Controller Manager原理2.2节--client-go剖析
-
第二章Controller Manager原理2.3节--Reflector分析
-
第二章Controller Manager原理2.4节--Informer机制剖析
-
第二章Controller Manager原理2.5节--DeltaFIFO剖析
-
第二章Controller Manager原理2.6节--Informer controller
-
第二章Controller Manager原理2.7节--Indexer剖析
-
第二章Controller Manager原理2.8节--Resync机制
-
第三章List-Watch机制3.1节-- List-Watch机制剖析
6 VXLAN应用部署方案
本篇我们以下图所示的典型的“Spine-Leaf”数据中心组网为例,给大家介绍一下VXLAN的应用场景和部署方案。
图6-1 Spine-Leaf架构数据中心组网示意图
在上图所示的数据中心里,企业用户拥有多个部门(部门1和部门2),每个部门中拥有多个VM(VM1和VM3,VM2和VM4)。同部门的VM属于同一个网段,不同部门的VM属于不同的网段。用户希望同一部门VM之间、不同部门VM之间,VM与Internet之间均可相互访问。
6.1 VXLAN网络的子网互通
6.1.1 相同子网互通
如图6-2所示,Leaf1和Leaf2作为VXLAN网络的VTEP,两个Leaf之间搭建VXLAN隧道,并在每个Leaf上部署VXLAN二层网关,即可实现同一部门VM之间的相互通信。此时Spine只作为VXLAN报文的转发节点,不感知VXLAN隧道的存在,可以是任意的三层网络设备。
图6-2 相同子网互通
6.1.2 不同子网互通(集中式网关)
如图6-3所示,Leaf1、Leaf2和Spine作为VXLAN网络的VTEP,Leaf1和Spine之间、Leaf2和Spine之间分别搭建VXLAN隧道,并在Spine上部署VXLAN三层网关,即可实现不同部门VM之间的相互通信。
图6-3 不同子网互通(集中式网关)
6.1.3 不同子网互通(分布式网关)
6.1.3.1 出现背景
细心的读者可能已经发现,在不同子网互通(集中式网关)中,同一Leaf(Leaf1)下挂的不同网段VM(VM1和VM2)之间的通信,都需要在Spine上进行绕行,这样就导致Leaf与Spine之间的链路上,存在冗余的报文,额外占用了大量的带宽。同时,Spine作为VXLAN三层网关时,所有通过三层转发的终端租户的表项都需要在该设备上生成。但是,Spine的表项规格有限,当终端租户的数量越来越多时,容易成为网络瓶颈。分布式网关的出现,很好的解决了这两个问题。
6.1.3.2 部署方案
- 同Leaf节点下不同部门VM之间的通信
如图6-4所示,Leaf1作为VXLAN网络的VTEP,在Leaf1上部署VXLAN三层网关,即可实现同Leaf下不同部门VM之间的相互通信。此时,VM1和VM2互访时,流量只需要在Leaf1节点进行转发,不再需要经过Spine节点,从而节约了大量的带宽资源。
- 跨Leaf节点不同部门VM之间的通信
如图6-4所示,Leaf1和Leaf2作为VXLAN网络的VTEP,在Leaf1和Leaf2上部署VXLAN三层网关。两个VXLAN三层网关之间通过BGP动态建立VXLAN隧道,并通过BGP的remote-nexthop属性发布本网关下挂的主机路由信息给其他BGP邻居,从而实现跨Leaf节点不同部门VM之间的相互通信。
图6-4 不同子网互通(分布式网关)
Leaf作为VXLAN三层网关时,只学习其下挂终端租户的表项,而不必像集中式三层网关一样,需要学习网络中所有终端租户的表项,从而解决了集中式三层网关带来表项瓶颈问题。
6.2 VXLAN网络的可靠性
随着网络的快速普及和应用的日益深入,基础网络的可靠性日益成为用户关注的焦点,如何能够保证网络传输不中断对于终端用户而言非常重要。
在VXLAN网络的子网互通中,VM与Leaf之间,Leaf与Spine之间都是通过单归方式接入的。这种组网接入方式,显然已经不能满足用户对VXLAN网络可靠性的需求。
这时,可以按照如下图所示全网状连接(Full Mesh)方式构建隧道,提升VXLAN网络的可靠性。
图6-5 Full Mesh隧道方案
6.2.1 接入层的可靠性方案设计
通常采用堆叠(CSS)方式提升接入层的可靠性。这是因为,接入层的设备数量繁多,堆叠方式可以将多台交换机设备组合在一起,虚拟化成一台交换设备,所有配置均在这一台虚拟交换机上进行,从而简化了接入层设备的运维复杂度。此外,堆叠系统内成员交换机之间在进行冗余备份的同时,能够利用跨设备的Eth-Trunk实现设备间链路的负载分担。
图6-6 接入层的可靠性
如图6-6所示,Leaf1和Leaf2组建为堆叠系统CSS-1,Leaf3和Leaf4组建为堆叠系统CSS-2,VM1~VM4均通过双归的方式接入到各自的CSS系统中。CSS-1和CSS-2作为VXLAN网络的VTEP,两个CSS之间搭建VXLAN隧道,并在每个CSS上部署VXLAN二层网关,从而实现同一部门VM之间的相互通信。
- 当CSS系统正常时,VM1与VM3之间互访的流量,通过CSS-1堆叠系统中的Leaf1和Leaf2进行负载分担转发。
- 当CSS系统故障时(Leaf1故障),VM1与VM3之间互访的流量,全部切换到CSS-1堆叠系统中的Leaf2进行转发,从而实现了流量的不间断,提升了接入层的可靠性。
6.2.2 核心层的可靠性方案设计
通常采用多活网关方式提升核心层的可靠性。这是因为,核心层设备物理位置较为分散,传统的设备级备份无法满足要求,必须通过协议级备份来实现。
在多活网关组网中,通过给多台Spine设备部署相同的网关信息,将它们对外模拟成VXLAN网络中的一个虚拟VTEP,然后在所有Spine设备上配置三层网关,使得无论流量发到哪一个Spine,该设备都可以提供服务,将报文正确转发给下一跳设备。此外,多活网关中的多台Spine之间形成负载分担关系,共同进行流量转发。
图6-7 核心层的可靠性设计
如图6-7所示,Spine1、Spine2分别与接入层的堆叠系统CSS-1和CSS-2之间建立VXLAN隧道,在Spine1、Spine2上配置VXLAN三层网关功能,Spine1、Spine2上部署相同的网关MAC地址、网关IP地址以及源VTEP地址,以便对外模拟成一个虚拟的VTEP,从而实现了不同网段VM之间、VM与外网之间的互通。
- 当多活网关系统正常时,VM1与VM4之间互访的流量、VM1与Internet之间互访的流量,通过Spine1和Spine2进行负载分担转发。
- 当多活网关系统故障时(Spine1故障),VM1与VM4之间互访的流量、VM1与Internet之间互访的流量,全部切换到Spine2进行转发,从而实现了流量的不间断,提升了核心层的可靠性。
6.3 VXLAN网络的部署方案
6.3.1 部署 VxLAN
VxLAN 是一种基于标准的技术,因此它不受特定供应商的限制,可以由硬件或软件支持。您可以通过 VxLAN 主机或 VxLAN 网关部署该技术,您可以将部署限制为一种方法或结合使用这两种方法。
6.3.1.1 基于主机的 VxLAN
VxLAN不需要部署在交换机上,也可以在任何主机上运行,只要它本身支持 VxLAN。比如管理程序,它可以配置为在其所有虚拟机上运行 VxLAN,运行 VTEP 功能的 vSwitch 在来自虚拟机的流量传到物理交换机之前对其进行封装。
由于 VxLAN 封装发生在主机上,因此网络基础设施的其余部分只能看到 IP 流量,基于主机部署的优势在于可以简化整个物理网络,其他可能支持 VxLAN 的主机示例包括服务器、防火墙、负载平衡器等。
6.3.1.2基于网关的 VxLAN
当主机不支持 VxLAN 时,最好的部署方式是直接在交换机或路由器上进行部署。
当交换机执行 VTEP 功能时,它被称为 VxLAN 网关,交换机可以执行 VxLAN 封装/解封装,还可以将 VLAN ID 转换为 VNI,VxLAN 网关创建通向目标 VTEP(主机或网关)的隧道,因此主机和 IP 基础设施不知道 VxLAN 的存在。
基于网关的部署的一个好处是某些平台(例如Cisco Nexus 9000-EX)能够在硬件上实施 VxLAN封装/解封装,直接从 ASIC 而不是从软件运行 VxLAN 可以显着提高性能。
6.3.1.3 混合部署
也可以将两者结合使用,混合部署是指将 VxLAN 与 VxLAN 网关后面的某些设备一起使用,并且还有一些主机运行本机 VxLAN。
6.3.2 以CE系列交换机为例的部署方案
CE系列交换机支持通过单机方式和控制器方式来部署VXLAN网络。这两种方式中VXLAN网络的子网互通以及VXLAN网络的可靠性的实现均与前面一致,不同点在于VXLAN的配置下发方式不同:单机方式是通过CLI手动在设备上进行配置,控制器方式是通过控制器向设备下发配置或流表,设备仅作为转发器。
下面以图6-8所示组网为例,简单介绍一下当前CE系列交换机支持的VXLAN控制器部署方式:SNC控制器方式和AC控制器方式。
图6-8 两种控制器部署方案
- SNC控制器方式
SNC控制器方式是指通过SNC控制器动态建立VXLAN隧道。
此方式下,CE系列交换机作为转发器,无需进行VXLAN配置。VXLAN隧道的创建以及指导报文转发的表项,均由SNC控制器通过OpenFlow协议向转发器下发。
- AC控制器方式
AC控制器方式是指通过AC控制器动态建立VXLAN隧道。
此方式下,CE系列交换机作为转发器,需要预先完成部分基础配置(具体配置内容请参考产品配置指南),AC控制器通过NETCONF协议向转发器下发建立VXLAN隧道的配置,通过OpenFlow协议控制报文在隧道中的转发。
6.4 VXLAN基本配置示例
基于SDN的VXLAN基本组网:
图6-9 VXLAN组网拓扑图
接口配置:
图6-10 基于SDN的VLXAN基本组网-接口配置
协议配置:
图6-11 基于SDN的VLXAN基本组网-协议配置
1. 配置控制器和转发器建立OpenFlow通信通道:
//SNC上配置:
openflow listening-ip 5.5.5.5 //配置SDN控制器侦听地址
fp-id 1 //配置转发器ID
type huawei-default //配置转发器的设备类,其中huawei-default表示转发器是华为设备;
//ovs-default表示转发器是OVS(openvswitch)设备
version default //配置转发器的版本是default
role default //配置转发器的角色是default
openflow controller //配置控制器与转发器之间的通信通道,采用OpenFlow连
//接并进入OpenFlow视图
peer-address 1.1.1.1
//指定转发器FP1的Loopback1地址
//FP1配置
controller-ip 5.5.5.5
//指定控制器的Loopback地址,并进入Controller视图
openflow agent
//配置转发器与控制器之间的通信通道采用OpenFlow连接
//并进入OpenFlow Agent视图
transport-address 1.1.1.1
//配置OpenFlow连接的本端地址
2.配置业务接入点实现区分业务流量:
//在控制器上配置FP1
switch fp 1 //进入fp1视图下,1是fp的ID,这里假设fp id是1。
bridge-domain 10
//创建广播域BD,可以看成是一个虚拟交换机。
interface vserviceif 1:1
//创建vServiceIf接口,并进入vServiceIf接口视图,
//vServiceIF接口是一个逻辑的VXLAN接口。用于和bridge-domain关联,将流量引入到广播域。
binding interface GE0/0/2
//为vService接口绑定物理接口。
interface vserviceif 1:1.1 mode l2
//创建vServiceif接口子接口,并进入子接口视图。
//子接口作用是为了匹配带VLAN的报文,进而报文进入桥域。
encapsulation dot1q vid 10
//配置二层vServiceIf子接口的流封装类型,允许接
//口接收携带一层VLAN Tag是10的报文。
rewrite pop single
//配置二层vServiceIf子接口的流动作是pop,对接收的报文进行剥除VLAN Tag操作。
//这样可以实现不同VLAN的租户在相同VXLAN下可以互访。
3.配置VXLAN隧道转发业务流量:
//在控制器上配置FP1
bridge-domain 10
//创建VXLAN网络标识VNI并关联广播域BD,将VNI以1:1方式映射到BD,
//通过BD转发流量。此命令相当于将VXLAN隧道和bridgedomain(虚拟交换机)关联起来。
VXLAN vni 10
interface nve 1:1
//创建NVE接口,并进入NVE接口视图。
source 1.1.1.1
//配置源端VTEP的IP地址。
vni 10 head-end peer-list 3.3.3.3
//配置头端复制列表。通过头端复制列表,源端NVE接口将收到的
//BUM(Broadcast&Unknown-unicast&Multicast)报文,根据
VTEP列表进行复制并发送给属于同一个VNI的所有VTEP。
参考链接
VXLAN介绍_魏言华的博客-****博客_vxlan
VXLAN基本概述_曹世宏的博客的博客-****博客_vxlan
两种Overlay技术:NVGRE和VXLAN - 知乎
解读VXLAN_佳的技术博客_51CTO博客
什么是 VxLAN ?它的优点有哪些? - 知乎
深度:什么是VxLAN?
关于VLAN和VXLAN的理解_octopusflying的博客-****博客_vlan vxlan
VXlan 技术实现原理_轻飘风扬的博客-****博客_vxlan原理
最好的vxlan介绍
VXLAN:云时代的虚拟化数据中心网络
VXlan 技术实现原理
华为HedEx文档