openflow

在RYU中实现交换机的功能

眉间皱痕 提交于 2019-12-05 02:38:23
首先源码,解析部分如下,同时可以参考RYU_BOOK上的解释说明 from ryu.base import app_manager from ryu.controller import ofp_event from ryu.controller.handler import CONFIG_DISPATCHER, MAIN_DISPATCHER from ryu.controller.handler import set_ev_cls from ryu.ofproto import ofproto_v1_3 from ryu.lib.packet import packet from ryu.lib.packet import ethernet class SimpleSwitch13(app_manager.RyuApp): OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]//OpenFlow1.3版本 def __init__(self, *args, **kwargs): super(SimpleSwitch13, self).__init__(*args, **kwargs) self.mac_to_port = {}\\MAC位址表,用于存放MAC地址和端口之间的映射 \\@set_ev_cls表示事件修饰符

2019 SDN阅读作业

断了今生、忘了曾经 提交于 2019-12-04 23:35:12
参考文献 软件定义网络(SDN)研究进展 1.为什么需要SDN?SDN特点? 为什么需要SDN 随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议.同时,互联网流量的快速增长(预计到 2018 年,全球流量将达到 1.6×1021 字节),用户对流量的需求不断扩大,各种新型服务不断出现,增加了网络运维成本. 特点 将数据与控制相分离 一致性 可用性 容错性 解放了手工操作 减少了配置错误 易于统一快速部署 2. SDN的基本思想? 利用分层的思想,SDN 将数据与控制相分离.在控制层,包括具有逻辑中心化和可编程的控制器,可掌握全局网络信息,方便运营商和科研人员管理配置网络和部署新协议等.在数据层,包括哑的(dumb)交换机(与传统的二 层交换机不同,专指用于转发数据的设备).交换机仅提供简单的数据转发功能,可以快速处理匹配的数据包,适 应流量日益增长的需求.两层之间采用开放的统一接口(如 OpenFlow[4]等)进行交互 3.ONF全称是什么,是什么组织? 开放网络基金会(Open Networking Foundation) 专门负责订制SDN接口标准的著名组织,该组织制订的 OpenFlow 协议业已成为 SDN 接口的 主流标准,许多运营商和生产厂商根据该标准进行研发. 4.文中提到了哪些控制器

sdn第三次作业

醉酒当歌 提交于 2019-12-04 23:31:21
1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文(hello, features_request, features_reply, set_config, packet_in, packet_out等)进行分析,对照wireshark截图写出你的分析内容。 .hello 控制器6633端口(我最高能支持OpenFlow 1.0) ---> 交换机57984端口 交换机57984端口(我最高能支持OpenFlow 1.3)--- 控制器6633端口 于是双方建立连接,并使用OpenFlow 1.0 Features Request 控制器6633端口(我需要你的特征信息) ---> 交换机57984端口 Set Config 控制器6633端口(我需要你的特征信息) ---> 交换机57986端口 Features Reply 交换机57986端口(这是我的特征信息,请查收)--- 控制器6633端口 Features 消息包括 OpenFlow Header 和 Features Reply Message 对照Features Reply

2019 SDN上机第3次作业

蹲街弑〆低调 提交于 2019-12-04 22:03:52
1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 用可视化工具建立拓扑 2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文(hello, features_request, features_reply, set_config, packet_in, packet_out等)进行分析 hello 控制器与交互及互相发送Hello消息。Hello消息中只包含有OpenFlow Header,其中的type字段为OFPT_HELLO,version字段为发送方所支持的最高版本OpenFlow。如果双方OpenFlow版本可以兼容,则 OpenFlow 连接建立成功。由于有两个交换机所以有四个hello信息。 控制器6633端口(最高能支持OpenFlow 1.0) 交换机48878端口 交换机48878端口(最高能支持OpenFlow 1.3) 控制器6633端口 所以双方建立网络连接使用OpenFlow 1.0 features Features 消息包括 OpenFlow Header 和 Features Reply Message Features Request 控制器向交换机发送 Features

2019 SDN上机第3次作业

浪尽此生 提交于 2019-12-04 22:02:12
1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文进行分析,对照wireshark截图写出你的分析内容。 . . . hello消息 控制器与交换机建立连接时由其中某一方发起Hello消息,双方协调协议版本号。Hello消息只有openflow包头,没有主体部分。头部结构如下: /* Header on all OpenFlow packets. */ struct ofp_header { uint8_t version; /*版本*/ uint8_t type; /*消息类型*/ uint16_t length; /*消息总长度,包含头部*/ uint32_t xid; /*事件ID,同一件事件的ID号一致如feature_request和对应的feature_reply就使用同一个Transaction id,但是两个hello消息的Transaction id并不相同,不过据实验结果看两个id一般是两个相邻的数字。*/ }; OFP_ASSERT(sizeof(struct ofp_header) == 8); 抓包结果如下:

2019 SDN阅读作业

