云计算的 IT 架构已经在企业应用中表现出明显优势,但网络设计理念却必须是一种推倒重来的思想。为了适应云计算的灵活、弹性扩展、高效和低成本,网络设计要进化为集中式软件管理,可编程化,控制转发层面分离等。本次陈海泉分享了关于下一代超大规模软件定义网络技术实践。
以下是本次分享的内容整理。
大家好,我是 QingCloud 的工程师陈海泉,今天给大家分享一些 SDN/NFV 2.0 架构的网络技术。我解释一下什么是 SDN,SDN 就是软件定义网络。当然也不是所有网络定制一定要软件来实现,因为有很多硬件方案也可以做到 SDN 的效果。
青云QingCloud 用软件定义来实现虚拟网络,我们 2013 年的时候,在公有云上线了第一代产品。当时 SDN 还是一个比较新鲜的事情,用户用的还比较少。到了今天,SDN已经开始普及,连私有云用户也在使用基于SDN的VPC。
随着用户量越来越大,第一版的 SDN 提供的私有网络里面的 VM 超过一定的数量的时候,我们发现性能就有一个比较大的损失,已经无法满足企业用户的需求。所以我们在去年下半年的时候,花了很大功夫去做 SDN/NFV 2.0 的事情。
考虑到很多人对计算机网络不熟悉,我先补充下网络基本原理:计算机网络分 7 层。 SDN 相关的主要是二层和三层网络。二层是数据链路层,使用 MAC 为地址通信,二层网络中的成员通过交换机连接起来。成员间的应用软件虽然以 IP 为地址通信,但是通信之前,操作系统会通过 ARP 协议,把目标 IP 转换成 MAC 地址,然后再发送数据包。交换机根据数据包的目标 MAC 地址,进行数据包的投递。二层网络中,会用到单播,广播和组播三种方式。
三层是网络层,使用 IP 为地址通信。三层网络就是用路由器将不同的二层网络连接在一起,形成一个可扩展的网络。通信方式可以是单播和组播,但不能是广播。路由器的作用就是根据路由表,找出目标 IP 对应的 MAC 地址。数据包往往通过多个路由器之间转发,才会送到目标地址。
基本知识介绍到这里,现在说一下为什么需要 SDN 。
首先,虚拟化技术带来的好处是用户的 VM 分布在物理机集群上面,出于负载均衡,和服务高可用的目的,需要在物理机之间迁移 VM ,并且迁移之后 IP 地址不变。
在早期的虚拟化方案中,物理机集群比较小,全部是一个二层网络, VM 使用物理设备分配的 IP 地址时,发生迁移之后, IP 本身就不会变化。但是随着云计算的发展,虚拟化的物理集群需要被部署在更大的三层网络上,这时候 VM 再使用物理 IP 地址,是不能够保证 IP 不变的,因为迁移到了别的二层网络,对应的路由器就不认识原来的地址了, VM 要继续工作,必须更换成当前网络的 IP 地址。
这个时候,就需要网络虚拟化技术,也就是通过 SDN 给 VM 定义虚拟的 IP 段,这个虚拟的网络可以分散在整个三层网络上,使得 VM 迁移后, IP 地址不变。这个IP地址跟物理的路由器,交换机没什么关系,可以随便定义。随着云计算的发展,单靠网络虚拟化技术,仍然满足不了用户大规模部署的需求,这时就需要有 VPC 。
VPC 是什么意思呢? VPC 是用户定义的一个专属的大型三层网络。在 VPC 网络内,用户可以自定义 IP 地址范围、创建子网,并在子网内创建主机/数据库/大数据等各种云资源。
简单的说,虚拟网络指的是虚拟二层网络, VPC 指的是虚拟三层网络。在 VPC 里面,还需要能做到不同 VPC 之间, IP 地址复用。因为私有 IP 段有限制,不同的用户,可以使用相同的 IP 地址,却不互相影响。
正是因为云计算需要虚拟网络,也需要 VPC 。所以需要一个 SDN 方案解决这两个需求,现有的 SDN 方案主要分成两个方向:
用软件来定义,但是用硬件来实现。比如某些带 SDN 功能的交换机,把它采购进来,部署到产品里,用硬件厂商提供的 API ,就能定义虚拟网络,实现 VPC 功能。
NFV,就是网络功能虚拟化,用软件的方式来实现虚拟的交换机和路由器,把他们组织,并管理起来,让上层应用能够定义虚拟网络。其代表有 VMware NSX 、 JuniperOpenContrail、OpenStackDVR 等等。
QingCloud 在 SDN 方案的选型上也做过讨论,用软件还是用硬件方案?其中考虑的问题主要是以下三个方面:
- 成本。在公有云上面大家拼的是成本,谁的硬件成本低,谁就能把价格降到最低。如果我们采用硬件方案,在网络设备上面需要增加了很多投资,要替换掉几乎所有的网络设备。
- 设备依赖。我们的私有云卖的是软件,客户可以按照偏好选择自己的硬件,假如 QingCloud 的 SDN 绑定了某款硬件产品,那我们在面对企业客户的时候,可能连招标的机会都没有,因为客户往往有自己的采购渠道,指定的硬件品牌。
- 情怀。对于工程师来说,自然是想把产品做得更优秀。参考下优秀的传统行业,就能明白这一点。
其实,计算机网络跟传统快递行业非常的接近,我在后面解释网络知识时,也会拿快递打比方。
为什么说快