ryu

2019 SDN上机第6次作业

扶醉桌前 提交于 2019-12-10 18:52:36
2019 SDN上机第6次作业 1.实验拓扑 实验拓扑 要求:使用Python脚本完成拓扑搭建,并连接ryu控制器 (1)python拓扑代码 from mininet.topo import Topo class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) # add hosts and switches h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') # add links self.addLink(h1, s1, 1, 1) self.addLink(h2, s1, 1, 2) self.addLink(h3, s1, 1, 3) self.addLink(s1, s2, 4, 4) self.addLink(h4, s2, 1, 1) self.addLink(h5, s2, 1, 2) self.addLink(h6, s2,

2019 SDN上机第6次作业

对着背影说爱祢 提交于 2019-12-09 00:09:25
1.实验拓扑 实验拓扑 见2019 SDN上机第2次作业 要求 使用Python脚本完成拓扑搭建,并连接ryu控制器。 2.使用Ryu的REST API下发流表实现和第2次实验同样的VLAN 参考资料 REST API:可以在线学习中国大学MOOC 《软件定义网络》第六讲 北向接口 Ryu控制器的API文档:ryu.app.ofctl_rest Ryu的拓扑展示 助教博客:基于RYU restful api实现的VLAN网络虚拟化 要求 编写脚本,一键执行下发流表。 3.对比两种方法,写出你的实验体会 来源: https://www.cnblogs.com/yxyolo/p/12008738.html

Adding an IP based flow entry using RYU REST API

时光总嘲笑我的痴心妄想 提交于 2019-12-08 12:59:55
问题 I am trying to add a flow entry using RYU OFCTL REST based api (ryu.readthedocs.io/en/latest/app/ofctl_rest.html) for adding flows to an OVS Switch running on mininet RYU is running ofctl_rest and simple_switch these two applications I am using a simple topology with one switch 3 hosts ... h1 = 10.0.0.1 h2 = 10.0.0.2 h3 = 10.0.0.3 How do i add a flow entry to block all incoming packets from host h1. I used a json object data={ "dpid": 1, "cookie": 2802, "priority": 3000, "match":{ "nw_src":

2019 SDN上机第6次作业

梦想的初衷 提交于 2019-12-07 22:43:27
2019 SDN上机第6次作业 1.实验拓扑 实验拓扑 见 2019 SDN上机第2次作业 要求 使用Python脚本完成拓扑搭建,并连接ryu控制器。 2.使用Ryu的REST API下发流表实现和第2次实验同样的VLAN 参考资料 REST API:可以在线学习中国大学MOOC 《软件定义网络》第六讲 北向接口 Ryu控制器的API文档:ryu.app.ofctl_rest Ryu的拓扑展示 助教博客:基于RYU restful api实现的VLAN网络虚拟化 要求 编写脚本,一键执行下发流表。 3.对比两种方法,写出你的实验体会 1.实验拓扑 python 脚本如下 from mininet.topo import Topo class MyTopo(Topo): def __init__(self): # initilaize topology Topo.__init__(self) # add hosts and switches h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') h6 = self.addHost('h6') s1 = self.addSwitch('s1') s2

Ryu, openflow v1.5, OFPET_BAD_ACTION, OFPBAC_BAD_OUT_PORT errors

萝らか妹 提交于 2019-12-06 23:09:34
When I run simple_switch_14.py application in mininet environment, the ping of hosts works just fine. Then I change the following strings of code: 1) "from ryu.ofproto import ofproto_v1_4" to "from ryu.ofproto import ofproto_v1_5" 2) "OFP_VERSIONS = [ofproto_v1_4.OFP_VERSION]" to "OFP_VERSIONS = [ofproto_v1_5.OFP_VERSION]" 3) "out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id, in_port=in_port, actions=actions, data=data)" to "out = parser.OFPPacketOut(datapath=datapath, buffer_id=msg.buffer_id, match=parser.OFPMatch(in_port=in_port), actions=actions, data=data)" it means