随声附和 提交于 2019-12-04 22:01:25
1为什么需要SDN?SDN特点? 为什么需要SDN? 网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议.同时,互联网流量的快速增长,用户对流量的需求不断扩大,各种新型服务不断出现,增加了网络运维成本,SDN有望解决这些问题,所以应运而生; SDN特点 1、控制与转发分离。转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制面上的控制应用所控制。控制平面与转发平面之间的开放接口: 2、SDN为控制平面提供开放可编程接口。通过这种方式,控制应用只需要关注自身逻辑,而不需要关注底层更多的实现细节; 3、逻辑上的集中控制。 2.SDN的基本思想? 利用分层的思想,SDN将数据与控制相分离。在控制层,包括具有逻辑中心化和可编程的控制器,可掌握全局网络信息,方便运营商和科研人员管理配置网络和部署新协议等。在数据层,包括哑的(dumb)交换机(与传统的二层交换机不同,专指用于转发数据的设备)。两层之间采用开放的统一接口(如OpenFlow[4]等)进行交互。 3. ONF全称是什么,是什么组织? ONF全称:开放网络基金会(Open Networking Foundation) 是什么组织:该组织是专门负责订制SDN接口标准,加速开放SDN的部署,推广开放SDN和OpenFlow技术及标准 4

2019 SDN上机第三次作业

限于喜欢 提交于 2019-12-04 21:29:58
2019 SDN上机第三次作业 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 从命令行启动mininet: 构建网络拓扑: 检测两台电脑连通性: 实验二 利用Wireshark工具,捕获通信数据,对OpenFlow协议类型的各类报文(hello, features_request, features_reply, set_config, packet_in, packet_out等)进行分析,对照wireshark截图写出你的分析内容。 hello报文: OpenFlow的1.0版本 OpenFlow的1.3版本 Features Request报文: 1.0版本OpenFlow进行通信 Set Config报文: Features Reply报文: Packet_in报文: Packet_out报文: h2 ping h1 hello报文: Flow_Mod报文: 1.3的openflow来进行通信 来源: https://www.cnblogs.com/zebsn/p/11884993.html

2019 SDN上机第3次作业

守給你的承諾、 提交于 2019-12-04 21:29:53
1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 网络拓扑图: h1和h2 IP地址设置: 网络支持1.0 1.1 1.2 1.3协议: h1与h2网络连通性: 2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文(hello, features_request, features_reply, set_config, packet_in, packet_out等)进行分析 hello 分析:控制器6633端口(最高支持OpenFlow 1.0)发送到交换机46266端口 分析:交换机46266端口(最高支持OpenFlow 1.3)发送到交换机6633端口 最终决定采用1.0协议 features_request 分析:控制器6633向交换机46266请求特征信息 set_config 分析:控制器6633发送给交换机46266 flag和max bytes of packet进行配置 features_reply packet_in packet_out flow_mod (ps:中间重新弄了一下,所以导致端口不太一样) 接下来是另一台交换机(端口46288)与控制器(端口6633)的交互过程 h1

SDN阅读作业

爷,独闯天下 提交于 2019-12-04 21:28:47
2019 SDN阅读作业 1.为什么需要SDN?SDN特点? ​ 传统网络的层次结构是互联网取得巨大成功的关键,随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议。同时,随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议。同时,互联网流量的快速增长,用户对流量的需求不断扩大,各种新型服务不断出现,增加了网络运维成本。 ​ 特点: 转控分离、开放接口、集中控制。SDN利用分层的思想,将数据与控制相分离,能够有效降低设备负载,协助网络运营商更好地控制基础设施,降低整体运营成本,成为最具有前途的网络技术之一。 2.SDN的基本思想? 利用分层的思想,SDN将数据与控制相分离,在控制层,包括具有逻辑中心化和可编程的控制器,可掌握全局网络信息,方便运营商和科研人员管理配置网络和部署新协议等.在数据层,包括哑的(dumb)交换机(与传统的二层交换机不同,专指用于转发数据的设备).交换机仅提供简单的数据转发功能,可以快速处理匹配的数据包,适应流量日益增长的需求.两层之间采用开放的统一接口(如OpenFlow[4]等)进行交互.控制器通过标准接口向交换机下发统一标准规则,交换机仅需按照这些规则执行相应的动作即可. 3.ONF全称是什么

2019 SDN上机第3次作业

十年热恋 提交于 2019-12-04 21:26:32
1. 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 (1)创建拓扑: (2)关于preference的设置: start CLI 支持OpenFlow 1.0 1.1 1.2 1.3 其他使用默认设置(Controller选择默认的openflow reference) (3)打开wireshark: 先打开wireshark以便之后不会错过报文 登陆wireshark sudo wireshark 选择“any”所有端口 (4)测试两台主机之间的网络连通性 在终端输入如下命令: h1 ping h2 2. 利用Wireshark工具,捕获拓扑中交换机与控制器之间的通信数据,对OpenFlow协议类型的各类报文进行分析,写出分析内容 在“openflow_v1” 或“openflow_v4” 中,选择我们想要的OpenFlow协议报文 (1)hello 在openflow_v1中,观察到控制器6633端口(我最高能支持OpenFlow 1.0) ---> 交换机59706端口 在openflow_v4中,观察到交换机59706端口(我最高能支持OpenFlow 1.3)---> 控制器6633端口 于是双方建立连接,并使用OpenFlow 1.0 (2