> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/cn/compute/zec/vnic/createnetworkinterface.md).

# CreateNetworkInterface

## 1. 接口描述

本接口(CreateNetworkInterface)用于创建一张辅助网卡。

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

* 此操作为异步接口，调用成功后，辅助网卡并未立刻创建成功， 需要等待网卡的状态从`PENDING`到`Available`则为创建成功，如果状态变为`CREATE_FAILED`则创建失败。
* 保底流量包大小仅对计费周期为月有效。
* `eipIds` 绑定的是网段(Block)型EIP时，`eipBindType` 只能使用`Passthrough`，必须显式指定（不能省略，省略等价于`FullNat`会被拒绝）。
  {% endhint %}

## 2. 请求参数

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

| 参数名称               | 必选 | 类型                                                                                      | 描述                                                                                                                                                     |
| ------------------ | -- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name               | 是  | String                                                                                  | <p>网卡名称。</p><p>范围2到63个字符。</p><p>仅支持输入字母、数字、-/\_和英文句点(.)。</p><p>且必须以数字或字母开头和结尾。</p>                                                                     |
| subnetId           | 是  | String                                                                                  | 子网的ID。                                                                                                                                                 |
| nicStackType       | 否  | [SubnetStackType](/api-reference/cn/compute/zec/datastructure.md#subnetstacktype)       | <p>网卡的IP堆栈类型。</p><p>如果不指定，会根据子网堆栈类型决定：如果子网是V4,则网卡为V4，如果子网是V6,则网卡为V6。</p><p>如果网卡要V4\&V6，请指定该参数。</p>                                                     |
| resourceGroupId    | 否  | String                                                                                  | 网卡创建所在的资源组ID，如不指定则放入默认资源组。                                                                                                                             |
| securityGroupId    | 否  | String                                                                                  | <p>指定安全组ID。</p><p>目前一个网卡只能关联1个安全组。</p><p>如果未指定，会默认用VPC关联下的安全组。</p>                                                                                     |
| internetChargeType | 否  | [InternetChargeType](/api-reference/cn/compute/zec/datastructure.md#internetchargetype) | <p>公网IPv6的网络计费方式。</p><p>当子网的堆栈类型包括V6且为公网时，需要指定。</p>                                                                                                    |
| bandwidth          | 否  | Integer                                                                                 | <p>公网IPv6的带宽限速。</p><p>单位Mbps。</p><p>当子网的堆栈类型包括V6且为公网时，需要指定。</p><p>可选值范围：\[1, +)</p>                                                                    |
| packageSize        | 否  | Float                                                                                   | <p>公网IPv6的流量包大小。</p><p>单位为TB。</p><p>值要求为0或0.1的倍数。</p><p>当子网的堆栈类型包括V6且为公网时，且网络计费方式是流量计费(<code>ByTrafficPackage</code>)需要指定。</p><p>可选值范围：\[0.0, +)</p>   |
| clusterId          | 否  | String                                                                                  | <p>公网IPv6所指定的共享带宽包ID。</p><p>当子网的堆栈类型包括V6且为公网时，且网络计费方式是共享带宽包计费(<code>BandwidthCluster</code>)需要指定。</p>                                                  |
| eipBindType        | 否  | [BindType](/api-reference/cn/compute/zec/datastructure.md#bindtype)                     | <p>公网IP的绑定模式。</p><p>当分配公网IP时需要指定。</p><p>绑定网段(Block)型EIP时只能使用<code>Passthrough</code>，必须显式指定（不能省略，省略等价于<code>FullNat</code>会被拒绝）。</p><p>默认值：FullNat</p> |
| eipIds             | 否  | Array of String                                                                         | <p>分配已有的EIP到网卡上。</p><p>IP数量必须和创建的网卡数量一致。</p><p>请确保创建的网卡<code>ipStackType</code> 包含<code>IPv4</code>。</p>                                               |
| marketingOptions   | 否  | [MarketingInfo](/api-reference/cn/compute/zec/datastructure.md#marketinginfo)           | 市场营销相关的选项。                                                                                                                                             |
| tags               | 否  | [TagAssociation](/api-reference/cn/compute/zec/datastructure.md#tagassociation)         | <p>创建网卡时关联的标签。</p><p>注意：·关联<code>标签键</code>不能重复。</p>                                                                                                   |

## 3. 响应结果

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

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 在IPv4堆栈类型的子网下创建一张辅助网卡。**

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

Request：
{
  "name": "Test-NIC",
  "subnetId": "<subnetId>"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>"
  }
}
```

**2. 在IPv4\&IPv6堆栈类型的子网下创建一张辅助网卡。且带有公网IPv6。该公网IPv6的计费方式为带宽包计费。**

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

Request：
{
  "name": "Test-NIC",
  "subnetId": "<subnetId>",
  "internetChargeType": "BandwidthCluster",
  "bandwidth": 100,
  "clusterId": "<clusterId>"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

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

## 6. 错误码

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

| HTTP状态码 | 错误码                                                            | 说明                        |
| ------- | -------------------------------------------------------------- | ------------------------- |
| 400     | INVALID\_EIP\_BINDING\_MODE\_UNSUPPORTED                       | EIP Block不支持NAT绑定模式。      |
| 404     | INVALID\_EIP\_NOT\_FOUND                                       | EIP不存在。                   |
| 404     | INVALID\_INSTANCE\_NOT\_FOUND                                  | 服务器实例不存在。                 |
| 400     | INVALID\_IP\_BROADCAST\_ADDRESS                                | IP为广播地址不可用。               |
| 400     | INVALID\_IP\_FIRST\_ADDRESS                                    | IP为网关地址不可用。               |
| 400     | INVALID\_IP\_NETWORK\_ADDRESS                                  | IP为网络地址不可用。               |
| 400     | INVALID\_IP\_OUT\_OF\_RANGE                                    | IP地址不合法，不属于CIDR范围。        |
| 409     | INVALID\_NIC\_INSTANCE\_REGION\_MISMATCH                       | 实例和网卡不在同一个节点。             |
| 400     | INVALID\_NIC\_IPV6\_EXISTS                                     | 网卡已绑定IPv6，无法操作。           |
| 400     | INVALID\_PARAMETER\_BANDWIDTH\_ERROR                           | 带宽限速值超过最小限制。              |
| 400     | INVALID\_PARAMETER\_BANDWIDTH\_EXCEED                          | 带宽限速值超过最大限制。              |
| 400     | INVALID\_PARAMETER\_FLOW\_TRAFFIC\_PACKAGE                     | 流量包大小不合法。                 |
| 400     | INVALID\_PARAMETER\_TRAFFIC\_PACKAGE\_EXCEED                   | 流量包大小超过最大限制。              |
| 400     | INVALID\_REGION\_NOT\_ON\_SALE                                 | 指定的区域未开售。                 |
| 404     | INVALID\_SECURITY\_GROUP\_NOT\_FOUND                           | 安全组不存在。                   |
| 409     | INVALID\_SUBNET\_IPV4\_INSUFFICIENT                            | Subnet下可用的IPv4数量不足。       |
| 409     | INVALID\_SUBNET\_IPV6\_INSUFFICIENT                            | Subnet下可用的IPv6数量不足。       |
| 404     | INVALID\_SUBNET\_NOT\_FOUND                                    | 子网不存在。                    |
| 409     | INVALID\_SUBNET\_PRIVATE\_IPV4\_IN\_USED                       | 内定的内网IP已经被使用。             |
| 400     | OPERATION\_DENIED\_EIP\_IS\_DEFAULT                            | 默认公网IP无法解绑。               |
| 400     | OPERATION\_DENIED\_EIP\_IS\_NOT\_UN\_ASSIGN                    | EIP 已被占用（非未绑定状态），无法绑定。    |
| 400     | OPERATION\_DENIED\_EIP\_NIC\_NOT\_ADAPTER                      | 指定的网卡数量与需要创建的EIP数量不一致。    |
| 400     | OPERATION\_DENIED\_EIP\_NOT\_ASSIGNED                          | EIP状态未绑定。                 |
| 400     | OPERATION\_DENIED\_INSTANCE\_NIC\_NOT\_ADAPTER                 | 指定的实例数量与需要创建的网卡数量不一致。     |
| 400     | OPERATION\_DENIED\_INSTANCE\_STATUS\_NOT\_SUPPORT              | 实例状态不允许操作。                |
| 400     | OPERATION\_DENIED\_INTERNET\_CHARGE\_TYPE\_NOT\_SUPPORT        | IP网络计费方式不支持。              |
| 400     | OPERATION\_DENIED\_STACK\_TYPE\_NOT\_SUPPORT                   | 堆栈类型不支持。                  |
| 400     | OPERATION\_DENIED\_SUBNET\_TYPE\_NOT\_SUPPORT\_IPV4            | 子网堆栈类型不包括IPv4。            |
| 409     | INVALID\_NIC\_EIP\_REGION\_MISMATCH                            | 网卡和EIP不在同一个节点。            |
| 400     | OPERATION\_DENIED\_FLOW\_PACKAGE\_NOT\_SUPPORTED\_HOUR\_PERIOD | 当前产品周期为小时计费，不支持设置保底流量包大小。 |
