数据中心Data Center在虚拟化与云计算以及软件定义网络(SDN )这样的新技术驱动下迅速发展。与此同时也颠覆了数据中心Data Center的网络安全的设计与部署。
软件定义网络(SDN:Software-Defined Networking)
虚拟化与云计算方兴未艾,另一项技术模式软件定义网络(Software-Defined Networking)(或外沿更为宽泛为软件定义数据中心Data Center)的提出已然同样带来诸多的改变。SDN,SDDC、网络虚拟化以及网络功能虚拟化(NFV:network function virtualization)— 这些意味着,于安全又有怎样的影响?
网络虚拟化
要谈网络虚拟化应该从服务器虚拟化的历史谈起。服务器虚拟化或更确切的是x86虚拟化、物理计算硬件的抽象化,也就是x86 CPU、芯片与RAM;以及管理程序层面的从OS与应用都等同于虚拟,举个例子vCPU以及vRAM等。把这些虚拟的集合封装到一个VM的容器中,且与其他容器相隔离,从而实现了相比硬件组合更经济的方式。基于此,虚拟化网络中便有了虚拟化的交换机,也就是一种如何让多个vNIC共享一个物理接口卡的一种逻辑上的机制。但这并不是x86服务器的虚拟化,毕竟,一个板载的x86网络硬件是NIC或以太网适配器,并不是一个交换机,作为最早的虚拟化产品,举个例子VMware虚拟机是没有虚拟交换的(且现在也没有)。
厂商与用户都快速的发现虚拟化网络可以提供除了硬件合并以外的其他网络方面的优势,举个例子带宽资源池、冗余、NIC冗余等,且虚拟化网络的功能快速扩展。不过虚拟化网络仍然是服务器虚拟化的副产品,虚拟化交换机假设独立于管理程序vmkernel外仍然不是一个真正的软件交换。虚拟网络实际上仍然要依靠物理网络,而不能反向行之(举个例子,依赖物理网络去定义802.1Q VLAN)。
网络虚拟化将虚拟化网络提升到一般的部署层面且集中在物理网络层,举个例子交换机与路由。类似,如同x86服务器,网络端口抽象化为虚拟端口,可逻辑上与虚拟交换相结合。网络层hypervisor也可以甚至独立于x86的hypervisor平台而存在,或甚至可以在没有服务器虚拟化的环境下,尽管现如今采用网络虚拟化的任何的数据中心Data Center同样会使用虚拟化服务器。
网络虚拟化中两个关键的话题是OpenFlow与overlay networks
OpenFlow — 将控制与数据层虚拟化
OpenFlow模式下,对管理层面解耦合的逻辑抽象或通过网络层hypervisor或SDN控制器抽象化控制层。OpenFlow是被推荐的通信标准之一,也就是通过在SDN控制器之间定义各个厂商层面需要的客户端服务器API接口,这样便会在固定的物理交换机/接口之间定义或控制数据流。 大多数网络硬件厂商都接受了OpenFlow,不过并不是全部的厂商都使用公开的标准为驱动产出价值。
数据流控制提供了一种集成安全设备的方式,举个例子网络监控或逻辑网络内部的在线的防火墙设备;不过,安全产品应不能使用Openflow协议(或南向接口)直接去在网络接口对流量进行修改,也就是说,根本上作为一个OpenFlow客户端应仅有一个“指挥控制中心”或SDN控制器。 为了与控制器协调工作,安全产品应使用其他控制器中可用的北向接口或编排相关的架构以与其他网络协议以及其自身的核心网络数据流相协调。
不过,SDN带来的挑战,举个例子VMware NSX或甚至是开源的Floodlight,都没有标准的北向接口。一个潜在的解决方案是如同Openstack Quantum这样的开源项目,提供包括北向API等一套的东西,不过作为一个SDN控制器进行服务,而是作为支持控制器的接口。 即便这样,不断重新定义数据流且能够实时进行也不是一种理想的方式利用SDN进行安全策略的执行,且会带来复杂与冗余。