openflow pox操作命令
目录:
第1章OPENFLOW操作(match)
./pox.pyopenflow.of_01 --address=x.x.x.x –port=yy py
Import pox.openflow.libopenflow_01 as of
core.openflow.connections.keys()
core.openflow.connections[key].send(msg)
msg=of.ofp_flow_mod()
msg.priority=x
msg.match.in_port=y
msg.match.dl_src=EthAddr(“”)
msg.match.dl_dst=EthAddr(“”)
msg.match.dl_type=x
msg.match.dl_vlan=x
msg.match.dl_vlan_pcp=x
msg.match.nw_src= x
msg.match.nw_dst= x
msg.match.nw_proto=x
msg.match.nw_tos=x
msg.match.tp_src=x
msg.match.tp_dst=x
msg.idle_timeout=x
msg.hard_timeout=x
第2章OPENFLOW操作(action)
2.1说明:若规则无动作则默认为丢弃;规则中没有显示的设置出端口的需要在相应动作之后添加出端口。
msg.actions.append(of.ofp_action_output(port=x))
msg.actions.append(of.ofp_action_enqueue(port=x,queue_id=y))
msg.actions.append(of.ofp_action_dl_addr.set_dst(“mac”))
msg.actions.append(of.ofp_action_dl_addr.set_src(“mac”))
msg.actions.append(of.ofp_action_nw_tos(nw_tos=x))
msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=x))
msg.actions.append(of.ofp_action_vlan_pcp(vlan_pcp=x))
第3章OPENFLOW操作(examples)
add flow-匹配入端口,动作为出端口
add flow-匹配目的mac,动作为出端口
add flow-匹配以太类型,动作为出端口和队列
add flow-匹配源mac,动作为设置vlan并指定出端口
add flow-匹配入端口,动作为设置vlan、cos,并指定出端口
del flow
del flow-strict
说明:
环境windowsor linux
编译器:python2.7+
pox:pox-betta
第1章OPENFLOW操作(match)
./pox.py openflow.of_01--address=x.x.x.x –port=yy py
命令:./pox.pyopenflow.of_01 --address=x.x.x.x –port=yy py
使用指南:./pox.pyopenflow.of_01 --address=x.x.x.x –port=yy py。
root@long-Aspire-4733Z:/home/long/usr/pox#./pox.py openflow.of_01 --address=6.6.6.6 py
POX0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al.
INFO:core:POX0.1.0 (betta) is up.
Thisprogram comes with ABSOLUTELY NO WARRANTY. This program is freesoftware,
andyou are welcome to redistribute it under certain conditions.
Type'help(pox.license)' for details.
DCRS-6500-52X(config)#openflowmode
DCRS-6500-52X(config-openflow)#openflowtcp 6.6.6.6 6633
POX>INFO:openflow.of_01:[00-03-0f-27-5e-91 1] connected
Importpox.openflow.libopenflow_01 as of
命令:importpox.openflow.libopenflow_01 as of
使用指南:importpox.openflow.libopenflow_01 as of,导出核心模块,并命名为of
POX>import pox.openflow.libopenflow_01 as of
core.openflow.connections.keys()
命令:core.openflow.connections.keys()
使用指南:core.openflow.connections.keys(),获取key之后通过key发送msg
POX>core.openflow.connections.keys()
core.openflow.connections[key].send(msg)
命令:core.openflow.connections[key].send(msg)
使用指南:core.openflow.connections[key].send(msg),key为上一条命令获取的switch代号
POX>core.openflow.connections[key].send(msg)
msg=of.ofp_flow_mod()
参数:command:0为ADD(添加流),1为MODIFY,2为MODIFY_STRICT,3为DELETE(删除所有流规则),4为DELETE_STRICT(严格匹配掩码和优先级删除流规则)
使用指南:msg=of.ofp_flow_mod(),msg的消息类型为flowmod
msg.priority=x
使用指南:msg.priority=x,必须初始化priority,priority的有效范围1-5
msg.match.in_port=y
使用指南:msg.match.in_port=y,y为字段的值
msg.match.dl_src=EthAddr(“”)
命令:msg.match.dl_src=EthAddr(“”)
使用指南:msg.match.dl_src=EthAddr(“”)
POX>msg.match.dl_src=EthAddr(“00:00:00:00:00:11”)
msg.match.dl_dst=EthAddr(“”)
命令:msg.match.dl_dst=EthAddr(“”)
使用指南:msg.match.dl_dst=EthAddr(“”)
POX>msg.match.dl_dst=EthAddr(“00:00:00:00:00:11”)
msg.match.dl_type=x
msg.match.dl_vlan=x
msg.match.dl_vlan_pcp=x
msg.match.nw_src=
POX>msg.match.nw_src=“192.168.2.133/24”
说明:必须指定匹配的以太类型,ip的掩码指定可以以/的形式表示
msg.match.nw_dst=
POX>msg.match.nw_dst=“192.168.2.133/24”
说明:必须指定匹配的以太类型,ip的掩码指定可以以/的形式表示
msg.match.nw_proto=x
msg.match.nw_tos=x
msg.match.tp_src=x
说明:必须指定匹配的以太网类型,再匹配ip协议类型,最后匹配tcpport。
msg.match.tp_dst=x
说明:必须指定匹配的以太网类型,再匹配ip协议类型,最后匹配tcpport。
msg.idle_timeout=x
功能:在idle时间内,如果没有报文触发此动作,该条规则将删除
msg.hard_timeout=x
第2章OPENFLOW操作(action)
msg.actions.append(of.ofp_action_output(port=x))
命令:msg.actions.append(of.ofp_action_output(port=))
使用指南:msg.actions.append(of.ofp_action_output(port=))
POX>msg.actions.append(of.ofp_action_output(port=20))
msg.actions.append(of.ofp_action_output(port=x))
命令:msg.actions.append(of.ofp_action_output(port=))
使用指南:msg.actions.append(of.ofp_action_output(port=))
POX>msg.actions.append(of.ofp_action_output(port=all))
msg.actions.append(of.ofp_action_enqueue(port=x,queue_id=y))
命令:msg.actions.append(of.ofp_action_enqueue(port=x,queue_id=y))
使用指南:msg.actions.append(of.ofp_action_enqueue(port=x,enqueue_id=y))
POX>msg.actions.append(of.ofp_action_enqueue(port=13,queue_id=4))
msg.actions.append(of.ofp_action_dl_addr.set_dst(“mac”))
命令:msg.actions.append(of.ofp_action_dl_addr.set_dst(“”))
使用指南:msg.actions.append(of.ofp_action_dl_addr.set_dst(“11:11:11:11:11:11”))
POX>msg.actions.append(of.ofp_action_dl_addr.set_dst(“11:11:11:11:11:11”))
msg.actions.append(of.ofp_action_dl_addr.set_src(“mac”))
命令:msg.actions.append(of.ofp_action_dl_addr.set_src(“”))
使用指南:msg.actions.append(of.ofp_action_dl_addr.set_src(“00:03:11:11:11:11”))
POX>msg.actions.append(of.ofp_action_dl_addr.set_src(“00:03:11:11:11:11”))
msg.actions.append(of.ofp_action_nw_tos(nw_tos=x))
命令:msg.actions.append(of.ofp_action_nw_tos(nw_tos=))
使用指南:msg.actions.append(of.ofp_action_nw_tos(nw_tos=56))
POX>msg.actions.append(of.ofp_action_nw_tos(nw_tos=56))
msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=x))
命令:msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=))
使用指南:msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=3))
POX>msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=3))
msg.actions.append(of.ofp_action_vlan_pcp(vlan_pcp=x))
命令:msg.actions.append(of.ofp_action_vlan_pcp(vlan_pcp=))
使用指南:msg.actions.append(of.ofp_action_vlan_pcp(vlan_pcp=3))
POX>msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=3))
POX>msg.actions.append(of.ofp_action_vlan_pcp(vlan_pcp=4))
第3章OPENFLOW操作(examples)
add flow-匹配入端口,动作为出端口
POX>importpox.openflow.libopenflow_01 as of
POX>msg2.actions.append(of.ofp_action_output(port=194))
POX>core.openflow.connections[13136560386L].send(msg2)
add flow-匹配目的mac,动作为出端口
POX>importpox.openflow.libopenflow_01 as of
POX>msg2.match.dl_src=EthAddr("ff:ff:ff:ff:ff:ff")
POX>msg2.actions.append(of.ofp_action_output(port=194))
POX>core.openflow.connections[13136560386L].send(msg2)
addflow-匹配以太类型,动作为出端口和队列
POX>msg.actions.append(of.ofp_action_enqueue(queue_id=5,port=194))
POX>core.openflow.connections[13136560386L].send(msg)
addflow-匹配源mac,动作为设置vlan并指定出端口
POX>msg.match.dl_src=EthAddr(“00:03:0f:01:12:43”)
POX>msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=3))
POX>msg.actions.append(of.ofp_action_output(port=194))
POX>core.openflow.connections[13136560386L].send(msg)
addflow-匹配入端口,动作为设置vlan、cos,并指定出端口
POX>msg.actions.append(of.ofp_action_vlan_vid(vlan_vid=4))
POX>msg.actions.append(of.ofp_action_vlan_pcp(vlan_pcp=5))
POX>msg.actions.append(of.ofp_action_output(port=194))
POX>core.openflow.connections[13136560386L].send(msg)
del flow
POX>msg=of.ofp_flow_mod(command=3)
POX>core.openflow.connections[13136560386L].send(msg)
del flow-strict
POX>msg=of.ofp_flow_mod(command=4)
POX>core.openflow.connections[13136560386L].send(msg)
openflow pox操作命令相关推荐
- SDN 与 Mininet 概述
SDN 全名为(Software Defined Network)即软件定义网络,是现互联网中一种新型的网络创新架构,其核心技术 OpenFlow 通过网络设备控制面与数据面分离开来,从而实现网络流量 ...
- 网络技能大赛-云平台部分-CentOS部分13-[软件定义网络(详细)]
网络技能大赛-云平台部分-CentOS部分13-[软件定义网络(详细)] 2022年全国职业技能大赛网络系统管理赛项相较2021年再次做出改动,Linux部分从之前的Debian又换回了CentOS, ...
- pox 中 openflow.webservice 组建的学习与使用
Openflow的一个简单JSON-RPC-ish web service交互式接口,由of_service信息服务派生而来,依赖于webcore组件.可以使用HTTP POST方式发送JSON进行访 ...
- POX安装和部分配置
最近在学习OpenFlow,看网上看到很多关于POX的安装和部署教程,但是大部分都有点问题,于是就将自己全程的安装和部署过程记录下来了,现在发出来跟大家分享. 1 部署情况 在本文中设备使用的都是基于 ...
- ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总
一.设备OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...
- 一种基于openflow的虚拟化层软件flowvisor的API测试
注明:本文并不对openflow进行分析,本人也是略略知道这个概念,对flowvisor也只是对其API有所测试,更深的源码并未涉及,只是希望该文能对以后的flowvisor研究者提供些许帮助. 一: ...
- Openflow协议通信流程解读
前言 接触了这么久的SDN,Openflow协议前前后后也读过好多遍,但是一直没有时间总结一下自己的一些见解.现在有时间了,就写一写自己对Openflow协议通信流程的一些理解. SDN中Switch ...
- POX控制器的分析(二)
在上一篇具体讲述POX有哪些组件,以及各个组件的功能,这篇文章主要理解POX的启动以及组件是如何启动的,以及组件与事件的关系: 由上图知,of_01 主要是运行一个线程,该线程不断与交换机进行TCP连 ...
- POX学习笔记之POX拓扑发现原理分析
POX代码中与拓扑发现相关的模块主要是discovery.py文件和spanning_tree.py文件. 一.discovery.py文件 LLDPSender类解析 1. __init__函数 定 ...
- SDN and OpenFlow扫盲
第一部分: OpenFlow 白皮书解读, 来源: 白皮书: http://archive.openflow.org/documents/openflow-wp-latest.pdf spec: h ...
最新文章
- js添加菜单栏之后停留在那里
- mysql 替代 in_mysql用什么代替in
- Android防盗系统推荐
- y电容如何选型_开关电源中电容如何快速选型
- 【Vue2.0】—过滤器(七)
- 如何做相册_我是如何对2000张照片进行批量套版的
- web 请求 编码 引发的问题
- python中argsparse_Python中的argparse模块
- TextView属性android:ellipsize实现跑马灯效果
- LogBack 日志等级设置无效,原因竟然是因为这个?!
- 使用ajax实现文件上传功能
- 夜弦网页游戏专用浏览器(支持最小化隐藏后台多开挂机)
- 最新版c语言经典习题100例(最全面)
- pdca实施的流程图_PDCA实战案例详解:PDCA的 4个阶段 8个步骤及应用详解
- Fluent 全流程求解多孔介质算例
- 微信支付——委托代扣介绍
- 肇庆学院计算机选修旷课,化学化工学院考查课管理办法(试行)
- 阿里研究院:2019企业数智化转型发展报告:无业务不数据,无数据不智能,无智能不商业...
- 模拟电路--同相放大器和反相放大器的选择
- 使用MOG2对运动物体进行检测