摘要:网络虚拟化虽然为现有的网络,特别是数据中心网络带来非常多的益处,例如自动化配置、提升资源利用率等优点,但是也付出了相应的性能代价(就如同计算资源虚拟化中的资源损耗或者Host上创建多虚拟机的性能损耗)。而且网络虚拟化的技术发展仍处在不成熟阶段,仍然是一个新技术,还有许多可以优化提升的空间。本文总结了网络虚拟化方面未来的几个研究方向。
1. 性能提升
影响网络虚拟化系统性能的因素有很多。如一个大因素就是OVS等虚拟交换机性能不足;其次,由于网络虚拟化平台采用集中式架构,虚拟化平台本身的性能极大地影响整体网络的性能,容易带来单点故障问题,成为网络中的性能瓶颈。如何设计具有易拓展、性能优异的网络虚拟化平台是网络虚拟化的一个重要研究方向。
此外,在数据平面上使用Tunnel技术实现网络虚拟化也存在诸多问题。如采用Tunnel技术带来了更长的报头,降低了传输效率。当采用VXLAN时,数据基于UDP报文传输,因此在传输过程中,网卡无法进行数据切片,而需要利用CPU数据切片,会消耗大量的CPU资源。而采用STT则只能将其部署在软件交换机上,而无法部署在物理交换机上。因此,如何设计兼容性更强、适配性更优异的Tunnel协议是网络虚拟化领域未来的一个研究方向。
2. 安全与隐私
安全是网络研究领域永远绕不开的话题。由于网络虚拟化技术的广泛应用,网络的安全问题愈加严峻,虚拟化平台本身的安全也成为新的问题。当虚拟化平台杯DoS或DDoS攻击崩溃时,所有租户的虚拟网络服务都会受到影响。而如果虚拟化平台被入侵,问题将更加严重,因为黑客可以在SDN控制器和交换机都无法察觉的情况下,轻易地获取所有的信息。虚拟化平台俨然成为了攻击者的天然肉鸡及中间代理点,黑客可随意从中提取信息。所以虚拟化平台的安全与数据保护也是未来的研究方形之一。
不同租户之间的数据需要隔离,网络需要隔离(包括节点网络资源隔离、地址隔离、链路隔离、网络拓扑隔离),才能保证租户的数据隐私安全。如何设计网络虚拟化平台的租户隔离机制,更安全的隔离租户数据,同时减少虚拟平台对租户隐私数据的侵犯,是一个复杂的业务逻辑,仍然需要更进一步的研究工作。
3. 架构设计
虚拟化平台的架构设计也是重要的研究方向之一。集中式的架构可以实现高效、自动化的网络管理,但是存在可靠性和可扩展性方面的问题。分布式系统架构虽然拥有很好的可靠性、可拓展性,但是由于大量数据需要同步,其效率更低。所以如何根据不同的业务场景设计自适应的虚拟化平台架构是一个亟待解决的研究课题。
4. 资源发现、虚拟化和调度
网络虚拟化的重要前提是资源发现,只有资源被发现、被收集之后才能对资源进行虚拟化。而当前基于OpenFlow协议的网络资源只具备发现数据平面节点的特性,而链路资源的发现仍然需要通过LLDP等其他协议完成。现有的链路发现方法通常采用控制器周期性地下发链路发现报文(如LLDP报文)来实现,这种方法带来了额外的网络流量,所以如何优化网络资源(包括网络拓扑、交换机和路由器等数据平面节点、网络链路等)发现算法也是值得研究的课题。
在发现资源后,如何对资源进行细粒度的虚拟化是一个重要的工作。当前不同的虚拟化平台对资源的虚拟化标准尚未统一,仍需要进一步优化和统一。
此外,基于租户网络业务需求的虚拟资源调度室虚拟化平台研究的重中之重。资源虚拟化只是完成了虚拟化,如何动态自适应地调度虚拟资源,提高整体资源的利用率是众多研究人员的研究内容,也是当前比较热门的研究方向。
5. 动态和移动性管理
网络中主机的移动性给虚拟化平台带来了许多难题。比如数据中心中的虚拟机动态迁移和移动场景下的主机移动都带来了网络的变动,都需要网络虚拟化平台对变动进行对应的策略调整。如何实现针对移动资源的策略随动自适应机制,不仅需要针对SDN控制器进行策略优化,也需要网络虚拟化平台进行相应的调整。
6. 编程接口,定义标准化
当前,各个虚拟化平台的编程接口及虚拟化资源定义等标准尚未统一。为了实现多虚拟化平台的协同工作,需要推动接口和定义的标准化。标准化可以节省开发人员和学习者的学习成本,也为多虚拟化平台合作提供了可能,从而允许部署跨平台的网络虚拟化业务。在技术发展过程中,标准化是永恒的规律。
附:主流网络开源项目使用的编程语言
名称 | 语言 | 类型 |
---|---|---|
Open vSwitch | C | SDN数据平面 |
OpenDaylight | Java | SDN控制平面 |
ONOS | Java | SDN控制平面 |
Ryu | Python | SDN控制平面 |
OpenStack Neutron | Python | SDN应用 |
OpenContrail | C++ | SDN应用 |
黄一博
2018年5月9日