1:建立虛拟網橋
ovs-vsctl add-br s1;
2:檢視datapath-id值
ovsdb-client dump檢視datapath-id值XXX
3:設定虛拟網橋的參數
ovs-vsctl set bridge s1 other-config:datapath-id: XXX
ovs-vsctl set bridge s1 protocols=OpenFlow13
ovs-vsctl set-controller s1 tcp:172.16.81.111:6633
注意:172.16.81.111是控制器的IP位址
ovs-vsctl set-manager ptcp:6640
4:擷取網絡拓撲結構
get http://172.16.81.111/restconf/operational/network-topology:network-topology/
可以看出,預設的兩個拓撲結構:ovsdb:1和openflow:1,我們在此處先清空ovsdb:1裡面的資訊
delete http://172.16.81.111/restconf/config/network-topology:network-topology/topology/ovsdb:1/node/mn1
此處的删除可能ovsdb:1裡面并沒有節點資訊會顯示删除失敗
5:注冊vswitch
Post http://172.16.81.111/restconf/config/network-topology:network-topology/topology/ovsdb:1
Mininet1:10.0.0.1如下操作
{
“node”:[
“id”:”mn1”,
“node-id”:”mn1”,
“ovsdb:connection-info”:{
“remote-ip”:10.0.0.1,
“remote-port”:6640
}
]
}
注冊完成會生成mn1/bridge/s1節點
mininet2:10.0.0.2類似操作
注冊完成後檢查vswitch有沒有連接配接成功
netstat -tcp -n
6:建立子接口
put http://172.16.81.111/restconf/config/network-topology:network-topology/topology/ovsbd:1/node/mn1%2fBridge%2fs1/terrmination-point/vxlanport
{
“termination-point”:{
“tp-id”:vxlanport,
“ovsdb:name”:vxlanport,
“ovsdb:interface-type”:”ovsdb:interface-type-vxlan”,
“ovsdb-options”:[
{
“option”:”remote-ip”,
“value”:”10.0.0.1”
},
{
“option”:”local-ip”,
“value”:”10.0.0.2”
},
{
“option”:”key”,
“value”:”flow”
}
]
“ovsdb:ofport”:”10”,
“ovsdb:ofport-request”:”10”
}
}
建立完成即可在vswitch上檢視到新建立的子端口
注意:如果建立br不是s1而是br1,那麼建立termination-point時,填寫的node就是查詢得到的XXXX//uuid/XX/br1
7:下發流表
put http://172.16.81.152/restconf/config/opendaylight-inventory:nodes/node/openflow:XXX/table/0/flow/0
“flow”:[
{
“id”:”0”,
“match”:
{
“ethernet-match”:{
“ethernet-type”:{“type”:”0x8806”}
},
“in_port”:”10”
},
“instruction”:
{
“instruction”:[
{
“order”:”1”,
“apply-actions”:
{
“action”:[
{
“order”:”1”,
“output-action”:{
“output-node-connector”:”1”,
“max-length”:”6653”
}
}
]
}
}
]
},
“flow-name”:”flow:1”,
“buffer_id”:”65535”,
“installHw”:”true”,
“barrier”:”true”,
“strict”:”true”,
“priority”:”100”,
“idel-timeout”:”0”,
“hard-timeout”:”0”,
“table_id”:”0”
}
]