目录:

1OPENFLOW操作(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

2OPENFLOW操作(action

2.1说明:若规则无动作则默认为丢弃;规则中没有显示的设置出端口的需要在相应动作之后添加出端口。

msg.actions.append(of.ofp_action_output(port=x))

msg.actions.append(of.ofp_action_enqueue(port=xqueue_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))

3OPENFLOW操作(examples

add flow-匹配入端口,动作为出端口

add flow-匹配目的mac,动作为出端口

add flow-匹配以太类型,动作为出端口和队列

add flow-匹配源mac,动作为设置vlan并指定出端口

add flow-匹配入端口,动作为设置vlancos,并指定出端口

del flow

del flow-strict

说明

环境windowsor linux

编译器:python2.7+

poxpox-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

功能:控制器开启对应地址监控进程

参数addressportpy

缺省情况:无。

命令模式:路径包含pox.py的命令行。

使用指南./pox.pyopenflow.of_01 --address=x.x.x.x –port=yy py

举例

控制端:

开启pox地址监控,默认使用6633端口,进入交互模式

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.

Ready.

POX>

Pc端:

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

功能:导出核心模块,并命名为of

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南importpox.openflow.libopenflow_01 as of,导出核心模块,并命名为of

举例

控制端:

POX>import pox.openflow.libopenflow_01 as of

core.openflow.connections.keys()

命令core.openflow.connections.keys()

功能:获取连接控制端的ofswitch的key

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南core.openflow.connections.keys(),获取key之后通过key发送msg

举例

控制端:

POX>core.openflow.connections.keys()

core.openflow.connections[key].send(msg)

命令core.openflow.connections[key].send(msg)

功能:通过特定key发送msg

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南core.openflow.connections[key].send(msg)key为上一条命令获取的switch代号

举例

控制端:

POX>core.openflow.connections[key].send(msg)

msg=of.ofp_flow_mod()

命令msg=of.ofp_flow_mod()

功能:编辑消息,消息类型为flowmod

参数command0ADD(添加流)1MODIFY,2为MODIFY_STRICT,3为DELETE(删除所有流规则),4为DELETE_STRICT(严格匹配掩码和优先级删除流规则)

缺省情况:command:0

命令模式:交互模式,pox>

使用指南msg=of.ofp_flow_mod()msg的消息类型为flowmod

举例

控制端:

POX>msg=of.ofp_flow_mod()

msg.priority=x

命令msg.priority=x

功能:设置规则的优先级

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南msg.priority=x,必须初始化priority,priority的有效范围1-5

举例

控制端:

POX>msg.priority=5

msg.match.in_port=y

命令msg.match.in_port=y

功能:匹配入端口

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.in_port=y,y为字段的值

举例

控制端:

指定规则匹配入端口为1

POX>msg.match.in_port=1

msg.match.dl_src=EthAddr(“”)

命令msg.match.dl_src=EthAddr(“”)

功能:匹配源mac

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.dl_src=EthAddr(“”)

举例

控制端

指定规则匹配源mac为00:00:00:00:00:11

POX>msg.match.dl_src=EthAddr(“00:00:00:00:00:11”)

msg.match.dl_dst=EthAddr(“”)

命令msg.match.dl_dst=EthAddr(“”)

功能:匹配目的mac

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.dl_dst=EthAddr(“”)

举例

控制端

指定规则匹配目的mac为00:00:00:00:00:11

POX>msg.match.dl_dst=EthAddr(“00:00:00:00:00:11”)

msg.match.dl_type=x

命令msg.match.dl_type=x

功能:匹配以太类型

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.dl_type=

举例

控制端

指定规则匹配ip类型报文

POX>msg.match.dl_type=0x800

msg.match.dl_vlan=x

命令msg.match.dl_vlan=x

功能:匹配vlanid

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.dl_vlan=

举例

控制端

指定规则匹配vlanid

POX>msg.match.dl_vlan=3

说明:dl_vlan必须为ofvlan

msg.match.dl_vlan_pcp=x

命令msg.match.dl_vlan_pcp=x

功能:匹配tos值

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.dl_vlan_pcp=

举例

控制端

指定规则匹配cos值

POX>msg.match.dl_vlan_pcp=3

说明:dl_vlan_pcp必须在0-7之内。

msg.match.nw_src=

命令msg.match.nw_src=

功能:匹配源ip地址

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.nw_src=

举例

控制端

指定规则匹配源IP

POX>msg.match.dl_type=0x800

POX>msg.match.nw_src=“192.168.2.133/24”

说明:必须指定匹配的以太类型,ip的掩码指定可以以/的形式表示

msg.match.nw_dst=

命令msg.match.nw_dst=

功能:匹配目的ip地址

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.nw_dst=

举例

控制端

指定规则匹配目的IP地址

POX>msg.match.dl_type=0x800

POX>msg.match.nw_dst=“192.168.2.133/24”

说明:必须指定匹配的以太类型,ip的掩码指定可以以/的形式表示

msg.match.nw_proto=x

命令msg.match.nw_proto=x

功能:匹配协议类型

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.nw_proto=

举例

控制端

指定规则匹配IP类型报文

POX>msg.match.dl_type=0x800

POX>msg.match.nw_proto=6

说明:必须指定匹配的以太网类型,再匹配ip协议类型。

msg.match.nw_tos=x

命令msg.match.nw_tos=x

功能:匹配tos

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.nw_tos=

举例

控制端

指定规则匹配IP类型报文

POX>msg.match.dl_type=0x800

POX>msg.match.nw_tos=64

说明:必须指定匹配的以太网类型,再匹配tos值。

msg.match.tp_src=x

命令msg.match.tp_src=

功能:匹配tcp源端口

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.tp_src=

举例

控制端

指定规则匹配源tcp端口

POX>msg.match.dl_type=0x800

POX>msg.match.nw_proto=6

POX>msg.match.tp_src=179

说明:必须指定匹配的以太网类型,再匹配ip协议类型,最后匹配tcpport

msg.match.tp_dst=x

命令msg.match.tp_dst=

功能:匹配tcp目的端口

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.match.tp_dst=

举例

控制端

指定规则匹配目的tcp端口

POX>msg.match.dl_type=0x800

POX>msg.match.nw_proto=6

POX>msg.match.tp_dst=179

说明:必须指定匹配的以太网类型,再匹配ip协议类型,最后匹配tcpport

msg.idle_timeout=x

命令msg.idle_timeout=

功能:在idle时间内,如果没有报文触发此动作,该条规则将删除

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.idle_timeout=30

举例

控制端

指定规则的idle时间为30秒

POX>msg.idle_timeout=30

说明:无

msg.hard_timeout=x

命令msg.hard_timeout=

功能:在到达hard时间时,无论如何,该条规则将删除

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南:msg.hard_timeout=30

举例

控制端

指定规则的hard时间为30秒

POX>msg.hard_timeout=30

说明:无

第2章OPENFLOW操作(action)

  1. 说明:若规则无动作则默认为丢弃;规则中没有显示的设置出端口的需要在相应动作之后添加出端口。

msg.actions.append(of.ofp_action_output(port=x))

命令msg.actions.append(of.ofp_action_output(port=))

功能:指定出端口动作

参数

缺省情况:无。

命令模式:交互模式,pox>

使用指南msg.actions.append(of.ofp_action_output(port=))

举例

控制端:指定报文出端口

POX>msg.actions.append(of.ofp_action_output(port=20))

说明:port号是ofvlan内的端口

msg.actions.append(of.ofp_action_output(port=x))

命令msg.actions.append(of.ofp_action_output(port=))

功能:转发指定的端口类型

参数:IN_PORT= 0xfff8:从入端口将报文发出。FLOOD=0xfffb:除了入端口和stp不允许的端口的所有端口。ALL= 0xfffc:除了入端口的其余端口。CONTROLLER= 0xfffd:发送给控制器。NONE= 0xffff:和物理端口无关

缺省情况:无。

命令模式:交互模式,pox>

使用指南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))

功能:转发指定的端口和队列

参数:port,queue_id(队列号)

缺省情况:无。

命令模式:交互模式,pox>

使用指南msg.actions.append(of.ofp_action_enqueue(port=xenqueue_id=y))

举例

控制端:

POX>msg.actions.append(of.ofp_action_enqueue(port=13queue_id=4))

msg.actions.append(of.ofp_action_dl_addr.set_dst(“mac”))

命令msg.actions.append(of.ofp_action_dl_addr.set_dst(“”))

功能:改变目的mac为指定mac

参数:dstmac

缺省情况:无。

命令模式:交互模式,pox>

使用指南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(“”))

