1. 소개
개요
이 실습에서는 Network Connectivity Center (NCC)를 사용하여 VPC 스포크 및 동적 경로 교환을 지원해 온프레미스 연결을 대규모로 설정하는 방법을 알아봅니다. 사용자가 VPC를 VPC 스포크로 정의하면 NCC 허브를 통해 여러 VPC 네트워크에 연결할 수 있습니다. 사용자의 온프레미스 네트워크에 네트워크 연결을 설정하려면 라우터 어플라이언스 가상 NIC, HA_VPN 터널 또는 Interconnect VLAN 연결을 NCC VPC 스포크와 동일한 NCC 허브에 연결해야 합니다.
허브 리소스는 스포크를 상호 연결하기 위한 중앙화된 연결 관리 모델을 제공합니다.
빌드할 항목
이 Codelab에서는 온프레미스 네트워크와 워크로드 VPC 간의 하이브리드 연결을 구현하는 NCC 허브를 사용하여 논리적 허브 및 스포크 토폴로지를 빌드합니다.

학습할 내용
- 워크로드 VPC와 라우팅 VPC 구분
- VPC 스포크 및 하이브리드 스포크의 NCC 통합
필요한 항목
- GCP VPC 네트워크에 대한 지식
- Cloud Router 및 BGP 라우팅에 대한 지식
- Google Cloud 프로젝트
- 할당량: 네트워크를 확인하고 필요한 경우 네트워크를 추가로 요청합니다(아래 스크린샷 참고).

목표
- GCP 환경 설정
- VPC를 스포크로 사용하여 Network Connectivity Center 구성
- HA VPN 터널을 하이브리드 스포크로 사용하여 Network Connectivity Center 구성
- 데이터 경로 확인
- NCC 서비스 가능성 기능 살펴보기
- 사용된 리소스 정리
시작하기 전에
Google Cloud 콘솔 및 Cloud Shell
이 실습에서는 GCP와 상호작용하기 위해 Google Cloud 콘솔과 Cloud Shell을 모두 사용합니다.
NCC 허브 프로젝트 Google Cloud 콘솔
Cloud 콘솔은 https://console.cloud.google.com에서 액세스할 수 있습니다.
Network Connectivity Center를 더 쉽게 구성할 수 있도록 Google Cloud에서 다음 항목을 설정합니다.
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
Cloud Shell을 실행합니다. 이 Codelab에서는 Cloud Shell에서 gcloud 구성 구현을 지원하기 위해 $변수를 사용합니다.
gcloud auth list
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
region="us-central1"
zone="us-central1-a"
IAM 역할
NCC에서 특정 API에 액세스하려면 IAM 역할이 필요합니다. 필요에 따라 NCC IAM 역할로 사용자를 구성해야 합니다.
역할/설명 | 권한 |
| networkconnectivity.hubs.networkconnectivity.spokes.networkconnectivity.gatewaynetworkconnectivity.locations. |
| networkconnectivity.gatewayAdvertisedRoutes.networkconnectivity.groups. networkconnectivity.hubRouteTables.networkconnectivity.hubRoutes.networkconnectivity.hubs. networkconnectivity.locations. networkconnectivity.operations.* networkconnectivity.spokes.*resourcemanager.projects.getresourcemanager.projects.list |
| networkconnectivity.gatewayAdvertisedRoutes.getnetworkconnectivity.gatewayAdvertisedRoutes.listnetworkconnectivity.groups.getnetworkconnectivity.groups.getIamPolicynetworkconnectivity.groups.listnetworkconnectivity.hubRouteTables.getnetworkconnectivity.hubRouteTables.getIamPolicynetworkconnectivity.hubRouteTables.listnetworkconnectivity.hubRoutes.getnetworkconnectivity.hubRoutes.getIamPolicynetworkconnectivity.hubRoutes.listnetworkconnectivity.hubs.getnetworkconnectivity.hubs.getIamPolicynetworkconnectivity.hubs.listnetworkconnectivity.hubs.listSpokesnetworkconnectivity.hubs.queryStatus networkconnectivity.locations.*networkconnectivity.spokes.getnetworkconnectivity.spokes.getIamPolicynetworkconnectivity.spokes.listresourcemanager.projects.getresourcemanager.projects.list |
2. 네트워크 환경 설정
개요
이 섹션에서는 단일 프로젝트에 세 개의 VPC 네트워크와 방화벽 규칙을 배포합니다. 논리 다이어그램은 이 단계에서 설정할 네트워크 환경을 보여줍니다. 이 Codelab에서는 VPC를 사용하여 온프레미스 네트워크를 시뮬레이션합니다.

