多個網路介面

本頁面提供 Compute Engine 執行個體多個網路介面的總覽。具有多個網路介面的執行個體稱為「多 NIC 執行個體」。

執行個體網路介面會連線至虛擬私有雲 (VPC) 網路,可以是虛擬網路介面 (vNIC) 或Dynamic NIC,其中 Dynamic NIC 是父項 vNIC 的子介面。執行個體的 vNIC 由執行執行個體的主機伺服器上的一或多個實體 NIC 支援。詳情請參閱「網路介面類型」。

用途

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

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

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

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

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

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

    • 使用多 NIC 執行個體連結虛擬私有雲網路時,最佳做法是設定兩個以上的多 NIC 執行個體,並將這些執行個體做為各個虛擬私有雲網路中內部直通式網路負載平衡器的後端。詳情請參閱「使用案例」一節,瞭解如何將內部直通式網路負載平衡器做為下一個躍點。

  • 如要增加執行個體的總網路頻寬:多 NIC 執行個體支援增加頻寬,如下所示:

    • 在 Google Cloud中,部分機型的執行個體是由主機伺服器上的多個實體 NIC 支援。建立具有多個 vNIC 的執行個體,且每個 vNIC 使用不同的實體 NIC,可增加執行個體的總網路頻寬。詳情請參閱「同一虛擬私有雲網路中多個網路介面的頻寬」。

    • 在 Google Cloud中,大多數機器類型的執行個體都是由主機伺服器上的單一實體 NIC 支援,且每個 vNIC 都使用相同的實體 NIC。如果 vNIC 共用實體 NIC,新增 vNIC 不會增加網路頻寬。

您也可以搭配使用多 NIC 執行個體和 Private Service Connect 介面,連結不同專案中的服務生產者和消費者網路。

網路介面類型

如要進一步瞭解Google Cloud中的網路介面類型,請參閱下列各節。

執行個體網路介面

Compute Engine 執行個體會使用您設定的網路介面 (vNIC 或 Dynamic NIC),連線至虛擬私有雲網路。這些執行個體網路介面會對應至 Compute Engine API 中的 instances.networkInterfaces[] 資源和屬性。

如要進一步瞭解各種類型的執行個體網路介面,請參閱下列內容:

  • 虛擬網路介面 (vNIC):向執行個體客體 OS 公開的軟體定義網路介面,可讓執行個體連線至虛擬私有雲網路。每個執行個體至少要有一個 vNIC。

    • 您只能在建立執行個體時設定 vNIC。

    • Google Cloud 指派的 vNIC 名稱格式如下:nicN,例如 nic0。對應的訪客 OS 指派名稱取決於作業系統,例如 Ubuntu 的 ens4。

    • vNIC 可以是下列其中一種類型,具體取決於相關聯的虛擬私有雲網路。每種型別都對應客體 OS 中的特定網路驅動程式:

      如要瞭解哪些機型支援哪些 vNIC 類型,請參閱「機器系列比較」。

  • 動態 NIC: 父項 vNIC 的子項,在執行個體的客體作業系統中實作為子介面。

    • 您可以在建立執行個體時設定 Dynamic NIC,或稍後再新增。

    • Google Cloud 指派的 Dynamic NIC 名稱格式如下:nicN.VLAN_ID,例如 nic0.2。對應的訪客 OS 指派名稱則取決於作業系統。舉例來說,如果您使用訪客代理程式在 Ubuntu 中管理 Dynamic NIC,名稱可能是 a-gcp.ens4.2。

    • 具有 RDMA 網路設定檔的虛擬私有雲網路不支援動態 NIC。

    詳情請參閱「動態 NIC」。

Dynamic NIC 詳細資料

如果您的用途需要下列任一項目,請使用動態 NIC。 請務必一併查看動態 NIC 的屬性和限制。

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

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

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

Dynamic NIC 的屬性

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

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

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

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

    Dynamic NIC 名稱範例:nic0.4。

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

    • 使用訪客代理程式,設定 Dynamic NIC 的自動管理功能。

    • 手動設定客體 OS。

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

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

  • Dynamic NIC 與上層 vNIC 共用相同的接收和傳輸佇列。如要設定網路介面,使用不同的接收和傳輸佇列,請使用 vNIC,而非 Dynamic NIC。

  • Dynamic NIC 的堆疊類型可以與上層 vNIC 相同或不同。舉例來說,您可以在僅限 IPv4 的上層 vNIC 下,建立僅限 IPv6 和雙重堆疊的 Dynamic NIC。

