多個網路介面

本頁提供 Compute Engine VM 執行個體多個網路介面的總覽,具備多個網路介面的執行個體稱為多 NIC 執行個體

執行個體一律至少有一個虛擬網路介面 (vNIC)。視機器類型而定,您可以設定其他網路介面。

用途

多重 NIC 執行個體適用於下列情況:

  • 連線至不同虛擬私有雲網路中的資源:多重 NIC 執行個體可連線至不同虛擬私有雲網路中的資源,這些資源並未透過虛擬私有雲網路對等互連或 Network Connectivity Center 相互連線。

    • 由於多 NIC 執行個體的每個介面都位於不同的 VPC 網路,因此您可以將每個介面用於不同的用途。舉例來說,您可以透過某些介面在傳輸實際工作環境流量的虛擬私有雲網路之間轉送封包,並透過其他介面進行管理或設定。

    • 在每個多 NIC 執行個體的客體 OS 中,您必須設定路徑政策和本機路徑表。

  • 在虛擬私有雲網路之間轉送封包:多個 NIC 執行個體可用做路徑的下一個躍點,以連線至兩個以上的虛擬私有雲網路。

    • 在多 NIC 執行個體的客體 OS 中執行的軟體,可以執行封包檢查、網路位址轉譯 (NAT) 或其他網路安全功能。

    • 使用多個 NIC 執行個體連線 VPC 網路時,建議您設定兩個以上的多個 NIC 執行個體,並將這些執行個體做為每個 VPC 網路中內部直通網路負載平衡器的後端。詳情請參閱「以內部直通式網路負載平衡器為下一個躍點」說明文件中的「使用案例」一節。

您也可以使用具備Private Service Connect 介面的多重 NIC 執行個體,連線至不同專案中的服務供應商和用戶網路。

網路介面類型

Google Cloud 支援下列類型的網路介面:

  • vNICs:Compute Engine 執行個體的虛擬網路介面。 每個執行個體至少要有一個虛擬 NIC。一般 VPC 網路中的虛擬 NIC 可以是 GVNICVIRTIO_NETIDPF。您只能在建立執行個體時設定 vNIC。

  • 動態 NIC (搶先版):父項 vNIC 的子項介面。您可以在建立執行個體時設定動態 NIC,也可以稍後再新增。詳情請參閱「動態 NIC」。

您也可以使用包含 RDMA 網路介面 (MRDMA) 的機器類型,設定多重 NIC 執行個體,這些介面必須附加至具有 RDMA 網路設定檔的 VPC 網路。在具有 RDMA 網路設定檔的 VPC 網路中,不支援其他網路介面類型,包括動態 NIC。

規格

下列規格適用於具有多個網路介面的執行個體:

  • 執行個體和網路介面:每個執行個體都有 nic0 介面。網路介面數量上限會因執行個體的機器類型而異。

    • 每個介面都有相關聯的堆疊類型,用於決定支援的子網路堆疊類型和 IP 位址版本。詳情請參閱「堆疊類型和 IP 位址」。
  • 每個網路介面都有專屬網路:除了使用 RDMA 網路設定檔建立的 VPC 網路外,每個網路介面都必須使用專屬 VPC 網路中的子網路。

    • 如果是使用 RDMA 網路設定檔建立的虛擬私有雲網路,只要每個 RDMA NIC 使用的子網路不同,多個 RDMA NIC 就能使用同一個虛擬私有雲網路。

    • 您必須先建立虛擬私有雲網路和子網路,才能建立網路介面使用該網路和子網路的執行個體。如要進一步瞭解如何建立網路和子網路,請參閱「建立及管理虛擬私有雲網路」。

  • 執行個體和子網路的專案:在獨立專案中,多個 NIC 執行個體的每個網路介面都必須使用與執行個體位於相同專案的子網路。

  • IP 轉送、MTU 和路徑注意事項:多 NIC 執行個體需要仔細規劃下列執行個體和介面專屬的設定選項:

    • IP 轉送選項可針對每個執行個體進行設定,並套用至所有網路介面。詳情請參閱為執行個體啟用 IP 轉送功能

    • 每個網路介面都可以使用不重複的最大傳輸單位 (MTU),與相關聯的 VPC 網路 MTU 相符。詳情請參閱「最大傳輸單位」。

    • 每個執行個體都會收到預設路徑 (使用 DHCP 選項 121,如 RFC 3442 所定義)。預設路徑與 nic0 相關聯。除非您手動設定,否則流量從執行個體傳送至直接連線的子網路以外的任何目的地時,都會透過 nic0 的預設路徑傳出執行個體。

      在 Linux 系統上,您可以使用 /etc/iproute2/rt_tables 檔案和 ip ruleip route 指令,在客體 OS 中設定自訂規則和路徑。詳情請參閱客體 OS 說明文件。如需範例,請參閱「為額外介面設定路由」教學課程。

