《软件定义网络(SDN)基础教程-习题答案(刘江).docx》由会员分享,可在线阅读,更多相关《软件定义网络(SDN)基础教程-习题答案(刘江).docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件定义网络(SDN)基础教程课后习题答案第一章SDN基础知识1. SDN相比于传统网络的优势在哪里?会带来哪些问题?参考答案:SDN与传统网络的最大区别就在于它可以通过编写软件的方式来灵活定义网络设备的转发 功能。在传统网络中,控制平面功能是分布式地运行在各个网络节点中的,如集线器(Hub)、 交换机(Switch),路由器(Router)等。因此新型网络功能的部署需要所有相应网络设备 的升级,这导致网络创新往往难以落地。而SDN将网络设备的控制平面与转发平面别离, 并将控制平面集中实现,这样新型网络功能的部署只需要在控制节点进行集中的软件升级, 就能实现快速、灵活地定制网络功能。另外,SD
2、N架构还具有很强的开放性,它通过对整个 网络进行抽象,为用户提供完备的编程接口,使用户可以根据上层应用个性化地定制网络资 源来满足其特有的需求。由于其具有开放可编程的特性,SDN有可能打破某些厂商对设备、 协议以及软件等方面的垄断,从而使更多的人可以参与网络技术的研发工作。SDN数据控制别离目前面临的问题包括以下几种。 可扩展性问题:这是SDN面临的最大问题之一。数据控制别离后,原来分布式的控制平 面集中化了,即随着网络规模扩大,单个控制节点的服务能力极有可能会成为网络性能的瓶 颈。因此控制架构的可扩展性是数据控制别离后的主要研究方向之一。一致性问题:在传统网络中,网络状态一致性是由分布式协议
3、保证的。在SDN数据控制 别离后,集中控制器需要承当这个责任。如何快速侦测到分布式网络节点的状态不一致性, 并快速解决这类问题,也是数据控制别离后的主要研究方向之一。 可用性问题:可用性是指网络无故障的时间占总时间的比例。传统网络设备是高可用的, 即发向控制平面的请求会实时得到响应,因此网络比拟稳定,但是在SDN数据控制别离后, 控制平面网络的延迟可能会导致数据平面可用性问题。2. SDN架构包含哪些模块?参考答案:ONF定义的架构共由4个平面组成,各平面之间使用不同的接口协议进行交互,各平面的 主要功能如下:(1)数据平面:数据平面由假设干网元构成,每个网元可以包含一个或多个SDN数据路径,
4、 是一个被管理的资源在逻辑上的抽象集合。每个SDN数据路径是一个逻辑上的网络设备, 没有控制能力,只是单纯用来转发和处理数据的。一个SDN数据路径包含控制-数据平面接 口代理、转发引擎表和处理功能模块3个局部。(2)控制平面:控制平面为SDN控制器,一个SDN控制器包含北向接口代理、SDN控制 逻辑以及控制-数据平面接口驱动3个局部。SDN控制器只要求逻辑上完整,因此它可以由 多个控制器实例协同组成,也可以是层级式的控制器集群。(3)应用平面:应用平面由假设干用户需要的SDN应用构成,它可以通过北向接口与SDN 控制器进行交互,即这些应用能够通过可编程方式把需要请求的网络行为提交给控制器。一
5、个SDN应用可以包含多个北向接口驱动(使用多种不同的北向API),同时SDN应用也可 以对本身的功能进行抽象、封装来对外提供北向代理接口,封装后的接口就形成了更高级的 北向接口。(4)管理平面:管理平面主要负责一系列静态的工作,这些工作比拟适合在应用、控制、 数据平面外实现,例如进行网元设置,指定SDN控制器,定义SDN控制器以及设定SDN(3)多级流表的处理过程:每个OpenFlow交换机包含多个流表,每个流表包含多个流表项,采用流水线方式处理。OpenFlow交换机的流表是从0开始按顺序编号的。流水线处理总是从第一个流表开始。数据包首先与流表0中的流表项进行匹配。如果某流表项匹配成功,那么
6、执行该流表项里的指 令。 流表项的指令可以明确指定将数据包转至另一个流表处理(GOTO指令)。一个流表项 只能将数据包转到大于自己流表号的流表,也就是说流水线处理是单向的,只能前进而不准 后退。流水线的最后一个流表项不包括GOTO指令。 如果匹配的流表项中不包含GOTO指令,那么流水线处理将在该流表中停止。数据包会 被与之相关的行动集处理,这里的处理通常是指转发。第五章SDN协议接口1 .简述OpenFlow协议中流表的结构和功能,比拟流表与传统网络中交换机、 路由器中转发表的相似点和不同点。参考答案:OpenFlow的流表项主要包括3个局部:用于数据分组匹配的分组头域(HeadField)、
7、用于 保存与条目相关的统计信息的计数器(Counter)、匹配表项后需要对数据分组执行的动作 表。 分组头域:分组头域是数据分组匹配流表项时的参考依据,作用类似于传统交换机进行 二层交换时匹配数据分组的MAC地址,也类似于路由器进行三层路由时匹配的IP地址。 计数器:流表项中的计数器被用来统计流的一些信息,例如查找次数、收发分组数、生 存时间等。 动作表:流表项可以根据指定动作字段来指导OF交换机如何处理流,动作表那么指定了 OF交换机处理相应流的行为。动作表可以包含0个或多个动作,交换机会按照这些动作的 先后顺序依次执行。流表的功能与传统交换机中的二层MAC地址表、路由器中的三层IP路由表类
8、似,但又和 传统设备不同,流表可以同时包含更多层次的网络特征,而且是由网络管理者通过控制器编 程定义的,不再受限于随设备出厂的操作系统。通过部署面向各种网络服务的流表,一台OF 交换机可集交换、路由、防火墙、网关等功能于一身,极大地提高了网络部署的灵活性。2 .简述OpenFlow协议中平安通道的建立过程。参考答案:OpenFlow控制器开启TCP的6633端口等待交换机的连接,当交换机启动时,会连接到指 定控制器的6633端口。为了保证平安性,双方需要交换证书完成身份认证。因此,每个交 换机至少需配置两个证书,一个用来认证控制器,另一个用来向控制器发出认证。当认证通过后,双方会给对方发送握手
9、消息,该消息携带各自支持的最高的协议版本号,接 收方将采用二者中较低版本协议进行通信。一旦发现两者拥有共同支持的协议版本,那么建立 平安通道,否那么发送错误消息,描述失败原因,并终止连接。3 .创立一个小型拓扑,抓包分析OpenFlow交换机和控制器的交互过程。参考答案:OpenFlow交换机和控制器的交互过程: 控制器与OpenFlow交换机通过TCP “3次握手”建立连接。其中,控制器的端口号为 6633o ACK (Acknowledge character)是确认字符。 控制器与OpenFlow交换机之间相互发送Hello消息,协商双方的OpenFlow版本号。如 果双方协商不一致,那
10、么会产生Error (错误)消息。 控制器向OpenFlow交换机发送Features Request (功能请求)消息,请求交换机上传自 己的详细参数。OpenFlow交换机收到请求后,向控制器发送Features Reply (功能反应)消 息,详细汇报自身参数,包括支持的buffer (缓存)数目、流表数以及动作等。 控制器通过Set Config消息下发配置参数,然后通过Get Config Request消息请求 OpenFlow交换机上传修改后的配置信息。OpenFlow交换机通过Get Config Reply消息向控 制器发送当前的配置信息。如果要进行状态的修改、控制器通过Mo
11、dify State Messages消息 修改包括 Table/Flow/Port/Meter Mod 参数。 控制器与OpenFlow交换机发送Packet_out Packet_in消息,通过Packet_out中内置的 LLDP包,进行网络拓扑的探测。 控制器与OpenFlow交换机通过发送Multipart Request (多局部请求)、Mutipart Reply (多 局部反应)消息,可以获取OpenFlow交换机的状态信息,包括流的信息、端口信息等。 控制器与OpenFlow交换机通过发送Echo Request (回应请求)、Echo Reply (回应反应) 消息,保证两
12、者之间存在有效连接,防止失联。4 . NETCONF协议作为一个网络管理协议,与之前的SNMP以及CLI的管理方 式相比有什么优点? 参考答案:随着网络规模的增大、复杂度的增加,网络管理的工作量也呈现出指数型的增长,传统的命 令行界面CLL简单网络管理协议SNMP已经不能适应如今复杂的网络管理工作,特别是 不能满足配置管理的要求。NETCONF网络配置协议定义了一种简单的管理网络设备的机制, 通过该机制可以在设备中检索配置数据信息,使用相应的软件向设备上传新的配置数据。通 过NETCONF协议,网络设备可以提供规范的应用程序接口 APL应用程序可以使用这个简 单的API来发送和接收完整或局部的
13、配置数据。NETCONF使用远程过程调用RPC方式促 进客户端和服务器之间的通信。NETCONF允许客户端发现服务器支持的协议扩展集。 NETCONF可与基于XML的转换技术配合使用,如可扩展样式表转换语言XSLT,构建一 个能够自动进行完整的和局部配置的系统。5 . NETCONF协议分成了几层,每层对应实现了什么功能?参考答案:NETCONF协议分成4层:内容层、操作层、消息层、传输层:(1)传输层:底层传输协议的3个要求包括: 面向连接:NETCONF协议是面向连接的,要求在对等方之间建立稳定的连接,这种连 接必须提供可靠的、有序的数据传输。NETCONF的连接是长期存在的,在进行协议操
14、作的 时候需要保持不变。 身份认证、完整性和机密性:NETCONF连接必须提供身份认证、数据完整性、机密性 和重传保护机制。例如,可以使用TLS或SSH对连接进行加密,具体取决于底层协议。 强制性运输协议:NETCONF协议必须支持SSH传输协议。(2)消息层:NETCONF协议采用基于RPC的通信模式。NETCONF协议使用vrpc和rpc- reply元素来提供与传输协议相独立的NETCONF请求和响应,来完成对网络设备的配置管 理工作。(3)操作层:NETCONF协议在操作层中提供了一系列低级别操作来管理设备配置和检索 设备状态信息,而设备状态信息一般存放在数据库中,这些操作提供了检索、
15、配置、复制和 删除配置数据存储的功能。(4)内容层:内容层由配置数据和通知数据组成。NETCONF的内容层未指定具体的模型 结构,而是指定了一套数据建模语言YANG。使用YANG模型定义的数据模型,均可以作 为NETCONF的内容层。NETCONF协议可以通过不断增加和修改对应的YANG文件来实 现对协议的扩展。NETCONF可以支持用户自定义的操作。6 .查阅资料,思考NETCONF主要有哪些应用场景?参考答案:通过NETCONF用户可以增加、修改、删除网络设备的配置,获取网络设备的配置和状态信 息。NETCONF支持的操作和能力包括:(1)基本操作:NETCONF协议定义了基本能力,基本能
16、力定义了一系列操作,用于修改 数据库配置、从数据库获取信息等。(2)标准能力集:NETCONF协议定义了一系列标准能力集。这些标准能力定义了一些新 的操作,使NETCONF功能更加强大,并使其在容错性、可扩展性等方面得到加强,最终将 有利于实现基于NETCONF的开放式网络管理体系结构,为设备厂商扩展功能提供有效的 途径。(3)扩展能力集:设备制造商也可以定义自己的能力集,以实现NETCONF定义以外的特 色功能。7 .登录控制器,翻开Postman,在URL地址栏中输入如下内容,提交方式为GET, 来获取交换机ID信息。 :/127.0.0.1:8080/restconf/operation
17、al/opendaylight-inventory:nodes参考答案:第六章SDN基础应用开发1 .请简要谈谈使用SDN的仿真工具进行实验的优点与缺乏。参考答案:优点:(1)节省资源,便于在有限的资源上进行复杂拓扑的实验。(2)操作简单,通过简单的脚本就可以完成一个拓扑的创立。(3)速度快,实验拓扑秒级启动。缺点:(1)仿真工具UI易用性较差。(2)仿真终端不支持复杂应用的部署。2 .请尝试对实验内容进行修改并增添自己的想法,定制一个自己的实验。第七章SDN综合应用开发1 .请简要谈谈SDN北向API的作用。参考答案:控制器北向API由控制器提供,可通过调用所述接口对控制器连接的交换机进行管
18、理,管 理操作包括流表的增、册k改、查,拓扑获取,交换机配置更改等。2 .请回答SDN防火墙的特点。参考答案:SDN作为新的网络架构理念,其基本特性包括转控别离、控制平面可编程和集中控制。借 助SDN中心化的控制机制,企业用户可以从全局网络设备采集流量信息,建立起基于流量 的实时和历史信息库,精准识别、阻断异常流量,实现基于流的类防火墙功能。此外,借助 SDN开放的北向接口,用户可以按需定制北向应用,通过快速有效地将平安策略下发到安 全设备,实现平安措施的快速部署以及平安事件的及时响应。SDN架构的引入为网络平安 领域的创新提供了巨大的想象空间。3 .请结合实际生活中的例子,谈一谈SDN的网络
19、平安的需求和挑战。参考答案:近年来,为了满足不断增长的业务需求,金融机构逐渐开始进行数据中心的云化建设。基于 软件定义网络(SDN)的金融云平台需求包括:(1)互联网化的业务日益增加,云网自动化协同的需求愈发迫切,而SDN数据平面接口开 放,自动化可编程,对外开放了网络的能力,可以快速对接业务的组网需求;基于流(flow) 的转发控制,使得网络行为能够更加多样化、精细化。(2)面向外部金融机构提供金融云托管服务,在服务形态多样化的同时,对于网络服务的 质量与平安也提出了更高的要求。而SDN具有中心化的控制平面,提供了全网的视角与全 局的网络信息。SDN本质是网络架构上的革新,在组网方面可以提升
20、网络的利用效率与灵 活性,在平安方面对网络进行精细化细粒度的管控成为可能。在数据层面理论上SDN增强了平安可控性与隔离粒度,而不会造成额外的平安风险。但是 在策略转换与指令下发的过程中,由于是SDN全自动化地进行,因此在管理与控制层面有 可能会引入新的风险。SDN的信息风险点主要存在于控制平面及其相关联的南北向链路上。 控制器作为网络大脑,需要更高强度的保护措施。应用的控制范围等。3. SDN是如何实现控制平面与数据平面别离的?参考答案:SDN以网络设备的FIB表为界分割数据平面和控制平面,其中交换设备只是一个轻量级的、 “哑”的数据平面,仅保存FIB和高速交换转发能力,而上层的控制决策全部由
21、远端的统一控 制器节点完成,在这个节点上,网络管理员可以看到网络的全局信息,并根据该信息做出优 化的决策,数据平面和控制平面之间采用SDN南向接口协议连接,这个协议将提供数据平 面可编程性。4. SDN是如何实现网络可编程的?参考答案:对上层应用的开发者来说,SDN的编程接口主要表达在北向接口上,北向接口提供了一系 列丰富的APL开发者可以在此基础上设计自己的应用而不必关心底层的硬件细节,就像目 前在x86体系的计算机上编程一样,不用关心底层寄存器、驱动等具体的细节。北向接口的 设计是否完善会直接影响整个SDN的可编程能力。第二章SDN仿真环境1 .简单举例说明Mininet在SDN仿真中的作
22、用。参考答案:Mininet是一个可以在有限资源的普通计算机上快速建立大规模SDN原型系统的网络仿真 工具。该系统由虚拟的终端节点(End-Host) OpenFlow交换机、控制器(也支持远程控制 器)组成,这使得它可以模拟真实网络,可对各种想法或网络协议等进行开发验证。目前 Mininet已经作为官方的演示平台对各个版本的OpenFlow协议进行演示和测试。2 .不使用Mininet的可视化应用,写一份拓扑文件,并且在Mininet中使用这份 拓扑文件来生成对应的拓扑。参考答案:拓扑文件内容如下:#!/usr/bin/python from import Mininetfrom minin
23、et.node import Controller; RemoteController, OVSControllerfrom mininet.node import CPULimitedHost, Host, Nodefrom mininet.node import OVSKernelSwitch, UserSwitchfrom mininet.node import IVSSwitchfrom mininet.cli import CLIfrom mininet.log import setLogLevel, infofrom mininet.link import TCLink; Intf
24、from subprocess import call def myNetwork():net = Mininet( topo=Nonezbuild-False, ipBase=10.0.0.0/8)info( * Adding controllern)cO=net.addController(name=,cOcontroller二Controller, protocol=tcp port=6633)info( * Add switchesn)s2 = net.addSwitch(s2, cls=OVSKernelSwitch)si = net.addSwitchCsl, cls=OVSKer
25、nelSwitch)info( * Add hostsn)h2 = net.addHost(,h2/ cls=Hostz ip=10.0.0.2z defaultRoute=None)hl = net.addHostChl, cis=Host, ip=10.0.0.1, defaultRoute=None)h3 = net.addHostChS, cis=Host, ip=10.0.0.3 defaultRoute=None)info( * Add linksn)net.addLink(hl/ si)net.addLink(sl/ s2)net.addLink(s2z h2)net.addLi
26、nk(s2, h3)info( * Starting networkn)net.buildOinfo( * Starting controllersn)for controller in net.controllers:controller.startOinfo( * Starting switchesn)net.get(s2).start(c0)net.getCslJ.startCIcO)info( * Post configure switches and hostsn)CU(net)net.stopOif _name_ = _main_:setLogLevel( info)myNetwo
27、rkQ步骤 启动Mininet可视化界面步骤 添加并连接网络组件步骤 设置控制器、主机和交换机的属性步骤 单击“File一“Export Level 2 Script”,将其保存为Python脚本,命名topo.py步骤 执行命令sudo python topo.py运行脚本生成对应的拓扑3 .创立拓扑,画出端口转发表来说明MAC地址学习的过程。参考答案:(1)创立拓扑命令:mn topo linear,2,2 mac switch ovsk controller=none(2) MAC地址学习的过程:步骤 如下图,假设交换机A和B的MAC地址表是空的,主机11向主机33发送数 据帧。交换机A
28、交换机B主机11主机22主机33主机44图 主机11向主机33发送数据帧步骤 交换机A接收到数据帧后,执行以下操作。交换机A学习主机11的MAC地址和端口号,用“11”代表主机11的MAC地址,此 时交换机A的MAC地址表如图2-30所示。 交换机A查看自己的MAC地址表。 如果MAC地址表中有目的主机MAC地址,那么直接进行数据转发;如果没有,那么继续执 行以下步骤。 交换机A向除源数据发送端口外的其他所有端口发送广播(这里交换机A从端口 2和端 口3向外发送广播)。步骤 交换机B在接收到数据帧后,执行以下操作。 交换机B学习源MAC地址和端口号,此时交换机B的MAC地址表如下列图所示。MA
29、C地址端口号113图交换机B的MAC地址表 交换机B查看自己的MAC地址表。 交换机B向除源数据发送端口外的其他所有端口发送广播(这里交换机B从端口 1和端 口 2向外发送广播)。步骤 主机22查看接收到的数据帧,发现目标MAC地址不是自己,丢弃数据帧。步骤 主机33接收数据帧,主机44丢弃数据帧。步骤 假设这时主机44要给主机11发送数据帧。步骤 交换机B接收到数据帧后,执行以下操作。 交换机B学习主机44的MAC地址和端口号,此时交换机B的MAC地址表如下列图所zKoMAC地址端口号113442图交换机B的MAC地址表 交换机B查看自己的MAC地址表,根据MAC地址表中的条目,单播转发数据
30、到端口 3o步骤 交换机A在接收到数据帧后,执行以下操作。 交换机A学习源MAC地址和端口号,此时交换机A的MAC地址表如下列图所示。MAC地址端口号111443图交换机A的MAC地址表 交换机A查看自己的MAC地址表,根据MAC地址表中的条目,单播转发数据到端口 lo 主机11接收到数据帧。至此,MAC地址学习过程结束。4 .谈谈Mininet下MAC地址学习的作用。参考答案:MAC地址是识别LAN节点的标识,MAC对设备(通常是网卡)接口是全球唯一的。对于 网卡来说,MAC地址是它的物理地址,是不可变的,而IP地址是它对应的逻辑地址,是可 以更改的。在交换机中有一张记录局域网主机MAC地址
31、与交换机接口对应关系的表,交换 机可根据这张表将数据帧传输到指定的主机上。交换机在接收到数据帧以后,首先将数据帧 中的源MAC地址和对应的接口记录到MAC表中,接着检查自己的MAC表中是否有数据 帧中的目标MAC地址的信息。如果有,那么根据MAC表中记录的对应接口将数据帧发送出 去(也就是单播);如果没有,那么将该数据帧从非接收接口发送出去(也就是广播)。5 .说明SDN仿真环境和传统网络仿真环境的异同。参考答案:传统的网络仿真平台(如NS2、OPNET)或多或少存在着某些缺陷,难以准确地模拟网络实 际状态,并且不具备交互特性,这使得基于这些平台开发的代码不能直接部署到真实网络中。 斯坦福大学
32、Nick McKeown研究小组基于Linux Container架构,开发了 Mininet这,轻量级 的进程虚拟化网络仿真工具。Mininet最重要的一个特点是,它的所有代码几乎可以无缝迁 移到真实的硬件环境,方便为网络添加新的功能并进行相关测试。第三章SDN数据平面1 .数据平面有哪几个方面的功能?请简要说明。参考答案:数据平面通过硬件转发芯片对数据分组进行高速转发,基本功能主要包括转发决策、背板转 发以及输出链路调度等几个方面。(1)转发决策:交换设备的各种转发行为均与协议相关。无论是交换机还是路由器,其工 作原理都是在端口收到数据分组时,将数据分组中的目的地址与设备自身存储的MAC地
33、址 表或路由表进行匹配,从而确定数据分组转发的目的端口。表项匹配的工作是由交换设备中 的交换芯片来实现的。(2)背板转发:交换机通过背板把各个端口连接起来,数据分组经转发决策后,由背板从 入端口转发到目的端口。交换机背板的交换结构可以分为共享总线结构、共享内存结构和 CrossBar 结构。(3)输出链路调度:各个端口针对接收线路和发送线路各有一个缓冲队列。当数据分组发 往交换机时,发出的数据分组暂存在交换机的接收队列中,然后等待下一步处理。如果交换 机决定把接收的数据分组发送给某一终端,这时候交换机把要发送的数据分组发往该接收终 端所在端口的发送队列,然后发送到接收终端,如果终端忙那么一直存
34、储在发送队列中。2 . SDN交换机和传统交换机有什么区别?参考答案:SDN交换设备的基本功能仍然包括转发决策、背板转发、输出链路调度,但在功能的具体 实现上与传统网络的交换设备有所不同。(1)转发决策:支持OpenFlow南向接口协议的SDN交换设备首先用流表代替了传统网络 设备二层和三层转发表,该流表中的每个表项都代表了一种流解析以及相应的处理动作。数 据分组进入SDN交换机后,先与流表进行匹配查找,假设与其中一个表项匹配成功,那么执行 相应的处理动作;假设无匹配项那么上交控制器,由其决定处理决策。这些流程的实现依旧需要 依赖网络设备内的交换芯片。(2)背板转发:数据中心是目前SDN应用最
35、广泛的场景之一,其对交换机数据交换速率的 要求相对较高。不过就目前的网络设备来说,设备的速率瓶颈主要还是交换芯片,背板提供 满足要求的交换速率并不难。(3)输出链路调度:正常情况下,数据分组发往交换机某一端口或准备从交换机某一端口 发出时,均需在端口队列中等待处理。支持QoS的交换机那么可能要对报文支持根据某些字 段进行分类,以进入有优先级的队列,对各个队列进行队列调度以及修改报文中的QoS字 段等操作。支持OpenFlow南向接口协议的SDN交换机对QoS的支持主要有基于流表项设 置报文入队列、根据Meter进行限速、基于Counter进行计费、基于Group的Select功能进 行队列调度
36、等。背板转发和输出链路调度功能没有给SDN交换机带来太大挑战,但转发决策却给SDN交 换机在技术实现上带来了很大的难题。OpenFlow交换机的流表有别于传统交换设备,它的 逻辑粒度性更高,可以包含更多层次的网络特征,可以使交换机集交换、路由、防火墙、网 管等功能于一身,这也正是SDN灵活性的由来。而交换芯片需要通过查找这样一张流表来 对进入交换机的数据分组进行转发决策,这就对交换芯片的性能在设计和实现上提出了新的 要求。3 .什么是白盒交换机?它的特点是什么?参考答案:白盒交换机(Whitebox Switch),也被叫作白牌交换机、裸机交换机。“白盒”一词原本指没 有品牌的计算机,这些白盒
37、计算机的原始设计制造商(Original Design Manufacture, ODM) 如今也开始涉足网络设备市场,主要厂商有Accton Celestica Quantao他们希望在今后的 网络设备市场上,用户可以像挑选个人计算机一样挑选各厂商生产的网络设备。一旦网络设 备软、硬件接口标准化了,ODM厂商便可以购买芯片厂商生产的交换芯片,按客户的要求 生产白盒交换机。用户可自行安装网络操作系统和应用程序,并由网络管理人员编程来控制 设备转发行为,实现自营业务的灵活创新和快速部署。白盒交换机没有软件是无法使用的,每台交换机都需要一个独立于硬件的网络操作系统。 Linux操作系统可提供众多的
38、优势(包括开源/免费工具,如GCC、Python的本地环境以及 在板上编译自开发应用的能力),使得它成为白盒交换机理想的操作系统。另外,假设想真正 将白盒交换机部署到SDN中,还必须使其与SDN控制器交互,白盒交换机操作系统的一个 关键特性就是能够连接SDN控制器(如Ryu、Floodlight等)。5. Open vSwitch由哪几个基本部件组成?各有什么功能?参考答案:Open vSwitch基本部件分为3个局部:其一是ovs-vswtichd守护进程,慢速转发平面,位于 用户空间,完成基本转发逻辑,包括地址学习、镜像配置、IEEE 802.1Q VLAN、链路汇聚 控制协议(Link
39、Aggregation Control Protocol, LACP) 外部物理端口绑定、基于源MAC和 TCP负载均衡或主备方式,支持OpenFlow协议,可通过sFlow、NetFlow或交换端口分析 器(Switched Port Analyzer, SPAN)端口镜像方式保证网络可视性,配置后数据交由ovsdb- server进程存储和管理;其二是核心数据转发平面,即openvswitch_mod.ko模块,它位于内 核空间,完成数据分组查询、修改、转发,隧道封装,维护底层转发表等功能;其三是控制 平面,分布在不同物理机上的软件交换机通过OpenFlow控制集群组成分布式虚拟化交换机,
40、 还实现了不同租户虚拟机隔离功能。每个数据转发保持一个OpenFlow连接,转发平面中的 数据流在第一次通过软件交换机时,都被转发到OpenFlow控制器进行处理,OpenFlow根 据14层信息特征匹配,定义转发、丢弃、修改或排队策略,第二次数据转发时就直接由 核心转发模块处理,加快了后续数据处理过程。4.尝试结合现有网络场景,说明Open vSwitch在该场景下的优势和应用方法。参考答案:(1)应用场景:数据中心。(2)优势:能同时支持多种标准的管理接口和协议(如NetFlow、sFlow、SPAN、RSPAN、 CLI、LACP、802.1ag等),支持跨物理服务器分布式管理、扩展编程
41、、大规模网络自动化。 Open vSwitch具备很强的灵活性,可以在管理程序中作为软件交换机运行,也可以直接部署 到硬件设备上作为控制层。利用其作为SDN的基础设施层转发设备,可以大幅降低部署成 本,还可以提高网络的灵活性以及扩展性。节省硬件本钱、部署灵活。(3)应用方法:Open vSwitch主要用于转发数据,常见的操作有网桥和端口的添加、删除、 查看等;流表的添加、查看等;QoS设置及端口映射等。6 .如果不删除cthO直接删除brO, brO及挂接到brO上的端口会被一并删除吗?参考答案:直接删除brO,此时brO会被删除,而brO上的端口从brO上删除,但ethO实际网卡依旧存 在
42、。7 .根据流表操作表格,尝试按照如下要求添加流表项:假设存在端口 2流入的 源IP地址为的IPv4数据包,将该流的目的IP地址修改为(ovs-ofctl add-flow brO idle_timeout=1000,priority=l,in_port=2,dl_type=0x0800/,actions=mod_nw_dst:10.0.0.2)参考答案:8 .假设某网吧使用OVS进行总机数据交换,该OVS现有网桥及端口如图3-56 所示,假设端口 ethl和eth4的速率需求为1000 kbit/so现要求用eth8对上述两 端口进行监控,同时为3个端口提供QoS保障。试根据实验所学内容,写
43、出OVS 的关键配置步骤。3f Zd706b-8776-440d-b4e3-da0ef103d1Z0Bridge br-swController Mtcp:30.0.1.3:66330 fail_mode: securePort Interface ethlPort Meth4uInterface eth4Port “eth8”Interface eth8图3-56现有网桥和端口参考答案: 监控配置如下:# ovs-vsctl set bridge br-sw mirrors=mid = m create mirror name=mymirror select-dst-port=ethl uu
44、idselect-src-port=eth4 uuidoutput-port=eth8 uuidQoS配置如下:# ovs-vsctl set interface ethl ingress_policing_rate=100000# ovs-vsctl set interface ethl ingress_policing_burst=50000# ovs-vsctl set interface eth4 ingress_policing_rate=100000# ovs-vsctl set interface eth4 ingress_policing_burst=50000# ovs-vs
45、ctl set interface eth8 ingress_policing_rate=100000# ovs-vsctl set interface eth8 ingress_policing_burst=50000第四章SDN控制平面1 .请写出SDN控制平面层次化架构的两个主要层面及其功能。参考答案:控制器被分为基本功能层与网络基础服务层两层:(1)基本功能层:基本功能层主要提供控制器所需要的基本功能。一个通用的控制器应该 能够方便地添加接口协议,这对于动态灵活地部署SDN非常重要,因此在这一层首先要完 成的就是协议适配功能。总结起来,需要适配的协议主要包含两类:一类是用来与底层交换
46、设备进行信息交互的南向接口协议,另一类是用于控制平面分布式部署的东西向接口协议。 协议适配工作完成后,控制器需要提供用于支撑上层应用开发的功能。这些功能主要包括模 块管理、事件机制、任务日志和资源数据库4个方面的内容。(2)网络基础服务层:网络基础服务层提供基础的网络功能。网络基础服务层中的模块作 为控制器实现的一局部,可以通过调用基本功能层的接口来实现设备管理、状态监测等一系 列基本功能。这一层涵盖的模块可以有很多,取决于控制器的具体实现,主要的功能模块包 括交换机管理、主机管理、拓扑管理、路由、转发策略和虚拟网管理。2 . SDN控制器的评估要素都有什么?参考答案:SDN控制器的十大评估要
47、素包括:对OpenFlow的支持、网络虚拟化、网络功能、可扩展性、 性能、网络可编程性、可靠性、网络平安性、集中管理和可视化、控制器供应商。3 .当登录OpenDaylight主界面口寸,有时会出现无法登录(提示:Unable to Login) 的问题,请问这有可能是什么原因导致的?并说出解决方法。参考答案:一种原因可能是控制器所在机器的内存缺乏,需要扩大机器的内存。此原因排除后,出现问 题的解决方法是通过logout退出Karaf控制台,进入上级目录,删除data目录(rm-rfdata), 进入bin目录(cd bin)执行./karaf clean,再次按照顺序安装组件。4 .从Helium版本开始的OpenDaylight默认Web端口是多少?这个端口能否手 动修改?如果能,如何手动修改?参考答案:从Helium版本开始的OpenDaylight默认Web端口是8181,这个端口也可以手动修改,只 需要修改 目录下的 jetty.xml 文件,如将端口修改为 8080, 可修改配置:Property name=jetty.port” defa