Dynamic NIC 的限制

動態 NIC 有下列限制:

實體 NIC

實體 NIC 是直接安裝在主機伺服器上的硬體元件,執行個體會在該伺服器上執行。視執行個體的機器類型而定,執行個體的 vNIC 會對應至主機伺服器上的一或多個實體 NIC,如下所示:

  • 由一個實體 NIC 支援的執行個體:對於大多數機型,執行個體會在具有單一實體 NIC 的主機伺服器上運作。對於特定執行個體,其所有 vNIC 都會對應至單一實體 NIC。

  • 由多個實體 NIC 支援的執行個體:對於有限的機型組合,例如 C4N 機型和 GPU 機型,執行個體會在具有多個實體 NIC 的主機伺服器上執行。對於特定執行個體,Compute Engine 會將執行個體的 vNIC 對應至不同的實體 NIC。

    • 由多個實體 NIC 支援的執行個體,可支援增加網路頻寬,以及透過 RoCE 虛擬私有雲網路進行 GPU 對 GPU 通訊等用途。詳情請參閱「C4N 執行個體的網路支援」和「網路和 GPU 機器」。

    • 建立執行個體時,Compute Engine 會將每個虛擬 NIC 對應至一個實體 NIC,最多可對應至執行個體機器類型的實體 NIC 總數。

    • 如要瞭解多個實體 NIC 的支援情形,請參閱特定機器系列的說明文件。如果適用,機型表格會包含名為「實體 NIC 數量」的資料欄。例如,請參閱「C4N 機型」。

此外,對於大多數機器類型,執行個體會與其他執行個體共用主機伺服器。共用主機伺服器的執行個體也會共用實體 NIC 或一組實體 NIC。不過,對於某些機器類型 (例如 Bare Metal 機器類型,或是 H3 和 H4D 機器類型),單一執行個體會佔用整個主機伺服器。

規格

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

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

    • 每個介面都有相關聯的堆疊類型,可決定支援的子網路堆疊類型和 IP 位址版本。詳情請參閱「堆疊類型和 IP 位址」。
  • 網路和子網路需求:每個網路介面都必須使用虛擬私有雲網路中的專屬子網路。

    • 您可以將網路介面連結至不同虛擬私有雲網路中的子網路。

    • 在下列情況中,系統支援將網路介面附加至同一虛擬私有雲網路中的不同子網路:

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

    • 不支援透過連結匯總繫結網路介面。如要瞭解同一個虛擬私有雲網路中的多個網路介面如何影響頻寬,請參閱「同一個虛擬私有雲網路中多個網路介面的頻寬」。

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

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

    • IP 轉送選項可依執行個體設定,並套用至所有網路介面。詳情請參閱「啟用執行個體的 IP 轉送功能」。

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

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

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

同一虛擬私有雲網路中多個網路介面的規則

當單一執行個體的兩個以上網路介面使用相同的虛擬私有雲網路時,Compute Engine 會強制執行所有下列規則:

  • 不重複的子網路:每個網路介面都必須連接至不重複的子網路。

  • 額外的虛擬 NIC 必須附加至包含 nic0 的網路:只有在網路也包含 nic0 虛擬 NIC 時,才能將兩個以上的虛擬 NIC 附加至同一個虛擬私有雲網路。舉例來說,nic0、nic1 和 nic2 可以附加至同一虛擬私有雲網路中的專屬子網路,但如果 nic0 未附加至該網路,nic1 和 nic2 就無法附加至同一虛擬私有雲網路。

  • 包含 Dynamic NIC 和至少一個其他 NIC 的網路,必須包含每個 Dynamic NIC 的上層 vNIC:例如:

    • 如要將 nic1.6 和 nic1.7 Dynamic NIC 連接至同一個虛擬私有雲網路,您也必須將其父項 vNIC nic1 連接至該虛擬私有雲網路。

    • 如要將 nic1.6 Dynamic NIC 和 nic2 vNIC 連接至同一個虛擬私有雲網路,您也必須將 nic1 和 nic0 vNIC 連接至該虛擬私有雲網路。nic1 是 nic1.6 Dynamic NIC 的上層 vNIC,因此必須附加 nic1。由於網路含有多個 vNIC,因此必須附加 nic0。

    • 如要將 nic2.5 和 nic3.6 動態 NIC 附加至同一個虛擬私有雲網路,您也必須將下列所有 vNIC 附加至該虛擬私有雲網路:nic0、nic2 和 nic3。nic2 和 nic3 vNIC 是 nic2.5 和 nic3.6 Dynamic NIC 的上層 vNIC,因此必須連結這兩個 vNIC。由於網路包含多個 vNIC,因此必須附加 nic0。

  • 每個 Private Service Connect 介面都有專屬網路:如果其中一個網路介面使用該網路中的網路連結,則兩個以上的網路介面就無法連結至同一個虛擬私有雲網路。