2019 SDN上机第6次作业

感情迁移 提交于 2019-12-06 13:03:44
1.作业要求: 实验拓扑 1.实验拓扑见 2019 SDN上机第2次作业 ; 2.要求:使用Python脚本完成拓扑搭建,并连接ryu控制器; 使用Ryu的REST API下发流表实现和第2次实验同样的VLAN 1.参考资料:REST API:可以在线学习中国大学MOOC 《软件定义网络》第六讲 北向接口 Ryu控制器的API文档:ryu.app.ofctl_rest Ryu的拓扑展示 助教博客:基于RYU restful api实现的VLAN网络虚拟化 2.要求:完成自动化脚本编写,一键下发流表; 对比两种方法,写出你的实验体会 作业博客链接: https://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10134 2.具体操作步骤与截图说明: 实验环境:VMware Workstation Pro14.1、ubuntu-16.04 (1)实验拓扑: 给定的实验拓扑图如下所示: 编写Python脚本x.py,完成拓扑搭建,实验代码如下所示: from mininet.topo import Topo class Topo2( Topo ): def __init__( self ): # Initialize topology Topo.__init__( self ) # add switches s1 = self

2019 SDN上机第5次作业

只愿长相守 提交于 2019-12-06 10:08:20
2019 SDN上机第5次作业 浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交对于教程代码的理解: 描述官方教程实现了一个什么样的交换机功能? 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? 控制器设定交换机支持OpenFlow 1.0 控制器设定了交换机如何处理数据包? 首先通过以下这个语句设置想要向交换机协商的OpenFlow版本号 OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] 给出官方的代码,这一部分是实现将接收到的数据包发送到所有端口的功能。 @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) def packet_in_handler(self, ev): msg = 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.in_port,

2019 SDN上机第5次作业

白昼怎懂夜的黑 提交于 2019-12-06 09:04:45
2019 SDN上机第5次作业 1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? OpenFlow 1.0 控制器设定了交换机如何处理数据包? 下面我们通过看代码和注释来说明 主要完成将接收到的数据包发送到所有端口的功能。 from ryu.base import app_manager from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER from ryu.controller.handler import set_ev_cls from ryu.ofproto import ofproto_v1_0 class L2Switch(app_manager.RyuApp): OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] def __init__(self, *args, **kwargs): super(L2Switch, self).__init__(*args, **kwargs) @set_ev_cls(ofp_event

2019 SDN上机第5次作业

好久不见. 提交于 2019-12-06 08:58:56
2019 SDN上机第5次作业 1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 该应用程序使用OFPP_FLOOD标志来指示应在所有端口上发送数据包。 控制器设定交换机支持什么版本的OpenFlow? OpenFlow 1.0 控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) def packet_in_handler(self, ev): msg = 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.in_port, actions=actions) dp.send_msg(out) 当Ryu收到OpenFlow packet_in消息时,将产生事件(调用"packet_in_hander"方法); ev

2019 SDN上机第5次作业

走远了吗. 提交于 2019-12-06 08:41:20
本次作业将进行RYU控制器相关实践,了解RYU控制器开发方法。 实验内容 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.描述官方教程实现了一个什么样的交换机功能? 实现了添加一些功能使交换机能够将接收到的数据包转发到所有端口的交换机功能. 2.控制器设定交换机支持什么版本的OpenFlow? 控制器设定交换机支持OpenFlow 1.0 3.控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) //表明当Ryu收到OpenFlow packet_in消息时,将产生事件(调用“packet_in_handler”方法) def packet_in_handler(self, ev): msg = ev.msg//ev.msg是表示packet_in数据结构的对象。 dp = msg.datapath//msg.dp是代表数据路径(开关)的对象。 ofp = dp.ofproto ofp_parser = dp.ofproto_parser //dp.ofproto和dp.ofproto_parser是代表Ryu和交换机协商的OpenFlow协议的对象。 actions = [ofp_parser.OFPActionOutput