動態 NIC

動態 NIC 適用於下列情境:

  • 您需要為現有執行個體新增或移除網路介面。 新增或移除 Dynamic NIC 時,不需要重新啟動或重新建立執行個體。

  • 您需要更多網路介面。大多數機器類型的 vNIC 數量上限為 10 個,但您可以使用動態 NIC 設定最多 16 個介面。 Google Cloud 詳情請參閱「網路介面數量上限」。

  • 您需要設定多 NIC Compute Engine 裸機執行個體,這類執行個體只有一個 vNIC。

動態 NIC 的屬性

請參閱下列動態 NIC 屬性相關資訊:

  • 動態 NIC 是使用 IEEE 802.1Q 標準封包格式的 VLAN 介面。請參閱下列注意事項:

    • Dynamic NIC 的 VLAN ID 必須是介於 2 至 255 之間的整數。
    • Dynamic NIC 的 VLAN ID 在上層 vNIC 中不得重複。不過,屬於不同上層 vNIC 的 Dynamic NIC 可以使用相同的 VLAN ID。
  • Google Cloud 動態 NIC 的名稱採用下列格式: nicNUMBER.VLAN_ID,其中

    • nicNUMBER 是父項 vNIC 的名稱,例如 nic0
    • VLAN_ID 是您設定的 VLAN ID,例如 4

    動態 NIC 名稱範例為 nic0.4

  • 建立使用 Dynamic NIC 的執行個體,或在現有執行個體中新增 Dynamic NIC 時,需要額外步驟,才能在客體 OS 中安裝及管理對應的 VLAN 介面。你可以使用下列任一方法:

    • 使用 Google 客戶端代理程式,設定自動管理動態 NIC。
    • 手動設定客體 OS。

    詳情請參閱「設定動態 NIC 的客體 OS」。

  • Dynamic NIC 會共用上層 vNIC 的頻寬,且上層 vNIC 內沒有流量隔離功能。為避免任何網路介面耗用所有頻寬,您必須在客體 OS 中建立應用程式專屬的流量政策,以便優先處理或分配流量,例如使用 Linux 流量控制 (TC)。

  • Dynamic NIC 與上層 vNIC 共用相同的接收和傳輸佇列

動態 NIC 的限制

動態 NIC 有下列限制:

  • 動態 NIC 建立後,您就無法修改下列屬性:

    • Dynamic NIC 所屬的上層 vNIC。
    • Dynamic NIC 的 VLAN ID。
  • 動態 NIC 不支援下列項目:

  • 如果動態 NIC 的上層 vNIC 類型為 GVNIC,則可能會在某些自訂 MTU 大小時發生封包遺失情形。為避免封包遺失,請勿使用下列 MTU 大小:1986 位元組、3986 位元組、5986 位元組和 7986 位元組。

  • 如果是第三代 VM,VLAN ID 為 255 的動態 NIC 無法存取中繼資料伺服器 IP 位址。如要存取中繼資料伺服器,請務必使用不同的 VLAN ID。

  • 如果是第三代 VM,刪除並新增具有相同 VLAN ID 的動態 NIC,可能會導致未經授權的存取行為跨越不同的虛擬私有雲網路。詳情請參閱已知問題

堆疊類型和 IP 位址

建立 vNIC 時,請指定下列其中一種介面堆疊類型

  • 僅限 IPv4
  • 雙堆疊
  • 僅限 IPv6 (預覽版)

下表說明支援的子網路堆疊類型,以及各介面堆疊類型的 IP 位址詳細資料:

介面 僅限 IPv4 的子網路 雙堆疊子網路 僅限 IPv6 的子網路 (預覽版) IP 位址詳細資料
僅限 IPv4 (單一堆疊) 僅限 IPv4 位址。請參閱 IPv4 位址詳細資料
IPv4 和 IPv6 (雙重堆疊) IPv4 和 IPv6 位址。請參閱 IPv4 位址詳細資料IPv6 位址詳細資料
僅限 IPv6 (單一堆疊) (預覽版) 僅限 IPv6 位址。請參閱 IPv6 位址詳細資料

