> 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/ipt/ip-transit/createiptransit.md).

# CreateIPTransit

## 1. 接口描述

本接口(CreateIPTransit)用于创建IP Transit。

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

* 因设备原因部分区域只支持手动交付，交付周期会在1～3d完成。可以通过 [DescribeIPTransitDatacenters](https://github.com/zenlayer/zenlayercloud-api-doc-cn/tree/main/ipt/ip-transit/describe-iptransit-datacenters.md) 的 **deliveryType**`字段来判断是否是极速交付。`
* 本接口为异步接口，当创建请求下发成功后会返回一个IP Transit的`ID`，此时创建操作并未立即完成。在此期间实例的状态将会处于 **`DEPLOYING`**，创建结果可以通过调用DescribeIpTransit接口查询，如果状态(`iptStatus`)由 **`DEPLOYING`** (创建中)变为 **`AVAILABLE`** (可用)，则代表创建成功，如果状态变为 **`FAILED`** (失败)，则代表创建失败，创建过程中不可对二层网络专线进行任何操作。
* `internetType=ByInstanceBandwidth95`（95 计费）时须传 `commitBandwidth`；若同时传了 `bandwidth`，必须大于等于 `commitBandwidth`，否则返回 `INVALID_RIPT_BANDWIDTH_LESS_THAN_COMMIT` 错误。
* 传 `haConfig` 创建高可用 IP Transit 时必须同时传 `iptDcId` 和 `bfd`；缺少 `iptDcId` 返回 `MISSING_PARAMETER` 错误，缺少或不完整的 `bfd` 返回 `INVALID_RIPT_HA_BFD_REQUIRED` 错误；高可用 IP Transit 创建后不允许关闭 BFD。
* `routingType=BGP` 时须传 `bgp`，且 `bgp.asn` 必传；`bgp.asnList`、`bgp.asSetList` 二选一（至少传一个）。缺少 `bgp`/`bgp.asn` 返回 `MISSING_PARAMETER` 错误，`asnList`/`asSetList` 都未传返回 `INVALID_RIPT_BGP_ASN_LIST_MISSING` 错误，ASN 不在您名下返回 `INVALID_RIPT_BGP_ASN` 错误。
* `bgp.tier` 为 BGP 档位：`PREMIUM`（优质，缺省）/ `STANDARD`（普通）。普通档仅在部分数据中心开放（见 [DescribeIPTransitDatacenters](https://github.com/zenlayer/zenlayercloud-api-doc-cn/tree/main/ipt/ip-transit/describe-iptransit-datacenters.md) 的 `availableBgpTiers`），仅支持 `internetType=ByBandwidth`（固定带宽），且 `bandwidth` 只能取该数据中心的固定档位值（如 10000/50000/100000，单位 Mbps；传入非档位值时 `INVALID_RIPT_BANDWIDTH_NOT_IN_TIER_LEVELS` 错误信息中会返回完整的可选档位列表）；不满足分别返回 `INVALID_RIPT_BGP_TIER_NOT_SUPPORTED`、`INVALID_RIPT_INTERNET_TYPE_FOR_STANDARD_BGP`、`INVALID_RIPT_BANDWIDTH_NOT_IN_TIER_LEVELS` 错误。`zbgRegionId` 非空（基于 router 的 IP Transit）时不支持 `STANDARD`。
* 两档对应的 Zenlayer 侧（对端）AS 号不同：普通 BGP 为 `29752`，优质 BGP 为 `21859`，请以 [DescribeIPTransitDatacenters](https://github.com/zenlayer/zenlayercloud-api-doc-cn/tree/main/ipt/ip-transit/describe-iptransit-datacenters.md) 返回的 `peerAsns` 为准配置您本地路由器的 BGP 邻居。
  {% endhint %}

## 2. 请求参数

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

| 参数名称                      | 必选 | 类型                                                                                       | 描述                                                                                                                                                                                                                                                 |
| ------------------------- | -- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| peerPortId                | 是  | String                                                                                   | 对端数据中心端口 ID。                                                                                                                                                                                                                                       |
| peerPortVlan              | 是  | Integer                                                                                  | 对端数据中心端口 VLAN。                                                                                                                                                                                                                                     |
| routingType               | 是  | [IPTransitRouteType](/api-reference/cn/ipt/datastructure.md#iptransitroutetype)          | 路由模式。                                                                                                                                                                                                                                              |
| iptName                   | 否  | String                                                                                   | IP Transit名称。                                                                                                                                                                                                                                      |
| iptDescription            | 否  | String                                                                                   | IP Transit描述。                                                                                                                                                                                                                                      |
| iptDcId                   | 否  | String                                                                                   | <p>本端数据中心 ID。</p><p>为空代表本地连接（Local IPT）。</p><p>传 <code>haConfig</code> 创建高可用 IP Transit 时必传。</p>                                                                                                                                                   |
| internetType              | 否  | [InternetType](/api-reference/cn/ipt/datastructure.md#internettype)                      | <p>网络计费方式。</p><p>默认值：ByBandwidth</p>                                                                                                                                                                                                               |
| commitBandwidth           | 否  | Integer                                                                                  | <p>保底带宽（Mbps）。</p><p>95 计费（internetType=ByInstanceBandwidth95）下必传。</p><p>可选值范围：\[5, +)</p>                                                                                                                                                         |
| bandwidth                 | 否  | Integer                                                                                  | <p>带宽（Mbps）。</p><p>95 计费（internetType=ByInstanceBandwidth95）下必须大于等于 <code>commitBandwidth</code>。</p><p>可选值范围：\[5, +)</p>                                                                                                                          |
| publicIPv4BlockSize       | 否  | Array of Integer                                                                         | <p>公网 IPv4 地址段大小列表。</p><p>与 <code>publicIpList</code> 互斥，优先级更低。</p>                                                                                                                                                                                |
| bfd                       | 否  | [BFDConfig](/api-reference/cn/ipt/datastructure.md#bfdconfig)                            | <p>BFD 配置。</p><p>传 <code>haConfig</code> 创建高可用 IP Transit 时必传，且后续不允许关闭。</p>                                                                                                                                                                        |
| resourceGroupId           | 否  | String                                                                                   | <p>资源组 ID。</p><p>不传则放入默认资源组。</p>                                                                                                                                                                                                                   |
| bgp                       | 否  | [RiptBgpConfig](/api-reference/cn/ipt/datastructure.md#riptbgpconfig)                    | BGP相关配置。                                                                                                                                                                                                                                           |
| tags                      | 否  | [TagAssociation](/api-reference/cn/ipt/datastructure.md#tagassociation)                  | <p>创建CIDR时关联的标签。</p><p>注意：关联<code>标签键</code>不能重复。</p>                                                                                                                                                                                              |
| publicIpList              | 否  | Array of [IPTransitIpRequest](/api-reference/cn/ipt/datastructure.md#iptransitiprequest) | <p>公网 IP 分配列表。</p><p>与 <code>publicIPv4BlockSize</code> 互斥，优先级更高。</p><p>传此字段时 <code>publicIPv4BlockSize</code> 被忽略。</p>                                                                                                                            |
| zbgRegionId               | 否  | String                                                                                   | <p>ZBG 接入节点 ID。</p><p>非空时走 Router RIPT 流程，与 <code>haConfig</code> 互斥。</p><p>调用 <a href="/api-reference/cn/zec/vpc-network/border-gateway/describeinterconnectbordergatewayregions.md">DescribeInterconnectBorderGatewayRegions</a> 以获取可用的节点信息。</p> |
| haConfig                  | 否  | [IPTransitHaConfig](/api-reference/cn/ipt/datastructure.md#iptransithaconfig)            | <p>HA 高可用配置。</p><p>非空时走 HA 创建流程，与 <code>zbgRegionId</code> 互斥，且此时 <code>iptDcId</code> 和 <code>bfd</code> 均必传。</p>                                                                                                                                 |
| publicInterconnectNetmask | 否  | Integer                                                                                  | <p>公网互联块掩码。</p><p>非空启用公网地址互联，仅 BGP / Static 路由支持。</p><p>合法值见 <a href="/api-reference/cn/ipt/ip-transit/describeiptransitdatacenters.md">DescribeIPTransitDatacenters</a> 响应中 availableRoutingTypes\[].publicInterconnectNetmasks。</p>              |

## 3. 响应结果

| 参数名称        | 类型     | 描述                                                       |
| ----------- | ------ | -------------------------------------------------------- |
| requestId   | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |
| orderNumber | String | 订单号。                                                     |
| iptId       | String | IP Transit ID。                                           |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 创建一条IP Transit，路由设置成静态路由，公网地址使用/28的CIDR。并且配置BFD。**

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

Request：
{
  "iptName": "test_IPT",
  "iptDescription": "test_ipt_desc",
  "peerPortId": "1170556726903057557",
  "peerPortVlan": 1042,
  "internetType": "ByBandwidth",
  "bandwidth": 50,
  "iptDcId": "AMS1",
  "routingType": "Static",
  "publicIPv4BlockSize": [
    28
  ],
  "bfd": {
    "bfdTxInterval": 100,
    "bfdRxInterval": 100,
    "bfdMultiplier": 10
  }
}


Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
     "requestId": "T98044459-95B2-477E-9A2F-00253A70CC6E",
     "iptId": "your-ipt-id",
     "orderNumber": "xxxx"
  }
}
```

**2. 创建一条 IP Transit，使用 publicIpList 同时分配一个 /28 IPv4 块和一个 /64 IPv6 块。**

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

Request：
{
  "iptName": "test_IPT_v4v6",
  "peerPortId": "1170556726903057557",
  "peerPortVlan": 1042,
  "internetType": "ByBandwidth",
  "bandwidth": 100,
  "iptDcId": "AMS1",
  "routingType": "BGP",
  "publicIpList": [
    { "netmask": 28, "ipType": "IPV4", "ipNetworkType": "BGP_IP", "amount": 2 },
    { "netmask": 64, "ipType": "IPV6", "ipNetworkType": "BGP_IP" }
  ]
}

Response：
{
  "requestId": "T12345678-ABCD-1234-EFGH-000000000010",
  "response": {
    "requestId": "T12345678-ABCD-1234-EFGH-000000000010",
    "iptId": "your-ipt-id",
    "orderNumber": "xxxx"
  }
}
```

**3. 创建一条普通 BGP（STANDARD）档位的 IP Transit，固定带宽 10G。**

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

Request：
{
  "iptName": "test_IPT_standard_bgp",
  "peerPortId": "1170556726903057557",
  "peerPortVlan": 1043,
  "internetType": "ByBandwidth",
  "bandwidth": 10000,
  "iptDcId": "SIN1",
  "routingType": "BGP",
  "publicIPv4BlockSize": [
    28
  ],
  "bgp": {
    "routeType": "ALL_ROUTES",
    "tier": "STANDARD",
    "asn": 64500,
    "asnList": [
      64500
    ]
  }
}

Response：
{
  "requestId": "T12345678-ABCD-1234-EFGH-000000000011",
  "response": {
    "requestId": "T12345678-ABCD-1234-EFGH-000000000011",
    "iptId": "your-ipt-id",
    "orderNumber": "xxxx"
  }
}
```

{% 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状态码 | 错误码                                                 | 说明                                              |
| ------- | --------------------------------------------------- | ----------------------------------------------- |
| 404     | INVALID\_RIPT\_NOT\_SELLABLE                        | 该数据中心不支持远程 IP 隧道。                               |
| 400     | INVALID\_RIPT\_IP\_INVALID\_RANGE                   | 公网 IP 掩码不在有效范围内。                                |
| 400     | INVALID\_RIPT\_ROUTING\_TYPE\_MISSING               | 远程 IP 隧道缺少路由类型。                                 |
| 400     | INVALID\_RIPT\_PUBLIC\_IP\_ALLOCATION\_MISSING      | `publicIPv4BlockSize` 与 `publicIpList` 至少需要传一个。 |
| 400     | INVALID\_RIPT\_BANDWIDTH\_LESS\_THAN\_COMMIT        | 95 计费下 `bandwidth` 必须大于等于 `commitBandwidth`。    |
| 404     | INVALID\_RIPT\_BGP\_ASN                             | 一个或多个 ASN 无效。                                   |
| 400     | INVALID\_RIPT\_BGP\_ASN\_LIST\_MISSING              | `bgp.asnList`、`bgp.asSetList` 至少需要传一个。          |
| 400     | INVALID\_RIPT\_BGP\_TIER\_NOT\_SUPPORTED            | 指定的数据中心不支持所选 BGP 档位。                            |
| 400     | INVALID\_RIPT\_INTERNET\_TYPE\_FOR\_STANDARD\_BGP   | 普通 BGP 仅支持固定带宽计费。                               |
| 400     | INVALID\_RIPT\_BANDWIDTH\_NOT\_IN\_TIER\_LEVELS     | 带宽不在普通 BGP 可选档位内。                               |
| 400     | INVALID\_RIPT\_PUBLIC\_INTERCONNECT\_NOT\_SUPPORTED | 公网互联地址仅支持静态或 BGP 路由模式。                          |
| 400     | INVALID\_RIPT\_PUBLIC\_INTERCONNECT\_NETMASK        | 公网互联掩码无效，仅支持 30 或 31。                           |
| 400     | INVALID\_RIPT\_HA\_DELIVERY\_TYPE\_NOT\_AUTO        | HA 仅支持自动开通类型。                                   |
| 400     | INVALID\_RIPT\_HA\_PORT\_NOT\_SAME\_CITY            | 主备数据中心端口必须在同一城市。                                |
| 400     | INVALID\_RIPT\_HA\_ROUTING\_TYPE                    | HA 仅支持静态路由。                                     |
| 400     | INVALID\_RIPT\_HA\_DUPLICATE\_PORT                  | 主备数据中心端口不能是同一个数据中心端口。                           |
| 409     | INVALID\_RIPT\_HA\_PORT\_NOT\_UP                    | HA 数据中心端口连通状态不是 UP。                             |
| 400     | INVALID\_RIPT\_HA\_PORT\_CATEGORY\_MISMATCH         | 主备数据中心端口规格必须一致。                                 |
| 400     | INVALID\_RIPT\_HA\_BFD\_REQUIRED                    | 创建高可用 IP Transit 时必须传入 BFD 配置。                  |
| 403     | OPERATION\_DENIED\_ZBG\_RIPT\_SAME\_CITY            | ZBG 与 IPT 不能在同一城市。                              |
