首页 > 解决方案 > Openstack neutron:在响应中未从开放堆栈 neutron api 获取端口信息

问题描述

我发出了一个 POST API 请求来创建带有外部网络的路由器(路由器的 SET 网关)。

端点:/api/networks/routers/:routerId

有效载荷:

"router": {
"name: "myrout3r"
"external_gateway_info": {
"network_id": "659cf56-cad0-40a6-ae53-f24a2123508a",
"enable_snat": true
},
"admin_state_up": true
}
}

回复:

 {
    "router": {
        "status": "ACTIVE",
        "external_gateway_info": {
            "network_id": "659c2f56-cad0-40a6-ae59-f24a2123508a",
            "enable_snat": true,
            "external_fixed_ips": [
                {
                    "subnet_id": "52f0822b-2c36-4810-8653-a1a60b03a8b1",
                    "ip_address": "172.30.60.4"
                }
            ]
        },
        "availability_zone_hints": [],
        "availability_zones": [
            "nova"
        ],
        "description": "",
        "tags": [],
        "tenant_id": "5178acd154364430876d5aa687a9df7c",
        "created_at": "2018-08-07T06:50:22Z",
        "admin_state_up": true,
        "distributed": false,
        "updated_at": "2018-08-07T09:40:30Z",
        "project_id": "5178acd154364430876d5aa687a9df7c",
        "flavor_id": null,
        "revision_number": 13,
        "routes": [],
        "ha": false,
        "id": "398872f0-0cf6-4f48-8c94-f55623beace4",
        "name": "router-szz"
    }
} 

我的主要问题是:当我在网络的端口选项卡中为外部网络添加路由器网关时,会动态创建一个新的端口。但是这些信息不是我想要的响应的一部分。

2)我应该为外部网络启用DHCP,如果不是为什么?router_external_gateway

标签: networkingcloudopenstackopenstack-neutron

解决方案


路由器的端口可以从“ports” API 而不是“router” API 获取。

可以使用以下 REST API 查询与路由器关联的端口:

curl -s -H "X-Auth-Token: $OS_TOKEN" $OS_NETWORK_API/v2.0/ports?device_id={router_id}

例子:

curl -s -H "X-Auth-Token: $OS_TOKEN" $OS_NETWORK_API/v2.0/ports?device_id=b3b11b62-04da-4a98-a981-adcd42d9fe3e


推荐阅读