變更網路介面堆疊類型

您可以按照下列方式變更網路介面的堆疊類型

  • 如果介面的子網路是雙重堆疊子網路,或者您停止執行個體並將介面指派給雙重堆疊子網路,就可以將僅支援 IPv4 的介面轉換為雙重堆疊。

  • 您可以將雙重堆疊介面轉換為僅限 IPv4。

您無法變更僅限 IPv6 介面的堆疊類型。建立執行個體時,僅支援「僅限 IPv6」介面 (預先發布版)。

IPv4 位址詳細資料

每個僅限 IPv4 或雙重堆疊的網路介面都會收到主要內部 IPv4 位址。每個介面可選擇支援別名 IP 範圍和外部 IPv4 位址。以下是 IPv4 的規格和規定:

  • 主要內部 IPv4 位址:Compute Engine 會從介面子網路的主要 IPv4 位址範圍,為網路介面指派主要內部 IPv4 位址。主要內部 IPv4 位址是由 DHCP 分配。

    • 您可以設定靜態內部 IPv4 位址,或指定自訂的臨時內部 IPv4 位址,控管要指派哪個主要內部 IPv4 位址。

    • 在虛擬私有雲網路中,每個 VM 網路介面的主要內部 IPv4 位址都是唯一的。

  • 別名 IP 範圍:您可以選擇為介面指派一或多個別名 IP 範圍。每個別名 IP 範圍可來自介面子網路的主要 IPv4 位址範圍或次要 IPv4 位址範圍。

    • 在虛擬私有雲網路中,每個介面的別名 IP 範圍都不得重複。
  • 外部 IPv4 位址:您可以視需要為介面指派臨時或保留的外部 IPv4 位址。 Google Cloud 可確保每個外部 IPv4 位址都是唯一的。

IPv6 位址詳細資料

Compute Engine 會為每個雙重堆疊或僅限 IPv6 的網路介面 (搶先版) 指派 /96 IPv6 位址範圍,該範圍來自介面子網路的 /64 IPv6 位址範圍:

  • /96 IPv6 位址範圍是內部或外部,取決於介面子網路的 IPv6 存取權類型。 Google Cloud 可確保每個內部和外部 IPv6 位址範圍的唯一性。詳情請參閱 IPv6 規格

    • 如果執行個體需要內部 IPv6 位址範圍和外部 IPv6 位址範圍,則必須設定兩個雙重堆疊介面、兩個僅限 IPv6 的介面,或是一個雙重堆疊介面和一個僅限 IPv6 的介面。一個介面使用的子網路必須有外部 IPv6 位址範圍,另一個介面使用的子網路則必須有內部 IPv6 位址範圍。
  • 第一個 IPv6 位址 (/128) 是由 DHCP 在介面上設定。 詳情請參閱「IPv6 位址指派」。

  • 您可以設定靜態內部外部 IPv6 位址範圍,控管指派的 /96 IPv6 位址範圍。如果是內部 IPv6 位址,您可以指定自訂的臨時內部 IPv6 位址。

如要使用 IPv6 位址將執行個體連線至多個網路,請安裝 google-guest-agent 版本 20220603.00 以上版本。詳情請參閱「我無法連線至次要介面的 IPv6 位址」。

網路介面數量上限

對於大多數機器類型,您可以附加至執行個體的網路介面數量上限,會隨著 vCPU 數量而調整,如下表所示。

以下是機器專屬的例外狀況:

  • Compute Engine Bare Metal 執行個體支援單一 vNIC。

  • 部分加速器最佳化機器類型 (例如 A3、A4 和 A4X) 的 vNIC 數量上限有所不同。 詳情請參閱「加速器最佳化機器家族」一文。

介面數量上限

如要瞭解可連接至執行個體的網路介面數量,請參閱下表。

vCPU 數量 虛擬 NIC 數量上限 動態 NIC 數量上限 網路介面數量上限
(vNIC + Dynamic NIC)
2 個以下 2 1 2
4 4 3 4
6 6 5 6
8 8 7 8
10 10 9 10
12 10 10 11
14 10 11 12
16 10 12 13
18 10 13 14
20 10 14 15
22 個以上 10 15 16

