使用共用 IP 位址的內部直通式網路負載平衡器轉送規則

內部直通式網路負載平衡器是區域負載平衡器,可讓您透過內部 IP 位址執行及擴充服務 (您只能從內部虛擬機器 (VM) 執行個體存取這個 IP 位址)。

本頁面將說明如何使用多個包含相同 IP 位址的轉送規則。如要瞭解內部直通式網路負載平衡器的一般資訊,請參閱「內部直通式網路負載平衡器總覽」。

使用內部轉送規則時,最多可讓十個轉送規則共用一個內部 IP 位址。如要共用 IP 位址,請將 IP 位址的用途設為 SHARED_LOADBALANCER_VIP。您可以為轉送規則通訊協定使用 TCPUDP,並為轉送規則指派最多五個通訊埠,或指定 --ports=ALL 來使用所有通訊埠。如要使用 L3_DEFAULT 通訊協定,必須搭配 --ports=ALL 選項使用所有通訊埠。

透過通訊協定和通訊埠的專屬組合,您可以執行下列操作:

  • 使用 TCP 通訊協定,為每項轉送規則建立 50 個專屬 TCP 連接埠。

    如果轉送規則設定為使用 TCP 通訊協定和所有通訊埠,則使用 TCP 通訊協定的其他轉送規則就無法使用相同的共用 IP 位址。

  • 使用 UDP 通訊協定,為每個轉送規則建立 50 個不重複的 UDP 通訊埠。

    如果轉送規則設定為使用 UDP 通訊協定和所有通訊埠,則使用 UDP 通訊協定的其他轉送規則就無法使用相同的共用 IP 位址。

  • 建立 50 種不重複的 TCP 和 UDP 通訊埠組合,每項轉送規則都使用 TCPUDP 通訊協定。

  • 參照通用後端服務 (單一負載平衡器) 或多個後端服務 (共用相同 IP 位址的多個負載平衡器)。

  • 使用 L3_DEFAULT 通訊協定設定轉送規則時,請使用所有通訊埠。一個 IP 位址只能有一個 L3_DEFAULT 轉送規則,如有需要,可以與其他 TCP 和 UDP 轉送規則共用。

如果轉送規則使用不同通訊協定,您也必須有兩個不同的後端服務。單一內部直通式網路負載平衡器適用於 TCP 或 UDP 流量,但不能同時適用於兩者,因為它只有一個後端服務,且只使用其中一種通訊協定。

轉送規則的決策矩陣

請參考下表設計部署作業。

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

單一後端服務支援 TCP 或 UDP,但無法同時支援兩者。

如需多項轉送規則,請使用 ⌈total number of ports / 5⌉ 公式計算所需轉送規則數量,其中 ⌈⌉ 是天花板 (最小整數) 函式,表示無條件進位至最接近的整數。

舉例來說,假設您需要負載平衡器某個 IP 位址上的 26 個 TCP 連接埠。如不想使用 --ports=ALL 建立單一轉送規則,您必須建立六項轉送規則,因為 26 / 5 = 5 with a remainder of 1

預期前端設定 必須提供轉送規則數量 --purpose=SHARED_LOADBALANCER_VIP 旗標 IP 位址必須提供此旗標 轉送規則通訊埠規格
一個 IP 位址,所有通訊埠的流量 一項轉送規則 --ports=ALL
一個 IP 位址,特定通訊埠上的流量

五個或更少的通訊埠:
一項轉送規則

六個以上的通訊埠:
多個轉送規則

五個或更少通訊埠:否

六個以上通訊埠:是

--ports 設為最多五個連續或不連續的通訊埠編號。
多個 IP 位址,所有通訊埠的流量 每個 IP 位址對應一項轉送規則 --ports=ALL
多個 IP 位址、特定通訊埠上的流量 每個 IP 位址至少須有一條轉送規則

如果每個 IP 位址使用的通訊埠不超過五個:否

每個 IP 位址使用六個以上的通訊埠:是

--ports 設為最多五個連續或不連續的通訊埠編號。

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

如果您有兩個內部直通式網路負載平衡器,可以有兩個後端服務,其中一個後端服務用於 TCP 流量,另一個後端服務用於 UDP 流量。

如需多項轉送規則,請使用下列公式計算所需轉送規則數量,其中 ⌈⌉ 是天花板 (最小整數) 函式,表示四捨五入到最接近的整數:

 ⌈total number of TCP ports / 5⌉

 ⌈total number of UDP ports / 5⌉