주요 개념 1
Google Cloud 글로벌 VPC는 44개 이상의 GCP 리전 간에 데이터 경로 연결을 제공합니다. 리전 서비스인 Cloud Router는 라우터가 구성된 리전 또는 전체 VPC 네트워크에서 서브넷을 동적으로 공지하고 학습된 경로를 전파합니다. 경로를 지역적으로 또는 전역적으로 전파하는 Cloud Router는 동적 라우팅 모드(지역 또는 전역)를 정의하는 사용자에 따라 결정됩니다.
이 섹션에서는 먼저 각 VPC를 리전 라우팅 모드로 구성합니다. 이 Codelab의 나머지 부분에서는 다음을 수행합니다.
- 라우팅 VPC: NCC VPC 스포크로 구성되지 않은 VPC를 식별합니다.
- 워크로드 VPC: NCC 스포크로 구성된 VPC를 식별합니다.
워크로드 VPC 및 서브넷 만들기
VPC 네트워크에는 데이터 경로 검증을 위해 GCE VM을 설치할 서브넷이 포함되어 있습니다.
vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
라우팅 VPC 및 서브넷 만들기
NCC는 비공개로 사용되는 공개 IP 주소를 제외한 모든 유효한 IPv4 서브넷 범위를 지원합니다.
routing_vpc_network_name="routing-vpc"
routing_vpc_subnet_name="routing-vpc-subnet"
routing_vpc_subnet_range="10.0.2.0/24"
gcloud compute networks create "${routing_vpc_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${routing_vpc_subnet_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--range="${routing_vpc_subnet_range}"
온프레미스 VPC 및 서브넷 만들기
NCC는 비공개로 사용되는 공개 IP 주소를 제외한 모든 유효한 IPv4 서브넷 범위를 지원합니다.
on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet"
on_prem_subnet_range="10.0.3.0/24"
gcloud compute networks create "${on_prem_network_name}" \
--subnet-mode=custom
gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"
워크로드 VPC 방화벽 규칙 구성
workload_vpc_firewall_name="workload-protocol-fw-vpc"
workload_port_firewall_name="workload-port-firewall-vpc"
gcloud compute firewall-rules create "${workload_vpc_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${workload_port_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
라우팅 VPC 및 VPC 방화벽 규칙 구성
routing_vpc_fw_name="routing-vpc-protocol-fw"
routing_vpc_port_fw_name="routing-vpc--port-fw"
gcloud compute firewall-rules create "${routing_vpc_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${routing_vpc_port_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
온프레미스 VPC 및 VPC 방화벽 규칙 구성
prem_protocol_fw_name="onprem-vpc-protocol-firewall"
prem_port_firewall_name="onprem-vpc-port-firewall-prem"
gcloud compute firewall-rules create "${prem_protocol_fw_name}" \
--network=${on_prem_network_name} \
--allow="tcp,udp,icmp"
gcloud compute firewall-rules create "${prem_port_firewall_name}" \
--network=${on_prem_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"
각 VPC에서 GCE VM 구성
'vm1-vpc1-ncc'에 패키지를 설치하려면 임시 인터넷 액세스가 필요합니다.
가상 머신 3개를 만듭니다. 각 VM은 이전에 만든 VPC 중 하나에 할당됩니다.
gcloud compute instances create vm1-vpc-workload \
--zone us-central1-a \
--subnet="${vpc_spoke_subnet_name}" \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
apt-get install tcpdump -y
service apache2 restart
echo "
<h3>Web Server: www-vm1</h3>" | tee /var/www/html/index.html'
gcloud compute instances create vm2-vpc-routing \
--zone us-central1-a \
--subnet="${routing_vpc_subnet_name}" \
--no-address
gcloud compute instances create vm3-onprem \
--zone us-central1-a \
--subnet="${on_prem_subnet_name}" \
--no-address
3. 하이브리드 연결 설정
이 섹션에서는 온프레미스 및 라우팅 VPC 네트워크를 서로 연결하는 HA VPN 터널을 구성합니다.

라우팅 VPC에서 BGP를 사용하는 Cloud Router 구성
routing_vpc_router_name="routing-vpc-cr"
routing_vpc_router_asn=64525
gcloud compute routers create "${routing_vpc_router_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--asn="${routing_vpc_router_asn}"
온프레미스 VPC에서 BGP를 사용하는 Cloud Router 구성
on_prem_router_name="on-prem-router"
on_prem_router_asn=64526
gcloud compute routers create "${on_prem_router_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--asn="${on_prem_router_asn}"
라우팅 VPC에서 VPN 게이트웨이 구성
routing_vpn_gateway_name="routing-vpc-vpn-gateway"
gcloud compute vpn-gateways create "${routing_vpn_gateway_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}"
온프레미스 VPC에서 VPN 게이트웨이 구성
on_prem_gateway_name="on-prem-vpn-gateway"
gcloud compute vpn-gateways create "${on_prem_gateway_name}" \
--region="${region}" \
--network="${on_prem_network_name}"
라우팅 VPC와 온프레미스 VPC에서 VPN 터널 구성
secret_key=$(openssl rand -base64 24)
routing_vpc_tunnel_name="routing-vpc-tunnel"
on_prem_tunnel_name="on-prem-tunnel"
gcloud compute vpn-tunnels create "${routing_vpc_tunnel_name}" \
--vpn-gateway="${routing_vpn_gateway_name}" \
--peer-gcp-gateway="${on_prem_gateway_name}" \
--router="${routing_vpc_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"
gcloud compute vpn-tunnels create "${on_prem_tunnel_name}" \
--vpn-gateway="${on_prem_gateway_name}" \
--peer-gcp-gateway="${routing_vpn_gateway_name}" \
--router="${on_prem_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"
라우팅 VPC와 온프레미스 Cloud Router를 BGP 피어링하는 BGP 세션을 만듭니다.
interface_hub_name="if-hub-to-prem"
hub_router_ip="169.254.1.1"
gcloud compute routers add-interface "${routing_vpc_router_name}" \
--interface-name="${interface_hub_name}" \
--ip-address="${hub_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${routing_vpc_tunnel_name}" \
--region="${region}"
bgp_hub_name="bgp-hub-to-prem"
prem_router_ip="169.254.1.2"
gcloud compute routers add-bgp-peer "${routing_vpc_router_name}" \
--peer-name="${bgp_hub_name}" \
--peer-ip-address="${prem_router_ip}" \
--interface="${interface_hub_name}" \
--peer-asn="${on_prem_router_asn}" \
--region="${region}"
interface_prem_name="if-prem-to-hub"
gcloud compute routers add-interface "${on_prem_router_name}" \
--interface-name="${interface_prem_name}" \
--ip-address="${prem_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${on_prem_tunnel_name}" \
--region="${region}"
bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers add-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--peer-ip-address="${hub_router_ip}" \
--interface="${interface_prem_name}" \
--peer-asn="${routing_vpc_router_asn}" \
--region="${region}"
기본적으로 NCC 허브 서브넷은 하이브리드 스포크에 공지되지 않습니다. 다음 단계에서는 NCC 서브넷 경로를 온프레미스 네트워크에 공지하도록 Cloud Router를 구성합니다.
온프레미스 Cloud Router에 VPC 스포크 서브넷을 공지합니다.
gcloud compute routers update "${routing_vpc_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--set-advertisement-ranges="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
라우팅 VPC Cloud Router에 온프레미스 서브넷을 공지합니다.
gcloud compute routers update "${on_prem_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--region="${region}"
MED 값이 '111'인 프리픽스를 공지하도록 온프레미스 Cloud Router BGP 피어링 구성을 업데이트합니다. 이후 섹션에서 BGP MED 값을 사용하는 NCC의 동작을 살펴봅니다.
on_prem_router_name="on-prem-router"
bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers update-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--advertised-route-priority="111" \
--region="${region}"
라우팅 VPC 터널의 상태 확인
gcloud compute vpn-tunnels describe routing-vpc-tunnel \
--region=us-central1 \
--format='flattened(status,detailedStatus)'
라우팅 VPC Cloud Router의 상태 확인
gcloud 명령어를 사용하여 라우팅 VPC Cloud Router의 BGP 학습 경로를 나열합니다.
gcloud compute routers get-status routing-vpc-cr \
--region=us-central1
4. Network Connectivity Center 허브
개요
이 섹션에서는 gcloud 명령어를 사용하여 NCC 허브를 구성합니다. NCC 허브는 각 VPC 스포크 간의 라우팅 구성을 빌드하는 역할을 하는 컨트롤 플레인으로 작동합니다.

API 서비스 사용 설정
아직 사용 설정되지 않은 경우 Network Connectivity API를 사용 설정합니다.
gcloud services enable networkconnectivity.googleapis.com
NCC 허브 만들기
gCloud 명령어를 사용하여 NCC 허브 만들기
hub_name="mesh-hub"
gcloud network-connectivity hubs create "${hub_name}"
출력 예
Create request issued for: [mesh-hub]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719930559145-61c448a0426e4-2d18c8dd-7107edbe] to complete...done.
Created hub [mesh-hub].
새로 만든 NCC 허브를 설명합니다. 이름 및 연결된 경로를 기록해 둡니다.
gcloud network-connectivity hubs describe mesh-hub
createTime: '2024-07-02T14:29:19.260054897Z'
exportPsc: false
name: projects/ncc/locations/global/hubs/mesh-hub
policyMode: PRESET
presetTopology: MESH
routeTables:
- projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uniqueId: 08f9ae88-f76f-432b-92b2-357a85fc83aa
updateTime: '2024-07-02T14:29:32.583206925Z'
NCC 허브는 데이터 연결을 만들기 위한 컨트롤 플레인을 정의하는 라우팅 테이블을 도입했습니다. NCC 허브의 라우팅 테이블 이름 찾기
gcloud network-connectivity hubs route-tables list --hub=mesh-hub
NAME HUB DESCRIPTION
default mesh-hub
NCC 기본 경로 테이블의 URI를 찾습니다.
gcloud network-connectivity hubs route-tables describe default --hub=mesh-hub
createTime: '2024-07-02T14:29:22.340190411Z'
name: projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uid: fa2af78b-d416-41aa-b442-b8ebdf84f799
NCC 허브 기본 라우팅 테이블의 콘텐츠를 나열합니다. 참고* NCC 허브의 경로 테이블은 NCC 하이브리드 스포크 또는 VPC 스포크가 정의될 때까지 비어 있습니다.
gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub --route_table=default
NCC 허브의 경로 테이블은 비어 있어야 합니다.
5. 하이브리드 및 VPC 스포크가 있는 NCC
개요
이 섹션에서는 gcloud 명령어를 사용하여 NCC 스포크 두 개를 구성합니다. 하나는 VPC 스포크이고 다른 하나는 하이브리드(VPN) 스포크입니다.

