# CreateSubnet

## 1. 接口描述

本接口(CreateSubnet)用于创建子网。

{% hint style="info" %}
**注意事项**

* 同一个VPC能创建的子网资源个数也是有限制的，每个子网的的CIDR网段必须属于VPC的CIDR网段内。
* 同一个VPC内,子网的CIDR地址段不可有重叠。
* 调用[`DescribeSubnetRegion`](https://docs.console.zenlayer.com/api-reference/cn/compute/zec/vpc-network/describesubnetregions)接口查询子网区域是否支持创建。
  {% endhint %}

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称             | 必选 | 类型                                                                                                          | 描述                                                                                                                                                                                      |
| ---------------- | -- | ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| vpcId            | 是  | String                                                                                                      | 需要添加子网的VPC ID。                                                                                                                                                                          |
| name             | 是  | String                                                                                                      | <p>子网名称。</p><p>范围2到63个字符。</p><p>仅支持输入字母、数字、-和英文句点(.)。</p><p>且必须以数字或字母开头和结尾。</p>                                                                                                         |
| regionId         | 是  | String                                                                                                      | 子网所在的节点ID。                                                                                                                                                                              |
| stackType        | 是  | [SubnetStackType](https://docs.console.zenlayer.com/api-reference/cn/compute/datastructure#subnetstacktype) | 子网的IP堆栈类型。                                                                                                                                                                              |
| cidrBlock        | 否  | String                                                                                                      | <p>子网的IPv4 CIDR地址段。</p><p>如果指定堆栈类型<code>stackType</code> 包含 <code>IPv4</code>, 则该字段必填。</p><p>指定的CIDR地址段必须属于VPC的CIDR范围内。</p>                                                             |
| ipv6Type         | 否  | [IPv6Type](https://docs.console.zenlayer.com/api-reference/cn/compute/datastructure#ipv6type)               | <p>IPv6的类型。</p><p>如果指定堆栈类型<code>stackType</code> 包含 <code>IPv6</code>, 则该字段必填。</p>                                                                                                      |
| dhcpOptionsSetId | 否  | String                                                                                                      | 要绑定的DHCP 选项集ID。                                                                                                                                                                         |
| ipv6CidrBlockId  | 否  | String                                                                                                      | <p>公网IPv6 CIDR ID。</p><p>该字段仅当<code>ipv6Type</code>是公网(<code>Public</code>)时允许指定。</p><p>如果不指定，将从系统默认IP池里分配。</p>                                                                         |
| ipv6MaskLength   | 否  | Integer                                                                                                     | <p>分配给虚拟机（VM）的IPv6 CIDR前缀的大小。</p><p>该参数必须与<code>ipv6CidrBlockId</code>参数配合使用。</p><p>当未显式传递时，默认值为96。</p><p>最小必须大于或等于指定<code>ipv6CidrBlockId</code>的前缀，最大不能超过96。</p><p>可选值范围：\[-, 96]</p> |

## 3. 响应结果

| 参数名称      | 类型     | 描述                                                       |
| --------- | ------ | -------------------------------------------------------- |
| requestId | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |
| subnetId  | String | 创建的子网ID。                                                 |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 创建一个子网。堆栈类型为IPv4\_IPv6。IPv6为公网。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: CreateSubnet
<Common Request Params>

Request：
{
  "vpcId": "<vpcId>",
  "regionId": "asia-east-1",
  "stackType": "IPv4_IPv6",
  "ipv6Type": "Public",
  "name": "XXX",
  "cidrBlock": "10.0.0.0/9"
}

Response：
{
  "requestId": "TBFC01FCF-6439-4530-ADBC-16809F0C3E8F",
  "response": {
    "requestId": "TBFC01FCF-6439-4530-ADBC-16809F0C3E8F",
    "subnetId": "xxxx"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](https://docs.console.zenlayer.com/api-reference/cn/api-introduction/toolkit)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](https://docs.console.zenlayer.com/api-reference/cn/api-introduction/instruction/commonerrorcode)

| HTTP状态码 | 错误码                                                | 说明                          |
| ------- | -------------------------------------------------- | --------------------------- |
| 400     | INVALID\_CIDR\_BLOCK\_FORMAT                       | CIDR格式不正确。                  |
| 400     | INVALID\_CIDR\_BLOCK\_NOT\_EMPTY                   | CIDR不能为空。                   |
| 400     | INVALID\_CIDR\_BLOCK\_NOT\_LAN\_IP                 | CIDR网段不是内网IP。               |
| 400     | INVALID\_CIDR\_BLOCK\_STATUS                       | CIDR地址段状态不合法。               |
| 404     | INVALID\_CIDR\_IPV6\_NOT\_FOUND                    | IPv6 CIDR地址块不存在             |
| 400     | INVALID\_CIDR\_IPV6\_ONLY                          | 堆栈类型指定为IPv6,不支持指定IPv4 CIDR。 |
| 400     | INVALID\_CIDR\_REGION\_MISMATCH                    | 子网区域与客户ipv6网段区域不一致。         |
| 404     | INVALID\_DHCP\_OPTIONS\_SET\_NOT\_FOUND            | DHCP选项集不存在。                 |
| 400     | INVALID\_IP\_BROADCAST\_ADDRESS                    | IP为广播地址不可用。                 |
| 400     | INVALID\_MAST\_LENGTH                              | IPv6地址掩码值需大于子网ipv6网段。       |
| 400     | INVALID\_PARAMETER\_SUBNET\_CIDR\_NOT\_BELONG\_VPC | 指定的Subnet不属于指定的VPC。         |
| 400     | INVALID\_PARAMETER\_SUBNET\_IPV6\_TYPE\_NOT\_FOUND | 参数ipv6Type缺失                |
| 404     | INVALID\_REGION\_NOT\_FOUND                        | 指定的可用区不存在。                  |
| 400     | INVALID\_REGION\_NOT\_ON\_SALE                     | 指定的区域未开售。                   |
| 400     | INVALID\_SUBNET\_NETMASK\_MAX\_RANGE               | 子网网掩码位数超过最大值。               |
| 404     | INVALID\_VPC\_NOT\_FOUND                           | VPC不存在。                     |
| 400     | OPERATION\_DENIED\_CIDR\_BLOCK\_IS\_EXIST          | CIDR已经存在。                   |
| 400     | OPERATION\_DENIED\_NO\_AVAILABLE\_CIDR             | 无空余的CIDR地址段。                |
| 400     | OPERATION\_DENIED\_REGION\_NOT\_SUPPORT\_PUB\_IPV6 | 指定的区域不支持公网IPV6。             |
| 400     | OPERATION\_DENIED\_SUBNET\_CIDR\_CONFLICT          | 子网CIDR地址有冲突。                |
| 400     | OPERATION\_DENIED\_VPC\_NOT\_SUPPORT\_PRI\_IPV6    | 指定的VPC不支持内网IPV6。            |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.console.zenlayer.com/api-reference/cn/compute/zec/vpc-network/createsubnet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
