使用子網路

子網路可協助您的網路資料流量從原點到目的地傳輸更有效率的路徑。 您可以使用子網路的網路 ACL 來保護每個子網路內的資源。

開始之前

開始之前,您必須獲指派一個以上 IAM 存取角色,其中包括下列動作 (視任何列出的條件而定)。 您可以移至 使用者 > 使用者> 存取權來檢查您的存取權。

  • is.subnet.subnet.create
  • is.public-gateway.public-gateway.operate (指定 public_gateway 時需要)
  • is.network-acl.network-acl.operate

建立子網路

您可以使用主控台、CLI 或 API 建立子網路。

若您為子網使用 RFC 1918 所定義範圍(10.0.0.0/8172.16.0.0/12192.168.0.0/16 )以外的 IP 範圍,則連接到該子網的實例可能無法連通網際網路的部分區域。 如果您打算設定同時使用 non-RFC-1918 位址,並且也有公共連線(浮動 IP 位址或公共閘道)的 VPC,請務必使用 Delegate-VPC 動作設定自訂路由。

在控制台中建立子網

若要在主控台中建立子網路,請遵循下列步驟:

  1. 從瀏覽器中,開啟 IBM Cloud 主控台

  2. 選擇導航選單圖標,然後點擊基礎設施VPC 圖標 > 網路 > 子網路

  3. 按一下 VPC 子網路清單表格上的建立

  4. 在「地點」部分,請提供以下資訊:

    • 地理:指示您要建立子網路的一般區域。
    • 地區:表示您要建立子網路的區域。
    • :指示要建立子網路的區域。
  5. 請在「詳細資訊」區段中提供以下資訊:

    • 名稱: 輸入子網路的唯一 ID,例如 my-subnet
    • 資源群組:為子網選取一個資源群組。
    • 標籤: 選擇性地新增任何相關標籤以協助將子網路分組。
    • 存取管理標籤: 選擇性地將存取管理標籤新增至資源,以協助組織存取控制關係。 存取權管理標籤唯一支援的格式是 key:value。 如需相關資訊,請參閱 使用標籤控制對資源的存取權
    • 虛擬私有雲:選擇需要建立子網路的VPC。
  6. 在 IP 範圍選擇部分,提供下列資訊:

    • IP 範圍:自動為您的 IP 範圍計算最有效的位置。 如果您想要自訂 IP 範圍而非接受預設選項,請選取不同的位址字首、變更位址數目,或手動輸入 IP 範圍。

    • 位址前綴:選取子網路的基本網路前綴。 這會決定分配子網路 IP 位址的較大 IP 範圍。 從 VPC 內的可用前綴中選擇。

    • IP 位址總數:選擇所需的 IPv4 位址總數。

    • 位址空間:顯示 VPC 中所選前綴的完整 IP 位址範圍。 此範圍定義您可以分配子網路 IP 範圍的界限。

    • 路由表:選擇您希望新子網路使用的路由表。

    • 子網路存取控制清單: 選取您要新子網路使用的存取控制清單。

    • 公用閘道: 將交換器切換至 連接,以指出您是否要子網路與公用網際網路進行通訊。

      附加公用閘道會建立 浮動 IP 並產生費用。

  7. 在摘要面板中,按一下建立子網路

附加的資源標籤

附加資源」標籤會列出附加到子網路的所有資源,並允許建立:

  • 實例
  • 裸機伺服器
  • 實例範本
  • 實例群組
  • 負載平衡器
  • VPN 閘道
  • 虛擬端點閘道
  • VPN 伺服器

按一下您要建立的資源的資源清單表格中的建立。 您將被引導至相應的建立資源工作流程頁面,即可開始建立資源的流程。

保留 IP 標籤

保留 IP 索引標籤列出子網路的所有保留 IP 位址。 如需詳細資訊,請參閱 管理 IP 位址

透過 CLI 建立子網

