看起来似乎很讽刺,但是软件定义网络中大多数的问题都是如何定义它。用一种较为弹性的观点来看的话,就是SDN在云中的具体作用难以捉摸。云计算中有两个软件定义网络模型和两个不同的SDN任务,由于网络创造了云,管理这两个方面之间的相互作用是云有效和成功的关键所在。
作为一种信息服务,互联网将网络看作是透明的合作伙伴。在云端,一个用户的应用存在于云内,成为云的一部分。大多数人认为至少意味着一些网络必须同云整合。当前的共事就是数据中心必须让云具体化,但是WAN也应成为云的“资源”吗?
为了回答这个问题,首先看一下为什么数据中心必须包括SDN。
在云计算中,用户加入一个云创建的社区。云计算服务提供商面临着网络层级的多租户问题,和他们在CPU/服务器和数据库层面的所面临的多租户问题差不多。共享资源必须以一种一个用户的应用不能影响另一个用户的应用的方式来共享,因此,所有的用户资源必须分区,以便确定他们的隐私性和安全。同时网络技术,比如IP和以太网每一个都有虚拟网络容量,这些功能会由于可以支持的租户的多少而受到限制,限制了如何分离租户。
云软件提供商将网络看作是数据中心网络和云之间的合作伙伴关系。亚马逊Web服务的弹性IP 地址应用驱动方法整合了网络和云;OpenStack包含网络服务,将其作为虚拟化资源之一,同存储和CPU/服务器一起。比如OpenStack的 Quantum接口定义了一个虚拟网络如何创建为“托管”CPU和数据库元素。然而,Quantum没有定义用户创建这个虚拟网络的技术。每一个厂商都负责映射其技术到Quantum定义的虚拟网络模型中。
云计算的两个SDN模型
首先调整多租户,其次支持网络服务云控制的需求将我们带到了SDN技术上。SDN的两个模型出现:“叠加模型(overlay model)”和“网络模型(network model)”。
在叠加模型中,软件(通常是云连接的软件)创建了一个虚拟网络;在网络模型中,网络设备创建了这些虚拟网络。
叠加SDN,比如VMware最近收购的Nicira技术,使用软件来分区IP或者以太网地址到多个虚拟子网络中,类似TCP对端口所做的事情。新一套网络API允许应用通过他们是IP或者以太网络访问这些子网络。软件保证了多子网流量安全和分离。网络设备“看”不到叠加虚拟网络,因此不会区别对待流量。
网络托管的SDN用网络设备构建;因此,他们直接管理SDN流量。一些网络厂商,比如思科,通过采用当前的符合SDN规则网络技术和设备增加软件控制到当前设备和网络,创建“革命性SDN”。
其他网络厂商,包括大多数SDN初创公司,都希望将网络设备发展成简单的形式,迁移路由智能和路径/流量管理,这些都在设备中,并集中在云托管的软件上。
但是叠加和网络模型和任务在WAN中抵触。如果云虚拟网络必须扩展额外的云中数据中心和向外的用户,就很难看到虚拟化的网络托管的SDN实现如何回避,有三个原因:
叠加SDN依赖软件元素创建虚拟网络。很难确保用户请求软件进行参与。网络设备上的软件不能轻易更新,就不能使用叠加虚拟化。
叠加SDN不能确保WAN服务质量(QoS),因为SDN不能管理流量现成。网络托管SDN可以提供和用户以前使用的相同的精确的接口和服务,对于软件或者服务的请求没有变化。也管理流量并保证QoS。因此,端到端的SDN任务更青睐在网络中实现的SDN模型。
SDN作为“云网络”的采纳逐渐增多,意味着网络和服务的转换能支持大范围的云计算使用。操作各种SDN任务和技术模型是合适的位置的云服务和实现云计算好处的关键。对于云用户而言,知道他们的云提供商的SDN计划,以及私有云软件堆栈厂商的计划,是确保这些提供商长期价值最关键的因素。