【摘要】 传统的三层数据中心,置身虚拟机化的浪潮中,其中变革创新,就在此篇文章中一窥究竟吧。
传统数据中心三层组网架构
政府部门或者金融机构等大型企业的数据中心中服务器的规模可能会达到2000台以上。一般情况下,数据中心网络都会进行服务器的分区管理,单个业务分区规模不大,此时可以采用下图所示的标准三层架构。
在这种组网方式中,核心层是整个数据中心网络的枢纽,核心设备通常部署2-4台大容量高端框式交换机,可以是独立部署,也可以通过CSS、iStack虚拟化技术后成组部署。分区内的汇聚层和接入层通过传统CSS、iStack、xSTP等技术实现二层破环,也可在汇聚层和接入层应用纵向虚拟化技术(如SVF)实现接入层的简单管理及节点扩展。
为什么采用这种架构,因为架构成熟(废话),二三层网络技术成熟,部署成熟,也符合数据中心分区份模块的特点,总体来说,是运行了多年的成熟实惠大礼包,买不到吃亏,买不到上当。
挑战来了
随着20年代初的渐渐远去,网络人可以满意的回想,他们已经搞定了网络协议的大部分问题。
凡是能被组件化的,能被分布式的,能被备份的、升级的、安全加固的,从不间断转发(NSF)到不间断路由(NSR)最后到不间断服务(NSS),被性能优化的(各种FRR),被组网的(局域,广域)。路由(RIP,OSPF,ISIS,BGP)不行加标签(MPLS),标签不行加VPN成隧道(GRE,TE,VPLS, VPWS),凡是能做的都做到了,整个网络丁丁当当,忙忙碌碌。提了一堆普遍重要神气的国际标准,RFC写的整整齐齐。当整个三层协议几个人就可以维护的时候,网络人已经觉得除了硬件更强以外,没多少事可以干了。
辩证思维教育告诉我们,完美事物是不存在的。虚拟技术就像那只蝴蝶的翅膀,悄悄的扇了一下,数据中心的三层组网架构就轰然倒塌了。
虚拟技术把一台服务器虚化成了多台逻辑服务器,每个VM都可以独立运行,有自己的OS、APP,当前也有自己独立的MAC地址和IP地址,它们通过服务器内部的虚拟交换机(vSwitch)与外部实体网络连接。
对于虚拟技术,数据中心怎么看也只是个吃瓜群众,吃着吃着,啊~,发现自己是瓜。
这是因为虚拟技术有个伴生的需求:虚拟机动态迁移。就是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一个物理服务器移动到另一个物理服务器的过程。大白话就是动态迁移就是虚拟机搬家(不是同一个物理机),搬家的时候,需要最终用户对搬家无感,虚拟机继续正常的干活,离岗不离职,真正的全天时全天候无休为用户服务。管理员能够在不影响用户正常使用的情况下,灵活调配服务器资源,或者对物理服务器进行维修和升级。
为了保证迁移时业务不中断,就要求在迁移时,不仅虚拟机的IP地址不变,而且虚拟机的运行状态也必须保持原状(例如TCP会话状态),所以虚拟机的动态迁移只能在同一个二层域中进行,而不能跨二层域迁移。虚拟机心想我可不是小灵通的命,要跨AZ,要跨Region,要冰激凌,要人民币,要走向真正移动的星辰大海。
大二层网络面临的问题
既然要走向星辰大海,那就把自己的地盘扩大成大海。把所有服务器都纳入一个二层网络(大于10000台以上)。纳入之前,我们先分析一下大二层网络的要求点:由于虚拟机迁移这个直接需求必须要求虚拟机在迁移前后保持IP地址不变,那么所有服务器必须要通过一个二层网络进行连接。那么这个二层网络有什么要求呢?
1:大,在一个数据中心服务器数量动辄上万甚至十万级别的今天,可以想象,我们需要一个足够大的二层网络来连接数量巨大的服务器。
2:快,服务器数量的增加导致业务吞吐量增加,东西向流量增加,要求网络中每个节点都能提供线速转发的能力,并且网络中的链路必须尽可能的都利用起来,保证数据中心的网络带宽,数据的转发最好是能通过一条最短的路径来进行。
先看看传统的VLAN+xSTP二层技术不能把所有服务器都划到同一个二层域。为了提供网络的可靠性,一般会采用设备冗余和链路冗余,传统架构由于成熟有加,财大气粗,往往是两种措施都采用。结果就是环路(图中蓝色圈,红色圈)无处不在。二层网络处于一个广播域下,又没有TTL,无限循环之下,就会形成广播风暴,瞬间导致端口阻塞和设备瘫痪。
VLAN通过划分VLAN来缩小广播域的规模来减小环路,STP(各种STP家族,俗称xSTP)主要是切断备份数据转发减少环路,两者结合,对于小二层(主机数量不超过1K)够用了。但是大二层中,VLAN是缩小网络,天生就和扩大网络相克。xSTP的节点过多,网络收敛性能会成指数级下降,成为扩大网络的瓶颈。
总体来说,传统三层网络架构不支持大二层网络,大二层网络路在何方?
如何实现大二层网络
在最近十来年,很多人提出了大二层的网络解决方案,基本上都是围绕着怎么解决环路,总结归纳一下,总体有三个不同的思路
- 化繁为简
- 坐二学三
- Overlay
化繁为简
产生环路的原因是冗余链路和冗余设备,树形结构是没有环路的。那么有没有什么办法在设备、链路冗余的基础上又保持树型网络的结构呢? 这样既能保证可靠性,又天然无环。基于这样的设想,简单粗暴、直接有效的网络设备虚拟化技术出现了。
TOR套餐模式:通过网络设备虚拟化(多虚一)和链路聚合技术,简化管理和物理配置,提高带宽利用率,快速故障收敛和方便扩容。
EOR套餐模式:SVF,将不同网络层次、不同类型的交换机多虚一,通过纵向整合,网络简化效果也非常明显,结构更加简明清晰。
缺点也很明显:堆叠扩展性是有限度的,协议是厂家私有的。
坐二学三
仔细研究大二层网络的特点,总结的需求是:需要一个能支持足够多的设备,天生没有环路,并且链路利用率很高的协议,来部署在我们这个大二层网络中。有没有感觉,我们好像在哪儿见过,你记得吗,记得那是一个夏天盛开如花。不是,错了,是路由!具体点,内部网关协议不就是干这个事情的吗?
套餐模式:TRILL(ISIS亲妈设计)/SPB基本都是采用ISIS作为其控制屏幕协议进行拓扑学习计算,用MAC-in-MAC在区域内进行报文传输。
这两个协议的详细技术可以在后续专门讲一下,在这就不展开介绍了。
缺点:关于TRILL和SPB,不同的厂商有这各自的支持,还在分派中。但是有一点是明确的,这些技术的部署和实施都是在网络设备上进行的,与服务器等IT设施无关,CT厂家全程Cover,IT厂商只是个看客。
Overlay
如果TRILL/SPB是学习三层协议先进的技术,那Overlay就是假装成自己个儿就是三层,理直气壮的披上三层的外衣,将大二层网络叠加在现有的基础网络之上,瞒天过海,暗度陈仓。
Overlay通过用隧道封装的方式,将源主机发出的原始二层报文封装后在现有网络中进行透明传输,到达目的地之后再解封装得到原始报文,转发给目标主机,从而实现主机之间的二层通信。
隧道封装是很成熟的技术,但是,一般只能点对点建立隧道。如果有很多主机需要二层通信的话,就需要一个全连接的网络。真头大。既然点对点不行,那就面对面?交换机等待已久的机会来了。 众所周知,“二层交换机”是可以实现下挂主机之间相互二层通信的,而且主机从“二层交换机”的一个端口迁移到另一个端口时,IP地址是可以保持不变的。这样不就可以实现大二层网络的需求了吗?
Overlay的典型技术主要有VXLAN、NVGRE、STT等,简单说一下阵容最豪华的VXLAN技术,它是VMWare和CISCO提出的Overlay技术方案,采用Mac in UDP的封装方式,虚拟机发出的数据包在VXLAN接入点(被称为VTEP)加上VXLAN帧头后再被封装在UDP报头中,并使用承载网络的IP/MAC地址作为外层头进行封装,承载网络只需要按照普通的二三层转发流程进行转发即可。
根据这个设计,是不是可以看出,VXLAN天然可以支持跨数据中心的大二层网络的。在这种架构下,无论VM是在本数据中心内迁移,还是跨数据中心迁移,都无需变更IP地址。目前在华为云基础IaaS网络数据面全部VXLAN化。
VXLAN技术VXLAN和NVGRE等技术是服务器虚拟化的IT厂商主推的大二层网络技术方案,这也很好理解,对于VXLAN和NVGRE技术来说,报文的封装/解封装都是在服务器内部的虚拟交换机vSwitch上进行的,外部网络只对封装后的报文进行普通的二层交换和三层转发,所以技术控制权都在IT厂商手里,CT厂商就是一个路人看客了。但是当把Overlay网络的接入点部署在TOR等网络设备上时,就需要网络设备来完成VXLAN和NVGRE的报文封装。一方面对于虚拟化的服务器来说,网络设备的性能还是要比vSwitch强很多的,用TOR等设备来进行封装,性能更好一些。 另外一方面,在TOR上部署Overlay接入点,也可以把非虚拟化的服务器统一纳入Overlay网络。CT和IT厂商的和谐共赢局面终于到来了。
后续关注
本文简单了介绍了大二层网络的由来和基础的大二层网络解决方案,在数据大集中的背景下,企业产生的数据量越来越大,数据的重要性也越来越高。出于灾备、用户就近接入、提升资源利用率等方面的考虑,在后期的文章中,会介绍跨数据中心的网络互联网方案。