若要從 CLI 建立子網路,請執行下列指令:

ibmcloud is subnet-create SUBNET_NAME VPC ((--zone ZONE_NAME --ipv4-address-count ADDR_COUNT) | --ipv4-cidr-block CIDR_BLOCK) [--acl ACL] [--pgw PGW] [--rt RT] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] {} [--output JSON] [-q, --quiet]

其中:

SUBNET_NAME
子網路的名稱。
VPC
VPC 的 ID 或名稱。
--ipv4-cidr-block
子網路的 IPv4 範圍。 此選項與 --ipv4-address-count 互斥。
--ipv4-address-count
所需地址 IPv4 的總數必須為2的冪次方,且最小值為8。 此選項與 --ipv4-cidr-block 互斥。
--zone
區域的名稱。
--acl
網路 ACL 的 ID 或名稱。
--pgw
公用閘道的 ID 或名稱。
--rt
路由表的 ID 或名稱。 此選項也支援路由表的雲端資源名稱 (CRN)。
--resource-group-id
資源群組的 ID。 此 ID 與 --resource-group-name 互斥。
--resource-group-name
資源群組的名稱。 此名稱與「--resource-group-id」互斥。
--output
指定輸出格式,只支援 JSON。 下列其中一項:JSON
-q, --quiet
暫停詳細輸出。

使用 API 建立子網

請依照下列指示,使用 API 建立子網路:

  1. 設定 API 環境
  2. 儲存要在 API 指令中使用的任何其他變數。
建立子網的參數
查詢參數 資訊
version
必須
string
要求以日期格式 YYYY-MM-DD. 指定 API 的版本。 可提供任何截至當前日期的日期。 請指定當前日期以請求最新版本。
可能的值:值必須符合正規表達式 ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
generation
所需
int32
基礎設施世代。
可能的值如下: 2
請求正文
Required
子網原型物件。
vpc
必須
string
此子網路所在的 VPC。
以下任一項: VPCIdentityByCRN``VPCIdentityById VPCIdentityByHref
ip_version
string
此子網應支援的 IP 版本。 允許值:[ipv4]
name
必須
string
此子網的名稱。 該名稱不得由 VPC 中的其他子網使用。 若未指定,名稱將由隨機選取的詞彙以連字號連接而成。
可能的值:1 ≤ length ≤ 63,值必須符合正規表達式 ([a-z]|[a-z][-a-z0-9]*[a-z0-9])$
示例: my-subnet
network_acl
string
此子網要使用的網路存取控制清單。 若未指定,則使用 VPC 的預設網路存取控制清單。
以下任一項: NetworkACLIdentityByCRN``NetworkACLIdentityById NetworkACLIdentityHref
public_gateway
string
此子網域用於傳輸至網際網路流量的公共網關。 若未指定,子網將不會附加至公共閘道。
以下任一項: PublicGatewayIdentityByCRN``PublicGatewayIdentityById PublicGatewayIdentityByHref
resource_group
ResourceGroupIdentityById
要使用的「資源群組」。 若未指定,則會使用該帳戶的 預設資源群組
routing_table
string
此子網域應使用的路由表。 如果未指定,則會使用 VPC 的預設遞送表。 路由表屬性 route_direct_link_ingress, route_internet_ingress, route_transit_gateway_ingress, 及 route_vpc_zone_ingress 必須為 false
以下任一項: RoutingTableIdentityByCRN``RoutingTableIdentityById RoutingTableIdentityByHref
SubnetByTotalCount
int 64

SubnetByCIDR
string
請指定所需的 IPv4 總 SubnetByTotalCount 地址數量。 請指定子網的 IPv4 範圍,以 SubnetByCIDR CIDR 格式表示。 兩種選項皆需指定 zone 要建立子網的目標位置。

當所有變數都已起始時,請提交要求。

請參閱下列範例:

