別名 IP 範圍總覽

Google Cloud Platform (GCP) 別名 IP 範圍可讓您以別名形式,將特定範圍的內部 IP 位址指派給虛擬機器 (VM) 的網路介面。如果您的 VM 上有多項服務在運作,而您想要為每項服務指派不同的 IP 位址,這項功能會很實用。別名 IP 範圍也適用於 GKE Pod

總覽

如果您在 VM 上只有執行一個服務,可以透過介面的主要 IP 位址來參照這個服務。如果您在 VM 上執行多個服務,則可能會想要為各個服務指派不同的內部 IP 位址。您可以使用別名 IP 範圍來達成這項目的。

子網路主要與次要 CIDR 範圍

所有子網路都具有「主要 CIDR 範圍」,這是定義子網路的內部 IP 位址範圍。每個 VM 執行個體皆會從這個範圍取得其主要內部 IP 位址。您也可以從主要範圍分配別名 IP 範圍,或者將次要範圍新增至子網路,並從次要範圍分配別名 IP 範圍。使用別名 IP 範圍不「需要」具有次要子網路範圍。這些次要子網路範圍只是單純提供機構工具。

VM 網路介面中定義的別名 IP 範圍

透過 IP 別名功能,您可以設定多個內部 IP 位址來代表託管在 VM 中的容器或應用程式,並不需要定義另一個網路介面。您可以從子網路的主要或次要範圍指派 VM 別名 IP 範圍。

設定別名 IP 範圍一文說明設定具有次要範圍的子網路的指令,以及將別名 IP 位址指派給 VM 的指令。

下列圖表提供基本圖例,說明主要與次要 CIDR 範圍及 VM 主要介面上的 VM 別名 IP 範圍:

主要與次要 CIDR 範圍以及 VM 別名 IP 範圍 (按一下可放大)
主要與次要 CIDR 範圍以及 VM 別名 IP 範圍 (按一下可放大)
  • 主要 CIDR 範圍 10.1.0.0/16 設定為子網路的一部分。
  • 次要 CIDR 範圍 10.2.0.0/20 設定為子網路的一部分。
  • VM 主要 IP 10.1.0.2 是從主要 CIDR 範圍 (10.1.0.0/16) 進行分配,而別名 IP 範圍 (10.2.1.0/24) 則是從次要 CIDR 範圍 (10.2.0.0/20) 的 VM 中進行分配。
  • 別名 IP 範圍中的位址會用來當做 VM 中託管容器的 IP 位址。

別名 IP 範圍的主要優點

設定別名 IP 範圍時,GCP 會針對主要網路介面的子網路,自動安裝主要和別名 IP 範圍的虛擬私人雲端 (VPC) 網路路徑。容器自動化調度管理服務並不需要為這些路徑指定 VPC 網路連線,可以簡化轉送流量和容器管理的作業。您不需要按照別名 IP 範圍主要屬性所述執行訪客設定。

GCP 分配容器 IP 位址時,GCP 中的驗證程序會確保容器 Pod IP 位址不會與 VM IP 位址產生衝突。

設定別名 IP 位址時,系統會對流量執行防偽檢查,確保離開 VM 的流量使用 VM IP 位址和 Pod IP 位址做為來源位址。防偽檢查會確認 VM 不使用任意來源 IP 位址傳送流量。相較於使用 IP 別名,針對容器網路使用靜態路徑是較不安全的方法,因為這種做法需要停用容器主機 VM 上的防偽檢查 (防偽檢查會在啟用 IP 轉送時遭到停用)。

別名 IP 範圍可在 GCP 虛擬網路內轉送,並不需要額外的路徑。您不需要為每個 IP 別名新增路徑,而且無須考慮路徑配額。

別名 IP 位址可透過雲端路由器公佈到透過 VPN 或互連網路連線的內部部署網路。

從次要 CIDR 範圍分配別名 IP 範圍具有多項優點。透過與主要 IP 位址所用範圍不同的範圍進行分配,可讓您區隔基礎架構 (VM) 與服務 (容器)。當您為基礎架構與服務設定分開的位址空間時,可以個別設定 VM 別名 IP 位址與 VM 主要 IP 位址的防火牆控管。舉例來說,您可以允許容器 Pod 的特定流量,並拒絕 VM 主要 IP 位址的類似流量。

GCP 中的容器架構

假設您要在 GCP 的上層設定容器化服務,則必須建立託管服務的 VM 及容器。

