《云数据中心网络与SDN:技术架构与实现》——3.3.5 安全
3.3.5 安全
安全从来是数据中心网络的核心问题。传统的数据中心网络内部往往采用分区部署的方式,或者直接进行物理上的隔离,或者通过VLAN+ACL进行逻辑上的隔离。数据中心与外界网络的互通则由专业的防火墙设备来完成,这些防火墙通常旁挂在汇聚层,集中地把控着数据中心流量的出入。
云数据中心在负载类型和流量模型上有别于传统数据中心网络,对上述的网络安全模型提出了巨大的挑战。
1)虚拟化打破了数据中心网络的物理边界,物理分区的方式再难适应大二层网络。
2)租户数量和虚拟机规模有了数量级的提升,而且虚拟机还经常发生迁移,因此手动配置VLAN和ACL将是不可接受的,网络安全同样需要自动化。
3)东西向流量的爆炸使得数据中心内部的安全问题更为明显,集中式部署的防火墙通常会导致东西向流量的路径迂回。
4)硬件防火墙虚拟化能力较弱,难以适应云数据中心对安全的弹性需求。
1.多维安全模型
云数据中心里,网络安全的设计需要变得更加立体,从数据中心级别,到租户级别,到子网级别,再到端口级别,为云中的业务提供更为可靠的保障。数据中心级别的安全仍然需要在数据中心入口集中式地设置防火墙,由于硬件防火墙不能满足数据中心对安全的弹性需求,因此需要结合虚拟化技术来实现防火墙资源的池化。租户级别的安全可以通过VxLAN等Overlay技术对不同租户进行隔离,防止流量在租户间泄露。子网级别的安全可以通过vRouter实现,也可以通过虚拟化的防火墙(vFW)来实现,不同的租户需要分配不同的vRouter/vFW实例,以获得灵活性和通信隔离。端口级别的安全通常被称为安全组或者微分段(Micro-Segment),需要与虚拟机进行绑定,可在vSwitch上实现,或者将分布式的vFW以inline的方式串在vNIC和vSwitch之间,同时要保证端口安全策略随虚拟机进行迁移。对应于微分段,有的厂商还提出了宏分段(Macro-Segment),以实现虚拟机和裸机间东西向流量的安全。
上述安全模型通常需要结合SDN/NFV进行实现。vRouter/vFW/vIDS/vIPS等VNF实例本身的实现属于NFV技术,并且需要依赖于DPDK等加速技术以保证性能。SDN控制器负责通过NETCONF或者RESTful API对VNF进行自动化的管理配置,包括对安全组规则的下发、安全策略的配置和Session的管理,以及将不同租户的流量引导到不同的VNF实例中。当然,从NFV的视角来看,SDN控制器所做的这些工作大部分也可以通过MANO来实现,这里不去探讨两种视角的区别。
安全组作用于网络边缘,能够实现端口级别的防护,以Iptables为主要的实现机制。SDN控制器可以集中式地分发或配置Iptables规则,不过这通常需要在虚拟机和vSwitch间额外地引入一跳,导致增加了一个潜在的故障点,而且会对性能造成很大的影响,因此并不是理想的选择。如果vSwitch设备支持OpenFlow(如OVS),那么可以通过流表来匹配L2~L4的字段以实现安全组策略,即相当于传统网络中的ACL。不过OpenFlow流表是无状态的,如果希望通过OpenFlow实现有状态的策略,可以将首包PacketIn给控制器去维护状态,但是这种方式会对性能造成很大的影响,还可以使用ovs contrack等扩展功能,在OVS本地完成状态的维护,但是目前这种方式的实现还不是很成熟。
如果考虑到为OpenFlow做硬件卸载,那么ACL规则就会被从vSwitch上转移到TOR上,限于TCAM的容量,此时SDN控制器需要对ACL规则进行适当的聚合,在获得足够灵活性的同时要防止ACL规则的溢出。同时,SDN控制器还需要实时地感知虚拟机的位置,当虚拟机发生迁移时能够及时地将ACL规则进行迁移。
VNF上策略的配置对于SDN控制器的问题不大,其粒度也往往在于租户和数据中心级别,因此策略的变化不会非常频繁。Session的管理则会相对复杂一些,可能需要面临如下的两个挑战。
1)Session的同步方式。如果SDN控制器需要实时同步Session的状态,那么当Session数量很多时,控制信道上的开销会很大。如果SDN控制器定期同步Session状态,那么SDN控制器中全局视图的实时性就会受到影响。OpenFlow控制器还支持对于Session的直接控制,此时Session建立的速率以及OpenFlow控制器的压力的处理可能就会成为瓶颈。因此,Session的同步方式要根据实际场景和需求来进行选择。
2)Session的备份。高可用是防火墙以及其他网络高级服务的基本要求,实现高可用是有代价的,不同层面的高可用代价不同。在路由层面解决防火墙高可用性是最为基本的,其代价较低,但是对于Session的控制能力不强,在切换时很可能会导致业务的中断。如果同时和Session层面进行防火墙状态的热备份,其可用性会很高,但是实现的代价较高。实现热备份有两种方式:第一种是通过SDN控制器在VNF实例间进行同步,控制信道压力大;第二种是直接在VNF实例间进行同步,数据平面带宽的开销会很大。
SDN只能实现网络层面的安全,对于数据安全问题,只能将流量引入专业的数据分析软件进行处理。传统的数据中心里,需要部署SPAN或者TAP来实现端口镜像,SPAN和TAP的实现受限于资源和成本,只能部署在少数的关键位置。SDN可以动态地将镜像点插入网络中的任意位置,为虚拟化环境提供更好的可视性。当数据分析软件完成分析后,可以将分析的结果(如恶意流量的特征)反馈给SDN控制器,然后由SDN控制器下发安全规则将恶意流量丢弃,实现“数据+应用+网络”的闭环安全防护。另外,随着近几年大数据的发展与普及,SDN控制器上也得以直接集成一些数据分析的功能,能更好地服务于数据中心安全。
2.服务链与安全
多租户环境中,不同的租户会获得不同的VNF实例。SDN控制器需要完成流量的引导,即所谓的服务技术。服务链技术通常在vSwitch上实现,当VNF实例采用集中式部署时,服务链的引流策略只需要部署在少数vSwitch上。当VNF实例采用分布式部署,服务链的实现将变得非常复杂。
一般而言,通过服务链将一些安全相关的VNF串在一起,就可以满足绝大部分的安全需求。如果需要实现更为专业的流量安全策略,数据中心运营商可以与流量清洗中心进行合作,将那些难以区分的流量牵引到专业的清洗中心进行处理。攻击流量被清洗中心过滤掉,安全的流量被回注到数据中心进行服务。流量的牵引可以在数据中心入口通过OpenFlow来完成,也可以在城域网入口通过PBR直接对可疑流量进行牵引,清洗过后的流量再通过专线或者隧道回注到数据中心。
3. SDN本身的安全问题
前面概括地说明了SDN对于数据中心安全性的提升。不过在引入SDN后,SDN本身的安全就成了其他网络安全的基础。控制器是SDN的大脑,其安全问题首当其冲,最基本的要求是在控制器的南向和北向接口上做认证、加密和数据校验,防止非法接入、窃听、重放等攻击形式。控制器上某些操作的执行需要进行鉴权,这要求控制器本身能够支持多租户或者RBAC(Role-Based Access Control),同时对一些性关键的操作需要进行审计,以确保其合规性。在网络部署中,如果SDN控制器需要暴露在公网上,就需要对其采取更为全面的安全措施,如DOS和DDoS防护等。
相比IT层面的安全问题,SDN自身的安全性更加值得深入的探讨和研究,尤其是一些新生的网络控制协议。它们在增强了传统网络能力的同时,也会引入很多潜在的安全问题,对于这些问题的研究还仍然停留在学术讨论阶段,目前还没有形成特别成熟的安全防范体系。鉴于SDN仍没有进入大规模的商用,因此SDN自身的安全问题还并不突出,不过这些问题如果不能及时得到解决,那么SDN的大规模落地恐怕就只能是纸上谈兵了。
- 点赞
- 收藏
- 关注作者
评论(0)