建立虛擬網路介面

可以建立虛擬網路介面,而無需連接至目標。 因此,即使移除虛擬網路介面的目標,虛擬網路介面也可以存在。

例如,在 VPC 內,您的實例具有可從網際網路呼叫到實例的公用 IP 位址,以及可從 VPC 中其他實例呼叫到實例的專用 IP 位址。 您已使用自訂安全群組規則來配置實例。 如果您刪除實例,則會分離公用 IP 位址及安全群組。 專用 IP 位址已釋放,且可由另一個資源再次保留。 如果您要建立與已刪除實例具有相同公用 IP 位址、專用 IP 位址及安全群組的新實例,則必須重新保留專用 IP 位址,並個別連接先前的公用 IP 位址及安全群組。

您可以使用虛擬網路介面來管理個別資源中的 IP 位址及安全群組,其生命週期與您的實例無關。 建立具有專用 IP 位址、公用 IP 位址及安全群組的虛擬網路介面。 然後,使用此虛擬網路介面建立實例。 稍後,您可以刪除實例、保留虛擬網路介面,以及建立具有相同虛擬網路介面的新實例。

開始之前

若要建立虛擬網路介面,您必須具有下列必要條件:

  • VPC 實例
  • 要在其中建立虛擬網路介面的子網路
  • 請確定您具有適當的 IAM 許可權。 您必須具有 IAM 管理者角色許可權,才能配置 IP 盜用及基礎架構 NAT。

檢視虛擬網路介面的 規劃注意事項已知問題

您可以使用主控台、CLI、API 或 Terraform 建立虛擬網路介面。

在主控台中建立虛擬網路介面

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

  1. 請在瀏覽器中開啟 IBM Cloud 控制台,並登入您的帳戶。

  2. 選取導覽功能表 導覽功能表圖示,然後按一下基礎結構 VPC 圖示 > 網路 > 虛擬網路介面

  3. 在 VPC 的虛擬網路介面頁面上,按一下 建立

  4. 必要的話,請在「位置」區段中編輯下列欄位。

    • 地理位置: 指出您要建立虛擬網路介面的地理位置。
    • 區域: 指出您要建立虛擬網路介面的區域。
  5. 在「詳細資料」區段中,請填寫以下資訊:

    • 名稱: 輸入虛擬網路介面的唯一名稱,例如 my-virtual-network-interface
    • 資源群組: 選取虛擬網路介面的資源群組。
    • 標籤:(可選) 添加標籤,有助於您整理和查找資源。 您之後可以新增其他標籤。 如需相關資訊,請參閱使用標籤
    • 存取管理標籤: (選用) 將存取管理標籤新增至資源,以協助組織存取控制關係。 存取權管理標籤唯一支援的格式是 key:value。 如需相關資訊,請參閱 使用標籤控制對資源的存取權
  6. 在網路配置區段中,完成下列資訊:

    • 虛擬私有雲: 選取您要在其中建立虛擬網路介面的 VPC。 如果需要建立 VPC,請按一下 建立 VPC

    • 子網路: 選取要在其中建立虛擬網路介面的子網路。 如果您需要建立子網路,請按一下 建立

    • 容許 IP 盜用: 選取交換器以啟用或停用 IP 盜用。

      • 停用 IP 偽造功能後,流量將能通過網路介面,而非在網路介面處終止。
      • IP 盜用僅支援虛擬伺服器實例及裸機伺服器。 不支援檔案共用。
    • 基礎架構 NAT: 選取交換器以啟用或停用基礎架構 NAT。

      當啟用 IP 偽造功能時,基礎架構 NAT 也會隨之啟用。

      • 已啟用 包括一個浮動 IP 位址,並支援虛擬伺服器、裸機伺服器及檔案共用。

      • 已停用 僅在裸機伺服器上支援多個浮動 IP 位址。 不支援將虛擬伺服器及檔案共用設定為虛擬網路介面目標。

        停用時,虛擬伺服器實例會接收對等節點傳送的資料流量,而不使用 NAT。 目標 IP 位址為浮動 IP 位址,而裸機伺服器負責執行 NAT。

    • 通訊協定狀態過濾模式: 選取圓鈕來設定模式:

      • 自動 (預設值): 根據虛擬網路介面的目標資源啟用或停用過濾。

        • 裸機伺服器 (已停用)
        • 虛擬伺服器實例 (已啟用)
        • 檔案共用裝載 (已啟用)
      • 啟用:強制 TCP 連線符合 RFC793 標準,並允許對應的安全群組規則和網路 ACL 允許任何封包。

      • 殘障人士:僅允許對應安全群組規則和網路ACL允許的資料包。

  7. 在「主要 IP」區段中,進行下列選擇。

    • 保留方法: 選取您是要為您建立主要 IP 位址,還是要手動指定主要 IP 位址。 如果您指定自己的 IP 位址,請鍵入虛擬網路介面的現有保留 IP 位址,或從現有保留 IP 清單功能表中選取一個 IP 位址。
    • 自動釋放: 按一下交換器以啟用或停用此虛擬網路介面的自動釋放。
  8. 在「浮動 IP」區段 (選用) 中,按一下 連接。 在出現的側邊畫面中,您可以從現有的浮動 IP 位址清單中選取,或選取 保留新的浮動 IP 並完成所要求的資訊。

    如果已連接浮動 IP,則不會接受虛擬網路介面作為檔案共用裝載目標。 若已啟用基礎架構 NAT,最多只能綁定一個浮動 IP。

  9. 在「次要 IP」區段 (選用) 中,按一下 連接。 選取保留方法,並指定是否啟用自動釋放。

    已綁定次要 IP 位址的虛擬網路介面,無法作為檔案共用掛載目標。

  10. 在「安全群組」區段中,請選取至少一個、至多五個安全群組,以在網路層級控制流量。 您可以從清單中選取安全群組,或按一下 建立來建立安全群組。 如需建立安全群組的相關資訊,請參閱 建立安全群組

  11. 檢閱「摘要」畫面中的資訊,然後按一下 建立虛擬網路介面