curl -X POST
"$vpc_api_endpoint/v1/subnets?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"
-d '{
      "name": "my-subnet-1",
      "ipv4_cidr_block": "10.0.1.0/24",
      "ip_version": "ipv4",
      "zone": { "name": "us-south-1" },
      "vpc": { "id": "a0819609-0997-4f92-9409-86c95ddf59d3" }
    }'

在您起始要求之後,會顯示下列回應:

API回應範例
回應內文 詳細資料
available_ipv4_address_count
永遠包含
int64
此子網路中未使用,且未被使用者或供應商保留的 IPv4 位址數量。
範例: 15
created_at
永遠包含
date-time
此子網的建立日期與時間。
crn
永遠包含
string
此子網段的網路路由器編號。
可能的值:9 ≤ length ≤ 512
示例: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e
href
永遠包括在內*
string
此子網路的 URL
可能的值:10 ≤ length ≤ 8000,值必須符合正規表達式 ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$
示例: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e
id
永遠包含
string
此子網路的唯一識別碼
可能的值:1 ≤ length ≤ 64,值必須符合正規表達式 ^[-0-9a-z_]+$
示例: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e
ip_version
永遠包含
string
此子網段所支援的 IP 版本。
可能的值如下: [ipv4]
ipv4_cidr_block
永遠包含
string
子網路的 IPv4 範圍,以 CIDR 格式表示。
可能的值:9 ≤ length ≤ 18,值必須符合正規表達式 ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$
範例: 10.0.0.0/24
name
永遠包含
string
此子網的名稱。 此名稱在 VPC 內所有子網中均為唯一。
可能的值:1 ≤ length ≤ 63,值必須符合正規表達式 ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$
示例: my-subnet
network_acl 始終包含
NetworkACLReference
resource_group
永遠包含
ResourceGroupReference
此子網段的資源群組。
resource_type
永遠包含
string
資源類型。
可能的值:1 ≤ length ≤ 128,值必須符合正規表達式 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
範例: subnet
routing_table
永遠包含
RoutingTableReference
此子網段的路由表。
status
永遠包含
string
子網的狀態。
可能的值: available,deleting,failedpending
total_ipv4_address_count
永遠包含
int64
vpc
永遠包含
VPCReference
此子網路所在的 VPC。
zone
永遠包含
ZoneReference
此子網所屬的區域。
public_gateway
PublicGatewayReference
此子網域用於傳輸至網際網路流量的公共網關。
建立狀態代碼
狀態碼 意義
201 已順利建立子網路。
400 提供了一個無效的子網原型物件。
409 子網原型物件與 VPC 中的另一子網發生衝突,或指定了超出 VPC 地址前綴範圍的 CIDR 區塊。

如需更多資訊(包括 Java、Node、Python 及 Go 範例),請參閱 VPC API 參考 文件中的建立子網方法。

檢視子網路

您可以使用使用者介面、API 或 CLI 來檢視 VPC 中子網路的詳細資料。

在主控台中檢視子網路

子網建立後,將出現在「VPC 的子網」清單中。

若要檢視控制台清單中子網格的詳細資訊,請點擊名稱欄位中的子網格連結。 「概述」標籤頁顯示您在子網建立過程中使用的資訊。

透過 CLI 檢視子網

若要從命令列介面檢視 VPC 中子網的詳細資訊,請執行以下指令:

ibmcloud is subnet SUBNET [--vpc VPC] [--show-attached] [--output JSON] [-q, --quiet]

其中:

SUBNET
子網路的 ID 或名稱。
--vpc
VPC 的 ID 或名稱。 只需要在此 VPC 內按名稱指定唯一資源。
--show-attached
檢視連接至子網路的資源(實例、負載平衡器、VPN 閘道)詳細資料。
--output
指定輸出格式,只支援 JSON。 下列其中一項 :JSON。
-q, --quiet
暫停詳細輸出。

使用 API 檢視子網段

