软件定义固定网络的仿真实现毕业论文
2020-02-19 18:01:12
摘 要
软件定义网络(SDN)是一种允许高级网络管理员利用抽象高级功能来管理网络服务的计算机网络方法,它允许网络管理员通过抽象高级功能来管理网络服务。这是通过将系统与将流量转发到选定目标(数据平面)的基础系统分离来实现的。
软件定义网络是一种新型,它可以实现网络虚拟化。因为现在应用都追求高带宽,高速度,高动态,因为它将成为以后的主流,同时因为它的动态性、可管理性、成本效益和适应性,它也将越来越受到欢迎。它的设计理念是将网络的控制与数据转发分割开来,可以直接通过对应软件编程实现网络控制,从而达到自己想要的效果,同时将底层基础设施抽象为应用程序和网络服务。OpenFlow协议是构建软件定义网络解决方案的基础元素。本次课程设计师通过自主探索和设计,完成在Mininet仿真平台上实现对软件定义固定网络的仿真,为SDN的学习和研究提供便捷的平台。
论文主要研究了基于Linux平台完成Mininet平台部署,以及OpenFlow仿真环境实现,通过编程进而实现软件定义网络的固网仿真。
研究结果表明:通过mininet对虚拟网络的测试发现,利用SDN技术可以承担跨服务器负载平衡设备的任务,SDN可以自动调整网络结构,从而简化工作,降低网络成本。
本文的特色:通过搭建Linux的乌班图虚拟机(VMware)部署Mininet仿真平台并利用python编程来实现不同功能,同时使用OpenFlow将数据发放到网络设备,实现网络拓扑的仿真。
关键词:软件定义网络;OpenFlow;Mininet;虚拟机;Linux;python
Abstract
Software-definednetworking (SDN) is an approach to computernetworking that allows network administrators to manage networkservices through abstraction of higher-level functionality. This is doneby decoupling the system that makes decisions about where traffic issent (the control plane) from the underlying systems that forwardtraffic to the selected destination (the data plane).
Software-defined Networking (SDN) is an emerging architecture that is dynamic, manageable, cost-effective, and adaptable, making it ideal for the high-bandwidth, dynamic nature of today’s applications. This architecture decouples the network control and forwarding functions.enabling the network control to become directly programmable and the underlying infrastructure to be abstracted for applications and network services. The OpenFlow® protocol is a foundational element for building SDN solutions.
This paper mainly studies the deployment of Mininet platform based on Linux platform and the implementation of OpenFlow simulation environment. Through programming, the fixed network simulation of software defined network is realized.
The results show that the test of virtual network based on mininet shows that SDN technology can undertake the task of load balancing equipment across servers, and SDN can automatically adjust the network structure to simplify the work and reduce the network cost.
Features of this paper: Mininet simulation platform is deployed by building VMware of Linux, and different functions are realized by Python programming. At the same time, OpenFlow is used to distribute data to network devices to realize network topology simulation.
Key words: Software Definition Network; OpenFlow; Mininet; Virtual Machine; Linux; Python
目 录
第1章 绪论 1
1.1 研究背景与意义 1
1.2 国外研究现状 2
1.3 国内研究现状 2
1.4 论文结构 3
第2章 软件定义网络 4
2.1 SDN架构 4
2.2 SDN如何工作 5
2.3 SDN的好处 5
2.4 SDN挑战 6
第3章 实验环境简介 7
3.1 VMware简介 7
3.2 Linux简介 8
3.3 Python简介 9
3.4 OpenFlow简介 11
第4章 Mininet 12
4.1 Mininet优势 12
4.2 Mininet局限 13
4.3 Mininet中的SDN 13
4.4 Mininet命令 14
4.5 Mininet拓扑结构 15
4.6 Mininet 安装 16
第5章 仿真实现 17
5.1 实验环境 17
5.2 实验原理 17
5.3 操作步骤 18
5.4 实验结果和分析 19
第6章 结论 21
参考文献 22
致 谢 23
第1章 绪论
1.1 研究背景与意义
随着云计算和大数据的快速增长,人们对数据流量的要求越来越高。与不断变化的互联网和不断创新的应用层相比,网络层的发展越来越滞后,变得越来越僵化、越来越不灵活。网络层越来越过时的根本原因是控制网络运行的软件嵌入到路由器或交换机中,交换机或路由器的软件运行标准不一致,使得路由器/交换机的复杂度大大提高,造成了大量的流量拥塞和资源浪费。
随着更多的移动设备连接到互联网,不同设备间的通信也越来越复杂,网络也需要对更多的用户和设备提供不同的服务,这样有时在网络压力较大的环境下就会造成网络拥堵,虽然网络的发展中也出线了一些新的技术来解决这些问题,但它们大多使用的依旧是传统的网络,这样使得网络缺乏灵动性,当每次使用新的技术事,往往需要更换硬件设备,这样造成了更大的网络成本和资源浪费。随着大规模不同复杂结构的IP通信网络的涌入,创建新的网络环境和扩大网络规模的难度也大大增加,以前的传统网络架构渐渐已经不能满足需要精细化、综合化、多元化的网络环境的需要。
SDN(Sofware-Defined Networking)作为下一代互联网解决方案,为网络融合提供技术支持。将转发层与控制层分离,将组网智能化和状态集中化分离的思想,可以较好地解决综合网络结构层面的体系结构组织问题。同时,软件根据网络中的流量表定义了匹配模式,有效地解决了这一问题。异构网络中数据包转发造成的信息交换困难。利用SDN技术可以实现云上运行的应用本身可以承担引导网络流量、跨服务器负载平衡设备的任务,并自动调整网络结构,及时给出最快、最高效的数据路径,从而简化工作,降低网络成本。
SDN使用Python编程在虚拟仿真平台上创建与配置网络,并能够对网络进行控制与修改,在这个过程中没有硬件例如交换机的需求,减少了开发的成本,这样能够在以后以更小的代价研究新技术与解决问题,这使得越来越多的人开始研究软件定义网络,将SDN技术推上了时代的潮流之中。
本文为了进一步研究软件定义网络,进而从新的角度展开研究,即:软件定义固定网络的仿真。本课题通过在主机上安装Linux系统虚拟机,在其虚拟机上搭建Mininet仿真平台,通过使用python语言编程实现不同功能并利用OpenFlow将计算获取的不同数据发送到网络设备中,再对不同网络拓扑进行比较。
1.2 国外研究现状
自SDN技术问世以来,国内外的研究机构、设备制造商、互联网企业、IT服务提供商和电信运营商都在积极研究、探索和推广其商业过程。目前,SDN主要用于企业内部网络或数据中心网络。
首先,以谷歌、亚马逊、雅虎、微软、Facebook为代表的国外互联网公司正在积极探索SDN技术的应用。由谷歌构建的B4网络无疑是SDN技术最著名、最具影响力的应用案例,使资源利用率从30%提高到90%以上,大大节约了成本。谷歌B4网络的成功使神秘而学术的SDN技术走上了商业化的道路。。国外许多电信运营商对SDN技术的研究非常活跃。一些世界领先的电信运营商已经踏上了项目测试和商业试验的道路。例如,日本的NTT开发了一个虚拟网络控制器,用于统一服务和多个数据中心的按需配置,并已部署到其欧洲、美国和日本的数据中心。
为了使OF交换机与真实网络更加相似并且不违反安全策略,学术界引入了很多安全框架,使得网络环境更加完善。例如FORTNOX框架,但这种框架不能满足SDN防火墙的需要,因此国外的来自Arizona州立大学和Clemson大学的四位学者进一步提出了新的框架--FLOWGUARD框架,这种框架能够快速检测到网络中的冲突并进行灵活应对,而且它的冲突检测和解析能够实现自动和实时,执行效果很好,而且效率也较高。
1.3 国内研究现状
在国内,以百度、腾讯、新浪、阿里巴巴为代表的国内互联网公司也正在积极研究SDN技术,腾讯还提出构建基于覆盖的SDN,实现边缘智能网络、虚拟网络和物理网络的解耦,有效提高数据中心之间的带宽利用率,减少故障收敛时间,增强用户体验。中国移动在中国和北美进行了两次大规模测试。测试环境是为7个制造商的控制器和10个制造商的开放式流量开关而构建的。测试了OpenFlow的标准、功能、性能和SDN应用。成功地演示了基于OpenFlow的SDN PTN原型系统。
我国北京邮电大学的三位学者针对FORTNOX框架的问题也提出了新的概念--软件定义安全和虚拟化设备安全。虚拟化设备安全就是利用SDN根据屋里拓扑来构建逻辑拓扑,使得网络成本大大降低,提高了网络设备维护的自动化程度。而软件定义安全是重新定制安全服务,即通过安全服务重组来舍弃多余的,只保留所需要的服务,能够有效的实现网络防御。
1.4 论文结构
本文介绍了软件定义网络的实现、仿真与结果,以下是各章的简介内容:
- 绪论,这一章主要介绍了软件定义网络的研究背景、目的与意义,对国内外关于此课题研究现状的介绍和分析,对本篇论文的每一章做一个简单的简介,介绍了论文结构;
- 软件定义网络,这一章主要介绍了软件定义网络的架构、它的工作流程、使用软件定义网络的好处以及将面临的挑战;
- 相关理论与技术,这一章主要介绍了本次毕业设计所需要的开发技术、开发工具与开发环境;
- Mininet,这一章主要介绍了mininet仿真平台的优势、局限、常用的几种拓扑结构 ;
- 系统设计和实现,这一章详细介绍了在mininet上创建拓扑的多种方法,对常见的拓扑结构进行比较,并对结果做出分析;
- 结论,这一章对本次毕业设计做出总结,总结本次毕业设计所做的工作,对软件定义网络的分析。
第2章 软件定义网络
软件定义网络(SDN)描述的是可以让网络灵活的体系结构。SDN的目的为使企业和服务提供商可以快速回应持续变化的业务需要进而改进网络的控制。
2.1 SDN架构
SDN体系结构的典型表示包括三层:应用层、控制层和基础设施层[11][10]。
应用层包含了组织使用的典型网络应用程序或功能,这些应用程序或功能可以包括入侵检测系统、负载平衡或防火墙。如果传统网络使用专用设备(如防火墙或负载均衡器),则软件定义的网络将用使用控制器管理数据平面行为的应用程序取代设备。
控制层被视为控制器软件(软件定义网络中大脑的集中式软件定义网络)。此控制器驻留在服务器上,管理策略和整个网络的流量。主要任务是数据平面资源的把控、流表的把控以及网络信息的修改和维护。控制层通过OpenF10w通道与交换机建立会话来管理交换机的或查看交换机的状态,可以修改、胤除、或添加交换机的流表,控制交换机的数据转发行为。
基础设施层由网络中的物理交换机组成。负责数据高效转发和状态收集。根据设备存储的流表对数据进行操作并高速转发,将网络事件和交换机设备状态反馈给上层控制。消息主要是指用来进行传递链路的延时、带宽消息以及保活消息。
图2.1 SDN结构图
这三个层使用各自的北向和南向应用程序编程接口(API)进行通信。例如,应用程序通过其北向接口与控制器通信,而使用其他接口(如openflow南向接口)为控制器和交换机提供通信接口。虽然还有一些其他不同类型的协议。目前还没有正式的标准来让控制器的API与OpenFlow匹配为一个通用的南行接口。考虑到其广泛的供应商支持,随着时间的推移,OpenDaylight控制器的北行API可能会成为事实上的标准。
2.2 SDN如何工作
SDN包含多种技术,包括功能分离、网络虚拟化和通过可编程性实现的自动化。
SDN技术主要是将网络数据传送和相关网络设备分割开来。当控制平面决定数据包应该如何通过网络时,数据平面实际上将数据包从一个地方移动到另一个地方。在一个典型的SDN场景中,当数据包传送到交换机并被接收以后,数据包将会发送到指定位置,而这个位置由交换机中一些特定的固件中的规则决定。这然后交换机也会再次接收到如何处理这些数据包的规则,而这些规则是由中央控制器决定的。然后交换机会进一步向中央控制器询问具体的指导信息,同时将它处理过的信息发送给控制器。然后每个数据包都会按照交换机发出的同样的命令到达同样目的地,后续的数据包交换机也会同样处理。
软件定义的网络使用一种有时称为自适应或动态的操作模式,在这种模式中,交换机向控制器发送路由请求,请求没有特定路由的数据包,然后交换机将请求到的数据包发送到指定目的地。这个过程与自适应路由不同,自适应路由是在路由器和基于网络拓扑的算法之间发送路由请求,而不是由控制器发送。
软件定义的网络虚拟化是经过虚拟覆盖来起作用。虚拟覆盖被视为物理层网络以及逻辑上的独立的网络。用户可以实现端到端覆盖,以抽象底层网络和分段网络流量。这种微细分对于服务提供商和拥有多租户云环境和云服务的运营商特别有用,因为他们可以为每个租户提供一个单独的虚拟网络,并提供特定的策略。
2.3 SDN的好处
有了SDN,只要有权限,就可以更改例如优先级划分以及对某一个降级等网络交换机的规则,甚至可以使用粒度级别的控制和安全性阻止特定类型的数据包。因此在云计算的多租户体系结构中发挥着巨大的作用,因为它使管理员能够以更灵活、更高效的方式管理流量负载。从本质上讲,这使管理员能够使用价格更低的商品交换机,并且比以往任何时候都能更好地控制网络流量[17]。
SDN的其他好处是方便的网络管理和端到端可视性。网络管理员只需要处理一个集中式控制器就可以将策略分发到连接的交换机,而不需要配置多个单独的设备。此功能也是一个安全优势,因为控制器可以监视流量和部署安全策略。例如,如果控制器认为流量可疑,它可以重新路由或丢弃数据包。SDN还虚拟化了以前由专用硬件执行的硬件和服务,从而实现了减少硬件占用和降低运营成本的优势。
此外,软件定义的广域网(SD-WAN)技术的雏形是通过软件定义的网络来实现。SD-WAN采用了SDN技术的虚拟覆盖方面,在整个WAN中抽象组织的连接链接,并创建一个虚拟网络,可以使用控制器认为适合发送流量的任何连接。
2.4 SDN挑战
安全性是SDN技术的一个优点,也是一个关注点。集中式SDN控制器显示单一故障点,如果被攻击者攻击,可能会对网络造成损害。具有讽刺意味的是,SDN面临的另一个挑战是,在网络行业中,还没有对软件定义的网络进行定义。不同的供应商为SDN提供不同的方法,从以硬件为中心的模型和虚拟化平台到超聚合的网络设计和无控制器方法。
一些网络计划经常被误认为是SDN,包括白盒网络、网络分解、网络自动化和可编程网络。虽然SDN可以受益于这些技术和流程,但它仍然是一种独立的技术。
当SDN技术与OpenFlow协议一起推出时,它在2011年左右出现了很多宣传。从那时起,采用速度相对较慢,尤其是在网络较小、资源较少的企业中。此外,许多企业认为SDN部署的成本是一个决定性因素[9][10]。
SDN的主要采用者包括服务提供商、网络运营商、电信和运营商,以及Facebook和谷歌等大公司,所有这些公司都有资源应对并为新兴技术做出贡献。
实验环境简介
本次毕业设计主要是在Linux系统下搭建mininet仿真平台,采用Python编程,模拟真实情况下的网络环境,实现真实化的openflow。因此主要的环境有vmware虚拟机、Linux操作系统、Python编程语言以及openflow协议。
3.1 VMware简介
虚拟机(virtual machine)是指由软件模拟并在完全隔离的环境中运行的具有完整硬件功能的完整计算机系统[1]。
虚拟系统转换为已有操作系统的新型的虚拟映像。它的功能与真正的Windows系统完全相同。打开虚拟系统之后,整个操作完成都是基于该全新的独立虚拟系统。该系统能够自己完成安装、软件的运行、数据的保存,并且具有自己的桌面特性,该系统对实际意义上的系统并不会造成影响。使用此类虚拟系统,就能够在一个电脑上使用系统双开,还可以灵活切换。虚拟系统与传统的虚拟机(并行桌面、vmware、virtualbox、virtual pc)的区别在于:虚拟系统不会降低计算机的性能;耗时上,虚拟系统的启动比启动Windows系统要节省时间;运行程序更方便快捷;虚拟系统只能使用simu后期与现有操作系统的环境相同,而虚拟机可以模拟它们。其他操作系统与虚拟机系统相比,还需要模拟底层硬件指令,所以虚拟系统的运行酸度要比应用程序的运行速度快得多。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: