基于mininet的SDN架构仿真研究

2014-05-25 00:28郝志安
计算机与网络 2014年5期
关键词:流表表项交换机

李 艳 郝志安 李 宁 卢 冀

(中国电子科技集团公司第五十四研究所 河北 石家庄 050081)

基于mininet的SDN架构仿真研究

李 艳 郝志安 李 宁 卢 冀

(中国电子科技集团公司第五十四研究所 河北 石家庄 050081)

软件定义网络(SDN)是一种新型网络创新架构,公开标准的OpenFlow技术是实现SDN架构最有效的技术之一。为进一步研究SDN架构的特性,为应用创新提供可定义的网络平台,在基于OpenFlow的mininet仿真软件的基础上,实现了SDN架构的仿真。文章总结了典型的SDN架构的特性,分析了基于OpenFlow技术的仿真原理和方法,基于Mininet仿真软件构造,验证了SDN架构的功能和基本工作流程,提出的仿真方法和搭建的平台可为SDN架构的研究提供有效的技术支撑。

SDN OpenFlow Mininet

1 引言

伴随着云计算、物联网和移动互联网的快速发展,复杂的传统网络难以满足使用需求的增长,而且有太多复杂的功能加入到路由器设计里面,比如OSPF、BGP、白名单、策略路由和MPLS等,早期定义的“最精简”的数据通路已经臃肿不堪。网络的复杂性已经难以灵活地满足各种业务提出的不同资源需求,在这一背景下,SDN的概念被大家广泛接受和认同[1]。SDN是一种基于软件的网络架构和技术,支持集中化的网络控制,实现了底层网络设施对上层应用的透明,具有灵活的软件编程能力[2],采用软件定义网络的方式,灵活满足不同用户的应用需求。开放网络基金会(Open Networking Foundation, ONF)标准化组织提出的OpenFlow技术,是目前实现SDN唯一的开源标准,为SDN架构的研究提供了便利方法的方法[3]。

在OpenFlow技术的基础上,采用mininet仿真软件构建了SDN模型,给出了验证SDN架构灵活可编程功能的方法,验证了SDN的控制与转发分离的架构,实现了软件定义网络。

2 SDN架构

SDN架构如图1所示,传统网络设备紧耦合的网络架构被分拆成3个层级:基础设施层,控制层和应用层。基础设施层负责数据高效转发和状态收集;控制层负责数据平面资源的编排、维护网络拓扑和状态信息等;应用层负责各种业务应用的开展[4]。

图1 SDN架构图

SDN架构具有集中控制、开放接口和网络虚拟化的特征,支持控制平面与转发平面分离,使得底层的网络设备可以被统一控制和管理,而灵活的开放接口推动网络业务不断创新。分析SDN架构可以看出SDN控制层负责整个网络的运行,底层网络设备状态和控制指令都需要通过SDN的南向接口传达,北向接口使得业务应用能够便利地调用基础设施层的网络资源和能力[5]。

南向接口可以采用OpenFlow协议和OF-CONFIG协议实现,通过OpenFlow协议实现控制软件向网络设备(如OpenFlow交换机)发送流表,控制数据流通过网络所经过的路径的方式完成对底层网络设备的控制;OF-CONFIG协议规定了管理和配置交换机的端口和队列等。OF-CONFIG与OpenFlow之间存在着密切的关系,OF-CONFIG提供一个开放接口用于远程配置和控制OpenFlow交换机,如在OpenFlow交换机上配置控制器IP地址、对交换机的各个端口进行enable/disable操作等。OF-CONFIG V1.1版本定义了OpenFlow端口和OpenFlow队列两类资源,支持OpenFlow交换机与控制器之间的安全通信证书配置,支持OpenFlow逻辑交换机的发现,支持多种数据隧道类型(包括IP-in-GRE、NV-GRE和VxLAN等)。通过OpenFlow可以将网络控制层和底层物理网络硬件分离,实现更精细的管理,其理念就是软件定义网络。

