更新时间:2022-01-25 GMT+08:00

创建子网

功能介绍

创建子网。

URI

POST /v1/{project_id}/subnets

参数说明请参见表1
表1 参数说明

名称

是否必选

说明

project_id

项目ID,获取项目ID请参见获取项目ID

请求消息

  • 请求参数
    表2 请求参数

    名称

    是否必选

    参数类型

    说明

    subnet

    Object

    subnet对象

    表3 subnet对象

    名称

    是否必选

    参数类型

    说明

    name

    String

    • 功能说明:子网名称
    • 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)

    description

    String

    • 功能说明:子网描述
    • 取值范围:0-255个字符,不能包含“<”和“>”。

    cidr

    String

    • 功能说明:子网的网段
    • 取值范围:必须在vpc对应cidr范围内
    • 约束:必须是cidr格式。掩码长度不能大于28

    gateway_ip

    String

    • 功能说明:子网的网关
    • 取值范围:子网网段中的IP地址
    • 约束:必须是ip格式

    dhcp_enable

    Boolean

    • 功能说明:子网是否开启dhcp功能
    • 取值范围:true(开启),false(关闭)
    • 约束:不填时默认为true。当设置为false时,会导致新创建的ECS无法获取IP地址,Cloud-init无法注入账号密码,请谨慎操作。

    primary_dns

    String

    • 功能说明:子网dns服务器地址1
    • 约束:ip格式不填时,默认为空

    secondary_dns

    String

    • 功能说明:子网dns服务器地址2
    • 约束:ip格式不填时,默认为空

    dnsList

    Array of strings

    • 功能说明:子网dns服务器地址的集合;如果想使用两个以上dns服务器,请使用该字段
    • 约束:是子网dns服务器地址1跟子网dns服务器地址2的合集的父集不填时,默认为空

    availability_zone

    String

    • 功能说明:子网所在的可用区标识,从终端节点获取
    • 约束:系统存在的可用区标识;不填时,默认为空

    vpc_id

    String

    子网所在VPC标识

  • 请求样例
    POST https://{Endpoint}/v1/{project_id}/subnets
    
    {
        "subnet": {
            "name": "subnet",
            "description": "",
            "cidr": "192.168.20.0/24",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "primary_dns": "114.xx.xx.114",
            "secondary_dns": "114.xx.xx.115",
            "dnsList": [
                "114.xx.xx.114",
                "114.xx.xx.115"
            ],
            "availability_zone": "aa-bb-cc",//假设可用区标识为aa-bb-cc
            "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85"
        }
    }

响应消息

  • 响应参数
    表4 响应参数

    名称

    参数类型

    说明

    subnet

    Object

    subnet对象

    表5 subnet对象

    名称

    参数类型

    说明

    id

    String

    uuid形式的一个资源标识

    name

    String

    • 功能说明:子网名称
    • 取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)

    description

    String

    • 功能说明:子网描述
    • 取值范围:0-255个字符,不能包含“<”和“>”。

    cidr

    String

    • 功能说明:子网的网段
    • 取值范围:必须在vpc对应cidr范围内
    • 约束:必须是cidr格式。掩码长度不能大于28

    gateway_ip

    String

    • 功能说明:子网的网关
    • 取值范围:子网网段中的IP地址
    • 约束:必须是ip格式

    dhcp_enable

    Boolean

    子网是否开启dhcp功能

    primary_dns

    String

    • 功能说明:子网dns服务器地址1
    • 约束:ip格式不填时,默认为空

    secondary_dns

    String

    • 功能说明:子网dns服务器地址2
    • 约束:ip格式不填时,默认为空

    dnsList

    Array of strings

    • 功能说明:子网dns服务器地址的集合;如果想使用两个以上dns服务器,请使用该字段
    • 约束:是子网dns服务器地址1跟子网dns服务器地址2的合集的父集不填时,默认为空

    availability_zone

    String

    • 功能说明:子网所在的可用区标识,从终端节点获取
    • 约束:系统存在的可用区标识;不填时,默认为空

    vpc_id

    String

    子网所在VPC标识

    status

    String

    • 功能说明:子网的状态。
    • 取值范围:ACTIVE,UNKNOWN,ERROR
      • ACTIVE表示子网已挂载到VPC上
      • UNKNOWN表示子网还未挂载到VPC上
      • ERROR表示子网状态故障
    • 创建子网的流程为:先创建子网,然后在线程中将子网挂载在VPC上。

      在并发场景下,由于使用相同的cidr来创建子网,底层发生校验后使得挂载VPC失败,回滚创建子网的过程,子网创建失败。

      创建子网接口返回时,状态为UNKNOWN。

    neutron_network_id

    String

    对应网络(OpenStack Neutron接口)id

    neutron_subnet_id

    String

    对应子网(OpenStack Neutron接口)id

  • 响应样例
    {
        "subnet": {
            "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
            "name": "subnet",
            "description": "",
            "cidr": "192.168.20.0/24",
            "dnsList": [
                "114.xx.xx.114",
                "1114.xx.xx.115"
            ],
            "status": "UNKNOWN",
            "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "primary_dns": "114.xx.xx.114",
            "secondary_dns": "114.xx.xx.115",
            "availability_zone": "aa-bb-cc",//假设可用区标识为aa-bb-cc。
            "neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
            "neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12"
        }
    }

状态码

请参见状态码

错误码

请参考错误码