在本情境中,您想要將進出容器的流量轉送到透過 VPN 連線的內部部署位置,或從該位置進行轉送,不過您不想讓主要 VM IP 位址可透過 VPN 連上。如要建立這個設定,容器 IP 範圍需要可透過 VPN 轉送,而不是透過 VM 主要 IP 範圍轉送。建立 VM 時,您也想要自動指派用於容器的 IP 位址集區。

如要建立這個設定,請執行下列工作:

  • 建立子網路時,請設定:
    • 一個主要 CIDR 範圍,例如 10.128.0.0/16
    • 一個次要 CIDR 範圍,例如 172.16.0.0/16
  • 使用執行個體範本建立 VM 並自動指派以下各個項目:
    • 來自 10.128.0.0/16 範圍的主要 IP
    • 來自次要 CIDR 172.16.0.0/16 空間的別名範圍 /24,這樣就能從 /24 次要 CIDR 範圍為 VM 上的各個 Pod 指派 IP
  • 建立兩個防火牆規則
    • 其中一個規則拒絕從內部部署行經 VPN 的流量連上子網路主要 CIDR 範圍。
    • 另一個規則允許從內部部署行經 VPN 的流量連上子網路次要 CIDR 範圍。

範例:使用別名 IP 範圍設定容器

透過別名 IP 範圍,您可以從次要 CIDR 範圍分配容器 IP 位址,並設為託管容器的 VM 中的別名 IP 位址。

設定具有別名 IP 位址的容器 (按一下可放大)
設定具有別名 IP 位址的容器 (按一下可放大)

如何建立上圖所示的設定:

  1. 建立子網路,其具有 CIDR 範圍 10.128.0.0/16 (系統會從該範圍分配 VM IP 位址),以及專供容器使用的次要 CIDR 範圍 172.16.0.0/20 (系統會將此設定為託管容器的 VM 中的別名 IP 範圍):

    gcloud compute networks subnets create subnet-a \
        --network network-a \
        --range 10.128.0.0/16 \
        --secondary-range container-range=172.16.0.0/20
    
  2. 建立 VM,其具有來自 10.128.0.0/16 範圍的主要 IP,以及來自次要 CIDR 範圍 172.16.0.0/20 的別名 IP 範圍 172.16.0.0/24 供該 VM 中的容器使用:

    gcloud compute instances create vm1 [...] \
        --network-interface subnet=subnet-a,aliases=container-range:172.16.0.0/24
    gcloud compute instances create vm2 [...] \
        --network-interface subnet=subnet-a,aliases=container-range:172.16.1.0/24
    
  3. 容器 IP 位址在 GCP 中會設定為別名 IP 位址。在這項設定中,主要與別名 IP 都可透過 VPN 通道連上。如果您設定了雲端路由器,則會自動通告次要子網路範圍 172.16.0.0/20。如要進一步瞭解如何搭配雲端路由器使用 VPN,請參閱使用動態轉送建立 VPN 通道一文。

如要進一步瞭解建立這個設定所使用的指令,請參閱設定別名 IP 位址和範圍一文。

範例:單一 VM 執行個體中設定的多個別名 IP 範圍

別名 IP 範圍可讓您針對 VM 中執行的應用程式 (包含透過容器執行的應用程式) 管理其 IP 分配範圍。

在您的部署中,有些容器或許可以在 VM 間遷移,有些則無法。您可使用 /32 範圍設定可遷移的容器,以便輕鬆遷移各個容器。由於不可遷移的容器會集中在一起,因此這類容器可以使用較大的範圍加以設定。

在這些類型的部署作業中,您可能需要為每個 VM 執行個體設定多個別名 IP 範圍,例如為不可遷移的容器設定一個 /27,並為可遷移的容器設定多個 /32。

設定具有多個別名 IP 範圍的 VM (按一下可放大)
設定具有多個別名 IP 範圍的 VM (按一下可放大)

如要設定這個範例,請使用以下 gcloud 指令:

gcloud compute networks create vpc1 --subnet-mode custom
gcloud compute networks subnets create subnet1 --region us-central1 --network vpc1 --range 10.128.0.0/16 --secondary-range secondaryrange1=172.16.0.0/20
gcloud compute instances create vm1 --zone us-central1-a --network-interface "subnet=subnet1,aliases=secondaryrange1:172.16.0.0/27;secondaryrange1:172.16.1.0/32"
gcloud compute instances create vm2 --zone us-central1-a --network-interface "subnet=subnet1,aliases=secondaryrange1:172.16.0.32/27;secondaryrange1:172.16.1.1/32"

自動模式 VPC 網路和子網路中的別名 IP 位址