同一虛擬私有雲網路中多個網路介面的頻寬

同一個虛擬私有雲網路中的多個 vNIC 會依據下列規則影響網路頻寬:

  • 如果執行個體由一個實體 NIC 支援,將兩個以上的 vNIC 連接至同一個虛擬私有雲網路,並不會增加網路頻寬。

  • 如果執行個體有多個實體 NIC,將兩個以上的虛擬 NIC 連至同一個虛擬私有雲網路,當 Compute Engine 將虛擬 NIC 對應至不同的實體 NIC 時,網路頻寬就會增加。

無論機器類型為何,在執行個體中新增 Dynamic NIC 不會增加頻寬,因為 Dynamic NIC 使用的是父項 vNIC 的頻寬。

堆疊類型和 IP 位址

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

  • 僅限 IPv4
  • 雙堆疊
  • 僅限 IPv6

VM 執行個體可以有不同堆疊類型的網路介面。

下表說明支援的子網路堆疊類型,以及各介面堆疊類型的 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 會從介面子網路的 /64 IPv6 位址範圍,為每個雙重堆疊或僅限 IPv6 的網路介面指派 /96 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。 不過,選取的裸機機型支援多個 vNIC,例如 Z4M。 如要瞭解 Z4M 執行個體支援的網路介面數量,請參閱「建立啟用 Cloud RDMA 的執行個體」。

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

介面數量上限

請參閱下表,判斷可附加至執行個體的網路介面數量。

vCPU 數量 虛擬 NIC 數量上限 Dynamic NIC 數量上限 網路介面數量上限
(vNIC + 動態 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) vNIC 數量上限 Dynamic NIC 數量上限 網路介面數量上限
(vNIC + 動態 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)

Dynamic NIC 的分配範例

您不必在 vNIC 之間平均分配 Dynamic NIC。不過,由於 Dynamic NIC 會共用上層 vNIC 的頻寬,因此您可能需要平均分配。

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

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

下表提供設定範例,說明如何在 vNIC 之間平均分配 Dynamic NIC,同時針對指定數量的 vCPU 使用最多數量的網路介面。

2 個 vCPU、2 個 NIC

下表以具有 2 個 vCPU 的執行個體為例,說明在指定數量的 vNIC 下,可以有多少個 Dynamic NIC。

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

4 個 vCPU、4 個 NIC

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

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

8 個 vCPU、8 個 NIC

下表以具有 8 個 vCPU 的執行個體為例,說明在指定數量的 vNIC 下,可以有多少個 Dynamic NIC。

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

14 個 vCPU、12 個 NIC

下表以具有 12 個 vCPU 的執行個體為例,說明在指定數量的 vNIC 下,可以擁有的 Dynamic NIC 數量。

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

22 個 vCPU、16 個 NIC

下表以 22 個 vCPU 的執行個體為例,說明特定數量的 vNIC 可擁有的 Dynamic NIC 數量。

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

產品互動

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

Shared VPC

除了 Private Service Connect 介面之外,Shared VPC 主機或服務專案中多 NIC 執行個體的子網路和專案關係如下:

  • 如果多 NIC 執行個體位於 Shared VPC 主專案,則執行個體的每個網路介面都必須使用主專案中 Shared VPC 網路的子網路。

  • 位於 Shared VPC 服務專案中的多 NIC 執行個體,其每個網路介面都可以使用下列任一項:

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

