软件定义网络(SDN)应用基础(微课版)课件 项目3 基于Mininet模拟SDN环境.pptx
项目3基于Mininet模拟SDN环境;学习目标
项目背景
项目需求分析
项目相关知识
项目实践
项目习题;(1)了解Mininet工具作用及架构
(2)掌握Mininet工具的部署方法。
(3)掌握Mininet工具和MiniEdit使用方法及基本命令。
(4)掌握基本的Python命令用以创建拓扑和测试。;项目描述;在前面的项目中,网络部管理员根据公司业务需求配置了SDN网络架构的测试环境和基本的流表规则,实现了业务主机之间基本通信。由于业务部门还需要测试其他的业务系统相关功能。网络部管理员评估了当前的SDN网络架构后,发现还需要设置并测试更多的流表规则来实现原网络生产环境的高级功能,如负载均衡、链路高可用、链路聚合等。为了降低部署SDN环境的难度和减轻云平台资源的负担,工程师希望能有一个支持快速模拟SDN组网架构的工具,能实现自定义拓扑并且测试SDN相关的高级功能。因此经商议决定采用Mininet模拟工具进行测试,具体有如下几点要求:
(1)Mininet工具能够正常使用,包括搭建拓扑、测试功能、结果验证等。
(2)能够通过脚本的方式进行拓扑的构建、测试和保存。
(3)工具应该有良好的图形化界面,清晰展示拓扑情况,能够使用UI界面进行参数的配置。Mininet模拟器参数如表3-1所示。;
Minient模拟器网络规划如表3-2所示。
;项目分析;根据需求,选取Mininet工具模拟SDN环境,管理员需要完成对Mininet工具的获取,并在对应的机器上进行安装,测试Mininet工具的功能和使用状态。
综上所述,本次项目设计如下几点任务。
(1)源代码部署Mininet工具,并验证工具的可用性。
(2)使用Python语言编写Mininet脚本,搭建SDN测试拓扑。
(3)使用MiniEdit图形化界面构建拓扑。;项目相关知识;1.Mininet概述
传统的网络仿真平台有NS2、OPNET等,但基于这些平台开发的代码不能直接部署到真实的网络中,因此尼克团队基于Linux开发了轻量级的进程虚拟化网络仿真工具Mininet。
Mininet是一个网络仿真器,更确切的说它是一个网络仿真编排系统。它在单个Linux内核中运行一组终端主机、交换机、路由器和链接,使用轻量级的虚拟化技术使单个系统能模拟一个完整的网络。网络中的所有组??均运行与物理机相同的内核、系统和用户代码。Mininet的虚拟主机就像真机一样,可以通过安全外壳协议(SecureShell,ssh)进行连接(前提是开启了sshd服务,并桥接到物理机网络中),还可以在上面运行任意程序。在虚拟主机上运行的任意一个程序均可以通过其仿真的以太网接口按照自定义的链接速度和网络时延发送数据包,再由仿真的以太网交换机、路由器或者是中间件按自定义规则转发。;Mininet最重要的一个特点是:它的所有代码可以无缝迁移到真实的硬件环境,方便为网络添加新的功能并进行相关测试,这使得Mininet可以在普通电脑上快速建立由虚拟的终端节点、OpenFlow交换机、控制器组成的大规模的SDN原型系统。
Mininet是基于Linux容器(LinuxContainer)内核虚拟化技术开发的,它主要使用Linux内核中名为网络命名空间(NetworkNamespace)的资源隔离机制实现虚拟化。这种机制可以让每个虚拟对象都具有独立的网络设备、网络协议栈和端口等资源。Mininet建立网络拓扑的交换节点之间的链路采用Linux的虚拟以太网隧道(VirtualEthernetPair)机制实现。
2.Mininet的架构
Mininet的架构按数据路径(datapath)的运行权限不同,分为内核数据路径(kerneldatapath)和用户空间数据路径(userspacedatapath)两种,其中内核数据路径把数据分组转发的逻辑编译进Linux内核,使得转发效率非常高;用户空间数据路径则把数据分组转发的逻辑编译成一个应用程序,称为ofdatapath,效率虽不及内核数据路径,但比它更灵活且更容易重新编译。;3.3.1Mininet;对比内核数据路径架构,Mininet的用户空间数据路径架构的不同之处主要有两点:
①Mininet的每个节点都拥有自己独立的命名空间(namespace)。
②交换机节点除了使用ofprotocol进程保持与控制器的通信外,还多运行一个用于实现转发逻辑的ofdatapath进程。
用户空间数据路径架构示意图如图3-2所示。;3.Mininet的优势
Mininet具备如下优点。
①运行速度快。Mininet创建一个简单的网络仅需要几秒的时间。
②支持自定义网络拓扑。Mininet支持用户自定义拓扑结构。
③仿真程度高。Mininet上运行