SDN 下用ODL实现QoS保障(5)-获取拓扑
程序员文章站
2022-07-06 18:12:40
...
在postman里面发送如下请求
URL=http://127.0.0.1:8181/restconf/operational/network-topology:network-topology/topology/flow:1
ACTION=GET
其他参数与以前保持一致
返回结果如下:
{
"topology": [
{
"topology-id": "flow:1",
"node": [
{
"node-id": "openflow:3",
"opendaylight-topology-inventory:inventory-node-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']",
"termination-point": [
{
"tp-id": "openflow:3:5",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:3:5']"
},
{
"tp-id": "openflow:3:LOCAL",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:3:LOCAL']"
},
{
"tp-id": "openflow:3:2",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:3:2']"
},
{
"tp-id": "openflow:3:1",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:3:1']"
},
{
"tp-id": "openflow:3:4",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:3:4']"
},
{
"tp-id": "openflow:3:3",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:3']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:3:3']"
}
]
},
{
"node-id": "openflow:4",
"opendaylight-topology-inventory:inventory-node-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:4']"
},
{
"node-id": "openflow:1",
"opendaylight-topology-inventory:inventory-node-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:1']"
},
{
"node-id": "openflow:2",
"opendaylight-topology-inventory:inventory-node-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']",
"termination-point": [
{
"tp-id": "openflow:2:1",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:2:1']"
},
{
"tp-id": "openflow:2:LOCAL",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:2:LOCAL']"
},
{
"tp-id": "openflow:2:3",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:2:3']"
},
{
"tp-id": "openflow:2:2",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:2:2']"
},
{
"tp-id": "openflow:2:5",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:2:5']"
},
{
"tp-id": "openflow:2:4",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:2']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:2:4']"
}
]
},
{
"node-id": "host:00:00:00:00:00:02",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:02"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:1:2",
"corresponding-tp": "host:00:00:00:00:00:02",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:02",
"host-tracker-service:addresses": [
{
"id": 1,
"mac": "00:00:00:00:00:02",
"last-seen": 1510303270225,
"ip": "10.0.0.2",
"first-seen": 1510303270225
}
]
},
{
"node-id": "host:00:00:00:00:00:01",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:01"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:1:1",
"corresponding-tp": "host:00:00:00:00:00:01",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:01",
"host-tracker-service:addresses": [
{
"id": 0,
"mac": "00:00:00:00:00:01",
"last-seen": 1510303270184,
"ip": "10.0.0.1",
"first-seen": 1510303270184
}
]
},
{
"node-id": "host:00:00:00:00:00:06",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:06"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:3:2",
"corresponding-tp": "host:00:00:00:00:00:06",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:06",
"host-tracker-service:addresses": [
{
"id": 5,
"mac": "00:00:00:00:00:06",
"last-seen": 1510303270726,
"ip": "10.0.0.6",
"first-seen": 1510303270726
}
]
},
{
"node-id": "host:00:00:00:00:00:05",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:05"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:3:1",
"corresponding-tp": "host:00:00:00:00:00:05",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:05",
"host-tracker-service:addresses": [
{
"id": 4,
"mac": "00:00:00:00:00:05",
"last-seen": 1510303270554,
"ip": "10.0.0.5",
"first-seen": 1510303270554
}
]
},
{
"node-id": "openflow:5",
"opendaylight-topology-inventory:inventory-node-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:5']",
"termination-point": [
{
"tp-id": "openflow:5:4",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:5']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:5:4']"
},
{
"tp-id": "openflow:5:LOCAL",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:5']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:5:LOCAL']"
},
{
"tp-id": "openflow:5:3",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:5']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:5:3']"
},
{
"tp-id": "openflow:5:2",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:5']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:5:2']"
},
{
"tp-id": "openflow:5:1",
"opendaylight-topology-inventory:inventory-node-connector-ref": "/opendaylight-inventory:nodes/opendaylight-inventory:node[opendaylight-inventory:id='openflow:5']/opendaylight-inventory:node-connector[opendaylight-inventory:id='openflow:5:1']"
}
]
},
{
"node-id": "host:00:00:00:00:00:04",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:04"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:2:2",
"corresponding-tp": "host:00:00:00:00:00:04",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:04",
"host-tracker-service:addresses": [
{
"id": 3,
"mac": "00:00:00:00:00:04",
"last-seen": 1510303270415,
"ip": "10.0.0.4",
"first-seen": 1510303270415
}
]
},
{
"node-id": "host:00:00:00:00:00:03",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:03"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:2:1",
"corresponding-tp": "host:00:00:00:00:00:03",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:03",
"host-tracker-service:addresses": [
{
"id": 2,
"mac": "00:00:00:00:00:03",
"last-seen": 1510303270281,
"ip": "10.0.0.3",
"first-seen": 1510303270281
}
]
},
{
"node-id": "host:00:00:00:00:00:08",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:08"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:4:2",
"corresponding-tp": "host:00:00:00:00:00:08",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:08",
"host-tracker-service:addresses": [
{
"id": 7,
"mac": "00:00:00:00:00:08",
"last-seen": 1510303271138,
"ip": "10.0.0.8",
"first-seen": 1510303271138
}
]
},
{
"node-id": "host:00:00:00:00:00:07",
"termination-point": [
{
"tp-id": "host:00:00:00:00:00:07"
}
],
"host-tracker-service:attachment-points": [
{
"tp-id": "openflow:4:1",
"corresponding-tp": "host:00:00:00:00:00:07",
"active": true
}
],
"host-tracker-service:id": "00:00:00:00:00:07",
"host-tracker-service:addresses": [
{
"id": 6,
"mac": "00:00:00:00:00:07",
"last-seen": 1510303270916,
"ip": "10.0.0.7",
"first-seen": 1510303270916
}
]
}
],
"link": [
{
"link-id": "openflow:2:2/host:00:00:00:00:00:04",
"destination": {
"dest-node": "host:00:00:00:00:00:04",
"dest-tp": "host:00:00:00:00:00:04"
},
"source": {
"source-tp": "openflow:2:2",
"source-node": "openflow:2"
}
},
{
"link-id": "host:00:00:00:00:00:02/openflow:1:2",
"destination": {
"dest-node": "openflow:1",
"dest-tp": "openflow:1:2"
},
"source": {
"source-tp": "host:00:00:00:00:00:02",
"source-node": "host:00:00:00:00:00:02"
}
},
{
"link-id": "openflow:4:1/host:00:00:00:00:00:07",
"destination": {
"dest-node": "host:00:00:00:00:00:07",
"dest-tp": "host:00:00:00:00:00:07"
},
"source": {
"source-tp": "openflow:4:1",
"source-node": "openflow:4"
}
},
{
"link-id": "host:00:00:00:00:00:01/openflow:1:1",
"destination": {
"dest-node": "openflow:1",
"dest-tp": "openflow:1:1"
},
"source": {
"source-tp": "host:00:00:00:00:00:01",
"source-node": "host:00:00:00:00:00:01"
}
},
{
"link-id": "openflow:4:4",
"destination": {
"dest-node": "openflow:1",
"dest-tp": "openflow:1:4"
},
"source": {
"source-tp": "openflow:4:4",
"source-node": "openflow:4"
}
},
{
"link-id": "openflow:3:5",
"destination": {
"dest-node": "openflow:5",
"dest-tp": "openflow:5:3"
},
"source": {
"source-tp": "openflow:3:5",
"source-node": "openflow:3"
}
},
{
"link-id": "openflow:5:3",
"destination": {
"dest-node": "openflow:3",
"dest-tp": "openflow:3:5"
},
"source": {
"source-tp": "openflow:5:3",
"source-node": "openflow:5"
}
},
{
"link-id": "openflow:5:2",
"destination": {
"dest-node": "openflow:2",
"dest-tp": "openflow:2:5"
},
"source": {
"source-tp": "openflow:5:2",
"source-node": "openflow:5"
}
},
{
"link-id": "openflow:2:5",
"destination": {
"dest-node": "openflow:5",
"dest-tp": "openflow:5:2"
},
"source": {
"source-tp": "openflow:2:5",
"source-node": "openflow:2"
}
},
{
"link-id": "openflow:3:4",
"destination": {
"dest-node": "openflow:4",
"dest-tp": "openflow:4:3"
},
"source": {
"source-tp": "openflow:3:4",
"source-node": "openflow:3"
}
},
{
"link-id": "openflow:4:3",
"destination": {
"dest-node": "openflow:3",
"dest-tp": "openflow:3:4"
},
"source": {
"source-tp": "openflow:4:3",
"source-node": "openflow:4"
}
},
{
"link-id": "host:00:00:00:00:00:05/openflow:3:1",
"destination": {
"dest-node": "openflow:3",
"dest-tp": "openflow:3:1"
},
"source": {
"source-tp": "host:00:00:00:00:00:05",
"source-node": "host:00:00:00:00:00:05"
}
},
{
"link-id": "openflow:4:5",
"destination": {
"dest-node": "openflow:5",
"dest-tp": "openflow:5:4"
},
"source": {
"source-tp": "openflow:4:5",
"source-node": "openflow:4"
}
},
{
"link-id": "openflow:5:4",
"destination": {
"dest-node": "openflow:4",
"dest-tp": "openflow:4:5"
},
"source": {
"source-tp": "openflow:5:4",
"source-node": "openflow:5"
}
},
{
"link-id": "openflow:1:3",
"destination": {
"dest-node": "openflow:2",
"dest-tp": "openflow:2:3"
},
"source": {
"source-tp": "openflow:1:3",
"source-node": "openflow:1"
}
},
{
"link-id": "openflow:1:1/host:00:00:00:00:00:01",
"destination": {
"dest-node": "host:00:00:00:00:00:01",
"dest-tp": "host:00:00:00:00:00:01"
},
"source": {
"source-tp": "openflow:1:1",
"source-node": "openflow:1"
}
},
{
"link-id": "openflow:3:1/host:00:00:00:00:00:05",
"destination": {
"dest-node": "host:00:00:00:00:00:05",
"dest-tp": "host:00:00:00:00:00:05"
},
"source": {
"source-tp": "openflow:3:1",
"source-node": "openflow:3"
}
},
{
"link-id": "openflow:1:5",
"destination": {
"dest-node": "openflow:5",
"dest-tp": "openflow:5:1"
},
"source": {
"source-tp": "openflow:1:5",
"source-node": "openflow:1"
}
},
{
"link-id": "openflow:5:1",
"destination": {
"dest-node": "openflow:1",
"dest-tp": "openflow:1:5"
},
"source": {
"source-tp": "openflow:5:1",
"source-node": "openflow:5"
}
},
{
"link-id": "openflow:3:3",
"destination": {
"dest-node": "openflow:2",
"dest-tp": "openflow:2:4"
},
"source": {
"source-tp": "openflow:3:3",
"source-node": "openflow:3"
}
},
{
"link-id": "openflow:2:4",
"destination": {
"dest-node": "openflow:3",
"dest-tp": "openflow:3:3"
},
"source": {
"source-tp": "openflow:2:4",
"source-node": "openflow:2"
}
},
{
"link-id": "openflow:1:4",
"destination": {
"dest-node": "openflow:4",
"dest-tp": "openflow:4:4"
},
"source": {
"source-tp": "openflow:1:4",
"source-node": "openflow:1"
}
},
{
"link-id": "openflow:2:3",
"destination": {
"dest-node": "openflow:1",
"dest-tp": "openflow:1:3"
},
"source": {
"source-tp": "openflow:2:3",
"source-node": "openflow:2"
}
},
{
"link-id": "host:00:00:00:00:00:04/openflow:2:2",
"destination": {
"dest-node": "openflow:2",
"dest-tp": "openflow:2:2"
},
"source": {
"source-tp": "host:00:00:00:00:00:04",
"source-node": "host:00:00:00:00:00:04"
}
},
{
"link-id": "host:00:00:00:00:00:03/openflow:2:1",
"destination": {
"dest-node": "openflow:2",
"dest-tp": "openflow:2:1"
},
"source": {
"source-tp": "host:00:00:00:00:00:03",
"source-node": "host:00:00:00:00:00:03"
}
},
{
"link-id": "openflow:2:1/host:00:00:00:00:00:03",
"destination": {
"dest-node": "host:00:00:00:00:00:03",
"dest-tp": "host:00:00:00:00:00:03"
},
"source": {
"source-tp": "openflow:2:1",
"source-node": "openflow:2"
}
},
{
"link-id": "host:00:00:00:00:00:06/openflow:3:2",
"destination": {
"dest-node": "openflow:3",
"dest-tp": "openflow:3:2"
},
"source": {
"source-tp": "host:00:00:00:00:00:06",
"source-node": "host:00:00:00:00:00:06"
}
},
{
"link-id": "host:00:00:00:00:00:07/openflow:4:1",
"destination": {
"dest-node": "openflow:4",
"dest-tp": "openflow:4:1"
},
"source": {
"source-tp": "host:00:00:00:00:00:07",
"source-node": "host:00:00:00:00:00:07"
}
},
{
"link-id": "host:00:00:00:00:00:08/openflow:4:2",
"destination": {
"dest-node": "openflow:4",
"dest-tp": "openflow:4:2"
},
"source": {
"source-tp": "host:00:00:00:00:00:08",
"source-node": "host:00:00:00:00:00:08"
}
},
{
"link-id": "openflow:4:2/host:00:00:00:00:00:08",
"destination": {
"dest-node": "host:00:00:00:00:00:08",
"dest-tp": "host:00:00:00:00:00:08"
},
"source": {
"source-tp": "openflow:4:2",
"source-node": "openflow:4"
}
},
{
"link-id": "openflow:1:2/host:00:00:00:00:00:02",
"destination": {
"dest-node": "host:00:00:00:00:00:02",
"dest-tp": "host:00:00:00:00:00:02"
},
"source": {
"source-tp": "openflow:1:2",
"source-node": "openflow:1"
}
},
{
"link-id": "openflow:3:2/host:00:00:00:00:00:06",
"destination": {
"dest-node": "host:00:00:00:00:00:06",
"dest-tp": "host:00:00:00:00:00:06"
},
"source": {
"source-tp": "openflow:3:2",
"source-node": "openflow:3"
}
}
]
}
]
}
在返回结果的link节点,我们可以看到其中罗列出了主机或者交换机的一个端口与另一个交换机或者主机的端口之间连接关系。
用这些数据我们可以轻易的画出,交换机之间的拓扑关系如下图所示。
至此,获取拓扑就告一段落了。