如要進一步瞭解 Shared VPC,請參閱:

Compute Engine 內部 DNS

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

詳情請參閱「Compute Engine 內部 DNS」。

靜態路徑

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

建立下一個躍點為執行個體的靜態路由時:

  • 如果依名稱和可用區指定下一個躍點執行個體 (next-hop-instance),封包只會傳送至執行個體的 nic0 vNIC,且 nic0 vNIC 必須連結至建立靜態路由的相同虛擬私有雲網路。

  • 如果依位址 (next-hop-address) 指定下一個躍點執行個體,封包可以傳送至建立靜態路由的同一個虛擬私有雲中的特定 vNIC 或 Dynamic NIC。

詳情請參閱「下一個躍點和功能」。

負載平衡器

下表說明哪些執行個體網路介面符合接收負載平衡流量的必要條件,包括根據同一虛擬私有雲網路中多個網路介面的規則,將多個介面附加至同一虛擬私有雲網路的情況。符合必要負載平衡器條件的網路介面,就是負載平衡器目標介面。執行個體在使用的每個虛擬私有雲網路中,都只有一個負載平衡器目標介面,即使在同一個網路中有多個介面也一樣。

介面 接收負載平衡流量的條件
nic0 vNIC

可附加至虛擬私有雲網路,無論是否有其他網路介面:

  • 如果多個 vNIC 與 nic0 vNIC 共用同一個虛擬私有雲網路,則只有 nic0 可以接收經過負載平衡的流量。
  • 當一或多個 Dynamic NIC 與 nic0 vNIC 共用虛擬私有雲網路時,只有 nic0 可以接收負載平衡流量。
非 nic0 vNIC

必須連接至虛擬私有雲網路,且不得有任何其他 vNIC:

  • 可單獨附加至虛擬私有雲網路。
  • 當一或多個 Dynamic NIC 與父項 vNIC 共用虛擬私有雲網路時,只有父項 vNIC 可以接收負載平衡流量。
Dynamic NIC

必須連結至不含其他網路介面的專屬虛擬私有雲網路 (不得有其他 vNIC 和其他 Dynamic NIC)。

下表詳細說明負載平衡器和後端群組設定,可用於將流量傳送至負載平衡器目標介面。

應用程式負載平衡器和 Proxy 網路負載平衡器的負載平衡器目標介面

應用程式負載平衡器
或 Proxy 網路負載平衡器後端服務的後端群組類型
負載平衡器目標介面
nic0 vNIC 非 nic0 vNIC Dynamic NIC
執行個體群組
GCE_VM_IP_PORT NEG

直通式網路負載平衡器的負載平衡器目標介面

內部直通式網路負載平衡器:

內部直通式網路負載平衡器後端服務的後端群組類型
負載平衡器目標介面
nic0 vNIC 非 nic0 vNIC Dynamic NIC
執行個體群組
GCE_VM_IP NEG

外部直通式網路負載平衡器:

外部直通式網路負載平衡器的後端類型
負載平衡器目標介面
nic0 vNIC 非 nic0 vNIC Dynamic NIC
後端服務型區域性外部直通式網路負載平衡器或全域外部直通式網路負載平衡器的後端服務上,有執行個體群組
GCE_VM_IP NEG
位於後端服務型區域外部直通式網路負載平衡器或全域外部直通式網路負載平衡器的後端服務上
目標集區型區域性外部直通式網路負載平衡器的目標集區

GCE_VM_IP_PORT 個可用區 NEG 後端和網路介面

使用 GCE_VM_IP_PORT 端點建立新的可用區 NEG 時,您必須指定可用區、預設通訊埠、虛擬私有雲網路,以及該網路中的子網路。區域 NEG 建立後,這些屬性都無法變更。

NEG 的子網路必須與 NEG 的可用區位於相同區域。如果 NEG 的網路是自動模式虛擬私有雲網路,則可省略指定 NEG 的子網路。如未指定子網路, Google Cloud 會將 NEG 的子網路設為 NEG 可用區所在區域中自動建立的子網路。

