数据中心解决方案
9860人浏览一直以来,网络世界都被一众运营商和设备商大佬把持着,是一个相对封闭的世外桃源。但是随着互联网的飞速发展,传统网络越来越难以满足新业务的需求。矛盾越来越难以调和,大佬们不得不出来通过添加新协议、新设备等手段来缓解问题,但是却成效甚微。于是,人民群众中滋生了革命的想法,现有的网络架构既然无法继续演进发展,为何不推倒重来,重新定义网络呢?
于是越来越多的人开始探索新的网络发展道路,SDN(software defines network)的概念应运而生。SDN 顾名思义,就是软件定义网络,其最基本的特点就是它的转控分离网络架构,我们都知道,传统网络设备分为控制平面和转发平面。控制平面负责指挥,转发平面负责执行。但是在SDN 网络中就大不一样了,SDN 网络新增了一个网络部件--SDN 控制器,这个控制器完全由软件实现,它就如同网络的大脑,可以指挥网络中的所有设备。相应的,所有其他的网络设备就不再需要自己的控制面了,只需要听从控制器的命令进行转发就可以了,我们称之为转发器。于是 SDN 网络的简单模型如图:
大家可以看到,所有我们常见的路由器、交换机等转发设备都变成了统一的转发器,而所有的转发器都直接接受控制器的指挥。我们可以把SDN 网络和城市的交通路网做一下对比,转发器就相当于交叉路口负责指挥的交警,而控制器就如同交通调度中心,交通调度中心了解整个城市的交通状况,根据每条路的路况,合理的安排车流量(数据流量)。
下面分别介绍一下使用VXLAN的传统的数据中心网络和使用SDN的下一代数据中心网络相对传统网络的改进。
标准vxlan网络介绍
由于传统的数据中心服务器利用率太低,平均只有10%~15%,浪费了大量的电力能源和机房资源,所以出现了服务器虚拟化技术。通过服务器虚拟化,可以有效地提高服务器的利用率,降低能源消耗,降低客户的运维成本,所以虚拟化技术目前得到了广泛的应用。随着服务器虚拟化的出现数据中心也从传统数据中心向虚拟化数据中心和云数据中心发展演进。
一台服务器可虚拟多台虚拟机,而一台虚拟机相当于一台主机。主机的数量发生了数量级的变化,这也为虚拟网络带来了如下问题:
在传统二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。
当前主流的网络隔离技术是VLAN,由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅能表示4096个VLAN,在大规模的虚拟化网络中无法满足大二层网络中标识大量租户或租户群的需求,而且传统二层网络中的VLAN无法满足网络动态调整的需求。
传统TCP/IP 网络设备结构是控制平面和转发平面深度耦合的结构。控制平面就是一台网络设备的大脑,设备收到一个报文,应该怎么处理,是丢弃,还是转发,从哪个接口发出去,这些都是控制平面需要决定得。而转发平面就很简单,控制平面告诉我怎么处理,我就怎么处理好了。那么如果一个大型网络有几十甚至几百台网络设备,那么如何保证这些网络设备能够良好的配合,完成任务呢。显而易见,所有的网络设备都必须遵循一定的标准,从而保证网络能够动作统一。但是一个网络中的设备不一定都是一个厂家的,厂家间也难免你看不起我,我看不起你的。于是大家就推选了一些“德高望重”的人(IETF、 IEEE等组织)负责制定这些标准,这就是所谓的标准协议,比如 OSPF、 BGP 这些。于是,当我们要部署一个新业务时,就必须先去商讨这些标准,商讨完后,再进行开发,验证,最后,由于网络中每台设备都需要了解这些标准,所以我们需要在每台设备上都进行更新。这么一套下来,没有个 3、 5 年还真是难以完成。
上面我们说到了标准协议,现在标准协议是越来越多,每年仅IETF 发布的关于网络设备的标准协议就有上千,而且还在以每年接近翻倍的速度增加。如此多的协议别说都精通,就是看一遍也去了半条命了,所以也难怪现在各厂家维保的要价越来越高,这活确实难做啊。
前面我们说过,在一个网络中,为了使所有设备能通力配合,一般来说,所有设备都需要遵循一定的标准协议。那么体现在网络最重要的功能路径选择上,就是一系列路由协议了。我们目前主流的路径选择协议大多是采用最短路径算法(为了避免环路),协议会选择带宽较大的那条路,不管有多少业务,它们的最短路径必然只有一条(或者等价的多条路径),于是这条路径就会变得拥挤不堪。
为了实现虚拟机的大范围甚至跨地域的动态迁移,就要求把虚拟机迁移可能涉及的所有服务器都纳入同一个二层网络域,形成一个更大范围的二层网络,这样才能实现虚拟机的大范围无障碍迁移,这样适合于虚拟机随时随地无障碍迁移的大范围二层网络我们称之为大二层网络。VXLAN 是为了解决云计算时代虚拟化中的一系列问题而产生的一项技术。下面就让我们来看下VXLAN 是如何见招拆招来解决这一系列问题的。
隐形
对于“虚拟机规模受网络设备表项规格的限制”这个问题,可能有人会想:换成规格大一些的接入交换机(比如跟核心或网关同档次的设备)不就行了。确实可以这么做。但是在不提高网络建设成本的前提下,如何能解决问题呢?既然无法提升设备表项规格,那就只能限制设备上的 MAC 表项,将大量 VM 的MAC 地址“隐形”。那么,如何做到隐形呢?这时,就该 VTEP 出场了。VTEP 会将 VM 发出的原始报文封装成一个新的 UDP 报文,并使用物理网络的 IP和 MAC 地址作为外层头,对网络中的其他设备只表现为封装后的参数。也就是说,网络中的其他设备看不到 VM 发送的原始报文。如果服务器作为 VTEP,那从服务器发送到接入设备的报文便是经过封装后的报文,这样,接入设备就不需要学习 VM 的 MAC 地址了,它只需要根据外层封装的报文头负责基本的三层转发就可以了。因此,虚拟机规模就不会受网络设备表项规格的限制了。
对于“传统网络的隔离能力有限”这个问题, VXLAN 采用了“扩容”的解决方法,引入了类似 VLAN ID 的用户标示,也就是前文提到的 VNI。一个 VNI 代表了一个租户,属于不同 VNI 的虚拟机之间不能直接进行二层通信。 VTEP 在对报文进行VXLAN 封装时,给 VNI 分配了 24 比特的空间,这就意味着 VXLAN 网络理论上支持多达 16M(即: 224-1)的租户隔离。相比 VLAN, VNI 的隔离能力得到了巨大的提升,有效得解决了云计算中海量租户隔离的问题。
前面提到,为了保证业务不中断,VM 的迁移就必须发生在同一个二层域内。现在,再回头看下 VXLAN 网络模型,你是不是惊奇地发现,有了 VTEP 的封装机制和 VXLAN 隧道后,所谓的 “二层域”就可以轻而易举的突破物理上的界限?也就是说,在 IP 网络中, “明”里传输的是跨越三层网络的 UDP 报文, “暗”里却已经悄悄将源 VM 的原始报文送达目的 VM。就好像在三层的网络之上,构建出了一个虚拟的二层网络,而且只要 IP 网络路由可达,这个虚拟的二层网络想做多大就做多大。
传统的VXLAN的数据中心虽然解决了三层网络架构中出现的一些问题,但是依然是基于TCP/IP的网络架构,这种传统的基于TCP/IP 的网络架构仍然会有这样那样的一些问题。比如,传统的数据中心网络创新困难,创新周期长;协议复杂,运维难度大,运维成本高;路径规划能力弱。下面我们来简单分析一下为什么传统的数据中心有这些问题。
SDN 顾名思义,就是软件定义网络,其最基本的特点就是它的转控分离网络架构。SDN 网络新增了一个网络部件--SDN 控制器,这个控制器完全由软件实现,它就如同网络的大脑,可以指挥网络中的所有设备。相应的,所有其他的网络设备就不再需要自己的控制面了,只需要听从控制器的命令进行转发就可以了,我们称之为转发器。我们可以把 SDN 网络和城市的交通路网做一下对比,转发器就相当于交叉路口负责指挥的交警,而控制器就如同交通调度中心,交通调度中心了解整个城市的交通状况,根据每条路的路况,合理的安排车流量(数据流量)。
首先,调度中心和交警之间需要有一条顺畅并且安全的沟通通道,所以openflow 协议规定了控制器和转发器之间必须要有一条三层可达的链路,通过该链路建立 TCP 连接,并采用了安全的算法进行加密(比如 TLS)。同时,链路需要通过定时的 Hello 进行保活,保证链路出现问题时能及时发现。
由于是统一管理,每个路口的性能指标需要规范化,比如路口一共有几条分叉路口(端口),每条路有多宽,能承担多少车流量(带宽),每条路是不是有事故导致通行不畅(链路故障),每条路目前的车流量大小(链路占用率)以及路口的调度能力(设备表项大小)等。这些数据必须以统一的格式上传调度中心。同时,如果哪个路口修了新的路,也需要将上述指标主动上报给调度中心。
前面我们说过,交警只需要听从调度中心的命令即可,但是如果针对每一辆车调度中心都要给交警下发一个指令未免也太效率低下了。于是革命者们想了一个法子,让调度中心给每个交警一张表,交警们收到这张表,就直接根据车辆信息直接进行指挥,同时记录下每种车辆的数量用于统计本路口的指标。这样一来,就不用每辆车都需要调度中心直接下命令,交警直接可以自己进行指挥。
除VXLAN网络边缘设备,网络中的其他设备不需要识别虚拟机的MAC地址,减轻了设备的MAC地址学习压力,提升了设备性能。
满足海量用户
通过24比特的VNI可以支持多达16M的VXLAN段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户。
通过采用MAC in UDP封装来延伸二层网络,实现了物理网络和虚拟网络解耦,租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,大大降低了网络管理的难度。
SDN 网络架构中体现为一个集中化的控制策略中心。控制器根据用户业务需求动态调配数据中心的网络资源,提高网络资源利用率,让网络更敏捷地为业务服务。它的价值主要体现在以下几个方面。
SDN控制器基于业务抽象模型,一键式自动下发网络资源;基于逻辑模型的点选或拖拽,实现端到端网络业务自动打通;各类 Fabric 统一控制,按需下发;自动下发网络资源,大大加速云业务上线周期。
基于 ODL 开源架构,支持 ODL 架构的第三方应用和 plugIn,充分利用开源社区资源,提供开放的产业生态圈,兼容基于标准 Openstack 的主流云平台,协同多种主流计算管理平台,支持通过定制化开发对接第三方 SDN 控制器,适配大部分客户现网环境。