SDN技术及应用设计研究.docx
- 文档编号:11760601
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:59
- 大小:2.48MB
SDN技术及应用设计研究.docx
《SDN技术及应用设计研究.docx》由会员分享,可在线阅读,更多相关《SDN技术及应用设计研究.docx(59页珍藏版)》请在冰点文库上搜索。
SDN技术及应用设计研究
jg编号:
()字号
本科生毕业设计(论文)
SDN技术与应用研究
题目:
姓名:
学号:
班级:
二〇一四年六月
中国矿业大学
本科生毕业设计
姓名:
学号:
学院:
计算机科学与技术学院
专业:
设计题目:
SDN技术与应用研究
专题:
指导教师:
职称:
2014年6月徐州
中国矿业大学毕业设计任务书
学院计算机专业年级学生姓名
任务下达日期:
2014年1月17日
毕业设计日期:
2014年1月18日至2014年6月2日
毕业设计题目:
SDN技术与应用研究
毕业设计专题题目:
毕业设计主要内容和要求:
(1)收集、整理相关的资料,了解网络管理的基本原理;
(2)翻译与课题相关的最新的英文技术资料;
(3)学习和掌握SDN的基本原理;
(4)学习和掌握SDN的设计和配置方法;
(5)分析SDN的应用场景和业务需求,提出一个SDN的应用设计方案;
(6)整理和分析毕业设计的成果,撰写毕业设计论文,完成对SDN技术与应用的理论基础、实现方法、技术分析、开发示例、学习体会等方面的论述;
(7)准备答辩和系统演示。
院长签字:
指导教师签字:
中国矿业大学毕业设计指导教师评阅书
指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):
成绩:
指导教师签字:
年月日
中国矿业大学毕业设计评阅教师评阅书
评阅教师评语(①选题的意义;②基础理论及基本技能的掌握;③综合运用所学知识解决实际问题的能力;③工作量的大小;④取得的主要成果及创新点;⑤写作的规范程度;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):
成绩:
评阅教师签字:
年月日
中国矿业大学毕业设计答辩及综合成绩
答辩情况
提出问题
回答问题
正确
基本
正确
有一般性错误
有原则性错误
没有
回答
答辩委员会评语及建议成绩:
答辩委员会主任签字:
年月日
学院领导小组综合评定成绩:
学院领导小组负责人:
年月日
摘要
近几年来,随着云计算、电子商务、大数据等服务的发展,互联网新的应用的不断涌现,传统的以IP协议为核心的网络面临着诸多的挑战。
网络规模的不断增长和新技术让越来越多的网络问题暴露出来促使了新网络构架需求的产生。
为了有效的解决现有网络存在的问题,SDN(SoftwareDefinedNetworking,软件定义网络)技术应运而生。
软件定义网络是一种将传统网络数据转发层面与网络控制分解开来的新型网络技术,通过这种方式使网络获得前所未有的灵活度及便捷度。
本文对软件定义网络进行了详细的介绍,对SDN网络中所应用的关键是技术Openflow展开深入的探讨并对SDN网络在现实生活中的应用实践进行了介绍。
此外,本文在对SDN技术深入研究的基础上,通过Mininet、Floodlight等软件搭建SDN实验环境,利用Wireshark软件进行抓包,分析Openflow协议,设计环状网络拓扑结构分析SDN技术在二层转发的优势。
同时将分析了SDN在各种网络环境中的应用需求,提出了一个在数据中心网络之间应用SDN技术的设计方案,解决数据中心网络之间链路利用率低的问题。
关键词:
SDN;软件定义网络;Openflow;Mininet;Floodlight
ABSTRACT
Inrecentyears,withthedevelopmentofcloudcomputing,e-commerce,bigdataandotherservices,theInternetnewapplicationscontinuetoemerge,thetraditionalcoreoftheIPprotocolnetworkfacesmanychallenges.Thegrowingsizeofthenetworkandnewtechnologiesallowmoreandmoreexposedtonetworkproblemspromptedthedemandfornewgenerationnetworkarchitecture.
Inordertoeffectivelysolvetheproblemsoftheexistingnetwork,SDN(SoftwareDefinedNetworking,SoftwareDefinedNetwork)technologyemerged.Software-definednetworkisatraditionalnetworkdataforwardingplaneandcontrolunbundlednetworkofnewnetworktechnologies,networkobtainedinthiswaytomakeanunprecedenteddegreeofflexibilityandconvenience.Inthispaper,software-definednetworkforadetaileddescriptionofthekeySDNnetworkappliedtechnologyOpenflowdepthdiscussionandSDNnetworkapplicationsinreal-lifepracticewereintroduced.Furthermore,onthebasisofin-depthresearchonSDNtechnologythroughMininet,FloodlightSDNsoftwaretobuildtheexperimentalenvironment,theuseofsoftwareWiresharkcapture,analyzeOpenflowprotocoldesignedringnetworktopologyanalysisSDNtechnologyadvantageintheLayer2forwarding.WhiletheanalysisoftheSDNapplicationsinavarietyofnetworkenvironments,madeanapplicationSDNtechnologybetweenthedatacenternetworkdesignprogramstoaddressthelinkbetweenlowutilizationofthedatacenternetworkproblems.
Keywords:
SDN;softwaredefinednetworks;Openflow;Mininet;Floodlight
第1章绪论
1.1研究背景和意义
20世纪60至70年代,世界上第一个计算机网络ARPAnet诞生,从此计算机网络逐渐深入到人类社会,并以人们意想不到的速度变化发展。
原本出于军事目的研制的计算机网络已被广泛应用于政府、军事、教育、科研、商业等各种领域,并进入了千万普通家庭。
计算机网络已经成为人们获取信息、学习、娱乐与交流的重要手段,计算机网络带来的信息资源的共享也深刻影响着人类社会的正常运行。
个人计算机的推广使得网络需求不断增大,数据通信也随之变得复杂,据调查数据显示,截止到2013,全球上网人数已超过27亿。
在如此庞大的群体中,单单依靠网络管理人员对网络结构、设备、业务等进行管理配置是远远不够的,网络智能化应运而生。
为了实现网络智能化,当前网络采用了混合式的管理模式,即将部分网络管理功能固化在网络设备中,当要进行网络管理工作时,网络管理人员通过网络管理软件或命令行接口的方式登陆网络设备,并对网络运行参数、节点运行的协议、路由规则等进行配置,随后网管人员退出网络管理控制流程,由网络设备接管,并根据网络管理人员的配置自治的规划网络路径、更新网络信息、执行QoS控制。
也正是因为这种做法,传统的网络节点兼顾了网络控制和数据转发功能。
虽然50多年的发展进程使计算机网络实现了一定程度上的智能化,但是随着大数据时代的到来,传统网络在处理云计算、大数据业务上却不尽如人意,也难以满足灵活的资源需求。
当前网络中存在着大量不同协议,它们被用于不同间隔距离、不同链接速度、不同拓扑架构的网络主机之间建立网络连接,然而这些协议的研发与应用通常是彼此隔离的,这就导致了当前网络的复杂化,例如,当网络管理者需要在网络中增加或删除一条设备时,必须对与之相关的多台交换机、路由器、Web认证门户等进行操作以更新相应的访问控制列表、VLAN设置等,除此之外,还要考虑网络拓扑机构、厂商交换机模型、软件版本等信息。
因此,传统网络仅能在相对静态的环境下保持通畅。
在这一背景下,SDN软件定义网络的概念一经提出便受到业内外人士的广泛认可。
软件定义网络是一种新型网络架构及技术,其最大特点在于将传统网络设备的控制层面与数据层面分开、支持集中化的网络控制状态、实现底层网络设施对上层应用的透明。
SDN网络为管理开发人员提供的可编程接口使得网络的自动化管理和控制能力得到极大的提升,有效的解决了当前网络系统所面临的一系列的问题。
SDN网络的提出在解决了当前网络中存在的诸多问题的同时也为未来网络的发展指明了方向,因此,世界范围内多家公司掀起了收购SDN相关设备的狂潮,并通过研发SDN网络设备增强自身的技术储备和未来网络竞争力。
由此可见,研究学习SDN网络是十分必要的。
1.2国内外研究现状
SDN作为一种最新提出的网络技术,在短短的几年内已经在业界内声名显赫,然而由于当前技术、成本问题,SDN尚在理论阶段,其标准化进程也处于发展阶段尚未成熟,距现实生活中大规模部署仍有较长时间。
在关于对SDN网络定义的过程中,国内外多家标准化组织参与进来,其中ONF(OpenNetworkingFoundition,开发网络基金会)无疑是引领者。
2011年创建的ONF组织,一经创立便致力于SDN发展,其非营利性的性质也使得它被更多的人接受。
如今,在SDN发展的进程中ONF已然成为世界上最大的SDN标准组织。
ONF提出了三层SDN架构:
顶层为有多种应用和服务的应用层;中间是负责控制层,主要负责处理网络配置、系统管理和数据转发策略;底层是负责数据转发、处理和状态收集的基础设施层。
在控制层与应用层之间的接口和控制层与基础设施层之间的接口也是重要的两个部分,前者被称为北向接口,后者为南向接口。
在两个接口间运行着多种协议,其中Openflow协议为南向接口的标准协议,而北向接口由于各种原因还未做出统一安排。
除了ONF提出的三层体系结构外,欧洲电信标准化组织提出了将重点放在网络功能虚拟化的NFV架构,NFV网络架构参考了ONF关于SDN的定义,在南向接口上倡导Openflow协议,除此之外还包含了在传统网络标准化组织中认可的接口,而且在控制层,提出了端对端的网络控制层,将控制层更加细致的划分。
2013年4月8日,包括思科、Juniper等传统网络设备巨擘在内的设备厂商提出了OpenDaylight开源项目,其构架与ONFSDN架构相似,包括了数据平面网元、南向接口、北向接口以及网络应用、编排和服务层。
虽然国内对SDN的研究稍微有些落后,但是由于SDN正在试行阶段,还没有统一的定义与标准,因此也已经有多家组织启动了与SDN有关的工作,积极参与了SDN的研究与标准化制定工作,中国通信标准化协会于2013年成立了“未来数据网络”任务组,立项并开始研究基于智能网络的SDN标准。
1.3论文内容和结构安排
本文主要研究基于Openflow协议的SDN网络体系结构,详细阐述SDN中的关键技术与设备,并增添现实生活中SDN的应用场景,制定了SDN在数据中心间的一套方案,除此之外,通过Mininet、Floodlight、VirtualBox软件搭建了SDN网络实验环境,并通过抓包分析的方式更加透彻的解读SDN网络和分析Openflow数据流。
本文共分为五章,第1章介绍SDN网络提出的背景及研究意义,并简述了国内外SDN网络的研究情况;第2章对SDN网络技术及其相关概念做出详细的论述;第3章介绍了SDN网络实战,通过利用Mininet搭建模拟实验环境,并对Openflow数据流进行分析;第4章简单介绍了SDN在不同场景中的应用;第5章对整篇文章进行总结,阐述不足之处和对未来的展望。
第2章SDN基础理论
2.1基本定义
SDN(SoftwareDefinedNetworking,软件定义网络)是一种基于软件的网络架构,具有以下几种特点:
集中控制:
传统的网络中通常将数据转发与控制层面固化在同一个设备上,当进行网络管理时可以将其看成一个个独立的盒子,而这些控制盒子将整个控制面分离成一个个小的个体,而软件定义网络将控制集中起来,转发设备只具有转发功能,控制功能则由具有控制功能的控制器完成,因此在逻辑上可以将控制器组成的集合看作为一个整体的控制平面,当需要对物理设备进行配置和维修时,无须现场操作,只需要在控制软件上对物理设备进行配置。
开放接口:
在SDN网络架构中,控制层与应用层之间标准化的北向接口为网络管理人员和开发人员提供了良好的程序接口,使得防火墙、网络监控等功能可以通过软件的方式实现。
在传统网络中,很多功能,如:
负载均衡、DPI、防火墙都需要专门的设备来实现,导致了网络复杂化和网络功能更新上线周期长,而在SDN网络中,网络功能软件化让不同的网络功能部署在一个硬件设备上,提高了资源利用率,也减少了设备数量降低了管理难度。
网络虚拟化:
包含着各种协议的数据包在南向接口包装成统一的格式,屏蔽了协议和设备间的差异,上层的服务网络看不到下层的传输网络设备间的差异实现了透明。
逻辑网络与物理设备的分离使得当网络因业务需要进行配置、迁移时,不必再受物理设备的影响。
总之,SDN网络控制平面与转发层面的分离的做法使集中管理网络设备成可了可能。
其核心思想是将传统网络设备分离为转发、控制、应用三层结构,如图2.1所示:
API
控制/数据平面接口例如:
Openflow
图2.1ONF提出的SDN架构
在现在的网络体系中,交换机在输入端收到数据分组后在转发面查找路由表/转发表,并获取转发规则,若在表中存在记录,则按规则从输出端口转发出去,若不存在记录,交换机的控制面通过距离向量算法、广播反向地址解析消息等算法建立与数据分组相关的路由/转发记录,以二层转发为例,两台主机PC1与PC2,当PC1第一次向PC2发送数据时,由于是第一次通信,PC1的ARP表中没有PC2的MAC地址,PC1向所有邻居广播,询问IP地址为172.0.0.2的主机在什么位置,交换机S1收到该ARP包后,记录PC1与端口的映射关系。
与PC1处于同一广播域的所有主机收到广播消息后,查询172.0.0.2是否为自己的IP地址,PC3发现不匹配后保持静默,PC2查询后发现匹配则声称ARP响应通过S1反馈给PC1,如此S1获知PC2的MAC地址及端口映射消息,然后将PC1及PC2的相关信息添加至转发表中。
而在SDN构架下,控制层面与数据层面分离开来,转发设备仅仅具备转发能力,当S1收到发往PC2的数据分组后,查找本地转发表,如果有记录,则进行转发,如果没有,则将向控制器询问对该数据分组的处理方式。
在SDN构架中,控制器控制多台交换机,拥有网络全局视图,并根据该视图制定转发策略,然后将该策略下发至有关设备。
2.2SDN核心技术
2.2.1交换机
无论是交换机还是路由器,其主要用途都是实现信息在网络上的交换,这里所提及的交换机并不是传统意义上的二层交换机而是所有实现数据转发功能设备的统一,在SDN网络中,将这类设备统称为交换机。
SDN网络架构中的交换机不再负责转发策略的制定,而成为单纯的转发设备,只负责网络数据的高速转发。
在交换机中,数据包的匹配通过流表(FlowTable)实现,流表中包含了各种信息。
SDN交换机在SDN网络架构中负责各种数据的转发工作,一般具备以下功能:
(1)转发决策:
数据包从输入端口到达交换机,交换机将数据报中所携带的信息与流表进行匹配,如果匹配成功,那么在数据报的前端挂上下一跳的MAC地址,同时IP数据报文中的TTL减一,并重新计算校验值。
(2)背板:
数据报文通过背板转发至交换机的设备出口,并在队列中进行等待。
若等待队列中没有足够的空间,则将丢弃或替换先前的数据报文。
(3)输出链路调度:
数据报到达输出端口并按照一定的顺序进行等待,设备出端口通过先进先出的策略将等待队列中的数据报进行转发。
同时,还有一些先进的设备可将数据报分为数据流或优先级集合进行时间安排以满足相应的服务质量。
2.2.2Openflow
根据SDN架构的定义,SDN交换机只负责数据的转发,SDN控制器(controller)负责数据转发策略的制定,控制器通过南向接口对交换机进行统一管理,Openflow是目前ONF唯一确定的控制器南向接口,在SDN发展中有着重要的地位。
Openflow规定了Openflow交换机的组成和功能要求并且规定了Openflow协议作为控制器管理交换机的协议。
Openflow协议发展至今已经历了多个版本,第一个版本v1.0是Openflow协议最初也是最重要的版本,它不仅是后面几个版本的基础而且也体现了基于Openflow搭建的SDN网络架构的思想,本文也将Openflowv1.0作为研究对象。
图2.2展示了基于openflow的SDN架构:
Openflow协议
Openflow交换机
图2.2openflow交换机设计思想和整体构架
Openflow交换机与控制器通过利用Openflow协议进行通信,两者之间的消息通过SSL机制进行加密。
从图2.2我们可以看到,Openflow交换机中有两个重要的组成部分,其中流表类似于交换机中的转发表和路由器中的路由表,用来匹配交换机中的数据包;安全通道是交换机的另一个重要部分,它的作用是为Openflow协议提供传输路径,连接控制器与交换机。
当交换机与控制器进行信息交换时,数据包在交换机内按Openflow协议进行封装通过安全通道发送给控制器。
由此可见,流表、安全通道、openflow协议在整个网络中起着重要作用。
(1)流表
在传统网络中,交换机和路由器通过设备中保存的转发表和路由表进行转发,而Openflow交换机中,流表包含了网络中的各层的配置信息,并通过流表项中的各项信息对数据报进行处理。
每个流表项包含包头域、计数器和动作三部分,如图2.3所示:
包头域
计数器
动作
图2.3Openflow流表项结构
包头域:
用来匹配收到的数据包,在v1.0中,每个包头域包含12组信息,每一组信息的值可以使确定的数字也可以置为任意值。
包头域的结构如图2.4所示:
入端口
源MAC地址
目的MAC地址
以太网类型
VLAN
ID
VLAN优先级
源IP地址
目的IP地址
IP协议
IPTOS位
TCP/
UDP源端口
TCP/
UDP目的端口
图2.4Openflow流表项包头域
计数器:
统计各项活动和数据信息。
动作:
用来指示怎么处理匹配后的数据包。
因为Openflow交换机中没有控制能力,因此需要告诉交换机如何对匹配的数据包进行操作,操作动作有多种,也对应着不同的值。
如果一个表项没有指定具体的动作,那么就将会把这个表项丢弃,如果一个数据包中指定了多个动作则行动的执行需要依照优先级顺序依次进行。
另外如果交换机不支持数据包所请求的动作,那么交换机将会返回错误提示。
行动可以分为必备行动(RequiredActions)和可选行动(OptionalActions),必备行动是默认支持的,而如果要执行可选动作就需要交换机通知控制器它支持的动作种类。
Openflow流表动作列表如表2-1所示
表2-1Openflow流表动作列表
类型
名称
说明
必备动作
转发(Forward)
交换机必须支持将数据包转发给设备无力端口及如下的一个或多个端口
ALL:
转发给所有出端口,但不包括入端口
CONTROLLER:
封装数据包并转发给控制器
LOCAL:
转发给本地的网络栈
TABLE:
对packet_out消息执行流表动作
IN_PORT:
从入端口发出
丢弃(Drop)
对没有明确指出处理动作的流表项,交换机将会对其所匹配的所有数据包进行默认丢弃。
可选动作
转发(Forward)
交换机可选支持将数据包转发给如下的虚拟端口
NORMAL:
利用交换机所能支持的传统转发机制处理数据包
FLOOD:
遵照最小生成树从设备出端口洪泛发出,但不包括入端口
排队(Enqueue)
交换机将数据包转发到某个出端口对应的转发队列中,便于提供Qos支持
修改域
(Modify-Field)
交换机修改数据包的包头内容,具体包括:
设置VLANID、VLAN优先级,剥离VLAN头
修改源MAC地址、目的MAC地址
修改源IPv4地址、目的IPv4地址、Tos位
修改源TCP/IP端口、目的TCP/IP端口
Openflow交换机在接收到数据包后,对其处理流程如图2.5所示:
是
否
是
否
图2.5Openflow交换机中的数据包处理流程
由图2.5我们可以发现,交换机收到数据包后,首先将需要匹配的字段提取出来进行匹配,一个流表中有多个流表项,每个流表项都有一个优先级字段,数据包按照优先级进行匹配;若一个交换机中包含多个流表,那么在当前流表中未能匹配的情况下进行流水线式的查找后续的流表,匹配成功后,就将流表项中的计数器更新,如果没有找到匹配项那么就将该数据包发送给控制器处理。
流表修改:
控制器可根据网络实时变化对流表项进行修改,控制器发出的流表修改信息共有五种类型,如表2-2所示。
表2-2流表项修改消息类型
名称
说明
ADD
增加一个新的流表表项
MODIFY
修改所有匹配的流表项
MODIFY_STRICT
修改严格匹配的流表项
DELETE
删除所有匹配的流表项
DELETE_STRICT
删除严格匹配的流表项
移除流表项:
流表项的移除有两种情况,一种是定时器时间期限达到,交换机自动删除流表项,另一种是控制器下发命令删除流表项。
每个流表项有两种定时器,一个计算没有匹配的时间,一个计算插入流表中的时间,其中任一个定时器达到期限交换机都会将流表项移除。
(2)安全通道
连接控制器与交换机的部分,支持Openflow协议,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SDN 技术 应用 设计 研究