워크로드 VPC를 NCC 스포크로 구성
워크로드 VPC를 NCC 스포크로 구성하고 이전에 만든 NCC 허브에 할당합니다. NCC spoke API 호출에는 위치를 지정해야 합니다. '–global' 플래그를 사용하면 사용자는 새 NCC 스포크를 구성할 때 전체 URI 경로를 지정하지 않아도 됩니다.
vpc_spoke_name="workload-vpc-spoke"
vpc_spoke_network_name="workload-vpc"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Create request issued for: [workload-vpc-spoke]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719931097138-61c44aa15463f-90de22c7-40c10e6b] to complete...done.
Created spoke [workload-vpc-spoke].
createTime: '2024-07-02T14:38:17.315200822Z'
group: projects/ncc/locations/global/hubs/mesh-hub/groups/default
hub: projects/ncc/locations/global/hubs/mesh-hub
linkedVpcNetwork:
uri: https://www.googleapis.com/compute/v1/projects/ncc/global/networks/workload-vpc
name: projects/ncc/locations/global/spokes/workload-vpc-spoke
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 33e50612-9b62-4ec7-be6c-962077fd47dc
updateTime: '2024-07-02T14:38:44.196850231Z'
라우팅 VPC에서 VPN 터널을 하이브리드 스포크로 구성
이 gcloud 명령어를 사용하여 VPN 터널을 메시 허브에 연결할 하이브리드 스포크로 구성합니다.
vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"
gcloud network-connectivity spokes linked-vpn-tunnels create "${vpn_spoke_name}" \
--region="${region}" \
--hub="${hub_name}" \
--vpn-tunnels="${routing_vpc_tunnel_name}"
샘플 출력
Create request issued for: [hybrid-spoke]
Waiting for operation [projects/ncc/locations/us-central1/operations/operation-1719932916561-61c45168774be-0a06ae03-88192175] to complete...done.
Created spoke [hybrid-spoke].
NCC 허브는 모든 VPC 서브넷 경로를 학습하지만 기본적으로 NCC는 이러한 접두사를 하이브리드 스포크에 공지하지 않습니다. NCC 허브가 온프레미스에 VPC 워크로드 서브넷을 공지하도록 하려면 네트워크 관리자가 'include-import-ranges' 플래그를 사용하여 허브에서 하이브리드 스포크로 IPv4 범위를 가져와야 합니다.
이 명령어를 사용하여 NCC 하이브리드 스포크를 업데이트하여 모든 NCC 허브 경로 테이블 접두사를 온프레미스 네트워크에 공지합니다.
vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"
gcloud network-connectivity spokes linked-vpn-tunnels update "${vpn_spoke_name}" \
--region="${region}" \
--include-import-ranges=ALL_IPV4_RANGES
메시 허브의 스포크 구성 확인
gcloud 명령어를 사용하여 NCC 허브 기본 라우팅 테이블의 콘텐츠를 나열합니다.
gcloud network-connectivity hubs list-spokes mesh-hub
메시 허브의 기본 라우팅 테이블 분석
gcloud 명령어를 사용하여 NCC 허브 기본 라우팅 테이블의 콘텐츠를 나열합니다.
gcloud network-connectivity hubs route-tables routes list --hub=mesh-hub \
--route_table=default
NCC 하이브리드 스포크와의 동적 경로 교환을 사용하는 경우 BGP MED 값이 있는 Cloud Router 학습 프리픽스가 NCC 스포크에 전파됩니다.
gcloud 명령어를 사용하여 '111'의 우선순위 값을 확인합니다.
gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.0.3.0/24
온프레미스 Cloud Router로 전환
gcloud 명령어를 사용하여 온프레미스 네트워크에서 학습한 경로를 확인합니다.
gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)"
6. NCC 하이브리드 스포크 필터
이 섹션에서는 온프레미스와 VPC 워크로드에 각각 새 서브넷을 하나씩 만들고 NCC 하이브리드 스포크 필터의 동작을 관찰합니다.
명령어를 사용하여 온프레미스 VPC에 새 서브넷을 만듭니다.
on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet30"
on_prem_subnet_range="10.30.30.0/24"
region="us-central1"
gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"
명령어를 사용하여 워크로드 VPC에 새 서브넷을 만듭니다.
vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet10"
vpc_spoke_subnet_ip_range="10.10.10.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
관리자는 '–exclude-export-ranges' 플래그를 사용하여 NCC 허브 경로 테이블로 내보내지는 IP 접두사를 필터링할 수 있습니다. 이를 통해 관리자는 NCC 허브 경로 테이블의 크기를 제어할 수 있습니다. 기본적으로 모든 IPv4 프리픽스는 온프레미스에서 학습되며 NCC 허브 라우팅 테이블에 허용됩니다.
명령어를 사용하여 NCC 하이브리드 스포크를 업데이트하여 10.30.30.0/24 프리픽스가 NCC 허브 라우팅 테이블에 삽입되지 않도록 필터링합니다.
vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"
gcloud network-connectivity spokes linked-vpn-tunnels update "${vpn_spoke_name}" \
--region="${region}" \
--exclude-export-ranges=10.30.30.0/24
gcloud 명령어를 사용하여 10.30.30.0/24 접두사가 NCC 허브 라우팅 테이블에 없는지 확인합니다.
gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.30.30.0/24
온프레미스 라우터로 전환하고 gcloud 명령어를 사용하여 워크로드 VPC의 10.10.10.0/24 서브넷을 학습했는지 확인합니다.
gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)"
아래 명령어는 '–exclude-import-ranges' 플래그를 사용하여 온프레미스 라우터에 광고되는 특정 10.10.10.0/24 접두사를 필터링합니다.
vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"
gcloud network-connectivity spokes linked-vpn-tunnels update "${vpn_spoke_name}" \
--region="${region}" \
--exclude-import-ranges=10.10.10.0/24
온프레미스 라우터로 전환하고 gcloud 명령어를 사용하여 라우팅 테이블을 확인합니다. 접두사 10.10.10.0/24가 표시되지 않아야 합니다.
gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)"
7. 데이터 경로 확인
이 단계에서는 NCC 하이브리드와 VPC 스포크 간의 데이터 경로를 검증합니다. 
이 gcloud 명령어의 출력을 사용하여 온프레미스 VM에 로그인합니다.
gcloud compute instances list --filter="name=vm3-onprem"
온프레미스 네트워크에 있는 VM 인스턴스에 로그인합니다.
gcloud compute ssh vm3-onprem --zone=us-central1-a
vm3-onprem 터미널에서 curl 명령어를 사용하여 workload-vpc에 호스팅된 VM에 대한 웹 세션을 설정합니다.
curl 10.0.1.2 -v
* Trying 10.0.1.2:80...
* Connected to 10.0.1.2 (10.0.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.0.1.2
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 03 Jul 2024 15:41:34 GMT
< Server: Apache/2.4.59 (Debian)
< Last-Modified: Mon, 01 Jul 2024 20:36:16 GMT
< ETag: "1e-61c358c8272ba"
< Accept-Ranges: bytes
< Content-Length: 30
< Content-Type: text/html
<
<h3>Web Server: www-vm1</h3>
* Connection #0 to host 10.0.1.2 left intact
8. 삭제
Cloud Shell에 로그인하여 GCP 리소스를 삭제합니다.
NCC 스포크 삭제
gcloud network-connectivity spokes delete workload-vpc-spoke --global \
--quiet
gcloud network-connectivity spokes delete hybrid-spoke \
--quiet \
--region us-central1
NCC 허브 삭제
gcloud network-connectivity hubs delete mesh-hub --quiet
방화벽 규칙 삭제
gcloud compute firewall-rules delete onprem-vpc-port-firewall-prem onprem-vpc-protocol-firewall routing-vpc--port-fw routing-vpc-protocol-fw workload-port-firewall-vpc workload-protocol-fw-vpc --quiet
HA VPN 터널 삭제
gcloud compute vpn-tunnels delete on-prem-tunnel \
--region=us-central1 \
--quiet
gcloud compute vpn-tunnels delete routing-vpc-tunnel \
--region=us-central1 \
--quiet
VPN 게이트웨이 삭제
gcloud compute vpn-gateways delete on-prem-vpn-gateway \
--region=us-central1 --quiet
gcloud compute vpn-gateways delete routing-vpc-vpn-gateway \
--region us-central1 --quiet
Cloud Router 삭제
gcloud compute routers delete routing-vpc-cr --region us-central1 --quiet
gcloud compute routers delete on-prem-router --region us-central1 --quiet
GCE 인스턴스 삭제
gcloud compute instances delete vm1-vpc-workload \
--zone=us-central1-a \
--quiet
gcloud compute instances delete vm2-vpc-routing \
--zone=us-central1-a \
--quiet
gcloud compute instances delete vm3-onprem \
--zone=us-central1-a \
--quiet
VPC 서브넷 삭제
gcloud compute networks subnets delete workload-subnet --region us-central1 --quiet
gcloud compute networks subnets delete on-prem-subnet --region us-central1 --quiet
gcloud compute networks subnets delete routing-vpc-subnet --region us-central1 --quiet
VPC 삭제
gcloud compute networks delete on-prem-net-vpcworkload-vpc routing-vpc
--quiet
9. 축하합니다.
동적 경로 교환 Network Connectivity Center 실습을 완료했습니다.
학습한 내용
- Network Connectivity Center를 사용한 동적 경로 교환
다음 단계
©Google, LLC 또는 그 계열사 All rights reserved. 배포 금지.