若要呼叫此方法,您必須獲指派一個以上包含下列動作的 IAM 存取角色。 您可以前往 使用者 > 使用者 > 存取 檢查您的存取權限。

  • is.subnet.subnet.read

遵循下列指示,以使用 API 來擷取 VPC 中的子網路:

  1. 設定 API 環境
  2. 儲存要在 API 指令中使用的任何其他變數。
檢索子網的參數
查詢參數 資訊
id
必須
string
子網識別碼。
可能的值:1 ≤ length ≤ 64、值必須符合正規表達式 ^[-0-9a-z_]+$
version
必須
string
要求以日期格式 YYYY-MM-DD. 指定 API 的版本。 可提供任何截至當前日期的日期。 請指定當前日期以請求最新版本。
可能的值:值必須符合正規表達式 ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
generation
必須
int32
基礎設施世代。
容許值: 2
  1. 當所有變數都已起始時,請執行指令。

請參閱下列範例:

curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet_id?version=2022-10-31&generation=2"
-H "Authorization: Bearer $iam_token"

在您起始要求之後,會顯示下列回應:

啟動回應檢索範例
回應內文 詳細資料
available_ipv4_address_count
永遠包含
int64
此子網路中未使用,且未被使用者或供應商保留的 IPv4 位址數量。
範例: 15
created_at
總是包含
日期時間
此子網的建立日期與時間。
crn
永遠包含
string
此子網路的 CRN
可能的值:9 ≤ length ≤ 512
示例: crn:v1:bluemix:public:is:us-south-1:a/123456::subnet:7ec86020-1c6e-4889-b3f0-a15f2e50f87e
href
永遠包括在內*
string
此子網路的 URL
可能的值:10 ≤ length ≤ 8000,值必須符合正規表達式 ^http(s)?://([^/?#]*)([^?#]*)(?([^#]*))?(#(.*))?$
示例: https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e
id
永遠包含
string
此子網路的唯一識別碼
可能的值:1 ≤ length ≤ 64,值必須符合正規表達式 ^[-0-9a-z_]+$
示例: 7ec86020-1c6e-4889-b3f0-a15f2e50f87e
ip_version
永遠包含
string
此子網段所支援的 IP 版本。
可能的值如下: [ipv4]
ipv4_cidr_block
永遠包含
string
子網的 IPv4 範圍,以CIDR格式表示。
可能的值:9 ≤ length ≤ 18,值必須符合正規表達式 ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/(3[0-2]|[1-2][0-9]|[0-9]))$
範例: 10.0.0.0/24
name
永遠包含
string
此子網的名稱。 此名稱在 VPC 內所有子網中均為唯一。
可能的值:1 ≤ length ≤ 63,值必須符合正規表達式 ^-?([a-z]|[a-z][-a-z0-9]*[a-z0-9]|[0-9][-a-z0-9]*([a-z]|[-a-z][-a-z0-9]*[a-z0-9]))$
示例: my-subnet
network_acl 始終包含
NetworkACLReference
resource_group
總是包括
ResourceGroupReference
此子網段的資源群組。
resource_type
永遠包含
string
資源類型。
可能的值:1 ≤ length ≤ 128,值必須符合正規表達式 ^[a-z][a-z0-9]*(_[a-z0-9]+)*$
範例: subnet
routing_table
總是包括
RoutingTableReference
此子網段的路由表。
status
永遠包含
string
子網的狀態。
可能的值: available,deleting,failedpending
total_ipv4_address_count
永遠包含
int64
vpc
永遠包含
VPCReference
此子網路所在的 VPC。
zone
總是包括
ZoneReference
此子網所屬的區域。
public_gateway
PublicGatewayReference
此子網域用於傳輸至網際網路流量的公共網關。
檢索狀態碼
狀態碼 意義
200 已成功取得子網。
404 找不到具有指定識別碼的子網。

如需更多資訊(包括 Java、Node、Python 及 Go 範例),請參閱 VPC API 參考文件中的「檢索子網」。