时间:2015-04-15 09:05:21 来源: 复制分享
许多人曾预料,企业组织采用软件定义网络(SDN)技术的步伐会晚于服务提供商或多租户数据中心和云服务提供商。我们现在看到网络功能虚拟化(NFV)在企业内部得到更多的使用,一些企业正开始推行SDN试点项目。就在企业考虑如何在自己的数据中心环境中利用SDN技术之际,也开始考虑SDN能提供哪些新的安全功能。针对控制器不允许传送的数据流,SDN交换机可以丢弃数据包。本文探究SDN交换机运行起来能否像传统防火墙。
软件定义网络是由这个概念发展而来的:将较低层的数据包/帧转发功能与智能化决定如何传送应用程序流量的控制功能分离开来。控制平面与转发平面相分离,让网络可以以新的和创新的方式为数据包处理提供方便,并且为网络虚拟化创造了一种新的范式。SDN为网络设计打开了一片新天地,能够带来创新的网络方案。SDN还促使我们重新考虑安全策略在网络里面如何执行。
在OpenFlow SDN模式中,网络交换机里面的数据流由OpenFlow控制器直接放在那里。要是数据流不存在(table-miss),那么交换机将数据包送到(punt)控制器,以便在决定该如何转发数据包方面寻求帮助。OpenFlow技术规范表明,如果table-miss流表项未出现在交换机中,又没有规则将数据包发送到控制器,那么交换机丢弃该数据。如果交换机将数据包送到数据包,那么控制器处理数据包进入(Packet-in)消息,决定该数据包的命运。控制器随后确定应该转发数据包,还是丢弃数据包。这种行为听起来似乎SDN交换机的运行方式如同防火墙,并执行“流表中不含有的数据包则被丢弃”标准安全策略。可以认为这好比是默认的“错误保护状态”,Elizabeth D. Zwicky、Simon Cooper与D. Brent Chapman合著的《构建互联网防火墙》一书中也提到了“错误保护状态”(Fail-Safe Stance)。乍一看,这听起来就像是一种出色的新型安全技术,似乎SDN交换机上的每一个端口运行起来都如同防火墙。
许多SDN交换机运行起来酷似标准的以太网交换机,针对发往广播、多播或未知MAC地址的以太网帧,通过所有端口泛洪数据流。大多数SDN交换机会像典型的基于硬件的以太网交换机那样,泛洪正常的ARP数据流。在大多数情况下,SDN交换机的默认行为就是充当以太网网桥,或学习型交换机。然而,可以让SDN交换机处于明确转发模式:只有控制器允许或配置/推送的数据流才允许发送。
如果环境中的每只以太网交换机都可以像传统防火墙那样运行,它会改变网络环境中实施安全策略的方式。设想一下:如果每只以太网交换机都是多端口防火墙,那么防火墙策略可以实施在整个网络上的每一个入站交换机端口处和交换机之间的每条链路上。将会有面向每个服务器、每个桌面、每条链路的防火墙,防火墙策略将由控制器来实施,而控制器对当前的应用程序流量有一个全局观,清楚应该允许哪些流量。在整个环境执行安全策略将意味着完全侵蚀安全边界。手动实施并维护那么多的安全策略将是管理难题。然而,有了控制器架构,策略只要创建一次,随后就可以推送到每一个网络设备,以便执行。
网络切分(network slicing)是SDN的常见使用场合之一。网络可以在逻辑上划分成逻辑分隔的网络,这些网络覆盖在同一个物理网络硬件上。网络切分在大学里面是一种常见的使用场合,因为大学希望将不同的部门(招生部、财务科、宿室楼和计算机科学系等)划分成自成一体的逻辑网络区域。SDN可以分隔网络,类似虚拟路由和转发(VRF)实例,可用于分隔第3层转发。这还可以通过在控制平面和数据平面之间添加一个切分层来实现,因而让安全策略可以针对特定的切片。执行“流空间(Flowspace)”中切片之间的强分隔意味着,一个切片中的并不影响另一个切片。想了解更多信息,可关注Flowvisor和FSFW:流空间防火墙。这方面的一个例子就是思科可扩展网络控制器(XNC)及Networking Slicing应用程序。这样一来,SDN就能提供“多类型防御体系”(Diversity of Defense)概念,《构建互联网防火墙》一书中同样提到了这个概念。
使用具有SDN功能的交换机作为防火墙之所以切实可行,这方面的一个关键概念就是它为应用程序数据流维护的状态。访问控制列表(ACL)不带状态功能,并不意识到连接何时开始或何时结束。即使有老式的思科ACL CLI参数“established”,ACI也只是变得稍微“带状态功能”。ACL通常并不关注任何三向TCP握手(SYN、SYN-ACK和ACK),也不关注FIN/ACK会话终止。另一方面,状态防火墙可以观察会话的建立及关闭过程,并使用状态检查技术(Stateful Inspection),定向地运用策略。
那么,现代SDN产品如何实施策略,它们运行起来是否可能像传统防火墙?说到思科以应用程序为中心的基础设施(ACI),Nexus 9000交换机就以一种无状态方式来运行。应用程序策略基础设施控制器(APIC)中配置的应用程序网络配置文件(ANP)以无状态的方式,被部署到ACI架构中的交换机。因而,ACI系统在运行时无法达到与标准状态防火墙一样的安全级别。这就是为什么ACI允许第4层至第7层的服务图可以配置并整合到ACI架构中。
说到开放虚拟交换机(OVS),它只支持策略方面的无状态匹配。可以配置匹配TCP标志的OVS策略,或者配置规则,以便使用“学习”方法来确立返回数据流。然而,这些方法没有一种像传统的状态检查防火墙那样带状态功能。开放虚拟交换机社区在开展一些工作,拥有连接跟踪工具(Conntrack),以便让OVS可以通知Netfilter(好比正则表达式)连接跟踪器,并维持现有会话的状态表。
然而,Project Floodlight可以配置ACL,这些运行起来也如同无状态防火墙。Floodlight有一个防火墙应用程序模块,可通过检查数据包进入行为来执行ACL规则。这采用了一种被动的工作方式,第一个数据包旨在为流量创建实例,根据优先级排序的策略规则集来允许或拒绝流量。允许规则拥有重叠的流空间,而优先级制定了根据第一个匹配规则由上而下操作的策略。
VMware NSX能够配置SDN环境里面的安全策略。NSX for vSphere支持逻辑交换/路由、防火墙、负载均衡和虚拟专用网(VPN)功能。防火墙规则在虚拟网卡(vNIC)处执行,但防火墙策略与虚拟机关联起来;主机移动时,策略也随之移动。NSX分布式防火墙是一种内核可装入模块,提供了带状态功能的第2层/第3层/第4层双协议防火墙机制,能够执行反欺诈。VMware NSX防火墙策略运行起来如同拥有自反ACL的思科路由器。说到等价多路径(ECMP)设计或高可用性(HA),NSX边缘服务网关防火墙以无状态方式运行。换句话说,状态防火墙和负载均衡或NAT并不被采用HA或ECMP拓扑结构的边缘服务网关所支持。
有些行业组织正在努力研制可提供强大可靠的安全策略执行功能的SDN系统。FlowGuard等研究项目和一篇题为《面向SDN的状态硬件防火墙的基于OpenFlow的原型》的文章(作者是南达科他州大学的Jacob Collings)表明,有可能在SDN网络设备里面获得状态功能。
经过这一番分析后,我们可以得出这个结论:从控制器获得转发策略的SDN交换机未必带状态功能。因而,这些具有SDN功能的交换机无法提供与状态防火墙一样的保护级别。询问厂商其SDN解决方案中防火墙带状态功能方面的细节,并且明白它们是如何运行的,这点很要紧。由于许多这些SDN系统可能以无状态方式来运行,如果贵企业需要状态防火墙保护,那么你就必须使用SDN策略来转发流量,并支持服务链,以获得带状态功能的数据包检查网络功能虚拟化(NFV)防火墙。
英文:Is an SDN Switch A New Form of a Firewall?