이 페이지에서는 새 영역이 배포에 참여할 때 멀티 영역 배포의 기존 영역에서 실행해야 하는 필수 구성을 설명합니다. 이 구성을 사용하면 새 영역에 연결할 수 있습니다.
1. 시작하기 전에
Google Distributed Cloud (GDC) 에어 갭에서 다중 영역 인터커넥트를 구성하려면 다음이 필요합니다.
- 생성된 kubeconfig 파일과 환경 변수 자세한 내용은 IAM-R0004 런북을 참고하세요.
- 루트 관리자 클러스터에 대한 임시 액세스 권한이 있는 인프라 운영자 (IO) 자세한 내용은 IAM-R0005 런북을 참고하세요.
2. 다중 영역 상호 연결 구성
멀티 영역 배포의 각 영역에서
MultiZoneNetworkConfig리소스를 구성합니다.상호작용할 올바른 클러스터를 찾습니다. 루트 관리자 클러스터가 실행 중인 경우 루트 관리자 클러스터에
kubeconfig을 사용합니다. 그렇지 않으면 부트스트랩 종류 클러스터에kubeconfig을 사용합니다. 자세한 내용은 IAM-R0004 런북을 참고하세요. 여기에 kubeconfig 경로를 입력합니다.KUBECONFIG=KUBECONFIG_PATHmultizone_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_PATHMultiZonetNetworkConfig리소스 생성이 성공했는지 확인합니다.kubectl get multizonenetworkconfig -n gpc-system --kubeconfig=KUBECONFIG_PATH다음 예는 인터커넥트 링크가 있는 출력을 보여줍니다.
NAME AGE READY multizone-network-config 26h True선택사항: 인터커넥트 BGP 구성 및 상태에 대해
MultiZoneNetworkPeeringConfig리소스를 확인합니다.실제 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이 예의 상태에는 1번 영역부터 2번 영역까지의 모든 BGP 세션 구성과 BGP 세션 상태가 포함됩니다.
- L3 캐리어 모드의 경우 한 영역에서 L3 캐리어로 연결되는 모든 IPv4 BGP 세션을 나타내는
zone-1-ipv4-peering-config라는MultiZoneNetworkPeeringConfig리소스는 다음과 같이 표시될 수 있습니다.
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를 곱한 값과 같습니다. 첫 번째 포트는 첫 번째 인접 영역 (영역 ID로 정렬됨)의 첫 번째 테두리 리프 스위치 (스위치 이름으로 정렬됨)에 연결되어야 합니다. 두 번째 포트는 첫 번째 인접 영역의 두 번째 테두리 리프 스위치에 연결해야 합니다. 세 번째 포트는 두 번째 인접 영역의 첫 번째 테두리 리프 스위치에 연결됩니다. 추가 연결은 이 패턴을 따릅니다. L2 이동통신사 배포를 참고하세요.운송업체 유형이
L3인 경우Spec.Ports에 포트 두 개를 지정해야 합니다. 현재 영역의 두 테두리 리프 스위치는 첫 번째 포트를 사용하여 첫 번째 제공업체 에지 기기에 개별적으로 연결해야 하고 두 번째 포트를 사용하여 두 번째 제공업체 에지 기기에 개별적으로 연결해야 합니다. 자세한 내용은 L3 이동통신사 배포를 참고하세요.
2.2. 다중 영역 구성 예시
이 섹션에는 일반적인 배포 예가 포함되어 있습니다.
2.2.1. L2 이동통신사 배포
이 배포의 구성은 다음과 같습니다.
- ASN 65501, 65502, 65503이 있는 3개 영역
- 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이 있는 3개 영역
- 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 인증 구성
양방향 전송 감지 (BFD)는 모든 다중 영역 IPv4 및 EVPN 세션에서 구성됩니다. 기본적으로 단일 홉 일반 BFD가 구성됩니다. 이 섹션의 안내에 따라 인증을 사용하여 멀티 홉 BFD를 배포하세요.
다중 영역 EVPN BGP 세션에 양방향 전달 감지 (BFD) 인증을 사용 설정합니다. BFD 세션을 설정하고 활성화하려면 두 영역의 페어링된 BGP 세션이 동일한 BFD 인증 키 ID와 키 문자열로 구성되어 있는지 확인하세요.
키 유형을 정의합니다. 부트스트래퍼 머신에서 이 명령어를 실행하는 것이 좋습니다. 보안을 위해 키에 SHA-1 이상을 사용하세요. 필요한 경우 구성에 더 안전한 키를 사용하세요.
export KEY_TYPE=SHA1키 ID와 키 문자열을 설정합니다. 키 ID는 영역 간 페어링된 상호 연결 세션 중에서 고유해야 합니다. 사용하지 않는 키 ID를 확인하고 변수에 할당합니다.
export KEY_ID=1chronyc 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 defaultState필드에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 비밀번호를 업데이트합니다.
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또는2이어야 합니다.REMOTE_ZONE_ID: 원격 영역의 숫자 ID입니다.REMOTE_BLSW_ID: 원격 영역의 테두리 리프 스위치의 숫자 ID입니다. 이 값은1또는2이어야 합니다.PASSWORD: 로컬 테두리 리프 스위치와 원격 테두리 리프 스위치 간의 IPv4 BGP 세션에 적용된 BGP 비밀번호입니다.
L3 캐리어를 사용하는 경우 현재 영역의 경계 리프 스위치와 L3 캐리어의 공급자 에지 기기 간에 적용된 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: 로컬 테두리 리프 스위치와 공급자 에지 기기 간의 IPv4 BGP 세션에 적용된 BGP 비밀번호입니다.
2.4.2. 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: 로컬 테두리 리프 스위치와 원격 테두리 리프 스위치 간의 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로컬 영역 테두리 리프 스위치와 원격 영역 테두리 리프 스위치를 식별하고 로컬 테두리 리프 스위치 포트를 수정합니다.
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영역 간 피어링을 구성하는 테두리 리프 스위치 중 하나의 포트 값을 업데이트해야 합니다.
Spec.peerings필드에서 여러 영역에 걸쳐 있는 피어링을 찾습니다. 이 예시에서는 영역 2와 영역 3 사이에 다음과 같은 피어 연결이 있습니다.peerA: blswID: 1 port: port: 12 zoneID: 2 peerB: blswID: 2 port: port: 12 zoneID: 3출력에
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로 업데이트합니다.