openflow实验

文章目录

实验名称

实验目的及要求

实验内容

一、Mininet的基本操作应用

二、OpenFlow协议通信流程解析

实验步骤

一、Mininet基本操作应用实验

二、OpenFlow协议通信流程解析实验

实验总结

实验名称

SDN环境使用及OpenFLow协议流程分析实验

实验目的及要求

1.熟悉SDN环境

2. 使用抓包工具分析OpenFlow协议的基本流程

实验内容

一、Mininet的基本操作应用

包含创建网络、查看网络组成部分(交换机、主机、控制器)、查看终端(主机、控制器)信息、断开/开启网络链路、查看交换机的信息(流表项)、发起并查看ICMP会话过程、退出并清除mininet信息。

二、OpenFlow协议通信流程解析

包含建立连接(hello消息、feature消息)、维护连接(echo消息)、交换机上报报文(packet-in消息)、控制器在交换机上添加流表项(configuration消息)

实验步骤

一、Mininet基本操作应用实验

按如下步骤进行

1.1 使用Mininet创建基本拓扑

(1)打开命令行终端(右键或使用ctrl+alt+t快捷键),运行命令“sudo mn”,输入密码,创建一个包含一个控制器、一个交换机、两个主机的简单拓扑;

(2)输入命令“help”,查看帮助列表。

1.2 查看网络组成部分

(1)输入命令“net”查看网络的组成部分;

(2)输入命令“nodes”查看网络的组成部分。

1.3 打开终端(主机、控制器),查看终端信息

(1)输入命令“xterm h1”打开主机;

Mininet>xterm h1

(2)输入“ifconfig”查看主机的IP信息;

(3)输入“arp -a”查看主机的ARP信息。

1.4 发起并查看ICMP会话过程

(1)打开wireshark(命令行终端输入命令“sudo wireshark”,输入密码),抓取s1上的端口;

(2)在mininet下输入命令“h1 ping h2”;

(3)通过wireshark查看ICMP会话过程;

(4)在终端h1上输入“arp -a”查看主机的ARP信息,对比与1.3中的ARP信息的不同。

对比1.3中的arp信息,1.4中添加了一项arp信息,包括了h1的IP地址和MAC地址信息。

1.5 断开/开启网络链路

(1)输入命令“link s1 h2 down”断开s1和h2之间的链路;

Mininet> link s1 h2 down

(2)在mininet下输入命令“h1 ping h2”;

(3)查看会话是否能正常通信;

丢包率为100%,故会话不能正常通信

(4)输入命令“link s1 h2 up”开启s1和h2之间的链路;

(5)在mininet下输入命令“h1 ping h2”;

(6)查看会话是否能正常通信;

ICMP报文能正常接收,故会话能正常通信

(7)输入命令“EOF”或者使用快捷键“ctrl+D”退出mininet;

(8)输入命令“mn -c”清除mininet配置信息。

1.6 查看交换机流表项信息

(1)运行命令“sudo mn --topo linear,2”创建一个包含一个控制器、两个交换机、两个主机的简单拓扑;

(2)输入命令“xterm s1”打开交换机s1,输入“ovs-ofctl dump-flows s1”查看交换机s1上的流表项信息;

(3)输入命令“xterm s2”打开交换机s2,输入“ovs-ofctl dump-flows s2”查看交换机s2上的流表项信息;

(4)在mininet下输入命令“h1 ping h2”;

(5)输入“ovs-ofctl dump-flows s1”查看交换机s1上的流表项信息;

(6)输入命令“xterm s2”打开交换机s2,输入“ovs-ofctl dump-flows s2”查看交换机s2上的流表项信息;

(7)对比两次查看流表项结果。(以一条流表项为例,流表项分析—分组头域、计数器、动作表、优先级、超时时间;为什么有四条流表项;分析为什么第一个ICMP延迟长)

①以上图的流表项为例,cookie值为0x0,持续时间为23.025s,流表号为0,匹配报文数量为1,字节数为42,软超时时间为60,优先级为65535,入端口为2,执行动作为从1端口转发。

②openflow1.0协议中,每个交换机或控制器有且仅有一张流表

③第一个ICMP延时长是因为第一次ping的时候遇到DNS反向解析问题,

若在ping后加上-n,关闭DNS解析,延迟相对减少。

二、OpenFlow协议通信流程解析实验

按如下步骤进行。

2.1 打开wireshark(命令行终端输入命令“wireshark”),抓取所有端口(any);

2.2 使用Mininet创建基本拓扑

打开命令行终端(右键或使用ctrl+alt+t快捷键),运行命令“sudo mn”创建一个包含一个控制器、一个交换机、两个主机的简单拓扑。

2.3 查看wireshark中抓取的报文

(1)查看hello消息、feature消息,分析上述两个消息的内容及作用。

hello消息仅包括OpenFlow头,其包括了openflow协议版本号、消息类型、长度和事务ID。作用是控制器和交换机通过hello消息建立安全通道。

 

Features_Request消息仅包含OpenFlow头,Features_Reply消息包含了数据路径、容量和动作信息即交换机的特性信息。

在建立传输安全会话时,控制器主动向交换机发送Features_Request消息,请求交换机的特性信息,交换机通过Features_Reply消息回复所支持的功能特性

(2)查看echo消息,分析上述消息的内容及作用。

echo消息分为echo_request消息和echo_reply消息,由OpenFlow头组成。通过发送Echo请求消息来确认二者之间是否连接、检测通信延迟、测量通信带宽等。接收echo请求消息的一方会向对方返回echo响应消息。

2.4 在mininet下输入命令“h1 ping h2”

2.5查看wireshark中抓取的报文

(1)查看packet-in、packet-out消息,分析上述消息的内容及作用。

packet-in消息包括了字段Buffer Id,表示OpenFlow交换机中保存的数据包的缓存id;Total length,表示帧的长度;In port,表示接受帧的端口;Reason,表示发送packet-in消息的原因(图示的原因是没有匹配的流表项);Pad,用于调整对齐的填充字段;还包括了封装的以太网帧和ARP协议。

作用是将到达OpenFlow交换机的数据包上交OpenFlow控制器处理。

packet-out消息由缓存ID Buffer Id、输入端口In port、动作信息长度Action length、输出端口Output port等字段组成。

作用是将OpenFlow控制器建立的数据包发送至OpenFlow交换机。

(2)查看flow-mod消息,分析上述消息的内容及作用。

flow-mod消息由OpenFlow头部、12元组的掩码位Wildcards、12元组(入端口In port、源地址、目的地址、源端口、目的端口、生存时间等)字段组成。

作用:控制器通过Flow-mod消息增删交换机的流表项

实验总结

通过此次实验了解实验环境并掌握一些基本命令,知道如何使用mininet和wireshark,了解openflow协议通信的流程。

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值