本頁說明新區域加入部署作業時,您必須在多區域部署作業的現有區域中進行哪些必要設定。這項設定可讓您建立與新區域的連線。
1. 事前準備
如要在 Google Distributed Cloud (GDC) 氣隙隔離環境中設定多區域互連,您必須具備下列條件:
2. 設定多區域互連網路
在多區域部署的每個區域中設定
MultiZoneNetworkConfig資源:找出要互動的正確叢集。如果根管理員叢集正在執行,請使用根管理員叢集的
kubeconfig。否則,請使用kubeconfig啟動 bootstrap kind 叢集。詳情請參閱 IAM-R0004 執行手冊。在此填入 kubeconfig 路徑:KUBECONFIG=KUBECONFIG_PATH建立名為
multizone_network_config.yaml的 YAML 檔案。在檔案中加入以下內容:
apiVersion: system.private.gdc.goog/v1alpha1 kind: MultiZoneNetworkConfig metadata: name: multizone-network-config namespace: gpc-system spec: carrierType: CARRIER_TYPE zones: - zoneID: ZONE_1_ID asn: ZONE_1_ASN externalSubnets: - METERING_SUBNET_1 - zoneID: ZONE_2_ID asn: ZONE_2_ASN externalSubnets: - METERING_SUBNET_2 ports: - port: PORT_1 - port: PORT_2 portSetting: mtu: MTU更改下列內容:
CARRIER_TYPE:多區域骨幹載波類型。必須為L2或L3。ZONE_1_ID:GDC 區域中第一個可用區的 ID。ZONE_1_ASN:GDC 區域中第一個可用區的資料網路 BGP 自治系統編號 (ASN)。METERING_SUBNET_1:這個區域的計量付費子網路。這個欄位必須填入相關聯區域根管理員叢集中的zone-infra-cidrCIDRClaim資源子網路。這個欄位僅供計量用途,不會影響子網路廣告的控管。您必須確保這個欄位與實際通告的子網路同步。如未指定這個欄位,系統就不會計算這個區域的流量。ZONE_2_ID:GDC 區域中第二個可用區的 ID。ZONE_2_ASN:GDC 區域中第二個區域的資料網路 BGP ASN。METERING_SUBNET_2:這個區域的計量付費子網路。這個欄位必須填入相關聯區域根管理員叢集中的zone-infra-cidrCIDRClaim資源子網路。這個欄位僅供計量用途,不會影響子網路廣告的控管。您必須確保這個欄位與實際通告的子網路同步。如未指定這個欄位,系統就不會計算這個區域的流量。PORT_1:參與多區域互連的第一個連接埠。詳情請參閱「設定連接埠」。PORT_2:參與多區域互連的第二個連接埠。詳情請參閱「設定連接埠」。MTU:套用至所有通訊埠的 MTU 值。如未指定,則預設值為 9216。
如需常見的部署範例,請參閱「多區域設定範例」。
將
multizone_network_config.yaml檔案套用至叢集:kubectl apply -f multizone_network_config.yaml --kubeconfig=KUBECONFIG_PATH確認
MultiZonetNetworkConfig資源建立成功:kubectl get multizonenetworkconfig -n gpc-system --kubeconfig=KUBECONFIG_PATH以下範例顯示含有互連連結的輸出內容:
NAME AGE READY multizone-network-config 26h True選用:檢查
MultiZoneNetworkPeeringConfig資源,瞭解互連 BGP 設定和狀態。實際的 BGP 設定是由網路協調器設定,並儲存在
MultiZoneNetworkPeeringConfig資源中。每個MultiZoneNetworkPeeringConfig資源代表從一個區域到另一個區域的所有 BGP 設定。例如:- 名為
zone-1-zone-2-peering-config的MultiZoneNetworkPeeringConfig資源可能如下所示:
apiVersion: system.private.gdc.goog/v1alpha1 kind: MultiZoneNetworkPeeringConfig metadata: name: zone-1-zone-2-peering-config namespace: gpc-system spec: ... status: borderLeafSwitches: - blswID: 1 blswName: aa-aa-blsw01 evpnBGPSessions: - bgpSessionConfig: addressFamily: EVPN bfdConfig: bfdMode: MultiHopBFD localASN: 65501 localIP: 192.168.201.65/32 md5SecretRef: name: zone-1-blsw-1-zone-2-blsw-1-evpn-bgp-password namespace: gpc-system peerASN: 65502 peerIP: 192.168.202.65 sourceInterface: loopback2 bgpSessionStatus: prefixCounters: received: 4 sent: 23 sessionStatus: Up uptime: P6DT20H26M59S ipv4BGPSessions: - bgpSessionConfig: addressFamily: IPv4 bfdConfig: bfdMode: PlainBFD localASN: 65501 localIP: 192.168.208.0/31 md5SecretRef: name: zone-1-blsw-1-zone-2-blsw-1-ipv4-bgp-password namespace: gpc-system peerASN: 65502 peerIP: 192.168.208.1 bgpSessionStatus: prefixCounters: received: 11 sent: 11 sessionStatus: Up uptime: P6DT20H27M1S port: port: 6這個範例的狀態包含所有 BGP 工作階段設定,以及從區域一到區域二的 BGP 工作階段狀態。
- 如果是 L3 運送商模式,名為
MultiZoneNetworkPeeringConfig的資源 (代表從一個可用區到 L3 運送商的所有 IPv4 BGP 工作階段) 可能如下所示:zone-1-ipv4-peering-config
apiVersion: system.private.gdc.goog/v1alpha1 kind: MultiZoneNetworkPeeringConfig metadata: name: zone-1-ipv4-peering-config namespace: gpc-system spec: ... status: borderLeafSwitches: - blswID: 1 blswName: aa-aa-blsw01 ipv4BGPSessions: - bgpSessionConfig: addressFamily: IPv4 bfdConfig: bfdMode: PlainBFD localASN: 65501 localIP: 192.168.208.0/31 md5SecretRef: name: zone-1-blsw-1-port-6-ipv4-bgp-password namespace: gpc-system peerASN: 65502 peerIP: 192.168.208.1 bgpSessionStatus: prefixCounters: received: 11 sent: 11 sessionStatus: Up uptime: P6DT20H27M1S port: port: 6- 名為
2.1. 設定通訊埠
ports 設定取決於電信業者類型。設定 ports 時,請遵守下列規則:
如果載體類型為
L2,則必須在Spec.Ports中指定n個連接埠,其中n等於可用區數量乘以 2。第一個連接埠必須連線至第一個鄰近區域的第一個邊界 Leaf 交換器 (依交換器名稱排序)。第二個連接埠必須連線至第一個鄰近區域的第二個邊界葉片交換器。第三個連接埠會連線至第二個鄰近區域的第一個邊界葉片交換器。後續連線也遵循這個模式。如需說明,請參閱 L2 載波部署作業。如果載波類型為
L3,則必須在Spec.Ports中指定兩個連接埠。目前區域中的兩個邊界葉片交換器都必須使用第一個連接埠,個別連線至第一個供應商邊緣裝置,並使用第二個連接埠,個別連線至第二個供應商邊緣裝置。詳情請參閱 L3 運送業者部署作業。
2.2. 多區域設定範例
本節包含常見的部署範例。
2.2.1. L2 電信業者部署
這個部署作業具有下列設定:
- 三個區域,ASN 分別為 65501、65502 和 65503
- L2 載波
這個部署作業的邏輯連線如下圖所示:

