基于openflow的SDN技术的研究
本文共分为四个部分:第一部分SDN的概述;第二部分:openflow技术及其相关组件和研究的进展;第三部分:SDN面临的问题和解决思路;第四部分:SDN的应用部署。
第一部分:SDN概述:
SDN,软件定义网络,分离了网络的控制面和数据面,为研发网络新应用和未来互联网技术提供了一种新的解决方案。
为什么会出现SDN?
1、传统网络的弊端
互联网的接入方式和网络角色定位发生了根本性的变化,移动接入、物联网成为互联网的主要接入方式,云计算成为主要的互联网计算模式,多媒体分享应用和社交网络成为互联网的新型应用,网路已经成为信息采集、传输、存储、处理于一体的信息化平台。但是这却使以IP地址为核心的,点对点通信的TCP/IP体系结构在可扩展性、动态性、安全可控性面临着巨大的挑战。
可扩展性:流量激增和路由表急剧膨胀已经影响到了传统网络的可扩展性。根源在于以IP地址为核心的点对点的通信模式。NDN/CDN
动态性:便携式移动终端的日益普及、物联网的出现使得低智能终端数量爆发性的增长。以移动为中心的网络结构(安全机制+全局名字解析)
安全可控性:通过扩展网络协议(IPsec、SSL)、增加安全设备(防火墙)。
PS: IP地址为核心的点对点的体系结构中,服务资源与物理网络缺乏互感互知,比如P2P遇到的问题。
2、路由器的缺陷
网络的核心路由器,承载的功能不断扩展,如分组过滤、区分服务、多播、服务质量、流量工程等,路由器最初定义的“哑的”、“简单的”数据转发单元已经变得臃肿不堪。现在的路由器只能通过命令行接口等方式对外开放少量功能,研究人员难以在真实的网络中试验和部署新型网络体系结构和网络技术。
第二部分:penflow技术及其相关组件和研究的进展
Openflow,狭义的SDN,指的是SDN控制平面和数据平面之间多种通信协议之一,是SDN的一个具体实现。SDN最初作为SDN的原型提出时,主要是由openflow交换机、控制器两部分组成。最初提出SDN是试图通过一个集中式的控制器,让网络管理员可以方便的定义基于网络流的安全控制策略,并将这些策略应用到各种网络设备中去,从而实现对整个网络通信的安全控制。
Openflow交换机有三部分组成:流表、安全通道、openflow协议。
1、流表:为了提升流量的查询效率,目前的流表查询通过多级流表和流水线模式来获得对应的操作,流表项主要包括:匹配域、计数器、操作这三部分组成。匹配域的结构包含了很多匹配项,涵盖了链路层、网络层、和传输层的大部分标识。
2、Openflow协议,随着openflow规约的不断发展,VLAN、MPLS、ipv6等协议也逐渐扩展到openflow标准当中。
3、openflow采取流的匹配和转发模式,因此在openflow中不再区分路由器和交换机,二是统称为openflow交换机。
安全通道是连接openflow交换机与控制器的接口,控制器通过这个接口,按照openflow协议的规定格式来配置和管理openflow交换机。
目前基于软件实现的openflow的交换机有两个版本,都部署在Linux系统中:基于用户空间的软件openflow交换机操作简单,便于修改,但是性能较差;基于内核空间的软件,openflow交换机速度较快,提供虚拟化服务,但实际修改和操作复杂。
控制器:
1、在基于NOX的openflow网络中,NOX是控制中心,运行在NOX之上的应用程序通过调用网络视图中的全局数据,进而操作openflow交换机来对整个网络进行管理和控制。NOX实现了网络的基本管控功能,为openflow网络提供了API的基础控制平台,但是未能提供充分的可靠性和灵活性来满足可扩展的需求。
2、为使控制器能够直接部署在真实的网络之中,解决多控制器对openflow交换机的控制共享问题,同时满足网络虚拟化的现实需求,flowvisor实现了在交换机和控制器之间的网络虚拟层,踏实的硬件转发平面能被多个逻辑网络切片共享,每个网络切片拥有不同的转发策略。在这种模式下多个控制器能够同时管控一台交换机,多个试验网络能够同时运行在一个真实的网络中。
SDN的功能:
应用层根据网络不通的应用需求,调用控制层的北向接口,实现不同功能的应用程序。通过这种软件模式,网络管理者能够通过动态的SDN应用程序来配置、管理、优化底层的网络资源,从而实现灵活可控的网络。这也是SDN开放性和可编程性最重要的体现。
第三部分:SDN面临的问题和解决思路
1、SDN转发平面的设计问题,随着openflow的规约不断发布,交换机的流表也从最初的单表结构变为多表结构,流表项匹配字段也支持ipv6、MPLS等,这就意味着openflow交换机的结构更加复杂。
2、控制平面的可扩展性:随着网络业务量的增加,需要多控制器的解决方案,而控制单元的数量和他们之间的网络状态的协同和交互如何实现,还需要深入研究。
3、SDN控制逻辑的一致性。虽然控制平面能够将控制逻辑集中部署到整个网络,但数据平面转发设备仍然是一个分布式的系统,可能存在的延迟,难以保证一致性,有可能造成断路,丢包的问题。
4、运算压力大、软件复杂度高、系统稳定性存在隐患:为了实现网络的可编程性,应用程序会被赋予大量对环境的控制权,而这容易导致系统崩溃。
5、控制器接口尚未标准化
6、网络集中控制固有的安全隐患,SDN安全问题的独特性在于SDN管理的集中性和开放性。控制面安全(监听)、应用层安全(蠕虫,恶意软件),通过授权、访问控制等来解决控制层面的问题,通过控制器提供的编程接口进行鉴定应用层的应用。
7、市场利益
第四部分:SDN的应用部署:
面向校园网的应用:实现网络虚拟划分和移动管理。
面向数据中心的部署
面向网络管理的应用
面向安全控制的应用