3 OpenFlow技术仿真原理

OpenFlow也是由3层架构组成,第一层架构由支持OpenFlow协议的交换机组成,第二层是OpenFlow控制器,第三层是OpenFlow软件应用。控制器是一个平台,可以直接与使用OpenFlow协议的交换机进行通信,为OpenFlow软件应用提供丰富的功能。OpenFlow软件应用为网络执行控制功能,如路由交换和会话类应用等。

OpenFlow的核心思想很简单,传统的FIB表和MAC表等都被OpenFlow协议统一整合为流表,流表本身的生成、维护和下发完全有外置的控制器来实现,交换机保存控制器下发流表并且只按照流表进行转发。进入交换机的数据包通过查询流表来获得转发的目的端口[6]。流表由很多个流表项组成,每个流表项就是一个转发规则,流表项定义了端口号、VLAN、L2/L3信息等关键字,OpenFlow v1.3中定义的流表项由下列字段组成:

Match fields:对报文进行匹配,包括入端口,报文的头部和一些可选的元数据;

Priority:匹配的优先级,决定匹配流表项的优先顺序;

Counters:匹配到的报文统计;

Instructions:修改行为或者进行流水线处理;

Timeouts:用于配置流表项的实效时间;

Cookie:由控制器指定的非透明数值,控制器可用此字段来过滤流统计,流的修改以及流的删除。

支持Openflow协议的交换机通过流表控制数据流的转发,流表是交换机进行转发策略控制的核心数据结构,交换芯片通过查找流表项来决策对进入交换机的网络流量采取何种行为。

数据包从第一个流表开始匹配,经历流水线处理。首先,找到流表中优先级最高的流条目执行匹配,这将根据入端口、包头以及有上一个流表指定的元数据三类匹配域进行匹配。如果某个数据包成功匹配了流表中某个流条目,则更新这个流条目的计数器计数,同时这个流条目中的指令操作将被应用生效。如果指令中没有指定下一个流表,这时数据包通常会被所带有的动作集合处理后转发。当交换机收到一个不能被当前流表各条流匹配的数据包时,会把这个数据包以openflow的格式(PACKET_IN)发送给控制器。控制器经过路由决策后,同样以openflow的格式(PACKET_OUT)的方式将该数据包的下一跳信息回给该交换机。

电解烟气脱硫采用“双氧水脱硫塔-高效湿式电除尘器”的工艺流程。包含:吸收塔、循环泵、双氧水储槽、药剂计量添加泵、稀硫酸储槽等。尾气由脱硫塔底部进入,经喷淋和填料吸收,与双氧水溶液充分接触和反应,生成稀硫酸。脱硫处理后的烟气经除雾沫后,由塔上部排出。为控制烟气拖尾和进一步降低尾气中的污染物浓度,脱硫烟气经脱硫塔后再串联进入湿式电除尘器后达标排放。工艺流程如图1 所示。

在仿真实现中,通过Mininet软件实现OpenFlow控制器和支持OpenFlow协议的交换机的功能,实现SDN平台的构建。

4 Mininet仿真实现

4.1 Mininet

Stanford大学Nick McKeown的研究小组基于LinuxContainer架构,开发了Mininet平台。Mininet作为一个轻量级“软件定义网络”研发和测试平台,其主要特性包括:①支持OpenFlow、Open vSwitch等网络部件;于方便多人协同开发;③支持系统级的还原测试;④支持复杂拓扑、自定义拓扑;⑤提供phthon API;⑥很好的硬件移植性(Linux兼容);⑦高扩展性,支持超过4 096台主机。

SDN平台基于Mininet软件,可以轻易地在PC机上仿真验证一个软件定义网络,对基于OpenFlow和Open vSwitch的各种协议进行开发验证,而且,所有代码还可以无缝迁移到真实的硬件环境中。

4.2 仿真建模

演示流表下发:搭建一个网络拓扑,有1个控制器—c0,1台交换机—s1,3台终端—h1、h2和h3,3台终端与交换机s1相连接,如图2所示。

