多個網路介面
本頁面提供 Compute Engine 執行個體多個網路介面的總覽。具有多個網路介面的執行個體稱為多 NIC 執行個體。
執行個體網路介面會連線至虛擬私有雲 (VPC) 網路,可以是虛擬網路介面 (vNIC) 或Dynamic NIC,其中 Dynamic NIC 是父項 vNIC 的子項子介面。執行個體的 vNIC 由執行個體所在主機伺服器上的一或多個實體 NIC 支援。詳情請參閱「網路介面類型」。
用途
多 NIC 執行個體適用於下列情況:
連線至不同虛擬私有雲網路中的資源:多 NIC 執行個體可連線至不同虛擬私有雲網路中的資源,這些網路並未透過虛擬私有雲網路對等互連或 NCC 相互連線。
由於多 NIC 執行個體的每個介面都位於不同的虛擬私有雲網路,因此您可以將每個介面用於不同的用途。舉例來說,您可以透過某些介面在傳輸實際工作環境流量的虛擬私有雲網路之間轉送封包,並透過其他介面進行管理或設定。
在每個多 NIC 執行個體的客體 OS 中,您必須設定路由政策和本機路由表。
在虛擬私有雲網路之間轉送封包:多 NIC 執行個體可用做路由的下一個躍點,連線至兩個以上的虛擬私有雲網路。
在多 NIC 執行個體的客體 OS 中執行的軟體,可以執行封包檢查、網路位址轉譯 (NAT) 或其他網路安全功能。
使用多 NIC 執行個體連線虛擬私有雲網路時,建議您設定兩個以上的多 NIC 執行個體,並將這些執行個體做為每個虛擬私有雲網路中內部直通網路負載平衡器的後端。詳情請參閱「以內部直通式網路負載平衡器為下一個躍點」說明文件中的「使用案例」一節。
如要增加執行個體的總網路頻寬:多 NIC 執行個體支援的頻寬增加幅度如下:
在 Google Cloud中,部分機器類型執行個體是由主機伺服器上的多個實體 NIC 支援。建立具有多個 vNIC 的執行個體,且每個 vNIC 使用不同的實體 NIC,可增加執行個體的總網路頻寬。詳情請參閱「同一虛擬私有雲網路中多個網路介面的頻寬」。
在 Google Cloud中,大多數機器類型的執行個體都由主機伺服器上的單一實體 NIC 支援,且每個 vNIC 都使用相同的實體 NIC。如果 vNIC 共用實體 NIC,新增 vNIC 不會增加網路頻寬。
您也可以使用具備 Private Service Connect 介面的多 NIC 執行個體,連線至不同專案中的服務供應商和用戶網路。
網路介面類型
如要進一步瞭解Google Cloud中的網路介面類型,請參閱下列各節。
執行個體網路介面
Compute Engine 執行個體會使用您設定的網路介面 (可以是 vNIC 或動態 NIC) 連線至 VPC 網路。這些執行個體網路介面會對應至 Compute Engine API 中的 instances.networkInterfaces[] 資源和屬性。
如要進一步瞭解各類執行個體網路介面,請參閱下列文章:
虛擬網路介面 (vNIC):向執行個體客體 OS 公開的軟體定義網路介面,可讓執行個體連線至虛擬私有雲網路。每個執行個體至少要有一個 vNIC。
您只能在建立執行個體時設定 vNIC。
Google Cloud 指派的 vNIC 名稱格式如下:
nicN,例如nic0。對應的客體 OS 指派名稱會因作業系統而異,例如 Ubuntu 的名稱為ens4。視相關聯的虛擬私有雲網路而定,虛擬 NIC 可以是下列其中一種類型。每種型別都對應到客層 OS 中的特定網路驅動程式:
一般虛擬私有雲網路可接受下列 vNIC 類型的附件:
GVNIC、IDPF和VIRTIO_NET。具有 RDMA 網路設定檔的虛擬私有雲網路會接受
IRDMA或MRDMA類型的 vNIC 連結,這些 vNIC 也稱為 RDMA vNIC。
如要瞭解哪些機器類型支援哪些 vNIC 類型,請參閱「機器系列比較」。
Dynamic NIC:上層 vNIC 的子項,在執行個體的客層 OS 中實作為子介面。
您可以在建立執行個體時設定動態 NIC,也可以稍後再新增。
Google Cloud 指派的 Dynamic NIC 名稱格式如下:
nicN.VLAN_ID,例如nic0.2。對應的客體 OS 指派名稱視作業系統而定。舉例來說,如果您使用客體代理程式管理 Ubuntu 中的動態 NIC,名稱可能為a-gcp.ens4.2。具有 RDMA 網路設定檔的虛擬私有雲網路不支援動態 NIC。
詳情請參閱「動態 NIC」。
Dynamic NIC 詳細資料
如果您的用途需要下列任一功能,請使用動態 NIC。 請務必一併查看動態 NIC 的屬性和限制。
您需要為現有執行個體新增或移除網路介面。 新增或移除 Dynamic NIC 時,不需要重新啟動或重新建立執行個體。
您需要的網路介面數量超過 vNIC 數量上限。在 Google Cloud中,大多數機器類型的介面數量上限為 10 個,但您可以使用動態 NIC 設定最多 16 個介面。詳情請參閱「網路介面數量上限」。
您需要設定多 NIC Compute Engine 裸機執行個體,這類執行個體只有一個 vNIC。
Dynamic 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 Dynamic NIC 的名稱採用下列格式:
nicNUMBER.VLAN_ID,其中nicNUMBER是父項 vNIC 的名稱,例如nic0。VLAN_ID是您設定的 VLAN ID,例如4。
動態 NIC 名稱範例為
nic0.4。建立使用 Dynamic NIC 的執行個體,或在現有執行個體中新增 Dynamic NIC 時,需要額外步驟,才能在客體 OS 中安裝及管理對應的 VLAN 介面。你可以使用下列任一方法:
使用客體代理程式,設定動態 NIC 的自動管理功能。
手動設定客體 OS。
詳情請參閱「設定動態 NIC 的客體 OS」。
Dynamic NIC 會共用上層 vNIC 的頻寬。 為避免任何網路介面耗用所有頻寬,您必須在客體 OS 中建立應用程式專屬的流量政策,以優先處理或分配流量,例如使用 Linux 流量控制 (TC)。
Dynamic NIC 與上層 vNIC 共用相同的接收和傳輸佇列。如要設定網路介面,使用不同的接收和傳輸佇列,請使用 vNIC,而非動態 NIC。
Dynamic NIC 的堆疊類型可以與上層 vNIC 相同或不同。舉例來說,您可以在僅限 IPv4 的上層 vNIC 下方,建立僅限 IPv6 和雙堆疊的 Dynamic NIC。
Dynamic NIC 的限制
動態 NIC 有下列限制:
建立動態 NIC 後,您無法修改下列屬性:
- Dynamic NIC 所屬的上層 vNIC。
- Dynamic NIC 的 VLAN ID。
如果動態 NIC 是負載平衡網路介面,則無法刪除。
動態 NIC 不支援下列項目:
- Google Cloud Armor 的進階網路 DDoS 防護和網路邊緣安全性政策
- 使用 MIG 的每個執行個體設定設定 IP 位址。
- 需要封包攔截的功能,例如防火牆端點
- Compute Engine Windows 驅動程式
動態 NIC 不支援GPU 執行個體。詳情請參閱「使用動態 NIC 和 GPU 執行個體時發生建立錯誤和效能降低的問題」。
在特定情況下,您必須手動建立本機路徑,才能使用動態 NIC。詳情請參閱「使用動態 NIC 時,搭配別名 IP 範圍、通訊協定轉送或直通網路負載平衡器,封包會遭到捨棄」一文。
實體 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。不過,對於某些機器類型 (例如裸機機器類型或 H3 和 H4D 機器類型),單一執行個體會佔用整個主機伺服器。
規格
下列規格適用於具有多個網路介面的執行個體:
執行個體和網路介面:每個執行個體都有
nic0介面。網路介面數量上限會因執行個體的機型而異。- 每個介面都有相關聯的堆疊類型,決定支援的子網路堆疊類型和 IP 位址版本。詳情請參閱「堆疊類型和 IP 位址」。
網路和子網路需求:每個網路介面都必須使用虛擬私有雲網路中的不重複子網路。
系統支援將網路介面附加至不同虛擬私有雲網路中的子網路。
在下列情況中,系統支援將網路介面連結至同一虛擬私有雲網路中的不同子網路:
如果是標準虛擬私有雲網路,多個網路介面可以根據相同虛擬私有雲網路中多個網路介面的規則,使用相同的虛擬私有雲網路。Cloud Load Balancing 和靜態路由有其他規則,詳情請參閱「負載平衡器」和「靜態路由」。
如果是使用 RDMA 網路設定檔建立的虛擬私有雲網路,多個 RDMA NIC 可以使用相同的虛擬私有雲網路。詳情請參閱「支援與不支援的功能」一文,瞭解各個網路設定檔的表格。
您必須先建立虛擬私有雲網路和子網路,才能建立網路介面使用該網路和子網路的執行個體。如要進一步瞭解如何建立網路和子網路,請參閱「建立及管理虛擬私有雲網路」。
系統不支援使用連結聚合功能綁定網路介面。如要進一步瞭解同一虛擬私有雲網路中的多個網路介面如何影響頻寬,請參閱「同一虛擬私有雲網路中多個網路介面的頻寬」。
執行個體和子網路的專案:在獨立專案中,多個 NIC 執行個體的每個網路介面都必須使用與執行個體位於相同專案的子網路。
如要瞭解 Shared VPC 主專案或服務專案中的執行個體,請參閱「Shared VPC 」。
Private Service Connect 介面可讓多 NIC 執行個體在不同專案的子網路中擁有網路介面。詳情請參閱「關於網路附件」。
IP 轉送、MTU 和路徑注意事項:多 NIC 執行個體需要仔細規劃下列執行個體和介面專屬的設定選項:
IP 轉送選項可針對每個執行個體設定,並套用至所有網路介面。詳情請參閱「為執行個體啟用 IP 轉送功能」。
每個網路介面都可以使用不重複的最大傳輸單元 (MTU),與相關聯的 VPC 網路 MTU 相符。詳情請參閱「最大傳輸單位」。
每個執行個體都會收到預設路徑,方法是使用 RFC 3442 定義的 DHCP 選項 121。預設路徑與
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.7Dynamic NIC 連接至同一個虛擬私有雲網路,您也必須將其父項 vNICnic1連接至該虛擬私有雲網路。如要將
nic1.6Dynamic NIC 和nic2vNIC 附加至同一個虛擬私有雲網路,您也必須將nic1和nic0vNIC 附加至該虛擬私有雲網路。必須附加nic1,因為nic1是nic1.6Dynamic NIC 的父項 vNIC。由於網路包含多個 vNIC,因此必須附加nic0。如要將
nic2.5和nic3.6動態 NIC 附加至同一個虛擬私有雲網路,您也必須將下列所有 vNIC 附加至該虛擬私有雲網路:nic0、nic2和nic3。由於nic2和nic3vNIC 是nic2.5和nic3.6Dynamic NIC 的父項 vNIC,因此必須附加這兩個 vNIC。由於網路包含多個 vNIC,因此必須附加nic0。
每個 Private Service Connect 介面都有專屬網路:如果其中一個網路介面使用該網路中的網路連結,則無法將兩個以上的網路介面連結至同一個虛擬私有雲網路。
同一虛擬私有雲網路中多個網路介面的頻寬
同一虛擬私有雲網路中的多個 vNIC 會依據下列規則影響網路頻寬:
如果執行個體是由一個實體 NIC 支援,將兩個以上的 vNIC 連接至同一個虛擬私有雲網路,網路頻寬永遠不會增加。
如果執行個體由多個實體 NIC 支援,將兩個以上的 vNIC 連接至同一個虛擬私有雲網路,當 Compute Engine 將 vNIC 對應至不同的實體 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 會為每個雙重堆疊或僅限 IPv6 的網路介面,指派介面子網路 IPv6 位址範圍中的 /96 IPv6 位址範圍:/64
/96IPv6 位址範圍是內部或外部,取決於介面子網路的 IPv6 存取權類型。 Google Cloud 可確保每個內部和外部 IPv6 位址範圍的獨特性。詳情請參閱 IPv6 規格。- 如果執行個體需要內部 IPv6 位址範圍和外部 IPv6 位址範圍,則必須設定兩個雙重堆疊介面、兩個僅限 IPv6 的介面,或是一個雙重堆疊介面和一個僅限 IPv6 的介面。一個介面使用的子網路必須有外部 IPv6 位址範圍,另一個介面使用的子網路則必須有內部 IPv6 位址範圍。
第一個 IPv6 位址 (
/128) 是由 DHCP 在介面上設定。 詳情請參閱「IPv6 位址指派」。您可以設定靜態內部或外部 IPv6 位址範圍,控管指派的
/96IPv6 位址範圍。如果是內部 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。不過,由於動態 NIC 會共用父項 vNIC 的頻寬,因此您可能希望平均分配頻寬。
執行個體至少要有一個 vNIC。舉例來說,具有 2 個 vCPU 的執行個體可以有下列其中一種設定:
- 1 個 vNIC
- 2 個 vNIC
- 1 個 vNIC 和 1 個 Dynamic NIC
下表提供範例設定,可在使用指定 vCPU 數量上限的網路介面時,將動態 NIC 平均分配到 vNIC。
2 個 vCPU、2 個 NIC
下表提供 2 個 vCPU 的執行個體範例,說明特定數量的虛擬 NIC 可擁有的動態 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 的 Dynamic 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中其他產品和功能之間的互動。
Shared VPC
除了 Private Service Connect 介面,共用虛擬私有雲主專案或服務專案中多 NIC 執行個體的子網路和專案關係如下:
位於 Shared VPC 主專案中的多 NIC 執行個體,其每個網路介面都必須使用主專案中共用虛擬私有雲網路的子網路。
位於 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) 指定下一個躍點執行個體,封包只會傳送至執行個體的nic0vNIC,且nic0vNIC 必須附加至建立靜態路由的相同虛擬私有雲網路。如果依地址 (
next-hop-address) 指定下一個躍點執行個體,封包可以傳送至建立靜態路徑的同一個虛擬私有雲中的特定 vNIC 或動態 NIC。
詳情請參閱「下一個躍點和功能」。
負載平衡器
下表說明哪些執行個體網路介面符合接收負載平衡流量的必要條件,包括根據相同虛擬私有雲網路中多個網路介面的規則,將多個介面連結至相同虛擬私有雲網路的情況。符合必要負載平衡器條件的網路介面,就是負載平衡器目標介面。即使執行個體在同一個網路中有多個介面,在使用的每個虛擬私有雲網路中,執行個體也只會有一個負載平衡器目標介面。
| 介面 | 接收負載平衡流量的條件 |
|---|---|
nic0 vNIC |
可附加至虛擬私有雲網路,無論是否含有其他網路介面:
|
非 nic0 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 後端和網路介面
建立新的區域 NEGGCE_VM_IP_PORT 時,請指定
區域、預設連接埠、虛擬私有雲網路,以及該網路中的子網路。
區域 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 子網路中負載平衡器目標介面的
/96IPv6 位址範圍內的單一 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),執行個體群組的虛擬私有雲網路和子網路會設為執行個體範本中定義的
nic0vNIC 網路和子網路。對於非代管執行個體群組,執行個體群組的 VPC 網路和子網路會設為您新增至非代管執行個體群組的第一個執行個體的
nic0vNIC 網路和子網路。即使移除您新增至群組的第一個執行個體,您也無法在之後變更執行個體群組的虛擬私有雲網路或子網路。
設定執行個體群組的虛擬私有雲網路和子網路後,Google Cloud 會在將執行個體新增至非代管執行個體群組時,強制執行下列規則:
要新增至執行個體群組的執行個體,其
nic0vNIC 必須與執行個體群組的網路和子網路相符。由於nic0vNIC 一律是負載平衡器目標介面,因此系統會強制執行這項規則。如要將執行個體的每個負載平衡器目標介面新增至執行個體群組,請注意:如果負載平衡器目標介面已連結至虛擬私有雲網路,而現有執行個體的負載平衡器目標介面也連結至該網路,則新舊負載平衡器目標介面必須使用相同的子網路。
防火牆規則
防火牆規則集 (來自階層式防火牆政策、全域網路防火牆政策、區域網路防火牆政策和 VPC 防火牆規則) 適用於每個網路介面。確認每個網路都有適當的防火牆規則,允許您想允許進出多 NIC 執行個體的流量。如要判斷哪些防火牆規則套用至網路介面,以及每項規則的來源,請參閱「取得 VM 介面的有效防火牆規則」。
您可以使用網路標記或安全標記,將防火牆規則的適用範圍限定在特定 VM 執行個體,這兩種標記都會套用至執行個體的所有網路介面。詳情請參閱「安全代碼與網路代碼比較」。
已知問題
本節說明在 Google Cloud中使用多個網路介面的相關已知問題。
使用動態 NIC 和 GPU 執行個體時發生建立錯誤和效能降低
動態 NIC 不支援搭配 GPU 執行個體使用。如果您使用動態 NIC 建立 GPU 執行個體,或將動態 NIC 新增至現有 GPU 執行個體,可能會發生下列問題:
作業失敗,並顯示下列錯誤:
Internal error. Please try again or contact Google Support. (Code: 'CODE')作業成功,但執行個體效能下降,例如網路頻寬大幅降低。
發生這些問題的原因是,當 Compute Engine 嘗試將執行個體的虛擬 NIC 分散到主機伺服器上的實體 NIC 時,Dynamic NIC 設定會導致錯誤。
使用動態 NIC 時,封包會因別名 IP 範圍、通訊協定轉送或直通式網路負載平衡器而遭到捨棄
在下列情況下,客體代理程式會自動為 vNIC 新增本機路徑,但不會為動態 NIC 新增:
- 設定別名 IP 範圍時,客層代理程式會為別名 IP 範圍建立本機路由。
- 建立參照通訊協定轉送的運算執行個體時,客體代理程式會為相關聯的轉送規則 IP 位址建立本機路徑。目標執行個體
- 將後端新增至直通式網路負載平衡器時,客體代理程式會為相關聯的轉送規則 IP 位址建立本機路徑。
由於系統不會為 Dynamic NIC 新增本機路由,Dynamic NIC 可能會捨棄封包。
如要解決這個問題,請按照下列步驟手動新增 IP 位址:
使用 SSH 連線至執行個體。
如要設定別名 IP 範圍,請按照下列步驟操作。 您也可以略過這個步驟。
- 在
/etc/default/instance_configs.cfg中,確認ip_aliases設定已設為true。 如果 ip_aliases 設定設為
false,請修改檔案將其變更為true,然後重新啟動訪客代理程式:systemctl restart google-guest-agent
- 在
使用下列指令,為別名 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 的動態 NIC 安裝和管理問題
如果您設定自動管理動態 NIC,且執行個體執行的客體代理程式版本介於 20250901.00 到 20251120.01 之間,可能會遇到下列問題:
訪客代理程式無法在執行個體的訪客作業系統中安裝及管理動態 NIC。
在參照動態 NIC 的訪客 OS 中執行指令時,您可能會收到包含
Cannot find device的錯誤訊息。刪除多個動態 NIC 會導致無法存取中繼資料伺服器。
根本原因
自 20250901.00 版起,客體代理程式已遷移至新的外掛程式架構,以提升模組化程度。新架構最初不支援自動安裝及管理動態 NIC。
解析度
如要解決這些問題,請更新執行個體,使用客體代理程式 20251205.00 以上版本:
- 如要將訪客代理程式更新至最新版本,請參閱「更新訪客環境」一文。
- 如要確認執行個體執行的客體代理程式版本,請參閱「依作業系統版本查看已安裝的套件」。
如有必要,您可以暫時解決執行客體代理程式版本 20250901.00 至 20251120.01 的執行個體問題,方法是按照「向後相容性」一節中的操作說明,還原至先前的客體代理程式架構。
運算執行個體位於多個執行個體群組時,Dynamic NIC 作業會失敗
如果您新增或刪除 Dynamic NIC,且作業停滯在 RUNNING 狀態,進度為 0%,最終因 INTERNAL_ERROR 而失敗,可能是因為運算執行個體位於多個執行個體群組 (代管或非代管)。
如要讓作業完成,請從所有執行個體群組 (但其中一個除外) 移除執行個體。您可以從代管執行個體群組中移除執行個體,或從非代管執行個體群組中移除執行個體。