從 CLI 建立虛擬網路介面

開始之前,請 設定 CLI 環境

export IBMCLOUD_IS_FEATURE_VNI_ENABLE_PROTOCOL_STATE_FILTERING=true

若要從 CLI 建立虛擬網路介面,請輸入下列指令:

ibmcloud is virtual-network-interface-create [--name NAME] [--allow-ip-spoofing false | true] [--auto-delete false | true] [--enable-infrastructure-nat false | true] [--protocol-state-filtering-mode auto | disabled | enabled] [[--rip RIP | [--rip-address RIP_ADDRESS --rip-auto-delete RIP_AUTO_DELETE --rip-name RIP_NAME]]] [--subnet SUBNET] [--ips RESERVED_IPS_JSON | @RESERVED_IPS_JSON_FILE] [--sgs SGS] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--vpc VPC] [--output JSON] [-q, --quiet]

其中:

--name
此虛擬網路介面的名稱。
--allow-ip-spoofing
指出此介面是否容許使用來源 IP 盜用功能。 若設定為 false,則此介面將禁止來源 IP 偽造。 若設定為 true,則此介面將允許來源 IP 偽造。 下列其中一項: falsetrue
--auto-delete
指出在刪除目標時是否自動刪除此虛擬網路介面。 若虛擬網路介面處於未綁定狀態,則必須為 false。 下列其中一項: falsetrue
--enable-infrastructure-nat
true,VPC 基礎架構將執行任何必要的 NAT 操作。 若設定為 false,封包將在網路介面之間原樣傳輸,讓工作負載能夠執行任何必要的 NAT 操作。 下列其中一項: falsetrue
--protocol-state-filtering-mode
通訊協定狀態過濾模式的狀態。 autoenableddisabled 其中之一。 * 自動 (預設值): 根據虛擬網路介面的目標資源啟用或停用過濾。 * 裸機伺服器 (已停用) * 虛擬伺服器實例 (已啟用) * 檔案共用裝載 (已啟用) * 啟用:強制 TCP 連線符合 RFC793 標準,並允許對應的安全群組規則和網路 ACL 允許任何封包。 * 殘障人士:僅允許對應安全群組規則和網路ACL允許的資料包。
--rip
要連結至虛擬網路介面的保留 IP ID 或名稱。
--rip-address
要連結至虛擬網路介面之保留 IP 的 IP 位址。
--rip-auto-delete
指出在刪除任一目標或取消連結保留 IP 時,是否自動刪除此保留 IP。
--rip-name
要連結至虛擬網路介面的此保留 IP 的名稱。
--subnet
相關聯的子網路。
--ips ips RESERVED_IPS_JSON | @RESERVED_IPS_JSON_FILE
以 JSON 或 JSON 檔案格式提供的次要保留 IP 位址,用於綁定至虛擬網路介面。 關於資料結構,請參閱 API 文件中的「IPs」屬性。 下列其中一項: RESERVED_IPS_JSON@RESERVED_IPS_JSON_FILE
--sgs
用於虛擬網路介面之安全群組的 ID 或名稱。
--resource-group-id
資源群組的 ID。 此 ID 與 --resource-group-name 互斥。
--resource-group-name
資源群組的名稱。 此名稱與「--resource-group-id」互斥。
--vpc
此 VNI 所關聯之 VPC 的 ID 或名稱。
--output
指定輸出格式,只支援 JSON。 下列其中一項:JSON
-q, --quiet
暫停詳細輸出。