具有 GCE_VM_IP_PORT 端點的區域 NEG 會強制執行下列新增端點的規則:

  • 如果只為端點指定執行個體名稱,執行個體必須與 NEG 位於同一區域,且在 NEG 的子網路中具有負載平衡器目標介面。端點的 IP 位址會設為負載平衡器目標介面的主要內部 IPv4 位址,端點的通訊埠則會設為 NEG 的預設通訊埠。

  • 如果您指定執行個體名稱和 IP 位址,或執行個體名稱、IP 位址和端點的通訊埠資訊,執行個體必須與 NEG 位於相同區域,且:

    • 如果指定 IPv4 位址:IPv4 位址必須是主要內部 IPv4 位址,或來自別名 IP 範圍的 IPv4 位址,且該範圍與 NEG 子網路中的負載平衡器目標介面相關聯。

    • 如果指定 IPv6 位址:IPv6 位址必須是 NEG 子網路中,負載平衡器目標介面 /96 IPv6 位址範圍內的單一 IPv6 位址。

    • 端點的通訊埠是您指定的通訊埠。如未指定通訊埠,端點的通訊埠會設為 NEG 的預設通訊埠。

GCE_VM_IP 可用區 NEG 後端和網路介面

建立含有 GCE_VM_IP 端點的新可用區 NEG 時,您必須指定可用區、虛擬私有雲網路,以及該網路中的子網路。區域 NEG 建立後,這些屬性都無法變更。

NEG 的子網路必須與 NEG 的可用區位於相同區域。如果 NEG 的網路是自動模式虛擬私有雲網路,您可以省略指定 NEG 的子網路。如果未指定子網路, Google Cloud 會將 NEG 的子網路設為自動建立的子網路,該子網路位於包含 NEG 可用區的區域中。

具有 GCE_VM_IP 端點的區域 NEG 會強制執行下列新增端點的規則:

  • 如果只為端點指定執行個體名稱,該執行個體必須與 NEG 位於相同可用區,且在 NEG 的子網路中具有負載平衡器目標介面。

  • 如果同時指定執行個體名稱和 IP 位址來新增端點,執行個體必須與 NEG 位於相同可用區,且 IP 位址必須是 NEG 子網路中負載平衡器目標介面的主要內部 IPv4 位址。

由於執行個體在 NEG 的子網路中只能有一個 NIC,因此每個可用區 NEG 只能有一個 GCE_VM_IP 端點,且端點一律會以負載平衡器目標介面的主要內部 IPv4 位址識別。負載平衡封包的實際目的地 IP 位址與直通式網路負載平衡器轉送規則相符。

執行個體群組後端和網路介面

與執行個體群組相關聯的虛擬私有雲網路和子網路,會透過下列其中一項動作隱含設定:

  • 如果是代管執行個體群組 (MIG),執行個體群組的虛擬私有雲網路和子網路會設為執行個體範本中定義的 nic0 vNIC 網路和子網路。

  • 對於非代管執行個體群組,執行個體群組的 VPC 網路和子網路會設為您新增至非代管執行個體群組的第一個執行個體的 nic0 vNIC 網路和子網路。即使您移除新增至群組的第一個執行個體,也無法在日後變更執行個體群組的虛擬私有雲網路或子網路。

設定執行個體群組的虛擬私有雲網路和子網路後,Google Cloud 會在將執行個體新增至非代管執行個體群組時,強制執行下列規則:

  • 如要將執行個體新增至執行個體群組,執行個體的 nic0 vNIC 必須與執行個體群組的網路和子網路相符。系統會強制執行這項規則,因為 nic0 vNIC 一律是負載平衡器目標介面。

  • 對於要新增至執行個體群組的執行個體,每個負載平衡器目標介面:如果負載平衡器目標介面附加至現有執行個體的負載平衡器目標介面附加至的虛擬私有雲網路,則新的和現有的負載平衡器目標介面都必須使用相同的子網路。

防火牆規則

防火牆規則集 (來自階層式防火牆政策、全域網路防火牆政策、區域網路防火牆政策和虛擬私有雲防火牆規則) 對每個網路介面都是不重複的。請確認每個網路都有適當的防火牆規則,允許您要傳送至多 NIC 執行個體及從中傳出的流量。如要判斷哪些防火牆規則適用於網路介面,以及每項規則的來源,請參閱「取得 VM 介面的有效防火牆規則」。

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

已知問題

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

搭配 GPU 執行個體使用 Dynamic NIC 時,發生建立錯誤和效能降低