舉例來說,假設您需要 26 個 TCP 通訊埠和 12 個 UDP 通訊埠。您必須建立九項轉送規則:

  • 26 / 5 = 5 with a remainder of 1,因此您需要六項 TCP 連接埠的轉送規則。
  • 12 / 5 = 2 with a remainder of 2,因此您需要為 UDP 連接埠設定三條轉送規則。
預期前端設定 必須提供轉送規則數量 --purpose=SHARED_LOADBALANCER_VIP 旗標 IP 位址必須使用此旗標 轉送規則通訊埠規格
一個 IP 位址,所有通訊埠的流量 兩項轉送規則,分別適用於 TCP 和 UDP 因為 TCP 轉送規則和 UDP 轉送規則必須共用單一 IP 位址:是 --ports=ALL
一個 IP 位址,特定通訊埠上的流量

最多五個 TCP 通訊埠和最多五個 UDP 通訊埠: 兩項轉送規則,分別適用於 TCP 和 UDP

六個以上的 TCP 或 UDP 通訊埠: 多個轉送規則,每個轉送規則支援一個通訊協定和最多五個通訊埠

--ports 設為最多五個連續或不連續的通訊埠編號。
多個 IP 位址、所有通訊埠的流量、TCP 或 UDP

至少兩個轉送規則:一個用於 TCP,使用一個 IP 位址;一個用於 UDP,使用不同的 IP 位址

如果您需要三個以上的 IP 位址,請建立三個以上的轉送規則

--ports=ALL
多個 IP 位址、特定通訊埠的流量 (TCP 或 UDP)

至少兩個轉送規則:一個用於 TCP,使用一個 IP 位址;一個用於 UDP,使用不同的 IP 位址

如果需要下列其中一項功能,則須新增兩項以上的轉送規則:

  • 超過兩個 IP 位址
  • IP 位址上的 TCP 流量超過五個通訊埠,或 IP 位址上的 UDP 流量超過五個通訊埠

一個 IP 位址最多有五個 TCP 連接埠,以及一個 IP 位址最多有五個 UDP 連接埠:否

六個以上的 TCP 或 UDP 連接埠:是

--ports 設為最多五個連續或不連續的通訊埠編號。

限制

  • 如果兩個以上的轉送規則使用相同的 IP 位址和通訊協定,則通訊埠不得重疊。例如:
    • 使用通訊協定 TCP 和通訊埠 80 設定轉送規則後,您就無法設定其他轉送規則來提供該通訊協定和通訊埠。舉例來說,您無法建立其他轉送規則,用於 TCP 通訊埠 808190
    • 為 TCP 和通訊埠 80808090 設定轉送規則時,您無法為 TCP 設定會使用所有通訊埠的另一個轉送規則。
  • 如果兩個以上的轉送規則使用 --purpose=SHARED_LOADBALANCER_VIP 旗標共用同一個 IP 位址,最多只能有一個規則將通訊協定設為 L3_DEFAULT

用途

您可以進行許多不同類型的部署。下列範例使用一個 IP 位址,接受兩個負載平衡器特定通訊埠的流量。

範例 1

這個範例會使用不同的轉送規則,並搭配下列參數:

  • 相同的 IP 位址 (10.1.1.1)
  • 不同通訊協定
  • 每個轉送規則指向的個別後端服務
  • 相符的通訊協定:每個後端服務的通訊協定都與對應轉送規則的通訊協定相符
不同的轉送規則、相同的 IP 位址、不同的通訊協定和通訊埠。
不同的轉送規則、相同的 IP 位址、不同的通訊協定和通訊埠 (按一下即可放大)。

範例 2

這個範例會使用不同的轉送規則,並搭配下列參數:

  • 相同的 IPv4 位址 (10.1.1.1)
  • 相同通訊協定
  • 每項轉送規則的一組不同編號通訊埠
不同的轉送規則、相同的 IP 位址、相同的通訊協定,以及超過五個編號通訊埠。
不同的轉送規則、相同的 IP 位址、相同的通訊協定,以及超過五個編號通訊埠 (按一下即可放大)。

設定步驟

如果您同時執行下列兩項操作,即可建立多個具有相同 IP 位址的內部轉送規則:

  1. 建立靜態 (已預約) 內部 IP 位址,供轉送規則使用。
  2. 將共用內部 IP 位址的 --purpose 旗標設為 SHARED_LOADBALANCER_VIP 值。

如需設定範例,請參閱「使用兩項轉送規則,在多個通訊埠上接收流量」。