张政
摘 要:主机虚拟化可以通过编程方式实现创建、删除和还原基于软件的虚拟机(VM)和快照、镜像等操作,SDN也能够对基于软件的虚拟网络实现类似功能。文章讨论的SDN在主机虚拟化环境中的应用是一种全新的联网方法,不仅使数据中心管理人员学习、管理难度大幅降低,还能极大地简化底层物理网络的运行模式。
关键词:SDN;主机虚拟化;融合应用
前言
当前的主机虚拟化环境中,网络与安全解决方案较为复杂,配置调整较慢、工作负载分配和移动受到限制。一方面物理网络连接和安全的限制,将日益活跃的虚拟世界重新束缚到了缺乏灵活性的专用硬件上,阻碍了网络体系结构和容量利用率的优化;另一方面,手动调配和杂乱无章的管理界面降低了维护效率,限制了企业根据业务需要快速部署、移动、扩展和保护应用系统及生产数据的能力。
利用SDN技术可以将底层物理网络作为简单的数据包转发设备,以编程方式创建、调配和管理逻辑网络,从而摆脱硬件限制;同时网络和安全服务将分布并附加到网络中的VM上,因此当VM移动到另一个主机上时,这些服务仍然附加在VM上并随之移动。此外,在网络中添加新VM来扩展应用程序时,策略也会动态地应用于新VM。
1 SDN相关理论
SDN(Software Defined Network,软件定义网络),是一种新型网络架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
如果将网络中所有的网络设备视为被管理的资源,那么参考操作系统的原理,可以抽象出一个网络操作系统(Network OS)的概念,这个网络操作系统抽象了底层网络设备的具体细节,提供了统一的管理视图和编程接口。这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。
2 SDN在主机虚拟化环境的工作原理
与主机虚拟化的模式相似,SDN方法允许数据中心管理员将物理网络看作透明容量池,可以根据需要使用和调整。VM是一个软件容器,可以为应用提供逻辑CPU、内存和存储,虚拟网络与之相似,也是一个软件容器,可以为连接的工作负载提供逻辑网络组件,包括逻辑交换机、路由器、防火墙、负载平衡器、VPN及其他组件。
SDN以编程方式创建、调配和管理虚拟网络。网络服务以编程方式分发到每个VM,与底层网络硬件或拓扑无关,因此工作负载可以动态添加或移动,VM连接的所有网络和安全服务不管其在数据中心的什么位置都会随之移动。SDN在主机虚拟化环境的工作原理如下:
2.1 不依赖物理网络硬件
SDN软件定义网络在任何物理网络硬件的上一层工作,支持大部分主机虚拟化管理程序平台。它对物理网络的唯一要求是必须提供IP传输,对底层硬件或虚拟化管理程序无任何依赖。SDN网关允许将旧式VLAN和物理主机映射到虚拟网络。
2.2 软件重现物理网络模型
SDN在每个主机虚拟网络中的软件中重现整个网络环境、L2、L3以及L4-L7网络服务。SDN为L2-L7服务提供分布式逻辑体系结构,包括逻辑交换机、路由器、防火墙、负载平衡器和VPN。这些逻辑网络服务在部署VM时以编程方式调配,并且随着VM移动而移动。现有应用无需修改即可运行,并且虚拟网络与物理网络连接之间看不到任何差异。
2.3 可扩展性
SDN由于其软件定义的特性,能够提供可插入其他网络功能的平台,可扩展集成式软件产品和硬件设备,包括网络网关服务、应用交付服务和网络安全平台以及安全服务等。
3 SDN在主机虚拟化环境的主要功能
3.1 逻辑交换
逻辑交换网络是创建弹性可移动虚拟数据中心的基础,通过它管理员可以快速方便地设立各自独立的二层网络,SDN的逻辑交换有着如下优势:(1)灵活性,通过支持跨交换机和单元边界的“扩展集群”,数据中心主机与存储的利用率和灵活性可实现最大化;(2)优化网络操作,逻辑交换网络在标准第三层IP网络上运行,不再需要构建和管理庞大的第二层基础传输层;(3)投资保值,逻辑交换网络包跑在标准交换机硬件上,交换机上无需进行软件升级,也不必采用特殊的代码版本。
3.2 逻辑路由
3.2.1 集中式路由
SDN可提供傳统的集中式路由功能,提供数据中心南北向路由通信,同时还能提供Firewall、DHCP、NAT、VPN、负载均衡等多种网络服务。
3.2.2 分布式路由
SDN的分布式路由功能优化了主机虚拟化环境的东西向流量,并提供了一个分布式处理、水平扩展的网络架构。VM间流量或者主机间流量成为东西向流量。主机之间的高带宽通信需求要求数据中心能够提供分布式的、面向服务的网络。
若VM之间的通信是跨不同网段的(跨三层)则在通常状况下需要物理路由器做转发,VM流量需要流出物理主机到物理路由器转发后再回到主机做处理,这种由于不优化的网络架构产生的流量通常称为发卡流量(hair pinning)。发卡流量能够通过分布式路由解决,因为SDN把东西向路由功能(模块)放到了主机里的hypervisor层。每个hypervisor有个路由的内核模块来提供跨不同逻辑交换网络间的通信。
3.3 逻辑防火墙
SDN提供分布式的内核防火墙,该防火墙部署在每个hypervisor内核,提供安全过滤转发,支持VM对象属性,支持以用户ID为对象的安全监控,同时把其他安全服务融入SDN软件定义网络。通过逻辑防火墙,在主机虚拟化环境可以实现如下功能。
3.3.1 网络隔离
网络隔离是最普遍的网络安全需求,不同于传统的依靠手工配置物理网络设备(防火墙、ACL等)来实现网络管控,SDN软件定义网络平台天生可以实现多租户的网络隔离。
虚拟网络之间在缺省状况下是自动相互隔离的,除非管理员指定虚拟网络之间的关联。而且这种网络隔离不需要物理网络划分子网、设置VLAN、ACL或防火墙策略。
而且维护这种网络隔离的同时,VM可以部署在数据中心任意的主机上,不同网络的VM可以配置在同一个主机上,也可以在不同的主机,隔离的策略不变。这种网络隔离意味着不同VM可以使用相同的IP地址,即两套相同IP地址的测试环境VM在同一个物理网络上运行而不互相干扰。并且由于overlay封装,物理网络、虚拟网络各自的IP环境相互独立,如用户可以使用IPv4的物理网络来承载IPv6的虚拟网络。
3.3.2 网络分区
使用软件定义网络可以轻松实现网络分区。相对于传统网络隔离,软件定义网络可以实现multi-tier的虚拟网络组,及网络分区。传统的方式下网络分区是由配置物理路由器防火墙的方式来实现的,该方式很容易造成人为的配置失误,带来繁琐的troubleshooting,为运维管理带来的较大的负担。
网络分区同网络隔离一样是软件定义网络的核心功能,SDN可支持多个虚拟网络L3互联,同时支持二层虚拟网络上使用分布式防火墙策略实现网络分区。而且上述功能可通过软件自动化部署,减少传统方式下的人为失误。
在一个虚拟网络里,网络服务(L3,L2,QoS,Firewall等)都是程序化地执行、推送到各个hypevisor的vSwitch上。网络隔离、防火墙策略是直接加载到VM的虚拟网卡(vNIC)上。VM之间的通信不會转发到物理网络上,即物理网络不需配置ACL、防火墙来管控虚拟网络。
3.3.3 跨物理和虚拟基础架构
SDN支持跨虚拟和物理安全平台自动化资源调配和上下文共享。结合虚拟接口处的流量转向和策略实施功能,过去部署在物理网络环境中的第三方服务将可以轻松地在虚拟网络环境中调配和实施,SDN可以跨驻留在物理或虚拟工作负载中的应用为用户提供一致的可见性和安全性模型。
3.4 逻辑功能扩展
SDN是一个可扩展的平台,它包括一个分布式服务框架,支持加入第三方服务。利用标准的SDN API让第三方能够集成管理、数据和控制平面,并增强SDN的核心功能,包括逻辑防火墙、负载均衡、VPN、交换、路由等。用户将能够从第三方提供的广泛解决方案中选出最佳的解决方案,无缝地集成到任何管理系统并确保一致的用户体验。
3.5 跨管理中心的网络
在跨虚拟主机管理中心环境中,多个管理中心Server必须同对应的SDN Server进行配对,同时在众多SDN Server选择一个为主角色,其他SDN Server分配为辅助角色。
主SDN Server用于部署通用控制器群集,为跨管理中心SDN环境提供控制层面的管理,辅助SDN Server不必拥有自己的控制器群集。主SDN Server可以创建通用对象,如通用逻辑交换机、逻辑路由器等,这些对象通过SDN同步到辅助SDN Server。从辅助SDN Server中可以查看这些对象,但无法编辑。而从主SDN Server可用于配置环境中的任何辅助SDN Server和相应的逻辑对象。
4 结束语
SDN真正给网络带来服务器虚拟化一样的服务,提供了全新的网络运行模式,突破了当前物理网络障碍,使数据中心管理员得以将部署速度、维护效率大幅提高,解决了主机虚拟化环境中的如下问题。
4.1 简化部署
SDN通过在物理网络上重新构建一套Overlayer的虚拟网络,将所有的VM部署在一个统一的网络环境下。并且通过分布式交换、路由、防护墙等网络服务模块,为用户构建了一个可以跨物理设备,甚至跨管理中心的虚拟化基础架构。用户的VM可以部署在任意物理位置,而它的网络策略,安全策略都可以随VM保持一致。避免了管理员大量重复劳动,解决了主机虚拟化环境快速中网络配置瓶颈,从而简化应用系统部署过程。
4.2 安全管控
SDN通过分布式逻辑防火墙,可以在每台物理主机上都部署内核级防火墙。为每个VM都部署独立的安全策略,保障每个VM的安全,而且安全策略可以和VM一起迁移。这些安全策略的设置是根据VM自己的条件来设置,如VM名字、登录用户名、操作系统等,因此不论运行多长时间,后来的管理维护人员都能够马上理解并在此基础上根据实际情况进行调整。降低了新管理员学习时间成本,减少了不同批次安全策略冲突的几率,增加了主机虚拟化环境内部VM之间安全策略,进而提高安全管控效率。
参考文献
[1]张顺淼,邹复民.软件定义网络研究综述[J].计算机应用研究,2013,08:2246-2251.
[2]陶松.基于SDN的网络虚拟化安全研究[J].电脑知识与技术,
2015,15:23-25.
[3]韦乐平.SDN的战略性思考[J].电信科学,2015,1:7-12.
[4]殷波,张云勇,王志军,等.基于SDN的数据中心网络技术研究[J].信息通信技术,2015,1:29-33.
[5]张斌,罗东森.云计算数据中心SDN部署研究[J].通信技术,
2014,12:1424-1428.