功能:改变源mac为指定mac

参数:srcmac

缺省情况:无。

命令模式:交互模式,pox>

使用指南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=))

功能:设定tos值

参数:nw_tos

缺省情况:无。

命令模式:交互模式,pox>

使用指南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=))

功能:设定vlan值

参数:vlan_vid

缺省情况:无。

命令模式:交互模式,pox>

使用指南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=))

功能:设定vlancos值

参数:vlancos

缺省情况:无。

命令模式:交互模式,pox>

使用指南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))

说明:设置cos值时必须先设置vlanid

第3章OPENFLOW操作(examples)

add flow-匹配入端口,动作为出端口

POX>importpox.openflow.libopenflow_01 as of

POX>msg2=of.ofp_flow_mod()

POX>msg2.priority=3

POX>msg2.match.in_port=193

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=of.ofp_flow_mod()

POX>msg2.priority=3

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=of.ofp_flow_mod()

POX>msg.priority=5

POX>msg.match.dl_type=0x800

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=of.ofp_flow_mod()

POX>msg.priority=5

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=of.ofp_flow_mod()

POX>msg.priority=5

POX>msg.match.in_port=193

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>msg.wildcards=4194302

POX>msg.priority=5

POX>core.openflow.connections[13136560386L].send(msg)

openflow pox操作命令相关推荐

  1. SDN 与 Mininet 概述

    SDN 全名为(Software Defined Network)即软件定义网络,是现互联网中一种新型的网络创新架构,其核心技术 OpenFlow 通过网络设备控制面与数据面分离开来,从而实现网络流量 ...

  2. 网络技能大赛-云平台部分-CentOS部分13-[软件定义网络(详细)]

    网络技能大赛-云平台部分-CentOS部分13-[软件定义网络(详细)] 2022年全国职业技能大赛网络系统管理赛项相较2021年再次做出改动,Linux部分从之前的Debian又换回了CentOS, ...

  3. pox 中 openflow.webservice 组建的学习与使用

    Openflow的一个简单JSON-RPC-ish web service交互式接口,由of_service信息服务派生而来,依赖于webcore组件.可以使用HTTP POST方式发送JSON进行访 ...

  4. POX安装和部分配置

    最近在学习OpenFlow,看网上看到很多关于POX的安装和部署教程,但是大部分都有点问题,于是就将自己全程的安装和部署过程记录下来了,现在发出来跟大家分享. 1 部署情况 在本文中设备使用的都是基于 ...

  5. ubuntu 14.04设备OVS虚拟OpenFlow交换机配置汇总

    一.设备OVS sudo apt-get install openvswitch-controller openvswitch-switch openvswitch-datapath-source ( ...

  6. 一种基于openflow的虚拟化层软件flowvisor的API测试

    注明:本文并不对openflow进行分析,本人也是略略知道这个概念,对flowvisor也只是对其API有所测试,更深的源码并未涉及,只是希望该文能对以后的flowvisor研究者提供些许帮助. 一: ...

  7. Openflow协议通信流程解读

    前言 接触了这么久的SDN,Openflow协议前前后后也读过好多遍,但是一直没有时间总结一下自己的一些见解.现在有时间了,就写一写自己对Openflow协议通信流程的一些理解. SDN中Switch ...

  8. POX控制器的分析(二)

    在上一篇具体讲述POX有哪些组件,以及各个组件的功能,这篇文章主要理解POX的启动以及组件是如何启动的,以及组件与事件的关系: 由上图知,of_01 主要是运行一个线程,该线程不断与交换机进行TCP连 ...

  9. POX学习笔记之POX拓扑发现原理分析

    POX代码中与拓扑发现相关的模块主要是discovery.py文件和spanning_tree.py文件. 一.discovery.py文件 LLDPSender类解析 1. __init__函数 定 ...

  10. SDN and OpenFlow扫盲

    第一部分: OpenFlow 白皮书解读, 来源: 白皮书: http://archive.openflow.org/documents/openflow-wp-latest.pdf spec:  h ...

最新文章

  1. js添加菜单栏之后停留在那里
  2. mysql 替代 in_mysql用什么代替in
  3. Android防盗系统推荐
  4. y电容如何选型_开关电源中电容如何快速选型
  5. 【Vue2.0】—过滤器(七)
  6. 如何做相册_我是如何对2000张照片进行批量套版的
  7. web 请求 编码 引发的问题
  8. python中argsparse_Python中的argparse模块
  9. TextView属性android:ellipsize实现跑马灯效果
  10. LogBack 日志等级设置无效,原因竟然是因为这个?!
  11. 使用ajax实现文件上传功能
  12. 夜弦网页游戏专用浏览器(支持最小化隐藏后台多开挂机)
  13. 最新版c语言经典习题100例(最全面)
  14. pdca实施的流程图_PDCA实战案例详解:PDCA的 4个阶段 8个步骤及应用详解
  15. Fluent 全流程求解多孔介质算例
  16. 微信支付——委托代扣介绍
  17. 肇庆学院计算机选修旷课,化学化工学院考查课管理办法(试行)
  18. 阿里研究院:2019企业数智化转型发展报告:无业务不数据,无数据不智能,无智能不商业...
  19. 模拟电路--同相放大器和反相放大器的选择
  20. 使用MOG2对运动物体进行检测

热门文章

  1. Java温度转换(写一个将华氏温度转换成摄氏温度的程序)
  2. 通软终端安全管理系统V6 卸载脚本
  3. 2011年分形艺术国际大赛比赛规则
  4. win 10 好吗?对比与ubuntu,对比于Mac呢?
  5. ThoughtWorks培训感想
  6. iOS 16横竖屏切换适配
  7. dell服务器u盘启动找不到硬盘,dell台式机u盘装系统启动找不到硬盘怎么办?dell找不到硬盘原因...
  8. java为什么是静态的_为什么此方法必须是静态的(Java)?
  9. 向量代数:混合积、双重外积与拉格朗日恒等式
  10. zoj题目分类详细的