openflowpoxv12Word文档下载推荐.docx
《openflowpoxv12Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《openflowpoxv12Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
当openflow连通时,控制端端提示如:
接下来导入库函数并定义变量名
此时在控制端
----------图1.1
控制端连接的switch会编号如其中的1,ip地址为对端地址,3084为对端的连接端口
oo.vv=True查看所有输入包内容
oo.vv=False停止查看输入包内容
通过图1.1中的id,获取对switch的连接命令为
conn=oo.get_conn
(1)
获取对switch的连接之后就可以通过pox下发openflow指令,具体实例见下文。
注:
1.switch上查看下发的acl的命令是showopenflowaclall
2.必须指定出端口,否则报文无法出交换机,r如msg.actions.append(of.ofp_action_output(port=13))
例一
在获取连接后,下面是下发“匹配源mac,指定出端口“规则的示例:
进入配置流模式
msg=of.ofp_flow_mod()
规则匹配
msg.match.dl_src=EthAddr("
01:
2f:
4f:
ff:
11"
)
添加动作
msg.actions.append(of.ofp_action_output(port=13))
下发消息
conn.send(msg)
switch端查看配置规则
*********************************
wildcard:
4194299
priority:
5
in_port:
0
sourcemac:
01-2f-4f-ff-ff-11
dstmac:
00-00-00-00-00-00
ethtype:
0x00
vlanid:
vlancos:
sourceip:
0.0.0.0
sourceipmask:
dstip:
dstipmask:
ipprotocol:
iptos:
outputport:
13
例二
在获取连接后,下面是下发“匹配目的mac,指定出端口“规则的示例:
msg.match.dl_dst=EthAddr("
11:
4194295
11-11-11-11-11-11
例三
在获取连接后,下面是下发“匹配入端口,指定出端口“规则的示例:
msg.match.in_port=9#入端口为9
msg.actions.append(of.ofp_action_output(port=13))#出端口为13
4194302
9
例四
在获取连接后,下面是下发“匹配入端口,改Tos值“规则的示例:
msg.match.dl_type=9#Ethernet类型
msg.actions.append(of.ofp_action_nw_tos(nw_tos=13))
msg.actions.append(of.ofp_action_output(port=13))
setnewtos:
例五
在获取连接后,下面是下发“匹配vlan优先级,指定出端口“规则的示例:
msg.match.dl_vlan_pcp=3
3145727
3
例六
在获取连接后,下面是下发“匹配EthernetType,指定出端口“规则的示例:
msg.match.dl_type=2048
3678447
0x800
例七
在获取连接后,下面是下发“匹配Tos,指定出端口“规则的示例:
msg.match.dl_type=2048
msg.match.nw_tos=4
msg.actions.append(of.ofp_action_output(port=16))
1581295
4
16
例八
在获取连接后,下面是下发“匹配ProtocolType,指定出端口“规则的示例:
msg.match.nw_proto=255
msg.actions.append(of.ofp_action_output(port=17))
3678223
0xff
17