動態 NIC 不支援搭配 GPU 執行個體使用。如果您使用動態 NIC 建立 GPU 執行個體,或將動態 NIC 新增至現有的 GPU 執行個體,可能會發生下列問題:

  • 作業失敗,並顯示類似下列的錯誤:

    Internal error. Please try again or contact Google Support. (Code: 'CODE')

  • 作業會成功,但執行個體的效能會降低,例如網路頻寬大幅降低。

發生這些問題的原因是,Compute Engine 嘗試將執行個體的 vNIC 分配到主機伺服器的實體 NIC 時,Dynamic NIC 設定會導致錯誤。

使用動態 NIC 時,封包會因別名 IP 範圍、通訊協定轉送或直通式網路負載平衡器而遭到捨棄

在下列情況下,訪客代理程式會自動為 vNIC 新增本機路由,但不會為 Dynamic NIC 新增:

  • 設定別名 IP 範圍時,客體代理程式會為別名 IP 範圍建立本機路由。
  • 建立目標執行個體,並參照用於通訊協定轉送的運算執行個體時,訪客代理程式會為相關聯的轉送規則 IP 位址建立本機路由。
  • 將後端新增至直通式網路負載平衡器時,客體代理程式會為相關聯的轉送規則 IP 位址建立本機路徑。

由於系統不會為動態 NIC 新增本機路由,因此動態 NIC 可能會捨棄封包。

如要解決這個問題,請按照下列步驟手動新增 IP 位址:

  1. 使用 SSH 連線至執行個體。

  2. 如要設定別名 IP 範圍,請按照下列步驟操作。您也可以略過這個步驟。

    1. 在 /etc/default/instance_configs.cfg 中,確認 ip_aliases 設定已設為 true。
    2. 如果 ip_aliases 設定設為 false,請修改檔案將其變更為 true,然後重新啟動訪客代理程式:

      systemctl restart google-guest-agent
      
  3. 使用下列指令,為別名 IP 範圍或轉送規則 IP 位址設定本機路由:

    ip route add to local IP_ADDRESS dev DYNAMIC_NIC_DEVICE_NAME proto 66
    

    更改下列內容:

    • IP_ADDRESS:要新增本機路由的別名 IP 範圍或轉送規則 IP 位址。
    • DYNAMIC_NIC_DEVICE_NAME:要新增本機路由的 Dynamic NIC 裝置名稱。例如:a-gcp.ens4.3。

在 20250901.00 至 20251120.01 版的訪客代理程式中,Dynamic NIC 的安裝和管理問題

如果您設定自動管理動態 NIC,且執行客體代理程式的執行個體版本介於 20250901.00 至 20251120.01,可能會遇到下列問題:

  • 客體代理程式無法在執行個體的客體 OS 中安裝及管理動態 NIC。

    在客體 OS 中執行參照動態 NIC 的指令時,可能會收到包含 Cannot find device 的錯誤訊息。

  • 刪除多個 Dynamic NIC 會導致中繼資料伺服器無法存取。

根本原因

自 20250901.00 版起,訪客代理程式已遷移至新的外掛程式架構,以提升模組化程度。新架構一開始不支援自動安裝及管理 Dynamic NIC。

解析度

如要解決這些問題,請更新執行個體,使用客體代理程式 20251205.00 以上版本:

  1. 如要將客體代理程式更新至最新版本,請參閱「更新客體環境」。
  2. 如要確認執行個體執行的訪客代理程式版本,請參閱「依作業系統版本查看已安裝的套件」。

如有必要,對於執行客體代理程式版本 20250901.00 至 20251120.01 的執行個體,您可以按照「回溯相容性」一文中的操作說明,還原至先前的客體代理程式架構,暫時解決這些問題。

運算執行個體位於多個執行個體群組時,Dynamic NIC 作業會失敗

如果您新增或刪除 Dynamic NIC,而作業卡在 RUNNING 狀態,進度為 0%,最後失敗並顯示 INTERNAL_ERROR,這可能是因為運算執行個體位於多個執行個體群組 (代管或非代管)。

如要完成作業,請從所有執行個體群組中移除執行個體,只保留一個。您可以從代管執行個體群組中移除執行個體,或從非代管執行個體群組中移除執行個體。

後續步驟