openflow

Flow based routing and openflow

元气小坏坏 提交于 2019-12-20 09:25:55
问题 This may not be the typical stackoverflow question. A colleague of mine has been speculating that flow-based routing is going to be the next big thing in networking. Openflow provides the technology to use low cost switches in large application, IT data-centers, etc; replacing Cisco, HP, etc switch and routers. The theory is that you can create a hierarchy these openflow switches with simple configuration, eg. no spanning tree. Open flow will route each flow to the appropriate switch/switch

Automatic add flow to ovs switch that connected to docker hosts

若如初见. 提交于 2019-12-10 11:42:27
问题 I'm working on creating SDN topology with OVS and docker containers as a host. my sample topology is: one ovs switch and 2 hosts(docker container) connected to it. HOST1 (container1) <----> OVS <----> HOST2 (container2) first i start my opendaylight controller and connect my ovs switch to it by " ovs-vsctl set-controller s1 tcp:ip:port " after that i run 2 docker container with " docker run -dit --net=none --name host1 ubuntu:16.04 /bin/bash " and then i used " ovs-docker " command to connect

SDN课程阅读作业(2)

怎甘沉沦 提交于 2019-12-09 09:40:48
1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 分为的阶段 在过去20年中可编程网络的发展可以分为三个阶段,第一个阶段是主动网络(从20世纪90年代中期到21世纪初),它在网络中引入了可编程功能,以实现更大的创新;第二个阶段是控制和数据平面分离(从2001年到2007年左右),开发了控制和数据平面之间的开放接口;以及第三个阶段的OpenFlow API和网络操作系统(2007年至2010年左右),代表了广泛采用开放接口的第一个实例,并开发了使控制数据平面分离可扩展且实用的方法。 主要贡献 - 主动网络阶段 对主动网络的研究开创了可编程网络的概念,降低l了网络创新的障碍 SDN的最初动机通常引用了生产网络难以创新和提高可编程性的观点,其早期愿景大多集中在控制平面可编程性上,而主动网络则更多地集中在数据平面可编程性上。 网络可虚拟化,以及基于数据包头对软件程序进行多路分解的能力 主动网络产生了一个架构框架,描述了这样一个平台的组件。这个平台的关键组件是一个管理共享资源的共享节点操作系统(NodeOS)和一组执行环境(EEs),每个环境定义一个用于数据包操作的虚拟机,以及一组在给定EE内工作以提供端到端服务的活动应用程序(AAs)。 为middlebox编排提供统一架构的构想 尽管这一设想可能没有直接影响到最近关于NFV的工作

How to collect logs such as RTT and Avg RTT on Mininet?

ぃ、小莉子 提交于 2019-12-08 15:33:37
问题 Can anybody please guide me on how we can get logs for RTT and Avg RTT on Mininet while using custom topology code provided in examples. Hoping for your response . 回答1: To measure RTT You may refer to this research paper . The implementation is here for the above paper. Though I could find another paper, but i think this one would not give quite an accurate result. (Clock synchronization problems). Anyways You can have a look for motivation. 来源: https://stackoverflow.com/questions/48242461

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":

Linux运维工程师资源汇总---OpenStack专题

只谈情不闲聊 提交于 2019-12-07 02:13:55
OpenStack专题(已更新12.19) http://dwz.cn/yZdBi openstack网络架构(nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点非常庞杂,包括bridge、vlan、gre、vxlan、ovs、openflow、sdn、iptables等,当然这里不会做具体技术介绍,概述技术,主要将其与openstack的结合点做详细分析。 nova-network网络架构 在nova-network中,其网络模型包括flat、dhcp flat、vlan,用到的技术主要有bridge、vlan, dhcp flat多网络节点架构图如下所示: 优点 :结构简单,稳定 缺点 :所有租户都在一个水平面上,租户之间没有隔离,由于所有租户都在一个子网内,当大规模部署后,其广播风暴将会是不小的负面因素,至于这种模型其vm的上限,笔者还没有条件测试。 vlan架构如下所示 : 为租户创建独占的 bridge 创建 vlan 接口 vlan100 ,依据 802.1q 协议打 vlan id Dnsmasq 监听网桥网关,负责 fixed ip 的分配 switch port 设定为 chunk mode eth0 负责 vm 之间的数据通信, eth1 负责外网访问 vlan模型: 优点 :租户有隔离 缺点

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上机第5次作业

删除回忆录丶 提交于 2019-12-06 10:55:27
1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 可以将收到的数据包转发给所有端口 控制器设定交换机支持什么版本的OpenFlow? OpenFlow v1.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'已添加到L2Switch类。当Ryu收到OpenFlow packet_in消息时,将调用此方法。诀窍是“ set_ev_cls”装饰器

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