參考公式

下表提供用於計算執行個體網路介面數上限的公式。公式取決於 vCPU 數量。

vCPU 數量 (X) 虛擬 NIC 數量上限 動態 NIC 數量上限 網路介面數量上限
(vNIC + Dynamic NIC)
X=1 2 1 2
2 ≤ X ≤ 10 X (X-1) X
X ≥ 12 10 min(15, (X-10)/2 + 9) min(16, (X-10)/2 + 10)

動態 NIC 的分配範例

您不必在 vNIC 間平均分配動態 NIC。不過,由於 Dynamic NIC 會共用上層 vNIC 的頻寬,您可能希望平均分配頻寬。

執行個體至少要有一個 vNIC。舉例來說,具有 2 個 vCPU 的執行個體可以有下列其中一種設定:

  • 1 個 vNIC
  • 2 個 vNIC
  • 1 個 vNIC 和 1 個 Dynamic NIC

下表提供範例設定,可在使用指定 vCPU 數量上限的網路介面時,將動態 NIC 平均分配到 vNIC。

2 個 vCPU、2 個 NIC

下表提供 2 個 vCPU 的執行個體範例,說明特定數量的 vNIC 可擁有的動態 NIC 數量。

vCPU 數量 虛擬 NIC 數量 每個 vNIC 的 Dynamic NIC 數量 網路介面總數 (vNIC + Dynamic NIC)
2 1 1 2
2 0

4 個 vCPU、4 個 NIC

下表提供 4 個 vCPU 的執行個體範例,說明特定數量的 vNIC 可擁有的動態 NIC 數量。

vCPU 數量 虛擬 NIC 數量 每個 vNIC 的動態 NIC 數量 網路介面總數 (vNIC + Dynamic NIC)
4 1 3 4
2 1
4 0

8 個 vCPU、8 個 NIC

下表提供 8 個 vCPU 的執行個體範例,說明特定數量的 vNIC 可擁有的動態 NIC 數量。

vCPU 數量 虛擬 NIC 數量 每個 vNIC 的 Dynamic NIC 數量 網路介面總數 (vNIC + Dynamic NIC)
8 1 7 8
2 3
4 1
8 0

14 個 vCPU、12 個 NIC

下表提供 12 個 vCPU 的執行個體範例,說明特定數量的 vNIC 可擁有的動態 NIC 數量。

vCPU 數量 虛擬 NIC 數量 每個 vNIC 的 Dynamic NIC 數量 網路介面總數 (vNIC + Dynamic NIC)
14 1 11 12
2 5
4 2
6 1

22 個 vCPU、16 個 NIC

下表提供 22 個 vCPU 的執行個體範例,說明特定數量的 vNIC 可擁有的動態 NIC 數量。

vCPU 數量 虛擬 NIC 數量 每個 vNIC 的 Dynamic NIC 數量 網路介面總數 (vNIC + Dynamic NIC)
22 1 15 16
2 7
4 3
8 1

產品互動

本節說明多重 NIC 執行個體與 Google Cloud中其他產品和功能之間的互動。

共用虛擬私有雲

除了 Private Service Connect 介面,共用虛擬私有雲主專案或服務專案中多 NIC 執行個體的子網路和專案關係如下:

  • 位於共用虛擬私有雲主專案中的多重 NIC 執行個體,其每個網路介面都必須使用主專案中共用虛擬私有雲網路的子網路。

  • 位於共用虛擬私有雲服務專案中的多重 NIC 執行個體,其每個網路介面都可以使用下列任一項目:

    • 服務專案中虛擬私有雲網路的子網路。
    • 主專案中共用虛擬私有雲網路的子網路。

如要進一步瞭解共用虛擬私有雲,請參閱:

Compute Engine 內部 DNS

Compute Engine 只會為執行個體 nic0 網路介面的主要內部 IPv4 位址,建立內部 DNS 名稱 A 和 PTR 記錄。Compute Engine 不會為與 nic0 不同的網路介面相關聯的任何 IPv4 或 IPv6 位址建立內部 DNS 記錄。

詳情請參閱 Compute Engine 內部 DNS

靜態路徑

靜態路徑可使用網路標記,將範圍限定在特定執行個體。網路標記與執行個體建立關聯後,該標記會套用至執行個體的所有網路介面。因此,在執行個體中新增或移除網路標記,可能會改變適用於執行個體任何網路介面的靜態路徑。

