摘要:SDN(Software Defined Networking)是由美国斯坦福大学提出的一种新型网络架构,其主要思想是将网络的控制面与数据面分离,通过软件编程的方式来实现对网络的管理和控制。本文在SDN框架基础上做了IPv4与IPv6互联技术的研究,设计了基于SDN的IPv4和IPv6互联系统。在该系统中利用SDN的技术手段,用控制面提供的标准控制接口编写IPv4与IPv6互联的应用软件,实现IPv4数据包与IPv6数据包的协议翻译和地址转换,然后将其安装配置到SDN控制器中。这种方式不仅配置起来简单方便而且不需要对原有IPv4和IPv6的网络设备做功能上的改动。当不需要IPv4与IPv6互联的需求时,只需从控制器中移除IPv4与IPv6互联的功能即可,对网络造成的影响微乎其微。
引言
随着网络规模的扩大和各种各样新应用的产生,IPv4网络暴露出来越来越多的问题,如IPv4地址耗尽、安全性问题、QoS(服务质量)问题、配置不够简便等。这些问题已严重阻碍了当前互联网的发展,因此设计制定了新的IPv6协议[1]。而要将当前的IPv4网络完全升级为IPv6网络需要付出巨大的成本,因此在未来一段漫长的时间内IPv4与IPv6会同时存在[2]。为保证网络业务的连续性,在IPv4与IPv6共存阶段必须引入IPv6过渡技术[3]。当前使用的每种过渡技术都只针对某一种特定应用需求而不具有普适性。因此在实际部署中根据具体应用需求在网络中添加具有相应功能的设备,这不但会增加网络功能的复杂性,而且配置复杂易造成资源浪费。
SDN[4](Software Defined Networking)是由斯坦福大学CleanSlate[5]研究组提出的一种新型网络架构,其核心思想是将传统网络中的网络控制与网络转发解耦分离成一个控制面和一个数据面,控制面对外界开放标准控制接口,网络管理员可以使用这些控制接口编写具体的网络应用程序从而达到对网络具体需求的控制。而数据面仅根据来自控制面的命令对网络中数据通信进行转发等处理。SDN自从其问世以来,以其通过软件编程来实现对网络实行更加灵活、开放、细粒度的管理和控制广受学术界和企业界的关注。目前OpenFlow[6]作为SDN一种比较受最多认可实现方式,在学术界、企业界得到了广泛研究和发展。因此SDN很可能会成为下一代互联网体系架构[7]的方向。
SDN出现后已经在很多方面得到关注和应用,但是如何在传统IPv6过渡技术中引入结合SDN技术,从而解决IPv4与IPv6共存阶段网络的复杂性和业务的可持续性,目前还没有过多深入的研究。本文在SDN框架基础上做的IPv4与IPv6互联技术的研究具有一定的理论和实践意义。
基于SDN的IPv4与IPv6互联系统的设计
本文在SDN框架基础上做了IPv4与IPv6互联技术的研究,设计了基于SDN的IPv4和IPv6互联系统。在该系统中利用SDN的技术手段,用控制面提供的标准控制接口编写IPv4与IPv6互联的应用软件,然后将其以插件的形式安装添加到SDN控制器中,当控制器收到IPv4主机与IPv6主机间通信的数据包后,会将数据包交给IPv4与IPv6互联的应用模块处理,然后将根据处理结果在交换机中设置相应的转发规则。最后,交换机根据控制器下发的转发规则数对数据包完成传输交换。可以看出采用了SDN后,不仅避免了在网络中为需要的实现某种功能而定制各种配置复杂的网络设备,而且使网络功能的调试测试变得灵活方便。即使以后不再需要某些网络应用功能,只需将相关应用模块从控制器中移除即可,对网络造成的影响微乎其微。
本文设计的基于SDN的IPv4与IPv6互联系统的模型如图1所示,整个系统由路由子系统和互联子系统两个子系统组成。路由子系统设计实现在控制器中,该子系统会根据收到的跨网通信数据包源目的IP地址在SDN网络中选择一条连接两个网络的路径。这样对于连接到SDN网络的IPv4和IPv6网络而言,相当于连接到一个中心路由器。如果将互联子系统同样设计实现在控制器,那么所有IPv4与IPv6网络间的通信数据包都需要由控制器处理,这将占用控制器大量的计算资源。不仅会造成网络IPv4与IPv6网络间的通信效率低下,而且会影响控制器对其他网络业务的处理。因此互联系统在一台独立的设备中实现,即图中的互联网关。控制器会为IPv4与IPv6网络间的数据通信在SDN网络中选择一条经过互联网关设备的路径。
路由子系统
控制器为IPv4与IPv6网络间的数据通信选择路径需要根据IP地址判断数据包是否需要由互联网关处理或是数据包的出口边界路由,SDN控制器仅实现了对SDN网络的基本管理控制功能,它实际管理的是一个二层链路网络,不支持不同网络间的三层路由功能。因此本文在控制器的基本功能架构基础之上设计实现了路由子系统,这样对于连接到SDN网络的其他网络来说相当于连接到一个中心路由器上。路由子系统包括路由配置模块、路由设备探测模块和路由信息管理模块理模块三个功能模块。
1.路由配置模块:网络管理员通过该模块配置边界路由设备和配置边界路由设备的网络可达信息,即边界路由设备的路由表。
2.路由设备探测模块:该模块主要用来探测定位边界路由设备在SDN网络中具体物理信息。
3.路由信息管理模块:管理维护SDN网络中已知的边界路由设备和边界路由设备中的网络可达信息。
互联子系统
控制器收到一个交换机不能处理的数据包后,若发现该数据包需要翻译转换,则先将该数据包转发到互联网关由互联子系统处理。互联网关收到该数据包后为数据包做协议翻译与地址转换处理,然后将翻译转换完成的新数据包发送到网络中由控制器继续处理。互联子系统包括DNS-ALG[8](Domain Name System-ApplicationLayer Gateway)和NAT-PT[9][10](Network Address Translation-Protocol Translation)模块两个功能模块。
1.NAT-PT模块:主要是实现IPv4格式数据包与IPv6格式数据包间的翻译转换,包括协议翻译与地址转换。
2.DNS-ALG模块:在NAT-PT模块基础上,通过域名解析建立IPv4地址与IPv6地址的映射。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。