SDN建设大规模云网络面临的挑战
一、传统云网络在大规模下的挑战
1.1 网络单点问题
传统云网络是通过网络节点(Network Node)实现虚拟化网络的路由、NAT、网关、DHCP、VPC、安全组等网络。在大规模的网络场景下,传统云网络的网络节点会成为整个虚拟化网络的单点瓶颈。同样意识到传统云网络这一问题,OpenStack也发布了DVR(Distributed Virtual Router)的网络功能,实现了虚拟主机之间跨子网通讯时可以无需经过网络节点。但是DVR无法解决虚拟主机上行的流量经过网络节点单点的问题,而且DVR无法实现高可用。大规模网络下如何解决网络节点单点,是业界的一大难题。
1.2 租户间的网络隔离
传统云网络实现租户间的网络隔离是通过VLAN隔离的。受VLAN的4096的协议标准限制,使得VLAN原生就不适合用于大规模云网络下的租户间隔离。目前业界的主流解决方案是通过VXLAN代替VLAN。我们先来看一下VXLAN的协议,如下图:
VXLAN在原始数据帧的基础上,封装一层Overlay协议,长度为50个字节。一个ARP的数据包长度为64字节。假设一台虚拟主机发送10G的ARP包,经过VXLAN叠加之后就相当于17.8G的流量。因此VXLAN的虚拟化网络会加大承载网络的网络压力,并且VXLAN使用大量的组播报文,严重影响网络质量,大量地创建VTEP虚拟网卡会加增加虚拟网络的IO路径与网络逻辑的复杂度。
1.3 广播风暴抑制
数据中心经过云虚拟化后,使得IP地址出现10-30倍的增长。在大规模云网络下,虚拟主机大量广播报文会严重影响数据中心承载网络的网络质量,甚至瘫痪整个数据中心网络。
1.4 低损耗的网络功能
云网络需要提供路由、NAT、网关、DHCP、VPC、安全组等网络功能。现阶段业界是通过虚拟主机或网络解决实现这些虚拟化网络功能,在大规模云网络场景下,这样的方式会严重损耗计算资源,并且容易产生单点故障。
1.5 跨数据中心支撑能力
受数据中心地理因素限制,大规模的数据中心建设大多数都是同城异地多数据中心,数据中心之间的距离不超过15km。通过裸光纤或者波分线路搭建大二层网络。如图所示:
光纤或波分线路出现故障,如何保证数据中心的虚拟化网络的正常稳定?这是传统云网络(网络节点单点)以及SDN云网络(集中统一管理)都会遇到的问题。
二、SDN云网络如何应对大规模网络的挑战
2.1 基于SDN实现分布式业务逻辑架构
SDN云网络基于OpenFlow协议,在Open vSwitch二层网络上实现云网络的业务功能(VPC、Subnet、Gateway、Security Group、ACL、Route等)。网络功能分布到计算节点,不存在网络单点问题。容灾性强,计算节点出现故障,虚拟主机可以漂移到其他计算节点,SDN控制器集中式下发流表规则,保证业务正常。
2.2 基于MAC-Port实现多租户隔离
SDN控制器通过MAC-Port的方式,标记记录了所有虚拟主机网络。通过VPC的配置信息,仿真模拟出整个虚拟化网络的拓扑模型。通过响应下发OpenFlow流表的方式,给同VPC虚拟主机下发互联互通策略,并隔离不同VPC虚拟主机的网络,基于MAC-Port的方式实现多租户隔离。SDN云网络可能会属于Underlay平行化网络,网络过程无Overlay叠加损耗。在大型数据中心网络中,承载网络无多余的损耗。此外网络安全设备接入也无需考虑VXLAN的解封装问题。
2.3 ARP完全代理
虚拟主机通过ARP广播寻址的方式,发现物理网络的IP地址的MAC地址。在大规模云环境下,虚拟主机的ARP广播寻址会严重影响网络质量。控制器区分出物理数据中心的IP地址,并配置ARP代理流表,统一代理数据中心物理网络。虚拟主机的ARP广播寻址隔离在SDN云网络内部,不会直接发送到物理数据中心。控制器通过Neighbour子系统模块代理完成虚拟主机的ARP寻址,通过配置策略可以大大减少虚拟主机ARP广播数量。
2.4 ARP广播抑制
SDN控制器基于MAC-Port的记录,可以快速查询出指定IP虚拟主机的MAC地址。虚拟主机之间发起的ARP广播寻址,通过流表策略将广播报文修准确改成的目标MAC的单播报文,极大地抑制云虚拟网络东西向的ARP广播。
2.5 隐藏式虚拟化网关
每个租户的自定义网络都需要一个虚拟化网关,在大规模云网络下,虚拟化网关需要消耗大量的资源。SDN云网络基于OpenFlow协议,通过DHCP分配、ARP欺骗、SDN流表下发的方式实现隐藏式虚拟化网关,云网络的虚拟网关没有真实网络载体,网关上承载的路由、NAT、转发等的功能都是通过SDN控制器动态响应下发的OpenFlow流表模拟出来,资源损耗极低适用于大规模云网络的需求。值得一提的是,SDN云网络实现的隐藏式虚拟化网关因为没有真实的网络载体,因此针对网关的攻击行为,对于该网关都是无效的。
2.6 分布式SDN控制器模型
如图所示,SDN控制器分布式下沉到每个计算节点上,通过Message Queue同步控制器之间的配置信息实现逻辑上集中化管理。配置信息属于慢速配置信息,在Message Queue本身不会成为性能瓶颈。假设光纤或波分线路出现故障,每个计算节点上的vSwitch都有独立的SDN控制器接管,虚拟化网络不会因为跨数据中心的物理线路故障导致业务中断。
三、云网络安全面临的挑战
3.1 流量牵引
在云计算的发展趋势下数据中心的网络边界下沉到虚拟化网络中,传统的安全产品无法探测云内部的网络流量。云平台需要把流量牵引当第三方的安全设备进行流量的清洗与分析,但是不同的安全产品流量牵引的方案存在很大的差异化。云网络需要提供通用的流量牵引方式,平滑对接第三方安全的接入。
3.2 网络安全多租户流量识别
流量牵引到安全设备,网络安全设备需要根据不同租户的安全策略处理流量。而云网络存在IP地址重叠,不同的VPC可以使用同样的IP地址。网络安全设备要识别多租户的流量,就需要云网络为不同租户的流量打上特定的标签,并提供开放的接口让网络安全设备同步租户与标签的对应关系。
3.3 网络安全多租户管理
传统的网络设备用户一般是网管人员,而云网络安全的管理是多租户化的。租户间是信息透明、策略管理独立。这需要云平台提供开发的接口与云网络安全产品进行用户对接,或将云网络安全产品深度整合到云平台成为云平台功能组件。
四、云网络如何应对网络安全的挑战
4.1 提供开放丰富的流量牵引方式
云网络提供Mirror、VXLAN、GRE、SFOW、NetFlow、l3 Route等流量牵引方式,并提供开发的API接口。此外,云网络可采用MAC-Port的网络隔离方式,网络报文无Overlay叠加,第三方的云网络安全产品能平滑地获取流量镜像分析清洗。
4.2 MAC或标签化的网络识别方式
提供开放的获取租户+MAC+IP的对应关系信息的API接口,不同VPC间的IP地址是重叠的,但是在云网络,虚拟主机网卡的MAC是绝对唯一的。因此,安全厂家可以通过MAC识别租户信息;此外,如果基于VXLAN流量牵引的方式,还可以通过VNI获取租户信息。
4.3 租户信息同步
提供租户信息获取同步接口,第三方安全厂家可以通过API的方式自动获取租户信息。这需要第三方的安全产品本身支持多租户功能。