負載平衡器

執行個體群組後端和區域 NEG 後端各自有相關聯的 VPC 網路,如下所示:

  • 如果是代管執行個體群組 (MIG),執行個體群組的虛擬私有雲網路,就是指派給執行個體範本中介面的虛擬私有雲網路。nic0

  • 對於非代管執行個體群組,執行個體群組的虛擬私有雲網路,是您新增至非代管執行個體群組的第一個執行個體所使用的 nic0 網路介面虛擬私有雲網路。

下表列出哪些後端支援將連線或要求分配至任何網路介面。

負載平衡器 執行個體群組 GCE_VM_IP NEG GCE_VM_IP_PORT NEG
後端服務型外部直通式網路負載平衡器
後端服務未與 VPC 網路建立關聯。詳情請參閱 後端服務和虛擬私有雲網路
僅使用 nic0 任何 NIC 不適用
內部直通式網路負載平衡器
後端服務與 VPC 網路建立關聯。 詳情請參閱 後端服務網路規格 後端服務網路規則
任何 NIC 任何 NIC 不適用
外部 Proxy 網路負載平衡器
如要進一步瞭解後端服務和網路需求,請參閱「後端」和「虛擬私有雲網路」。
僅使用 nic0 不適用 任何 NIC
內部 Proxy 網路負載平衡器
如要進一步瞭解後端服務和網路需求,請參閱 後端和虛擬私有雲網路
僅使用 nic0 不適用 任何 NIC
外部應用程式負載平衡器
如要進一步瞭解後端服務和網路需求,請參閱「後端」和「虛擬私有雲網路」。
僅使用 nic0 不適用 任何 NIC
內部應用程式負載平衡器
如要進一步瞭解後端服務和網路需求,請參閱「後端和虛擬私有雲網路」。
僅使用 nic0 不適用 任何 NIC

以目標集區為基礎的外部直通式網路負載平衡器不會使用執行個體群組或 NEG,且僅支援負載平衡至nic0網路介面。

防火牆規則

每組防火牆規則 (來自階層式防火牆政策全域網路防火牆政策區域網路防火牆政策VPC 防火牆規則) 都是網路介面專屬的規則。確認每個網路都有適當的防火牆規則,允許您要允許進出多重 NIC 執行個體的流量。如要判斷哪些防火牆規則套用至網路介面,以及每項規則的來源,請參閱「取得 VM 介面的有效防火牆規則」。

您可以使用網路標記或安全標記,將防火牆規則的適用範圍限定在特定 VM 執行個體,這兩種標記都會套用至執行個體的所有網路介面。詳情請參閱安全代碼與網路代碼的比較

已知問題

本節說明在 Google Cloud中使用多個網路介面的相關已知問題。

使用動態 NIC 重複使用 VLAN ID 時的防火牆互動

如果是第三代 VM,刪除並新增具有相同 VLAN ID 的動態 NIC,可能會導致未經授權的存取行為跨越不同的虛擬私有雲網路。

請參考下列情境,其中包含兩個網路 (network-1network-2) 和一個 VLAN ID A

  1. network-1 刪除 VLAN ID 為 A 的 Dynamic NIC。
  2. 在 10 分鐘的 Cloud NGFW 連線追蹤期間內,您會使用相同的 VLAN ID Anetwork-2 中建立新的 Dynamic NIC。
  3. 來自 network-2 中新動態 NIC 的流量,可能會與先前由 network-1 中已刪除的動態 NIC 建立的現有連線追蹤項目相符。

如果發生這種情況,只要流量符合 Cloud NGFW 連線追蹤表中的項目,系統就可能會允許從 network-2 的新動態 NIC 傳送或接收流量。該項目是為 network-1 中已刪除的動態 NIC 所用連線建立。如要避免這個問題,請參閱下列解決方法。

解決方法:

如要避免這個問題,請採取下列任一做法:

  • 刪除動態 NIC 後,請勿在建立新的動態 NIC 時重複使用其 VLAN ID。
  • 刪除動態 NIC 後,請至少等待 10 分鐘,再建立使用相同 VLAN ID 的新動態 NIC。

如要進一步瞭解連線追蹤和防火牆規則,請參閱 Cloud Next Generation Firewall 說明文件中的規格

後續步驟