图2 网络拓扑建模

4.3 仿真结果

网络建好后,由于控制器流表为空,没有给OpenFlow交换机下发流表,OpenFlow交换机没有收到流表不能对端口接收的数据流进行转发,因此,h2 ping h3不能成功。在控制器上通过dpctl手动添加流表项,下发到Openflow交换机上,完成h2和h3端口的转发设置,查看Openflow交换机此时已经有流表信息,包括优先级、类型和表id等,如下所示:

此时,Openflow交换机上已经有了转发的流表信息,交换机上端口2和3的in_port和out_port增加h2 ping h3操作,结果可以互通。

在流表下发和终端之间ping包过程中,可以通过wireshark软件进行抓包分析。OpenFlow协议在应用中是在传输层以上,也就是应用层解析的。首先是初始化,发送hello信息,并协商使用OF协议的版本号。

数据交互过程中抓到的OpenFlow协议包如图3所示,包括交换机和控制器建立起连接后的维护消息Hello,查询交换机能力的Feature消息、设置或者查询配置参数Configuration消息、控制器指定从交换机的特定端口转发数据包的Packet-in和Packet-Out消息等,在控制器中通过设置流表中的入端口和出端口参数就可以让接收到流表的交换机根据入端口和出端口参数实现数据流的转发。

图3 wireshark抓包分析OpenFlow协议

5 结束语

典型的SDN架构采用OpenFlow技术实现了把网络数据和控制数据的分离,灵活改变网络行为的意思体现出来,为未来网络架构及业务应用发展提供了有效的方法,在分析基于OpenFlow技术仿真原理的基础上,基于Mininet软件,实现了一套基于OpenFlow技术的SDN仿真平台,验证了控制器对网络设备的灵活控制,为SDN架构的研究提供了平台构建及仿真技术支撑。

[1]赵慧玲,冯明,史凡.SDN—未来网络演进的重要趋势[J].电信科学,2012(11):1-5.

[2]王淑玲,李济汉,张云.SDN架构及安全性研[J].电信科学, 2013(3):117-122.

[3]王文东,胡延楠.软件定义网络:正在进行的网络变革[J].中兴通讯技术,2013(1):39-43.

[4]韦世红,卢威.基于OpenFlow的未来互联网试验网[J].计算机应用系统,2013(5):21-24.

[5]侯长逸.OpenFlow网络软件路由研究[J].兰州大学学报, 2013(4):261-263.

[6]赵联祥.SDN架构下的Open Flow原理探讨[J].电信技术, 2013(2):70-72.

Research on SDN Architecture Simulation Based on Mininet

LI Yan HAO Zhi-an LI Ning LU Ji
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)

The Software Defined Networking(SDN)is a new network innovation architecture,and the open OpenFlow technology is one of the most efficient technique for realizing the SDN architecture.In order to further study the characteristics of SDN architecture and provide the definable network platform for application innovation,the simulation of SDN architecture is implemented by using the Mininet simulation software based on OpenFlow technology.This paper summarizes the characteristics of typical SDN architecture, analyzes the simulation principles and methods based on OpenFlow technology,and verifies the functions and basic workflows of SDN architecture based on Mininet simulation software construction.The proposed simulation methods and platform provide the effective technical support for the research on SDN architecture.

SDN;OpenFlow;Mininet

TP393

A

1008-1739(2014)05-57-3

定稿日期:2013-12-26

猜你喜欢
流表表项交换机
基于匹配动作表模型的可编程数据平面流表归并
一种改进的TCAM路由表项管理算法及实现
基于时序与集合的SDN流表更新策略
基于ARMA模型预测的交换机流表更新算法
修复损坏的交换机NOS
简析yangUI流表控制
软件定义网络中一种两步式多级流表构建算法
使用链路聚合进行交换机互联
SDN数据中心网络基于流表项转换的流表调度优化
PoE交换机雷击浪涌防护设计