以下是 MultiZoneNetworkConfig YAML 檔案的範例:
apiVersion: system.private.gdc.goog/v1alpha1
kind: MultiZoneNetworkConfig
metadata:
name: multizone-network-config
namespace: gpc-system
spec:
carrierType: L2
zones:
- zoneID: 1
asn: 65501
- zoneID: 2
asn: 65502
- zoneID: 3
asn: 65503
ports:
- port: 10
- port: 11
- port: 12
- port: 13
2.2.2. L3 電信業者部署
這個部署作業具有下列設定:
- 三個區域,ASN 分別為 65501、65502 和 65503
- L3 載波
這個部署作業的邏輯連線如下圖所示:

以下是 MultiZoneNetworkConfig YAML 檔案的範例:
apiVersion: system.private.gdc.goog/v1alpha1
kind: MultiZoneNetworkConfig
metadata:
name: multizone-network-config
namespace: gpc-system
spec:
carrierType: L3
zones:
- zoneID: 1
asn: 65501
carrierASN: 60010
- zoneID: 2
asn: 65502
carrierASN: 60010
- zoneID: 3
asn: 65503
carrierASN: 60010
ports:
- port: 10
- port: 11
2.3. 選用:設定多區域 BFD 驗證
所有多區域 IPv4 和 EVPN 工作階段都會設定雙向轉送偵測 (BFD)。根據預設,系統會設定單一躍點純 BFD。請按照本節的操作說明,部署具驗證功能的多跳 BFD:
為多區域 EVPN BGP 工作階段啟用雙向轉送偵測 (BFD) 驗證。如要建立及啟用 BFD 工作階段,請確保兩個區域中的配對 BGP 工作階段都設定了相同的 BFD 驗證金鑰 ID 和金鑰字串:
定義金鑰類型。建議您在啟動程序機器上執行這項指令。為確保安全,請使用至少 SHA-1 的金鑰。視需要使用更安全的設定金鑰:
export KEY_TYPE=SHA1設定金鑰 ID 和金鑰字串。在各個區域的配對互連網路連線中,金鑰 ID 不得重複。找出未使用的金鑰 ID,並指派給變數:
export KEY_ID=1使用
chronyc keygen產生 SHA-1 驗證金鑰:CHRONY_OUTPUT=$(chronyc keygen ${KEY_ID:?} ${KEY_TYPE:?})輸出內容範例:
echo $CHRONY_OUTPUT 1 SHA1 HEX:887F1B88085BD0BDE4458EA7C2C4393C50A498EF擷取並驗證驗證金鑰:
export KEY_STR=$(echo ${CHRONY_OUTPUT:?} | awk '{ split($3,key,":"); print key[2]}')echo $KEY_STR 887F1B88085BD0BDE4458EA7C2C4393C50A498EF將 BFD 驗證資訊修補至所選互連網路工作階段:
kubectl --kubeconfig=KUBECONFIG_PATH patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-zone-REMOTE_ZONE_ID-blsw-REMOTE_BLSWID-bfd-auth-key -n gpc-system -p='{ "stringData": { "bfdKeyID": "'"${KEY_ID}"'", "bfdKeyValue": "'"${KEY_STR}"'" } }'確認 BFD 工作階段正在執行:
switch# show bfd neighbors vrf default確認
State欄位顯示的值為Up,且Type欄位為SH或MH:OurAddr NeighAddr LD/RD RH/RS Holdown(mult) State Int Vrf Type BSID 192.168.208.31 192.168.208.30 1090519041/1090519042 Up 5237(3) Up Eth1/11 default SH N/A 192.168.208.91 192.168.208.90 1090519042/1090519042 Up 5624(3) Up Eth1/12 default SH N/A 192.168.202.66 192.168.201.65 1090519071/1090519060 Up 629(3) Up Lo2 default MH N/A 192.168.202.66 192.168.201.66 1090519072/1090519061 Up 545(3) Up Lo2 default MH N/A
2.4. 選用:設定多區域 BGP 密碼
邊界閘道通訊協定 (BGP) 密碼有兩種:IPv4 BGP 工作階段密碼和 EVPN BGP 工作階段密碼。
根據預設,所有 BGP 密碼都是空白。請按照本節的指示更新密碼。
2.4.1. 更新 IPv4 BGP 密碼
如果使用 L2 載波,請更新套用至目前區域中一個邊界葉片交換器,以及另一個區域中另一個邊界葉片交換器之間 IPv4 BGP 工作階段的 IPv4 BGP 密碼:
kubectl patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-zone-REMOTE_ZONE_ID-blsw-REMOTE_BLSWID-ipv4-bgp-password -p='{"stringData":{"password":"PASSWORD"}}'
更改下列內容:
LOCAL_ZONE_ID:目前區域的數值 ID。LOCAL_BLSW_ID:目前區域的邊界葉片交換器數值 ID。這個值必須為1或2REMOTE_ZONE_ID:遠端區域的數值 ID。REMOTE_BLSW_ID:遠端區域邊界葉片交換器的數值 ID。這個值必須為1或2PASSWORD:套用至本機邊界 Leaf 交換器與遠端邊界 Leaf 交換器之間 IPv4 BGP 工作階段的 BGP 密碼。
如果使用第 3 層電信業者,請更新目前區域中一個邊界葉片交換器與第 3 層電信業者邊緣裝置之間的 IPv4 BGP 工作階段所套用的 IPv4 BGP 密碼:
kubectl patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-port-PORT_ID-ipv4-bgp-password -p='{"stringData":{"password":"PASSWORD"}}' -n gpc-system --kubeconfig=KUBECONFIG_PATH
更改下列內容:
LOCAL_ZONE_ID:目前區域的數值 ID。LOCAL_BLSW_ID:目前區域的邊界葉片交換器數值 ID。這個值必須為1或2。PORT_ID:連接至供應商邊緣裝置的乙太網路連接埠索引。PASSWORD:套用至本機邊界 Leaf 交換器與供應商邊緣裝置之間 IPv4 BGP 工作階段的 BGP 密碼。
2.4.2. 更新 EVPN BGP 密碼
如要更新套用至目前區域中一個邊界 Leaf 交換器與另一個區域中另一個邊界 Leaf 交換器之間 EVPN BGP 工作階段的 EVPN BGP 密碼,請執行下列指令:
kubectl patch secret zone-LOCAL_ZONE_ID-blsw-LOCAL_BLSW_ID-zone-REMOTE_ZONE_ID-blsw-REMOTE_BLSWID-evpn-bgp-password -p='{"stringData":{"password":"PASSWORD"}}' -n gpc-system --kubeconfig=KUBECONFIG_PATH
更改下列內容:
LOCAL_ZONE_ID:目前區域的數值 ID。LOCAL_BLSW_ID:目前區域的邊界葉片交換器數值 ID。這個值必須為1或2。REMOTE_ZONE_ID:遠端區域的數值 ID。REMOTE_BLSW_ID:遠端區域邊界葉片交換器的數值 ID。這個值必須為1或2。PASSWORD:套用至本機邊界 Leaf 交換器和遠端邊界 Leaf 交換器之間 EVPN BGP 工作階段的 BGP 密碼。
3. 進階設定選項
本節將介紹多區域網路 API 提供的進階設定選項。
3.1. 設定電信業者 BGP 設定覆寫
根據預設,邊界葉片交換器會使用預設 IP 位址分配,與電信業者 PE 裝置建立 BGP 對等互連連線。如要查看目前使用的特定 BGP 對等互連 IP 位址,請檢查 MultiZoneNetworkPeeringConfig 資源 zone-<ZONE_ID>-ipv4-peering-config。例如:
apiVersion: system.private.gdc.goog/v1alpha1
kind: MultiZoneNetworkPeeringConfig
metadata:
name: zone-1-ipv4-peering-config
namespace: gpc-system
spec: ...
status:
borderLeafSwitches:
- blswID: 1
blswName: aa-aa-blsw01
ipv4BGPSessions:
- bgpSessionConfig:
addressFamily: IPv4
bfdConfig:
bfdMode: PlainBFD
localASN: 65501
localIP: 192.168.208.0/31
md5SecretRef:
name: zone-1-blsw-1-port-6-ipv4-bgp-password
namespace: gpc-system
peerASN: 65502
peerIP: 192.168.208.1
...
如要使用自訂 IP 位址計畫,請按照下列步驟覆寫預設的電信業者 BGP 設定:
- 執行
kubectl edit MultiZoneNetworkPeeringConfig zone-<ZONE_ID>-ipv4-peering-config -n gpc-system,在spec.Peerings下方新增carrierBGPConfigOverride區段。範例:
apiVersion: system.private.gdc.goog/v1alpha1
kind: MultiZoneNetworkPeeringConfig
metadata:
name: zone-1-ipv4-peering-config
namespace: gpc-system
...
spec:
peeringConfigType: L3-IPv4
peerings:
- carrierBGPConfigOverride:
peeringIP:
localIP: 192.168.78.5/31
peerIP: 192.168.78.4
peerA:
blswID: 1
port:
port: 11
zoneID: 1
...
在本例中,指定 carrierBGPConfigOverride.peeringIP 會將對等互連子網路覆寫為 192.168.78.4/31。
3.2. 設定通訊埠覆寫
Google 建議所有區域中的所有邊界葉片交換器都使用同一組連接埠。如果需要精細控管通訊埠,這項設定就非常實用。
本機區域是您要部署的區域。
遠端區域是同一個多區域世界中的其他區域。
根據預設,您必須使用同一區域的兩個邊界葉片交換器,才能連線至其他區域或電信業者。不過,您可以啟用通訊埠覆寫選項,為區域間的連線指定其他通訊埠。
如要設定通訊埠覆寫功能,請按照下列步驟操作:
啟用
portOverride功能:kubectl patch MultiZoneNetworkConfig multizone-network-config -n gpc-system --type='merge' -p '{"spec":{"enablePortOverride":true}}' --kubeconfig=KUBECONFIG_PATH找出本機區域邊界 Leaf 交換器和遠端區域邊界 Leaf 交換器,然後修改本機邊界 Leaf 交換器通訊埠:
kubectl edit MultiZoneNetworkPeeringConfig zone-ZONE_1_ID-zone-ZONE_2_ID -n gpc-system --kubeconfig=KUBECONFIG_PATH更改下列內容:
ZONE_1_ID:本地可用區 ID 和遠端可用區 ID 中較小的可用區 ID。舉例來說,如果本機區域 ID 為1,遠端區域 ID 為2,請在此提供1值。ZONE_2_ID:當地時區 ID 和遠端時區 ID 中較大的時區 ID。
MultiZoneNetworkPeeringConfig資源可能如下所示:apiVersion: system.private.gdc.goog/v1alpha1 kind: MultiZoneNetworkPeeringConfig metadata: name: zone-2-zone-3-peering-config namespace: gpc-system spec: peeringConfigType: L2 peerings: - peerA: blswID: 1 port: port: 12 zoneID: 2 peerB: blswID: 1 port: port: 12 zoneID: 3 secrets: - secretRef: name: zone-2-blsw-1-zone-3-blsw-1-ipv4-bgp-password namespace: gpc-system type: ipv4-bgp-password - secretRef: name: zone-2-blsw-1-zone-3-blsw-1-evpn-bgp-password namespace: gpc-system type: evpn-bgp-password - secretRef: name: zone-2-blsw-1-zone-3-blsw-1-bfd-auth-key namespace: gpc-system type: bfd-auth-key - peerA: blswID: 1 port: port: 12 zoneID: 2 peerB: blswID: 2 port: port: 12 zoneID: 3 secrets: - secretRef: name: zone-2-blsw-2-zone-3-blsw-2-ipv4-bgp-password namespace: gpc-system type: ipv4-bgp-password - secretRef: name: zone-2-blsw-2-zone-3-blsw-2-evpn-bgp-password namespace: gpc-system type: evpn-bgp-password - secretRef: name: zone-2-blsw-2-zone-3-blsw-2-bfd-auth-key namespace: gpc-system type: bfd-auth-key您必須更新構成區域間對等互連的其中一個邊界 Leaf 交換器的通訊埠值。在
Spec.peerings欄位中,尋找跨區域的對等互連。在這個範例中,區域 2 和區域 3 之間有這個對等互連連線:peerA: blswID: 1 port: port: 12 zoneID: 2 peerB: blswID: 2 port: port: 12 zoneID: 3輸出內容會顯示兩個邊界 Leaf 交換器,分別以
blswID: 1和blswID: 2識別。針對blswID: 1識別的第一個邊界葉片交換器,將通訊埠更新為20的新值:peerA: blswID: 1 port: port: 20 zoneID: 2 peerB: blswID: 2 port: port: 12 zoneID: 3在這個範例中,我們將第一個邊界葉子交換器的通訊埠值更新為
port: 20。