天天看點

使用postman基于opendaylight和ovsdb建立vxlan隧道

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”

}

]