sdn控制器

2019 SDN上机第5次作业

橙三吉。 提交于 2019-12-05 20:18:24
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1)描述官方教程实现了一个什么样的交换机功能? 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 2)控制器设定交换机支持什么版本的OpenFlow? OpenFlow1.0 3)控制器设定了交换机如何处理数据包? 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 补充的四处地方及完整代码: # TODO define OpenFlow 1.0 version for the switch OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] # TODO send modified message out datapath.send_msg(mod) # TODO define the action for output actions = [datapath.ofproto_parser.OFPActionOutput(out_port)] # TODO define the OpenFlow Packet Out out = datapath.ofproto_parser.OFPPacketOut(datapath=datapath,

2019 SDN上机第5次作业

二次信任 提交于 2019-12-05 20:18:22
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的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) 类中添加了一个新方法“packet_in_handler”。当Ryu接收到消息中的OpenFlow数据包时调用此函数。诀窍是“set-ev-cls”装饰器

2019 SDN上机第5次作业

两盒软妹~` 提交于 2019-12-05 20:16:43
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解 - 描述官方教程实现了一个什么样的交换机功能? 实现了让交换机在各端口发送它接收到的数据包的功能 - 控制器设定交换机支持什么版本的OpenFlow? 支持OpenFlow v1.0 - 控制器设定了交换机如何处理数据包? 首先通过以下这个语句设置想要向交换机协商的OpenFlow版本号 OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION] 给出官方的代码,这一部分是实现将接收到的数据包发送到所有端口的功能。 super(L2Switch, self).__init__(*args, **kwargs) @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

2019 SDN上机第5次作业

牧云@^-^@ 提交于 2019-12-05 20:16:38
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 将接收到的数据包发送到所有端口 控制器设定交换机支持什么版本的OpenFlow? openflow 1.0 控制器设定了交换机如何处理数据包? @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)装饰器告诉Ryu何时应调用装饰的函数 第一个参数指示应调用此函数的事件类型 第二个参数指示开关的状态 packet_in_handler函数 ev.msg是表示packet_in数据结构的对象。 msg.dp是代表数据路径(开关)的对象。 dp.ofproto和dp.ofproto_parser是代表Ryu和交换机协商的OpenFlow协议的对象。 OFPActionOutput类与packet_out消息一起使用,以指定要从中发送数据包的交换机端口。该应用程序使用OFPP_FLOOD标志来指示应在所有端口上发送数据包。 OFPPacketOut类用于构建packet_out消息。 如果使用OpenFlow消息类对象调用Datapath类的send_msg方法,则Ryu会生成联机数据格式并将其发送到交换机。 2.根据官方教程和提供的示例代码(SimpleSwitch.py)

SDN课程阅读作业(2)

穿精又带淫゛_ 提交于 2019-12-05 20:15:18
2.网络虚拟化与SDN的关系? SDN作为网络虚拟化的一种支持技术 云计算使网络虚拟化变得突出,因为云提供商需要一种方式,允许多个客户(或“租户”)共享同一网络基础设施。Nicira的网络虚拟化平台提供了这种抽象,而不需要底层网络硬件的任何支持。解决方案是使用覆盖网络为每个租户提供连接其所有虚拟机的单个交换机的抽象。然而,与先前在覆盖网络上的工作相比,每个覆盖节点实际上是物理网络的一个扩展——一个软件交换机(如Open vSwitch[57,63]),它封装了发送到其他服务器上运行的虚拟机的流量。逻辑集中式控制器在这些虚拟交换机中安装规则,以控制如何封装数据包,并在虚拟机移动到新位置时更新这些规则。 用于评估和测试SDN的网络虚拟化 将SDN控制应用程序与底层数据平面分离的能力使得在将SDN控制应用程序部署到操作网络之前,可以在虚拟环境中测试和评估SDN控制应用程序。Mininet[41,48]使用基于进程的虚拟化在同一物理(或虚拟)机上运行多个虚拟OpenFlow交换机、终端主机和SDN控制器,每个控制器都作为单个进程。使用基于进程的虚拟化允许Mininet模拟一个网络,在一台机器上有数百个主机和交换机。在这样的环境中,研究人员或网络运营商可以开发控制逻辑,并在生产数据平面的全面仿真上轻松地对其进行测试;一旦对控制平面进行了评估、测试和调试,就可以将其部署到实际的生产网络上。

2019 SDN上级第五次作业

烂漫一生 提交于 2019-12-05 20:13:26
1.浏览 RYU官网 学习RYU控制器的安装和 RYU开发入门教程 ,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 答:官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? 答:控制器设定交换机支持OpenFlow 1.0 控制器设定了交换机如何处理数据包? 答:'''@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)''' 答:当Ryu收到OpenFlow交换机送来的packet_in消息时调用新增方法packet_in_handler,set_ev_cls的第一个参数也声明了 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 代码链接 如下是补充完整代码: 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

2019 SDN上机第5次作业

孤者浪人 提交于 2019-12-05 20:11:19
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? ​ 官方教程实现了一个将接收到的数据包发送到所有端口的交换机功能 控制器设定交换机支持什么版本的OpenFlow? from ryu.ofproto import ofproto_v1_0 ​ OpenFlow 1.0 控制器设定了交换机如何处理数据包? ​ 接收包并广播包 @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER) #当Ryu收到OpenFlow交换机送来的packet_in消息时调用,set_ev_cls的第一个参数也声明了。 #set_ev_cls的第二个参数MAIN_DISPATCHER意味着当Ryu和交换机握手过程(即hello, features request/reply, Set Config等)完毕,才会调用packet_in_handler。 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

2019 SDN上机第5次作业

青春壹個敷衍的年華 提交于 2019-12-05 20:09:14
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 控制器设定交换机支持什么版本的OpenFlow? 控制器设定了交换机如何处理数据包? 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 代码链接 3.在mininet创建一个最简拓扑,并连接RYU控制器 4.验证自学习交换机的功能,提交分析过程和验证结果 例如: 5.写下你的实验体会 来源: https://www.cnblogs.com/ruifeng1/p/11944532.html

2019 SDN上机第5次作业

给你一囗甜甜゛ 提交于 2019-12-05 20:05:09
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 控制器设定交换机支持什么版本的OpenFlow? 控制器设定了交换机如何处理数据包? 来源: https://www.cnblogs.com/fzuzh/p/11944410.html

2019 SDN上机第5次作业

≡放荡痞女 提交于 2019-12-05 19:36:16
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 安装 描述官方教程实现了一个什么样的交换机功能? 控制器设定交换机支持什么版本的OpenFlow? 控制器设定了交换机如何处理数据包? 2.根据官方教程和提供的示例代码(SimpleSwitch.py),将具有自学习功能的交换机代码(SelfLearning.py)补充完整 代码链接 3.在mininet创建一个最简拓扑,并连接RYU控制器 4.验证自学习交换机的功能,提交分析过程和验证结果 例如: 5.写下你的实验体会 来源: https://www.cnblogs.com/wawu/p/11941844.html