在自動模式 VPC 網路中,子網路存在於每個地區中。這些自動建立的子網路各自具有主要 CIDR 範圍,但沒有次要範圍。如要在自動模式 VPC 網路中使用別名 IP,您可以從自動建立的子網路主要 CIDR 範圍分配別名 IP 範圍,或是新增次要範圍到自動建立的子網路,並從新的次要範圍分配別名 IP 範圍。

或者,您也可以在自動模式虛擬私人雲端網路中使用次要範圍建立新的子網路,前提是其範圍均未與 10.128.0.0/9 重疊。接著,您可以在新的子網路中建立 VM 執行個體,並從該子網路上的任何範圍分配別名 IP 範圍。

如要將次要範圍新增至子網路,請參閱新增次要 CIDR 範圍至現有子網路

自訂模式網路和子網路中的別名 IP 位址

在自訂模式網路中:

  • 所有子網路都是以手動的方式建立。
  • 必須具有一個主要 CIDR 範圍。
  • 您可以選擇建立次要 CIDR 範圍。

別名 IP 範圍主要屬性

下列屬性適用於在 VM 中設定的別名 IP 範圍:

  • 從 VM OS 的觀點來看,主要 IP 位址和預設閘道通常是透過 DHCP 進行分配。別名 IP 位址在 VM OS (通常是 Linux 或 Windows) 中,可透過手動方式或指令碼進行設定。
  • 介面的主要 IP 位址和別名 IP 範圍必須從設為相同子網路一部分的 CIDR 範圍進行分配。請注意下列需求條件:
    • 主要 IP 位址必須從 CIDR 主要範圍進行分配。
    • 別名 IP 範圍可從主要 CIDR 範圍或相同子網路的次要 CIDR 範圍進行分配。
    • 如為 VM 網路介面,別名 IP 的來源必須與為主要網路介面提供 IP 位址的子網路資源相同。您無法從另一個子網路資源選取主要或次要 CIDR 範圍。
    • 主要 IP 位址可讓使用者透過靜態私人 IP 位址設定,或是由系統透過臨時靜態 IP 位址進行自動分配。
    • 別名 IP 範圍是選用項目且不會自動新增。在執行個體建立或修改期間,您可以設定別名 IP 範圍。
    • 別名 IP 範圍可設定為明確的 CIDR 範圍 (例如 10.128.1.0/24)、單一 IP 位址 (例如 10.128.7.29) 或網路遮罩 (/24)。您可以指定完整的別名 IP 範圍,或指定網路遮罩來讓系統自動分配範圍。
    • 由於虛擬私人雲端網路中的所有子網路皆共用單一預設閘道,因此介面中的所有別名 IP 位址都會與主要 IP 位址共用相同的預設閘道。
介面中的別名 IP 與主要 IP 位址共用相同的預設閘道 (按一下可放大)
介面中的別名 IP 與主要 IP 位址共用相同的預設閘道 (按一下可放大)

具有別名 IP 位址的 DNS

GCP 會自動設定內部 DNS,用於每個 VM 執行個體主要介面的主要 IP。這會將執行個體主機名稱與主要介面的主要 IP 位址建立關聯。不過,該主機名稱上的 DNS 查詢僅適用於包含主要介面的網路。

GCP 不會自動將其他任何的 IP 位址與主機名稱建立關聯。GCP 不會將主要介面上的別名 IP 位址與主機名稱建立關聯,而且也不會將次要介面的任何 IP 位址與主機名稱建立關聯。

您可以手動設定 DNS,以便與其他 IP 位址建立關聯。

防火牆

別名 IP 位址不支援防火牆來源標記。當您在防火牆規則中設定來源標記時,來源標記會與 VM 主要 IP 位址相符,但不會與別名 IP 位址相符。您可以使用來源範圍來允許或拒絕來自 IP 別名位址的輸入流量。

靜態路徑

在靜態路徑中,下一個躍點的 IP 位址必須是虛擬機器執行個體的主要 IP 位址。系統不支援使用別名 IP 位址做為下一個躍點 IP 位址。

VPC 網路對等互連

VPC 網路對等互連可讓您將兩個 VPC 網路建立對等互連,讓兩個網路中的 VM 可以透過內部的私人 IP 位址進行通訊。

對等網路中的 VM 執行個體能連上子網路的主要與次要 IP 範圍。

跨對等網路的子網路重疊檢查能夠確保主要與次要範圍沒有與任何對等範圍重疊。

IP 別名功能與網路對等互連 (按一下可放大)
IP 別名與網路對等互連 (按一下可放大)

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
虛擬私人雲端