SDN实验报告(5).doc
《SDN实验报告(5).doc》由会员分享,可在线阅读,更多相关《SDN实验报告(5).doc(35页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、/* 信息网络基础研讨专题实验(SDN网络部分)姓 名: 单赟吉学 号: 11211105班 级: 通信1109班指导教师: 赵永祥实验时间: 第十周周二(一) openflow交换机的手动配置1、 实验目的1. 数据openflow交换机的手动配置环境2. 配置openflow交换机初始信息3. 手动配置转发表,实现主机之间通信2、 实验原理关于openflow交换机的实验系列由五个实验构成,这前四个实验须按顺序进行,因为后面的实验需要应用前面实验搭建的软件和硬件环境。第一个实验“openflow交换机的手动配置”熟悉交换机的手工配置环境,实现转发表的手工配置,配置交换机控制端口的地址;第二
2、个实验搭建控制器的软件环境,实现控制器和交换机的互联,运行控制器应用程序,把openflow交换机的功能通过程序实现为一个二层交换机;第三个实验编写一个简单的控制器软件,实现一个简单的广播交换机功能;第四个实验编写一个控制器软件,实现流表的下发和删除,通过这个实验测试控制器提供的编程接口。第五个实验研究在仿真软件中测试控制器程序和功能,同学们可以在自己计算机上调试好程序以后,再到真实的物理机器上实验,以提高实验设备的使用效率。分组交换机按照转发表把某一个输入端口的分组搬移到另外一个输出端口上输出。转发表实现分组目的地址和交换机输出端口之间的映射。转发表决定了交换机的行为。传统的交换机根据标准协
3、议形成转发表,这部分代码封装在交换机的操作系统中,交换机的运营者不能对转发表的形成继续修改,这样做的好处是保证了交换机的速率和可靠性。但是,运营者不能根据网络的具体特点和业务特性对交换机的转发行为进行专门的定制和设计,影响新业务的提供和增加网络运营成本。OpenFlow交换机把控制层面和转发层面分离,交换机的转发表可以由运营者手工本地配置,或者通过控制器远程修改和控制。在实际使用环境中,通过控制器远程修改和控制交换机流表。一个控制器就可以控制全网的交换机,控制器可以从全网的角度对每一个交换机的流表进行配置,从而实现全局优化和快速提供新的业务,极大降低了人工运营成本。国家标准化组织已经制定了交换
4、机和控制器之间的消息格式和交互过程,基于OpenFlow交换机的网络又称为软件定义网络,在大的数据中心已经实用。在OpenFlow网络中,所有的转发决策从各个交换机转移到控制器上,由控制器集中管理数据包的转发策略,通过OpenFlow协议负责与所有网络交换机进行交互,配置数据转发路径。OpenFlow网络示意图如上图所示,所有的数据包在网络中的传输路径由控制器(Controller)统一控制决定,OpenFlow交换机只负责转发数据包。控制器通过对交换机下发流(flow)来实现上述控制流程。一个OpenFlow交换机通常包含多个流表,每个流表含有多条流表条目(flow entries),每条条
5、目由匹配域(match fields),计数器(counters)和指令(instructions)组成。匹配域定义待匹配的数据包特征,如数据包到达的交换机入端口、源以太网地址、目的以太网地址、源IP地址、目标IP地址、VLAN标签。计数器用于对匹配流表的流量统计,更新进入OpenFlow与流匹配的数据包个数以及总字节数。指令用于修改匹配报文的动作集合,决定报文的转发操作,通常的操作有输出数据包到某端口、修改数据包首部信息等。控制器和OpenFlow交换机之间通过OpenFlow消息实现信息交互。 当一个数据包到达交换机时,如果与流表中的某一条流相匹配,便顺序执行该条流指令的操作。如果没有匹配
6、的流,则把整个数据包缓存在交换机中,并为该数据包配一个Buffer ID,随数据包一起作为Packet In消息发往控制器,控制器根据数据包的首部定义一条新的流决定该类数据包的处理策略,下发Flow Mod信息给交换机,Flow Mod消息用于在交换机中添加或删除流表条目,同时控制器以Packet Out消息作为载体将数据包返回交换机,Packet Out消息用于控制报文从指定端口发出,交换机依据随包的Buffer ID取出数据包,再根据新定义的流进行交换处理。本实验实现手动配置交换机转发表。为后续的实验准备实验环境和交换机基本配置。3、 实验器材1. 盛科V330 openflow交换机 2
7、. 台式电脑 (一台)3. 普通交换机一台4、 实验内容1. 连接交换机的控制端口和计算机以太网卡。l 交换机的控制端口位于交换机右上角,交换机的控制端口的地址已经初始化为192.168.1.233,一般不允许学生再进行修改。l 配置计算机的以太网卡的地址也要设为192.168.1.0 网段,如192.168.1.230。l 把交换机的控制端口和计算机都连接到一台普通交换机如下图所示2. 登陆交换机并熟悉交换局配置环境l 在计算机上面打开命令行终端,输入telnet 192.168.1.233l 输入?获取交换机配置的帮助。如下图所示,可以获得交换机的各种命令的列表l 在命令的名字后面输入?可
8、以获得这个命令的功能和使用说明。例如congfigure ?, 就会显示这个命令是配置终端所用3. 常用交换机命令l Show命令显示交换机的工作状态。输入以下命令: show interface status; show openflow controller status; show openflow ovsdb。观察结果,并根据帮助对这些命令进行解释l 配置控制器地址1. 输入configure terminal, 进入配置状态。2. 输入: openflow set controller tcp 192.168.1.230 6633。在交换机上面设置控制器的地址。这里假设控制器的地址为
9、192.168.1.230,默认端口6633。后面的实验中,需要按照控制器的实际地址在交换机上设置。3. 输入end,推出配置状态4. 手动配置流表。Ovs-ofctl 指令实现openflow交换机上流表的添加、删除和查询等动作。Ovs-ofctl指令集合的详细介绍见附录l 把测试计算机连接到openflow交换机的端口2,把openflow交换机的端口8连接到内网交换机。openflow交换机的端口号在交换机的面板上有数字标明。内网交换机地址设为192.168.1.1。l telnet登陆交换机,执行如下命令ovs-ofctl add-flow ovs-switch in_port=2,a
10、ctions=output:8 这个命令把openflow 交换机第2个端口接收到的分组转发到第8个端口。ovs-ofctl add-flow ovs-switch in_port=8,actions=output:2 这个命令把openflow 交换机第8个端口接收到的分组转发到第2个端口。5. 验证流表配置输入如下命令观察配置的流表:ovs-ofctl dump-flows br0在测试计算机终端上面运行如下命令: ping 192.168.1.1,观察是否连通。上述命令的实际执行过程如下图所示其中,第一个“ovs-ofctl dump-flows br0”是在配置了流表,但是没有连接测试
11、计算机时候得到的结果。第二个显示流表的命令是在连接了测试计算机以后观察到结果。可见流表确实实现了端口2和端口8之间的分组交换。测试计算机上也能观察到ping确实有反映,如果把测试计算机连接到其它物理端口,这ping没有响应。 (二)Openflow交换机和控制软件的互联及控制软件加载1、 实验目的l Controller控制器的软件安装l 控制器和Openflow交换机的互联l 加载控制软件到Openflow交换机l 验证交换机预期功能2、 实验原理把RYU控制器连接到Openflow交换机,把一个控制器软件加载到Openflow交换机,这个控制器软件的原理是: 交换机接收到一个分组后,把这个
12、分组报告给控制器终端,控制器终端显示;交换机把分组的源地址和接收到分组的物理端口关联起来;交换机查找目的地址对应的端口号,如果找到,把该分组转发到目的端口,否则在交换机的所有端口广播该分组。控制器软件加载到交换机以后,将实现一个普通交换机的功能,通过一个普通计算机终端验证这个功能。. 3、 实验器材1 盛科V330 openflow交换机一台2 普通交换机一台台3 普通计算机2台4、 实验内容和步骤1) 连接网络拓扑网络连接如下图所示。Openflow交换机的控制端口的地址设为192.168.1.233,Openflow交换机控制端口和一个数据端口连接到内网交换机。RYU控制器连接到内网交换机
13、。计算机终端连接到openflow交换机。通过控制器实现对openflow交换机的控制,使openflow交换机实现一个普通交换机功能。数据端口2) 安装控制器软件Ryu控制器由一个普通计算机实现。由于目前多数计算机采用windows操作系统,而Ryu控制器是有一个linux镜像实现,因此采用虚拟机的方法实现linux操作系统。l 安装Vmware软件l 导入Ryu操作系统镜像l 配置虚拟机的网络为桥接模式,实现虚拟机直接访问物理网络l 验证控制器与交换机控制端口的互通性:ping 192.168.1.2333) telnet 登陆交换机,配置模式控制器地址l 在命令行输入 telnet 19
14、2.168.1.233, 登陆交换机控制台l 获取configure 帮助: configure ?l 进入配置终端状态:configure terminall 在交换机控制台输入:openflow set controller tcp 192.168.1.230 6633l 退出配置状态:输入 end 命令4) 验证已经在交换机上面配置好控制器地址5) 加载控制器应用软件,通过控制器实现对交换机的控制。Simple_switch.py 控制器软件采用反向路径学习的方法实现mac地址的学习,在控制器上面实现简单交换机的功能。该软件在ryu/app路径下面l 把交换机的一个数据端口接入到一个内网
15、或者校园网(下面的实验假设交换机数据端口连接到192.168.1.1的交换机l 在控制器的命令行终端执行如下命令:ryu-manager simple_switch.pyl 控制台出现如下结果: 交换机把接收到的分组发送到控制器,在控制台显示出相关信息: 第一个数字是交换机编号,第二个数字是源mac地址,第三个数字是目的mac地址,第四个地址是交换机接收该分组的物理端口。l 改变内网连接到交换机的物理端口,观察最后一个数据域26变为其他数字l 检查流表的学习情况。从控制器远程登陆到交换机: telnet 192.168.1.233执行命令: ovs-ofctl dump-flows br06)
16、 验证交换机功能使用一台普通计算机发送命令: ping 192.168.1.1, 证明该交换机完成转发功能最后另一台交换机确实ping 通了。(三)Openflow交换机控制软件的编写1、 实验目的l 编写一个广播型二层交换机l 加载控制软件到Openflow交换机并验证预期功能2、 实验原理本实验由两个不同的任务构成:编制程序,把openflow交换机接收到的分组广播到所有的端口。3、 实验器材l 盛科V330 openflow交换机一台l 普通交换机一台台l 安装有winshark的普通计算机3台,一台作为控制器,两台作为测试终端。4、 实验内容和步骤1) 连接网络拓扑网络连接如下图所示。
17、Openflow交换机的控制端口的地址设为192.168.1.233,Openflow交换机控制端口和一个数据端口连接到内网交换机。RYU控制器连接到内网交换机。两个安装有winshark的计算机终端连接到openflow交换机。验证winshark能够实现正确的分组侦听。数据端口2) 编写广播程序使用文本编辑器,输入如下程序,把这个文件保存为l2.py。/* 引入控制器提供的功能*/from ryu.base import app_managerfrom ryu.controller import ofp_eventfrom ryu.controller.handler import MAI
18、N_DISPATCHERfrom ryu.controller.handler import set_ev_cls/* 建立一个广播交换机的类 */class L2Switch(app_manager.RyuApp): def _init_(self, *args, *kwargs): super(L2Switch, self)._init_(*args, *kwargs)set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)/* 交换机接收到一个分组的处理函数 */ def packet_in_handler(self, ev): ms
19、g = ev.msg /* 获取接收的分组 */ dp = msg.datapath /* 获取接收的分组的数据通路 */ ofp = dp.ofproto /* 获取接收到的分组的协议 */ ofp_parser = dp.ofproto_parser /* 解析接收的分组的协议 */ actions = ofp_parser.OFPActionOutput(ofp.OFPP_FLOOD) /* 定义接收的分组的处理动作为广播 */ out = ofp_parser.OFPPacketOut( datapath=dp, buffer_id=msg.buffer_id, in_port=msg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sdn 实验 试验 报告 讲演 呈文
限制150内