
# 创建子网 - CreateSubnet
#### 功能介绍
创建子网。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=VPC&version=v2&api=CreateSubnet)中调试该接口。
#### 约束与限制
- 网络下存在IPv4子网的情况下，才可以创建IPv6子网。
- VXLAN类型网络下只能有一个IPv4的子网和一个IPv6的子网。
 
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-vpc/vpc_permission_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                                                          | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 别名                                          | 依赖的授权项                                     |
  |:---|:---|:---|:---|:---|:---|
  | vpc:subnets:create  | Write | subnet \*   | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | -  | -  |
  | vpc:subnets:create  | Write | vpc \*      | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)  - vpc:VpcId                                                                                              | -  | -  |
  | vpc:subnets:create  | Write | -           | - vpc:AvailabilityZone  - vpc:SubnetIpv6Enable  - [g:RequestTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)  - [g:TagKeys](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)   | -  | -  |
     
  
 
#### URI
POST /v1/{project_id}/subnets
参数说明请参见[表1]。
 表1参数说明 
| 名称         | 是否必选 | 说明                                                                                 |
|:---|:---|:---|
| project_id | 是    | 项目ID，获取项目ID请参见[获取项目ID](https://support.huaweicloud.com/api-vpc/vpc_api_0011.html)。 |
   
#### 请求参数
表2请求参数 
| 名称     | 是否必选 | 参数类型                                               | 说明                                            |
|:---|:---|:---|:---|
| subnet | 是    | [subnet] object | [subnet对象] |
   
 表3subnet对象 
| 名称                                   | 是否必选 | 参数类型                                                                      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| name                                 | 是    | String                                                                    | - 功能说明：子网名称  - 取值范围：1-64个字符，支持数字、字母、中文字符、_(下划线)、-（中划线）、.（点）                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| description                          | 否    | String                                                                    | - 功能说明：子网描述  - 取值范围：0-255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| cidr                                 | 是    | String                                                                    | - 功能说明：子网的网段  - 取值范围：必须在vpc对应cidr范围内  - 约束：必须是cidr格式。掩码长度不能大于29                                                                                                                                                                                                                                                                                                                                                                                          |
| gateway_ip                           | 是    | String                                                                    | - 功能说明：子网的网关  - 取值范围：子网网段中的IP地址  - 约束：必须是ip格式                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ipv6_enable                          | 否    | Boolean                                                                   | - 功能说明：是否开启IPv6功能  - 取值范围：true（开启），false（关闭）  - 约束：不填时默认为false                                                                                                                                                                                                                                                                                                                                                                                                   |
| dhcp_enable                          | 否    | Boolean                                                                   | - 功能说明：子网是否开启dhcp功能  - 取值范围：true（开启），false（关闭）  - 约束：不填时默认为true。当设置为false时，会导致新创建的ECS无法获取IP地址，Cloud-init无法注入账号密码，请谨慎操作。                                                                                                                                                                                                                                                                                                                           |
| primary_dns                          | 否    | String                                                                    | - 功能说明：子网dns服务器地址1  - 约束：ip格式，不支持IPv6地址。不填时，默认为空   内网DNS地址请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html) 可以通过[查询名称服务器列表](https://support.huaweicloud.com/api-dns/dns_api_69001.html)查看DNS服务器的地址。                                                                                                                                                                                                                                                          |
| secondary_dns                        | 否    | String                                                                    | - 功能说明：子网dns服务器地址2  - 约束：ip格式，不支持IPv6地址。不填时，默认为空。 若只填secondary_dns，不填primary_dns，会自动把值填入primary_dns。 只有一个dns服务器地址时，只显示primary_dns，不显示secondary_dns。    内网DNS地址请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html) 可以通过[查询名称服务器列表](https://support.huaweicloud.com/api-dns/dns_api_69001.html)查看DNS服务器的地址。                                                            |
| dnsList                              | 否    | Array of strings                                                          | - 功能说明：子网dns服务器地址的集合；如果想使用两个以上dns服务器，请使用该字段  - 约束：是子网dns服务器地址1跟子网dns服务器地址2的合集的父集，不支持IPv6地址。不填时，默认为空   内网DNS地址请参见[华为云提供的内网DNS地址是多少？](https://support.huaweicloud.com/dns_faq/dns_faq_002.html) 可以通过[查询名称服务器列表](https://support.huaweicloud.com/api-dns/dns_api_69001.html)查看DNS服务器的地址。                                                                                                                                                                                                        |
| availability_zone                    | 否    | String                                                                    | - 功能说明：子网所在的可用区标识，从终端节点获取，参考[终端节点](https://support.huaweicloud.com/api-vpc/zh-cn_topic_0173364201.html#zh-cn_topic_0173364201__section11738171116416)  - 约束：仅标识创建子网时指定的可用区，不会限制子网的可用区范围。不填时，默认为空。                                                                                                                                                                                                                                                                                                                                       |
| vpc_id                               | 是    | String                                                                    | 子网所在VPC标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| enable_network_address_usage_metrics | 否    | Boolean                                                                   | - 功能说明：是否开启当前子网的IPv4地址使用量指标监控。  - 取值范围： - true：开启  - false：不开启                                                                                                                                                                                                                                                                            |
| extra_dhcp_opts                      | 否    | Array of [extra_dhcp_opt] objects | 子网配置的NTP地址或租约时间，详情请参见[extra_dhcp_opt对象]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| tags                                 | 否    | Array of Strings                                                          | - 功能说明：子网资源标签。创建子网时，给子网添加资源标签。  - 取值范围：最大10个标签 - key：标签名称。不能为空，长度不超过128个字符(当前控制台操作key长度不超过36个字符)，由英文字母、数字、下划线、中划线、中文字符组成，同一资源的key值不能重复。  - value：标签值。长度不超过255个字符(当前控制台操作value长度不超过43个字符)，由英文字母、数字、下划线、点、中划线、中文字符组成。    - 格式：\[key\*value\]，每一个标签的key和value之间用\*连接   |
   
 表4extra_dhcp_opt对象 
| 名称        | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| opt_value | 否    | String | - 功能说明：子网配置的NTP地址、DNS域名或租约到期时间。  - 约束： opt_name配置为"ntp"，则表示是子网ntp地址，目前只支持IPv4地址，每个IP地址以逗号隔开，IP地址个数不能超过4个，不能存在相同地址。 opt_name配置为"domainname"，则该值表示是DNS配置的域名，用于向DNS服务器获取IP地址。域名只能由字母，数字，中划线组成，中划线不能在开头或末尾。域名至少包含两个字符串，单个字符串不超过63个字符，字符串间以点分隔。域名长度不超过254个字符。 opt_name配置为"addresstime"，则该值表示是IPv4子网租约到期时间，取值格式有两种，取-1，表示无限租约；数字+h，数字范围是1\~175200，比如5h，默认值为87600h。 opt_name配置为"ipv6_addresstime"，则该值表示是IPv6子网租约到期时间，取值格式有两种，取-1，表示无限租约；数字+h，数字范围是1\~175200，比如5h，默认值为2h。 该字段为null表示删除该子网的NTP地址、DNS域名或租约到期时间的配置，不能为" "(空字符串)。    |
| opt_name  | 是    | String | - 功能说明：子网配置的NTP地址、DNS域名或租约到期时间的名称。  - 约束：目前只支持填写字符串"ntp"、"domainname"、"addresstime"或"ipv6_addresstime"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
#### 请求示例
- 创建一个子网，所在vpc的id为3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85，命名为subnet，设置cidr为192.168.20.0/24，网关IP为192.168.20.1。
  ```
  POST https://{Endpoint}/v1/{project_id}/subnets
  {
      "subnet": {
          "name": "subnet",
          "description": "",
          "cidr": "192.168.20.0/24",
          "gateway_ip": "192.168.20.1",
          "ipv6_enable": true,
          "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",
          "enable_network_address_usage_metrics": false,
          "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
          "extra_dhcp_opts": [
              {
                  "opt_value": "10.100.0.33,10.100.0.34",
                  "opt_name": "ntp"
              },
              {
                  "opt_value": "24h",
                  "opt_name": "addresstime"
              },
              {
                  "opt_value": "2h",
                  "opt_name": "ipv6_addresstime"
              }
          ]
      }
  }
  ```
  
 
#### 响应参数
表5响应参数 
| 名称     | 参数类型                                               | 说明                                            |
|:---|:---|:---|
| subnet | [subnet] object | [subnet对象] |
   
 表6subnet对象 
| 名称                                   | 参数类型                                                                     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| id                                   | String                                                                   | uuid形式的一个资源标识                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| name                                 | String                                                                   | - 功能说明：子网名称  - 取值范围：1-64个字符，支持数字、字母、中文字符、_(下划线)、-（中划线）、.（点）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description                          | String                                                                   | - 功能说明：子网描述  - 取值范围：0-255个字符，不能包含"\<"和"\>"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| cidr                                 | String                                                                   | - 功能说明：子网的网段  - 取值范围：必须在vpc对应cidr范围内  - 约束：必须是cidr格式。掩码长度不能大于28                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| gateway_ip                           | String                                                                   | - 功能说明：子网的网关  - 取值范围：子网网段中的IP地址  - 约束：必须是ip格式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ipv6_enable                          | Boolean                                                                  | 是否开启IPv6功能                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| cidr_v6                              | String                                                                   | IPv6子网的网段，如果子网为IPv4子网，则不返回此参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| gateway_ip_v6                        | String                                                                   | IPv6子网的网关，如果子网为IPv4子网，则不返回此参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| dhcp_enable                          | Boolean                                                                  | 子网是否开启dhcp功能                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| primary_dns                          | String                                                                   | - 功能说明：子网dns服务器地址1  - 约束：ip格式，不支持IPv6地址。不填时，默认为空                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| secondary_dns                        | String                                                                   | - 功能说明：子网dns服务器地址2  - 约束：ip格式，不支持IPv6地址。不填时，默认为空。 若只填secondary_dns，不填primary_dns，会自动把值填入primary_dns。 只有一个dns服务器地址时，只显示primary_dns，不显示secondary_dns。                                                                                                                                                                                                                                                                                                                                                                                     |
| dnsList                              | Array of strings                                                         | - 功能说明：子网dns服务器地址的集合；如果想使用两个以上dns服务器，请使用该字段  - 约束：是子网dns服务器地址1跟子网dns服务器地址2的合集的父集，不支持IPv6地址。不填时，默认为空                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| availability_zone                    | String                                                                   | - 功能说明：子网所在的可用区标识，从终端节点获取，参考[终端节点](https://support.huaweicloud.com/api-vpc/zh-cn_topic_0173364201.html#zh-cn_topic_0173364201__section11738171116416)  - 约束：仅标识创建子网时指定的可用区，不会限制子网的可用区范围。不填时，默认为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| vpc_id                               | String                                                                   | 子网所在VPC标识                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| status                               | String                                                                   | - 功能说明：子网的状态。  - 取值范围：ACTIVE,UNKNOWN,ERROR - ACTIVE表示子网已挂载到VPC上  - UNKNOWN表示子网还未挂载到VPC上  - ERROR表示子网状态故障    - 创建子网的流程为：先创建子网，然后在线程中将子网挂载在VPC上。 在并发场景下，由于使用相同的cidr来创建子网，底层发生校验后使得挂载VPC失败，回滚创建子网的过程，子网创建失败。   - 创建子网接口返回时，响应体中的status为UNKNOWN，线程中子网挂载到VPC上后，子网的status变为ACTIVE。   |
| neutron_network_id                   | String                                                                   | 对应网络（OpenStack Neutron接口）id                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| neutron_subnet_id                    | String                                                                   | 对应子网（OpenStack Neutron接口）id                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| neutron_subnet_id_v6                 | String                                                                   | 对应IPv6子网（OpenStack Neutron接口）id，如果子网为IPv4子网，则不返回此参数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| enable_network_address_usage_metrics | Boolean                                                                  | - 功能说明：是否开启当前子网的IPv4地址使用量指标监控。  - 取值范围： - true：开启  - false：不开启                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| available_ip_address_count           | Integer                                                                  | - 功能说明：子网内剩余可用的IPv4地址数量。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| extra_dhcp_opts                      | Array of [extra_dhcp_opt] objects | 子网配置的NTP地址或租约时间，详情请参见[表7]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| scope                                | String                                                                   | - 功能说明：子网作用域（边缘云场景）。  - 取值范围： - center：表示作用域为中心。  - {publicBorderGroup}：表示作用域为具体的公网边界组。公网边界组限制子网的可用区范围，可关联多个边缘可用区，通过[查询可用区列表](https://support.huaweicloud.com/api-ecs/ecs_02_1501.html)获取。                                                                                                                                                                                                                                                                                                                                                                                        |
| tenant_id                            | String                                                                   | - 功能说明：项目ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| created_at                           | String                                                                   | - 功能说明：资源创建时间，UTC时间  - 格式：yyyy-MM-ddTHH:mm:ss                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| updated_at                           | String                                                                   | - 功能说明：资源更新时间，UTC时间  - 格式：yyyy-MM-ddTHH:mm:ss                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
 表7extra_dhcp_opt对象 
| 名称        | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| opt_value | 否    | String | - 功能说明：子网配置的NTP地址、DNS域名或租约到期时间。  - 约束： opt_name配置为"ntp"，则表示是子网ntp地址，目前只支持IPv4地址，每个IP地址以逗号隔开，IP地址个数不能超过4个，不能存在相同地址。 opt_name配置为"domainname"，则该值表示是DNS配置的域名，用于向DNS服务器获取IP地址。域名只能由字母，数字，中划线组成，中划线不能在开头或末尾。域名至少包含两个字符串，单个字符串不超过63个字符，字符串间以点分隔。域名长度不超过254个字符。 opt_name配置为"addresstime"，则该值表示是IPv4子网租约到期时间，取值格式有两种，取-1，表示无限租约；数字+h，数字范围是1\~175200，比如5h，默认值为87600h。 opt_name配置为"ipv6_addresstime"，则该值表示是IPv6子网租约到期时间，取值格式有两种，取-1，表示无限租约；数字+h，数字范围是1\~175200，比如5h，默认值为2h。 该字段为null表示删除该子网的NTP地址、DNS域名或租约到期时间的配置，不能为" "(空字符串)。    |
| opt_name  | 是    | String | - 功能说明：子网配置的NTP地址、DNS域名或租约到期时间的名称。  - 约束：目前只支持填写字符串"ntp"、"domainname"、"addresstime"或"ipv6_addresstime"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 响应示例
```
{
    "subnet": {
        "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
        "name": "subnet",
        "description": "",
        "cidr": "192.168.20.0/24",
        "dnsList": [
            "114.xx.xx.114",
            "114.xx.xx.115"
        ],
        "status": "UNKNOWN",
        "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
        "gateway_ip": "192.168.20.1",
        "ipv6_enable": true, 
        "cidr_v6": "2001:db8:a583::/64",
        "gateway_ip_v6": "2001:db8:a583::1",
        "dhcp_enable": true,
        "primary_dns": "114.xx.xx.114",
        "secondary_dns": "114.xx.xx.115",
        "availability_zone": "aa-bb-cc",
        "neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
        "neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12",
        "neutron_subnet_id_v6": "e0fa7de1-a6e2-44c9-b052-b9d8cebe93c4",  
        "enable_network_address_usage_metrics": false,
        "available_ip_address_count": 251,
        "extra_dhcp_opts": [
            {
                "opt_value": "10.100.0.33,10.100.0.34",
                "opt_name": "ntp"
            },
            {
                "opt_value": "24h",
                "opt_name": "addresstime"
            },
            {
                "opt_value": "2h",
                "opt_name": "ipv6_addresstime"
            }
        ],
        "tenant_id": "087679f0aa80d32a2f4ec0172f5e902b",
        "created_at": "2022-12-15T02:42:07",
        "updated_at": "2022-12-15T02:42:07"
    }
}
```
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-vpc/vpc_api_0002.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-vpc/vpc_api_0003.html)。