指令範例

  • ibmcloud is virtual-network-interface-create --subnet 7208-d42716a5-6df2-416c-979d-f26330b9eod1
  • ibmcloud is virtual-network-interface-create --name cli-vni-1 --allow-ip-spoofing true --auto-delete true --enable-infrastructure-nat true --protocol-state-filtering-mode auto --rip 7208-d4c0abbe-3fc2-4696-9fe1-4eb3dc9af976 --ips '[{"id":"7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd"},{"address":"10.240.64.13", "auto_delete": false, "name": "srip2"}]' --sgs r006-aa7c7658-e503-4456-b342-8d6a89e05115,r006-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9
  • ibmcloud is virtual-network-interface-create --name cli-vni-2 --allow-ip-spoofing true --auto-delete true --enable-infrastructure-nat true --protocol-state-filtering-mode enabled --rip cli-rip-1 --subnet my-subnet --vpc vpc-cli-1 --ips '[{"id":"7208-d83b7e58-3c3d-47d0-89c5-02d9a20c72fd"},{"address":"10.240.64.14", "auto_delete": false, "name": "srip3"}]' --sgs cli-sg,sanctity-contest-only-filing --resource-group-name Default
  • ibmcloud is virtual-network-interface-create --name cli-vni-4 --allow-ip-spoofing false --auto-delete false --enable-infrastructure-nat false --protocol-state-filtering-mode disabled --subnet 7208-bfe017e7-6e71-415a-8615-0ee787fbeef9 --rip-address 10.240.64.15 --rip-auto-delete false --rip-name primar-ip-1 --ips '[{"id":"7208-2772a45f-c062-4e22-bafb-32ea792da56b"},{"address":"10.240.64.17", "auto_delete": false, "name": "sec-ip-2"}]' --sgs r006-aa7c7658-e503-4456-b342-8d6a89e05115,r006-4fb388f1-2b6e-4013-b279-7a8748f4d6ca --resource-group-id 11caaa983d9c4beb82690daab08717e9
  • ibmcloud is virtual-network-interface-create --name cli-vni-3 --allow-ip-spoofing true --auto-delete false --enable-infrastructure-nat true --protocol-state-filtering-mode auto --subnet my-subnet --vpc vpc-cli-1 --rip-address 10.240.64.18 --rip-auto-delete true --rip-name primar-ip-2 --ips '[{"id":"7208-d42716a5-6df2-416c-979d-f26330b9d0b1"},{"address":"10.240.64.19", "auto_delete": true, "name": "sec-ip-3"}]' --sgs cli-sg,sanctity-contest-only-filing --resource-group-name Default

使用 API 建立虛擬網路介面

若要使用 API 建立虛擬網路介面,請遵循下列步驟:

  1. 使用正確的變數 來設定 API 環境。

  2. 儲存要在 API 指令中使用的任何其他變數; 例如:

    • version (字串):API 版本,格式為 YYYY-MM-DD
  3. 起始所有變數時,請建立虛擬網路介面:

    curl -X POST \
        "$vpc_api_endpoint/v1/virtual_network_interfaces?version=$version&generation=2" \
        -H "Authorization: Bearer $iam_token" \
        -d '{
              "name": "my-virtual-network-interface",
              "primary_ip": {
                "address": "10.0.0.5"
              },
              "protocol_state_filtering_mode": "disabled",
              "security_groups": [
                {
                  "id": "be5df5ca-12a0-494b-907e-aa6ec2bfa271"
                },
                {
                  "id": "032e1387-71ba-4e83-b268-a53edf94af19"
                }
              ],
              "subnet": {
                "id": "032e1387-71ba-4e83-b268-a53edf94af19"
              }
      }'
    

使用 Terraform 建立虛擬網路介面

下列範例使用 Terraform 建立虛擬網路介面:

resource "ibm_is_virtual_network_interface" "is_virtual_network_interface_instance" {
  allow_ip_spoofing = true
  auto_delete = false
  enable_infrastructure_nat = true
  name = "my-virtual-network-interface"
  subnet = "<SubnetId>"
  protocol_state_filtering_mode = "auto"
}

如需相關資訊,請參閱 Terraform 登錄