数据中心为什么需要大二层网络
在开始之前,首先要明确一点,大二层网络基本上都是针对数据中心场景的,因为它实际上就是为了解决数据中心的服务器虚拟化之后的虚拟机动态迁移这一特定需求而出现的。对于普通的园区网之类网络而言,大二层网络并没有特殊的价值和意义(除了某些特殊场景,例如WIFI漫游等等)。
所以,我们现在所说的大二层网络,一般都是指数据中心的大二层网络。
服务器虚拟化趋势
由于传统的数据中心服务器利用率太低,平均只有10%~15%,浪费了大量的电力能源和机房资源。所以出现了服务器虚拟化技术。
服务器虚拟化技术是把一台物理服务器虚拟化成多台逻辑服务器,这种逻辑服务器被称为虚拟机(VM),每个VM都可以独立运行,有自己的OS、APP,当前也有自己独立的MAC地址和IP地址,它们通过服务器内部的虚拟交换机(vSwitch)与外部实体网络连接。
传统的二层网络为啥大不起来
VM动态迁移只是要求把所有服务器都纳入同一个二层网络,那问题来了:原来的网络架构为什么就不能把所有服务器都纳入同一个二层网络?传统的VLAN+xSTP二层技术不能把所有服务器都划到同一个二层域吗?
这也就是我前面卖的关子,为什么说传统网络架构限制了虚拟机的动态迁移只能在一个较小的局部范围内进行?为什么传统的二层网络大不起来?
要说清楚这一点,我们首先需要弄清楚二层网络面临的主要问题是什么,而传统二层网络采用的主要解决方案有哪些?
二层网络的核心问题
其实说起来也简单,二层网络的核心问题就是环路问题以及由此产生的广播风暴问题
釜底抽薪派解决大二层网络困境,还是从二层网络的核心问题着手。既然二层网络的核心问题是环路问题,那么解决了环路问题,就一劳永逸了。抽了“环路”的“薪”,那么广播风暴的“火”也就烧不起来了。也就意味着,二层网络想做多大就可以做多大。
当然,要有效解决大二层环境中的环路问题,传统的xSTP技术行不通了(具体原因前一篇中已经分析过了)。幸好现在我们有了新的武器,那就是网络设备虚拟化技术。
所谓网络设备虚拟化技术,就是将相互冗余的两台或多台物理网络设备组合在一起,虚拟化成一台逻辑网络设备,在整个网络中只呈现为一个节点
(这里的网络虚拟化技术特指多虚一的技术,也有一虚多的技术,比如华为的VS(Virtual System)技术,可以把一台网络设备虚拟成多台网络设备使用,这种虚拟化技术就有点和服务器的虚拟化比较相似,但是我们本文中不涉及这种虚拟化)
网络设备虚拟化再配合链路聚合技术,就可以把原来的多节点、多链路的结构变成逻辑上单节点、单链路的结构,环路问题也就无疾而终了。(上一篇中已经说明了,单节点、单链路的树型结构网络是没有环路问题的)
而且虚拟化技术和链路聚合技术都具备冗余备份功能,单台物理设备或者链路故障时,可以自动切换到其他物理设备和链路来进行数据转发,保证网络的可靠性。
以网络设备虚拟化+链路聚合技术构建的二层网络天然没有环路,其规模仅受限于虚拟网络设备所能支持的接入能力,只要虚拟网络设备允许,二层网络就可以想做多大就做多大。
 技术
网络设备虚拟化的主要技术大致可以分为三类:框式设备的堆叠技术、盒式设备的堆叠技术、框盒/盒盒之间的混堆技术。有华为的CSS、iStack、SVF,CISCO的VSS、FEX,H3C的IRF等
瞒天过海派正式的学名应该叫Overlay派,就是通过用隧道封装的方式,将源主机发出的原始二层报文封装后在现有网络中进行透明传输,到达目的地之后再解封装得到原始报文,转发给目标主机,从而实现主机之间的二层通信。
通过封装和解封装,相当于一个大二层网络叠加在现有的基础网络之上,所以称为Overlay派。瞒天过海的含义也就在于此。
 思想
其实对于隧道封装,我们并不陌生,比如最典型的GRE,就是把原始数据报文通过GRE封装之后在三层网络中进行传输,从主机的角度来看,中间的三层网络是透明不可见的,也就相当于直接在源网络和目标网络之间直接拉了一根“光纤”!
但是GRE这样的隧道协议是点到点的隧道协议,只能点对点建立隧道,如果有很多主机需要二层通信的话,就要每两台主机之间都拉上“光纤”,这是无法想象的。那怎么办?
既然“光纤”不行,那就上“二层交换机”!
众所周知,“二层交换机”是可以实现下挂主机之间相互二层通信的,而且主机从“二层交换机”的一个端口迁移到另一个端口时,IP地址是可以保持不变的。这样不就可以实现大二层网络的需求了吗?
所以,Overlay方案的意义也就是在于此。Overlay方案的核心就是通过点到多点的隧道封装协议,完全忽略中间网络的结构和细节,把整个中间网络虚拟成一台“巨大无比的二层交换机”, 每一台主机都是直接连在这台“巨大交换机”的一个端
基于这种“巨大交换机”的理解,那么就也很容易理解为什么这种方案就可以实现VM动态迁移了,不就是把VM主机从交换机的一个端口换到另一个端口嘛,完全无需变更IP地址。
 技术
Overlay派的典型技术主要有VXLAN、NVGRE、STT等,在本文中仅对VXLAN进行简单的介绍。
VXLAN(Virtual eXtensible LANs)是VMWare和CISCO提出的Overlay技术方案。VXLAN的阵营中还包括了Arista、Broadcom、Citrix和Red Hat等厂商,可谓阵容豪华。
VXLAN采用Mac in UDP的封装方式,虚拟机发出的数据包在VXLAN接入点(被称为VTEP)加上VXLAN帧头后再被封装在UDP报头中,并使用承载网络的IP/MAC地址作为外层头进行封装,承载网络只需要按照普通的二三层转发流程进行转发即可。