如何使用Python使用OpenDayLight控制器在mininet中添加流程

时间:2016-02-24 14:57:44

标签: python mininet openflow sdn opendaylight

我正在使用简单的mininet拓扑,尝试学习如何使用ODL控制器操作流。拓扑结构为:

主机1 - OFSwitch1 - OFSwitch2 - 主机2 - OFSwitch3 - OFSwitch4 - 主机3

我正在尝试默认不实现从Host1到Host3的连接,但是,一旦运行python脚本,就会添加一个允许Host1 ping Host3的流。

我刚刚开始学习ODL,似乎无法使这个基本项目有效。

1 个答案:

答案 0 :(得分:2)

流程可以由Opendaylight控制器REST api创建,后者反过来反映在使用mininet进行网络模拟的OVS交换机中。

请参考以下步骤在ODL中创建流程并在ODL& OVS:

1)ODL流程创建

curl -u admin:admin -H 'Content-Type: application/yang.data+xml' -X PUT -d @flow_data.xml http://192.168.1.196:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/10

flow_date.xml文件内容:

<flow xmlns="urn:opendaylight:flow:inventory"> <priority>14865</priority> <flow-name>jpsampleFlow</flow-name> <idle-timeout>12000</idle-timeout> <match> <ethernet-match> <ethernet-type> <type>2048</type> </ethernet-type> </ethernet-match> <ipv4-source>10.0.0.1/32</ipv4-source><ipv4-destination>10.0.0.2/32</ipv4-destination><ip-match><ip-dscp>28</ip-dscp> </ip-match></match> <id>9</id> <table_id>0</table_id> <instructions> <instruction> <order>6555</order> </instruction> <instruction> <order>0</order> <apply-actions> <action> <order>0</order><drop-action/> <output-action> <output-node-connector>1</output-node-connector> </output-action> </action> </apply-actions> </instruction> </instructions> </flow>

2)验证ODL中创建的流程:

curl -u admin:admin -X GET http://192.168.1.196:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/10

3)在OVS中验证相同:

sudo ovs-ofctl dump-flows <switch_id>

请参阅this wiki page以了解有关ODL中流程创建的更多信息