此扩展是一个只提供信息的API,它允许用户或进程确定网络及其子网的分配池中已消耗的IP数量。每个网络和内嵌子网返回两个值used_ips 和 total_ips,有这两个值很容易确定网络的IP地址空间消耗量。
此API使网络管理员能够定期列出检查IP使用情况(手动或自动),以便在超过阈值时,先一步添加新网络容量。
重要事项:
此API跟踪网络的“可消耗”IP地址。有什么区别?创建网络及其子网后,可消耗的IP地址有:
- 在子网分配中使用的IP (已使用 IPs)
- 由子网分配池中使用的IP (总的 IPs)
此API跟踪可使用的IP地址,以便网络管理员能够知道子网的IP池(最终是整个网络的)内的IP即将耗尽。此API不计算保留的IP地址,如子网的网关IP或其它IP子网CIDR的保留或未使用的IP,这些IP地址由于子网本身的创建而消耗掉。
API 规范
所有网络IP可用性信息
GET /v2.0/network-ip-availabilities ::
Request to url: v2.0/network-ip-availabilities
headers: {'content-type': 'application/json', 'X-Auth-Token': 'SOME_AUTH_TOKEN'}
响应示例:
Response:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
结果:
{
"network_ip_availabilities": [
{
"network_id": "f944c153-3f46-417b-a3c2-487cd9a456b9",
"network_name": "net1",
"subnet_ip_availability": [
{
"cidr": "10.0.0.0/24",
"ip_version": 4,
"subnet_id": "46b1406a-8373-454c-8eb8-500a09eb77fb",
"subnet_name": "",
"total_ips": 253,
"used_ips": 3
}
],
"tenant_id": "test-project",
"total_ips": 253,
"used_ips": 3
},
{
"network_id": "47035bae-4f29-4fef-be2e-2941b72528a8",
"network_name": "net2",
"subnet_ip_availability": [],
"tenant_id": "test-project",
"total_ips": 0,
"used_ips": 0
},
{
"network_id": "2e3ea0cd-c757-44bf-bb30-42d038687e3f",
"network_name": "net3",
"subnet_ip_availability": [
{
"cidr": "40.0.0.0/24",
"ip_version": 4,
"subnet_id": "aab6b35c-16b5-489c-a5c7-fec778273495",
"subnet_name": "",
"total_ips": 253,
"used_ips": 2
}
],
"tenant_id": "test-project",
"total_ips": 253,
"used_ips": 2
}
]
}
通过网络ID获得可用性信息
GET /v2.0/network-ip-availabilities/{network\_uuid} ::
Request to url: /v2.0/network-ip-availabilities/aba3b29b-c119-4b45-afbd-88e500acd970
headers: {'content-type': 'application/json', 'X-Auth-Token': 'SOME_AUTH_TOKEN'}
响应示例:
Response:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
结果:
{
"network_ip_availability": {
"network_id": "f944c153-3f46-417b-a3c2-487cd9a456b9",
"network_name": "net1",
"subnet_ip_availability": [
{
"cidr": "10.0.0.0/24",
"ip_version": 4,
"subnet_name": "",
"subnet_id": "46b1406a-8373-454c-8eb8-500a09eb77fb",
"total_ips": 253,
"used_ips": 3
}
],
"tenant_id": "test-project",
"total_ips": 253,
"used_ips": 3
}
}
支持的查询过滤器
此API目前支持一下的查询参数:
- network_id:返回与网络ID匹配的网络的可用IP信息。注意:此查询(?network_id={network_id_guid})大致相当于通过网络ID获得可用性信息部分,但它返回多个响应组成为一个列表list而不是项目item。
- network_name:返回匹配此名称的网络的可用IP信息
- tenant_id:返回匹配此租户ID的所有网络的可用IP信息。
- ip_version:返回支持提供的IP版本号的子网IP可用信息。值可以是4或6。
查询过滤器可以组合在一起进一步缩小结果范围,并返回匹配所有条件的结果。当参数指定多次时,将返回匹配所有参数值的结果。示例:
# Fetch IPv4 availability for a specific project uuid
GET /v2.0/network-ip-availabilities?ip_version=4&tenant_id=example-project-uuid
# Fetch multiple networks by their ids
GET /v2.0/network-ip-availabilities?network_id=uuid_sample_1&network_id=uuid_sample_2