개요
HA VPN은 단일 리전의 IPsec VPN 연결을 통해 온프레미스 네트워크를 VPC 네트워크에 안전하게 연결할 수 있는 고가용성(HA) Cloud VPN 솔루션입니다. HA VPN은 서비스 가용성이 99.99%인 SLA를 제공합니다.
HA VPN은 각 VPC 네트워크에 추가할 수 있는 리전 VPN 솔루션입니다. HA VPN 게이트웨이는 2개의 인터페이스를 사용하며, 각 인터페이스에는 고유한 공개 IP 주소가 있습니다. HA VPN 게이트웨이를 만들면 서로 다른 주소 풀에서 2개의 공개 IP 주소가 자동으로 선택됩니다. HA VPN에 2개의 터널을 구성하면 Cloud VPN에서 99.99%의 서비스 가용성 업타임을 제공합니다.
이번 실습에서는 및 에 2개의 커스텀 서브넷이 있는 vpc-demo라는 전역 VPC를 생성해 보겠습니다. 그리고 이 VPC의 각 리전에 Compute Engine 인스턴스를 추가합니다. 그런 다음 고객의 온프레미스 데이터 센터를 시뮬레이션할 수 있도록 on-prem이라는 두 번째 VPC를 만듭니다. 두 번째 VPC에서는 리전에 서브넷을 추가하고 이 리전에서 실행할 Compute Engine 인스턴스를 추가합니다. 마지막으로 각 VPC에 HA VPN과 클라우드 라우터를 추가하고 각 HA VPN 게이트웨이의 터널 2개를 실행한 뒤, 구성을 테스트하여 99.99% SLA를 확인합니다.
목표
이번 실습에서는 다음 작업의 수행 방법을 알아봅니다.
- 2개의 VPC 네트워크와 인스턴스를 만듭니다.
- HA VPN 게이트웨이를 구성합니다.
- VPN 터널로 동적 라우팅을 구성합니다.
- 전역 동적 라우팅 모드를 구성합니다.
- HA VPN 게이트웨이 구성을 확인하고 테스트합니다.
설정 및 요건
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
-
시크릿 창을 사용하여 Qwiklabs에 로그인합니다.
-
실습 사용 가능 시간(예: 1:15:00
)을 참고하여 해당 시간 내에 완료합니다.
일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.
-
준비가 되면 실습 시작을 클릭합니다.
-
실습 사용자 인증 정보(사용자 이름 및 비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.
-
Google Console 열기를 클릭합니다.
-
다른 계정 사용을 클릭한 다음, 안내 메시지에 이 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.
-
약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
실습을 시작하고 콘솔에 로그인하는 방법
-
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다.
왼쪽에 있는 패널에서 이 실습에 사용해야 하는 임시 사용자 인증 정보를 확인할 수 있습니다.
-
사용자 이름을 복사한 다음 Google 콘솔 열기를 클릭합니다.
실습에서 리소스가 실행되며 계정 선택 페이지를 표시하는 다른 탭이 열립니다.
참고: 두 개의 탭을 각각 별도의 창으로 나란히 여세요.
-
계정 선택 페이지에서 다른 계정 사용을 클릭합니다. 로그인 페이지가 열립니다.
-
연결 세부정보 패널에서 복사한 사용자 이름을 붙여넣습니다. 그런 다음 비밀번호를 복사하여 붙여넣습니다.
참고: 연결 세부정보 패널에 표시된 사용자 인증 정보를 사용해야 합니다. Google Cloud Skills Boost 사용자 인증 정보를 사용하지 마세요. 개인용 Google Cloud 계정이 있어도 이 실습에서 사용하지 마세요(요금 청구 방지).
- 이후에 표시되는 페이지를 클릭하여 넘깁니다.
- 이용약관에 동의합니다.
- 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
- 무료 평가판을 신청하지 않습니다.
잠시 후 Cloud 콘솔이 이 탭에서 열립니다.
참고: 왼쪽 상단에 있는 탐색 메뉴를 클릭하면 Google Cloud 제품 및 서비스 목록이 있는 메뉴를 볼 수 있습니다.
Google Cloud Shell 활성화하기
Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.
Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.
-
Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.
-
계속을 클릭합니다.
환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:
gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.
- 다음 명령어를 사용하여 사용 중인 계정 이름을 나열할 수 있습니다.
gcloud auth list
출력:
Credentialed accounts:
- @.com (active)
출력 예시:
Credentialed accounts:
- google1623327_student@qwiklabs.net
- 다음 명령어를 사용하여 프로젝트 ID를 나열할 수 있습니다.
gcloud config list project
출력:
[core]
project =
출력 예시:
[core]
project = qwiklabs-gcp-44776a13dea667a6
참고:
gcloud 전체 문서는 gcloud CLI 개요 가이드를 참조하세요.
작업 1. 전역 VPC 환경 설정하기
이 작업에서는 각 영역에서 2개의 커스텀 서브넷과 2개의 VM 인스턴스를 실행하는 전역 VPC를 설정합니다.
- Cloud Shell에서 vpc-demo라는 VPC 네트워크를 만듭니다.
gcloud compute networks create vpc-demo --subnet-mode custom
다음과 유사하게 출력됩니다.
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo].
NAME: vpc-demo
SUBNET_MODE: CUSTOM
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:
- Cloud Shell에서 리전에 vpc-demo-subnet1 서브넷을 만듭니다.
gcloud compute networks subnets create vpc-demo-subnet1 \
--network vpc-demo --range 10.1.1.0/24 --region "{{{project_0.default_region| REGION}}}"
-
리전에 vpc-demo-subnet2 서브넷을 만듭니다.
gcloud compute networks subnets create vpc-demo-subnet2 \
--network vpc-demo --range 10.2.1.0/24 --region {{{project_0.default_region_2 | REGION 2}}}
- 네트워크 내의 모든 커스텀 트래픽을 허용하는 방화벽 규칙을 만듭니다.
gcloud compute firewall-rules create vpc-demo-allow-custom \
--network vpc-demo \
--allow tcp:0-65535,udp:0-65535,icmp \
--source-ranges 10.0.0.0/8
다음과 유사하게 출력됩니다.
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/firewalls/vpc-demo-allow-custom].
Creating firewall...done.
NAME: vpc-demo-allow-custom
NETWORK: vpc-demo
DIRECTION: INGRESS
PRIORITY: 1000
ALLOW: tcp:0-65535,udp:0-65535,icmp
DENY:
DISABLED: False
- 모든 SSH, ICMP 트래픽을 허용하는 방화벽 규칙을 만듭니다.
gcloud compute firewall-rules create vpc-demo-allow-ssh-icmp \
--network vpc-demo \
--allow tcp:22,icmp
-
영역에 vpc-demo-instance1 VM 인스턴스를 만듭니다.
gcloud compute instances create vpc-demo-instance1 --machine-type=e2-medium --zone {{{ project_0.default_zone | "ZONE" }}} --subnet vpc-demo-subnet1
다음과 유사하게 출력됩니다.
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/zones/{{{ project_0.default_zone | "ZONE" }}}/instances/vpc-demo-instance1].
NAME: vpc-demo-instance1
ZONE: {{{ project_0.default_zone | "ZONE" }}}
MACHINE_TYPE: e2-standard-2
PREEMPTIBLE:
INTERNAL_IP: 10.1.1.2
EXTERNAL_IP: 34.71.135.218
STATUS: RUNNING
-
영역에 vpc-demo-instance2 VM 인스턴스를 만듭니다.
gcloud compute instances create vpc-demo-instance2 --machine-type=e2-medium --zone {{{project_0.default_zone_2 | ZONE2}}} --subnet vpc-demo-subnet2
작업 2. 시뮬레이션된 온프레미스 환경 설정하기
이 작업에서는 고객이 Google Cloud 환경과 연결할 온프레미스 환경을 시뮬레이션하는 on-prem VPC를 만듭니다.
- Cloud Shell에서 on-prem이라는 VPC 네트워크를 만듭니다.
gcloud compute networks create on-prem --subnet-mode custom
다음과 유사하게 출력됩니다.
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/on-prem].
NAME: on-prem
SUBNET_MODE: CUSTOM
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:
-
on-prem-subnet1이라는 서브넷을 만듭니다.
gcloud compute networks subnets create on-prem-subnet1 \
--network on-prem --range 192.168.1.0/24 --region {{{ project_0.default_region | "REGION" }}}
- 네트워크 내의 모든 커스텀 트래픽을 허용하는 방화벽 규칙을 만듭니다.
gcloud compute firewall-rules create on-prem-allow-custom \
--network on-prem \
--allow tcp:0-65535,udp:0-65535,icmp \
--source-ranges 192.168.0.0/16
- 인스턴스에 SSH, RDP, HTTP, ICMP 트래픽을 허용하는 방화벽 규칙을 만듭니다.
gcloud compute firewall-rules create on-prem-allow-ssh-icmp \
--network on-prem \
--allow tcp:22,icmp
-
리전에 on-prem-instance1이라는 인스턴스를 만듭니다.
참고: 아래 명령어에서는 의 영역을 영역으로 대체합니다. 이 영역은 vpc-demo-subnet1에서 vpc-demo-instance1을 만드는 데 사용했던 것과 다릅니다.
gcloud compute instances create on-prem-instance1 --machine-type=e2-medium --zone zone_name --subnet on-prem-subnet1
작업 3. HA VPN 게이트웨이 설정하기
이 작업에서는 각 VPC 네트워크에 HA VPN 게이트웨이를 만든 다음, 다시 각 Cloud VPN 게이트웨이에 HA VPN 터널을 만듭니다.
- Cloud Shell에서 vpc-demo network에 HA VPN을 만듭니다.
gcloud compute vpn-gateways create vpc-demo-vpn-gw1 --network vpc-demo --region {{{ project_0.default_region | "REGION" }}}
다음과 유사하게 출력됩니다.
Creating VPN Gateway...done.
NAME: vpc-demo-vpn-gw1
INTERFACE0: 35.242.117.95
INTERFACE1: 35.220.73.93
NETWORK: vpc-demo
REGION: {{{ project_0.default_region | "REGION" }}}
-
on-prem 네트워크에 HA VPN을 만듭니다.
gcloud compute vpn-gateways create on-prem-vpn-gw1 --network on-prem --region {{{ project_0.default_region | "REGION" }}}
-
vpc-demo-vpn-gw1 게이트웨이의 세부정보를 조회하여 설정을 확인합니다.
gcloud compute vpn-gateways describe vpc-demo-vpn-gw1 --region {{{ project_0.default_region | "REGION" }}}
다음과 유사하게 출력됩니다.
creationTimestamp: '2022-01-25T03:02:20.983-08:00'
id: '7306781839576950355'
kind: compute#vpnGateway
labelFingerprint: 42WmSpB8rSM=
name: vpc-demo-vpn-gw1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/vpc-demo-vpn-gw1
vpnInterfaces:
- id: 0
ipAddress: 35.242.117.95
- id: 1
ipAddress: 35.220.73.93
-
on-prem-vpn-gw1 VPN 게이트웨이의 세부정보를 조회하여 설정을 확인합니다.
gcloud compute vpn-gateways describe on-prem-vpn-gw1 --region {{{ project_0.default_region | "Region" }}}
다음과 유사하게 출력됩니다.
creationTimestamp: '2022-01-25T03:03:34.305-08:00'
id: '3697047034868688873'
kind: compute#vpnGateway
labelFingerprint: 42WmSpB8rSM=
name: on-prem-vpn-gw1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/on-prem
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/on-prem-vpn-gw1
vpnInterfaces:
- id: 0
ipAddress: 35.242.106.234
- id: 1
ipAddress: 35.220.88.140
클라우드 라우터 만들기
-
vpc-demo 네트워크에 클라우드 라우터를 만듭니다.
gcloud compute routers create vpc-demo-router1 \
--region {{{ project_0.default_region | "REGION" }}} \
--network vpc-demo \
--asn 65001
다음과 유사하게 출력됩니다.
Creating router [vpc-demo-router1]...done.
NAME: vpc-demo-router1
REGION: {{{ project_0.default_region | "REGION" }}}
NETWORK: vpc-demo
-
on-prem 네트워크에 클라우드 라우터를 만듭니다.
gcloud compute routers create on-prem-router1 \
--region {{{ project_0.default_region | "REGION" }}} \
--network on-prem \
--asn 65002
작업 4. VPN 터널 2개 만들기
이 작업에서는 2개의 게이트웨이 간 VPN 터널을 만듭니다. HA VPN 설정의 경우 각 게이트웨이에 두 개의 터널을 추가하여 원격 게이트웨이와 연결합니다. interface0에 터널 1개를 만들고 원격 게이트웨이의 interface0에 연결합니다. 그런 다음 interface1에 또 다른 터널 1개를 만들어 원격 게이트웨이의 interface1에 연결합니다.
2개의 Google Cloud VPC 간 HA VPN 터널을 실행하려면 interface0의 터널이 원격 VPN 게이트웨이의 interface0에 연결되어 있어야 합니다. 마찬가지로, interface1의 터널도 원격 VPN 게이트웨이의 interface1에 연결되어야 합니다.
참고: 자체 환경에서 고객의 온프레미스 원격 VPN 게이트웨이로 HA VPN을 실행하는 경우 다음과 같은 방법 중 하나로 연결을 수행할 수 있습니다.
-
2개의 온프레미스 VPN 게이트웨이 기기: Cloud VPN 게이트웨이의 각 인터페이스에서 각 터널을 자체 피어 게이트웨이에 연결해야 합니다.
-
2개의 인터페이스가 있는 단일 온프레미스 VPN 게이트웨이 기기: Cloud VPN 게이트웨이의 각 인터페이스에서 각 터널을 피어 게이트웨이의 자체 인터페이스에 연결해야 합니다.
-
하나의 인터페이스가 있는 단일 온프레미스 VPN 게이트웨이 기기: Cloud VPN 게이트웨이의 각 인터페이스에서 두 터널 모두를 피어 게이트웨이의 동일한 인터페이스에 연결해야 합니다.
이 실습에서는 Google Cloud의 두 VPN 게이트웨이를 사용해 온프레미스 설정을 시뮬레이션합니다. 한 게이트웨이의 interface0이 다른 게이트웨이의 interface0과 연결되어 있고 interface1은 원격 게이트웨이의 interface1과 연결되어 있어야 합니다.
-
vpc-demo 네트워크에 첫 번째 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create vpc-demo-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router vpc-demo-router1 \
--vpn-gateway vpc-demo-vpn-gw1 \
--interface 0
다음과 유사하게 출력됩니다.
Creating VPN tunnel...done.
NAME: vpc-demo-tunnel0
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: vpc-demo-vpn-gw1
VPN_INTERFACE: 0
PEER_ADDRESS: 35.242.106.234
-
vpc-demo 네트워크에 두 번째 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create vpc-demo-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router vpc-demo-router1 \
--vpn-gateway vpc-demo-vpn-gw1 \
--interface 1
-
on-prem 네트워크에 첫 번째 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway vpc-demo-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router on-prem-router1 \
--vpn-gateway on-prem-vpn-gw1 \
--interface 0
-
on-prem 네트워크에 두 번째 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway vpc-demo-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router on-prem-router1 \
--vpn-gateway on-prem-vpn-gw1 \
--interface 1
작업 5. 각 터널에 대한 경계 경로 프로토콜(BGP) 피어링 만들기
이 작업에서는 vpc-demo와 VPC on-prem 사이의 각 VPN 터널에 대해 BGP 피어링을 구성합니다. HA VPN의 99.99% 가용성을 위해서는 동적 라우팅이 필요합니다.
-
vpc-demo 네트워크에 tunnel0에 대한 라우터 인터페이스를 만듭니다.
gcloud compute routers add-interface vpc-demo-router1 \
--interface-name if-tunnel0-to-on-prem \
--ip-address 169.254.0.1 \
--mask-length 30 \
--vpn-tunnel vpc-demo-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
다음과 유사하게 출력됩니다.
Updated [https://www.googleapis.com/compute/v1/projects/binal-sandbox/regions/{{{ project_0.default_region | "REGION" }}}/routers/vpc-demo-router1].
-
vpc-demo 네트워크에 tunnel0에 대한 BGP 피어를 만듭니다.
gcloud compute routers add-bgp-peer vpc-demo-router1 \
--peer-name bgp-on-prem-tunnel0 \
--interface if-tunnel0-to-on-prem \
--peer-ip-address 169.254.0.2 \
--peer-asn 65002 \
--region {{{ project_0.default_region | "REGION" }}}
다음과 유사하게 출력됩니다.
Creating peer [bgp-on-prem-tunnel0] in router [vpc-demo-router1]...done.
-
vpc-demo 네트워크에 tunnel1에 대한 라우터 인터페이스를 만듭니다.
gcloud compute routers add-interface vpc-demo-router1 \
--interface-name if-tunnel1-to-on-prem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel vpc-demo-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
-
vpc-demo 네트워크에 tunnel1에 대한 BGP 피어를 만듭니다.
gcloud compute routers add-bgp-peer vpc-demo-router1 \
--peer-name bgp-on-prem-tunnel1 \
--interface if-tunnel1-to-on-prem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region {{{ project_0.default_region | "REGION" }}}
-
on-prem 네트워크에 tunnel0에 대한 라우터 인터페이스를 만듭니다.
gcloud compute routers add-interface on-prem-router1 \
--interface-name if-tunnel0-to-vpc-demo \
--ip-address 169.254.0.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
-
on-prem 네트워크에 tunnel0에 대한 BGP 피어를 만듭니다.
gcloud compute routers add-bgp-peer on-prem-router1 \
--peer-name bgp-vpc-demo-tunnel0 \
--interface if-tunnel0-to-vpc-demo \
--peer-ip-address 169.254.0.1 \
--peer-asn 65001 \
--region {{{ project_0.default_region | "REGION" }}}
-
on-prem 네트워크에 tunnel1에 대한 라우터 인터페이스를 만듭니다.
gcloud compute routers add-interface on-prem-router1 \
--interface-name if-tunnel1-to-vpc-demo \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
-
on-prem 네트워크에 tunnel1에 대한 BGP 피어를 만듭니다.
gcloud compute routers add-bgp-peer on-prem-router1 \
--peer-name bgp-vpc-demo-tunnel1 \
--interface if-tunnel1-to-vpc-demo \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region {{{ project_0.default_region | "REGION" }}}
작업 6. 라우터 구성 확인하기
이 작업에서는 두 VPC의 라우터 구성을 확인합니다. 각 VPC 간 트래픽을 허용하고 터널의 상태를 확인하도록 방화벽 규칙을 구성합니다. 또한 각 VPC 사이의 VPN을 통한 비공개 연결을 확인하고 VPC에 대한 전역 라우팅 모드를 사용 설정합니다.
- 클라우드 라우터 vpc-demo-router1의 세부정보를 조회하여 설정을 확인합니다.
gcloud compute routers describe vpc-demo-router1 \
--region {{{ project_0.default_region | "REGION" }}}
다음과 유사하게 출력됩니다.
bgp:
advertiseMode: DEFAULT
asn: 65001
keepaliveInterval: 20
bgpPeers:
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel0-to-on-prem
ipAddress: 169.254.0.1
name: bgp-on-prem-tunnel0
peerAsn: 65002
peerIpAddress: 169.254.0.2
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel1-to-on-prem
ipAddress: 169.254.1.1
name: bgp-on-prem-tunnel1
peerAsn: 65002
peerIpAddress: 169.254.1.2
creationTimestamp: '2022-01-25T03:06:23.370-08:00'
id: '2408056426544129856'
interfaces:
- ipRange: 169.254.0.1/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/vpc-demo-tunnel0
name: if-tunnel0-to-on-prem
- ipRange: 169.254.1.1/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/vpc-demo-tunnel1
name: if-tunnel1-to-on-prem
kind: compute#router
name: vpc-demo-router1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/vpc-demo-router1
- 클라우드 라우터 on-prem-router1의 세부정보를 조회하여 설정을 확인합니다.
gcloud compute routers describe on-prem-router1 \
--region {{{ project_0.default_region | "REGION" }}}
다음과 유사하게 출력됩니다.
bgp:
advertiseMode: DEFAULT
asn: 65002
keepaliveInterval: 20
bgpPeers:
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel0-to-vpc-demo
ipAddress: 169.254.0.2
name: bgp-vpc-demo-tunnel0
peerAsn: 65001
peerIpAddress: 169.254.0.1
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel1-to-vpc-demo
ipAddress: 169.254.1.2
name: bgp-vpc-demo-tunnel1
peerAsn: 65001
peerIpAddress: 169.254.1.1
creationTimestamp: '2022-01-25T03:07:40.360-08:00'
id: '3252882979067946771'
interfaces:
- ipRange: 169.254.0.2/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/on-prem-tunnel0
name: if-tunnel0-to-vpc-demo
- ipRange: 169.254.1.2/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/on-prem-tunnel1
name: if-tunnel1-to-vpc-demo
kind: compute#router
name: on-prem-router1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/on-prem
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/on-prem-router1
원격 VPC의 트래픽을 허용하도록 방화벽 규칙 구성하기
피어 VPN의 비공개 IP 범위 트래픽을 허용하도록 방화벽 규칙을 구성합니다.
-
on-prem VPC 네트워크에서 vpc-demo로 이동하는 트래픽을 허용합니다.
gcloud compute firewall-rules create vpc-demo-allow-subnets-from-on-prem \
--network vpc-demo \
--allow tcp,udp,icmp \
--source-ranges 192.168.1.0/24
다음과 유사하게 출력됩니다.
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/firewalls/vpc-demo-allow-subnets-from-on-prem].
Creating firewall...done.
NAME: vpc-demo-allow-subnets-from-on-prem
NETWORK: vpc-demo
DIRECTION: INGRESS
PRIORITY: 1000
ALLOW: tcp,udp,icmp
DENY:
DISABLED: False
-
vpc-demo에서 on-prem VPC 네트워크로 이동하는 트래픽을 허용합니다.
gcloud compute firewall-rules create on-prem-allow-subnets-from-vpc-demo \
--network on-prem \
--allow tcp,udp,icmp \
--source-ranges 10.1.1.0/24,10.2.1.0/24
터널 상태 확인하기
- 방금 만든 VPN 터널을 나열합니다.
gcloud compute vpn-tunnels list
VPN 터널이 4개 있어야 합니다(VPN 게이트웨이마다 터널 2개). 다음과 유사하게 출력됩니다.
NAME: on-prem-tunnel0
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: on-prem-vpn-gw1
PEER_ADDRESS: 35.242.117.95
NAME: on-prem-tunnel1
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: on-prem-vpn-gw1
PEER_ADDRESS: 35.220.73.93
NAME: vpc-demo-tunnel0
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: vpc-demo-vpn-gw1
PEER_ADDRESS: 35.242.106.234
NAME: vpc-demo-tunnel1
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: vpc-demo-vpn-gw1
PEER_ADDRESS: 35.220.88.140
-
vpc-demo-tunnel0 터널이 작동 중인지 확인합니다.
gcloud compute vpn-tunnels describe vpc-demo-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
터널 출력에는 Tunnel is up and running(터널이 작동되어 실행 중입니다)이라는 자세한 상태가 표시됩니다.
creationTimestamp: '2022-01-25T03:21:05.238-08:00'
description: ''
detailedStatus: Tunnel is up and running.
id: '3268990180169769934'
ikeVersion: 2
kind: compute#vpnTunnel
labelFingerprint: 42WmSpB8rSM=
localTrafficSelector:
- 0.0.0.0/0
name: vpc-demo-tunnel0
peerGcpGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/on-prem-vpn-gw1
peerIp: 35.242.106.234
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
remoteTrafficSelector:
- 0.0.0.0/0
router: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/vpc-demo-router1
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/vpc-demo-tunnel0
sharedSecret: '*************'
sharedSecretHash: AOs4oVY4bX91gba6DIeg1DbtzWTj
status: ESTABLISHED
vpnGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/vpc-demo-vpn-gw1
vpnGatewayInterface: 0
-
vpc-demo-tunnel1 터널이 작동 중인지 확인합니다.
gcloud compute vpn-tunnels describe vpc-demo-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
터널 출력에는 Tunnel is up and running(터널이 작동되어 실행 중입니다)이라는 자세한 상태가 표시됩니다.
-
on-prem-tunnel0 터널이 작동 중인지 확인합니다.
gcloud compute vpn-tunnels describe on-prem-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
터널 출력에는 Tunnel is up and running(터널이 작동되어 실행 중입니다)이라는 자세한 상태가 표시됩니다.
-
on-prem-tunnel1 터널이 작동 중인지 확인합니다.
gcloud compute vpn-tunnels describe on-prem-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
터널 출력에는 Tunnel is up and running(터널이 작동되어 실행 중입니다)이라는 자세한 상태가 표시됩니다.
VPN을 통한 비공개 연결 확인하기
-
Compute Engine으로 이동하여 on-prem-instance1이 생성된 영역을 확인합니다.
-
새로운 Cloud Shell 탭을 열고 통해 on-prem-instance1 인스턴스에 연결되도록 다음과 같이 입력합니다.
Replace <zone_name> with the zone in which the on-prem-instance1 was created.
gcloud compute ssh on-prem-instance1 --zone zone_name
-
계속 진행하려면 'y'를 입력합니다.
-
비밀번호 생성 단계를 건너뛰려면 Enter 키를 두 번 누릅니다.
-
on-prem 네트워크의 on-prem-instance1 인스턴스에서 vpc-demo 네트워크의 인스턴스에 도달하도록 10.1.1.2를 핑합니다.
ping -c 4 10.1.1.2
핑에 성공합니다. 다음과 유사하게 출력됩니다.
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=62 time=9.65 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=62 time=2.01 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=62 time=1.71 ms
64 bytes from 10.1.1.2: icmp_seq=4 ttl=62 time=1.77 ms
--- 10.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 8ms
rtt min/avg/max/mdev = 1.707/3.783/9.653/3.391 ms
VPN을 통한 전역 라우팅
HA VPN은 리전별 리소스이자 클라우드 라우터로, 기본적으로 HA VPN이 배포된 리전의 경로만을 확인합니다. 해당 클라우드 라우터와 다른 리전의 인스턴스에 도달하려면 VPC에 대한 전역 라우팅 모드를 사용 설정해야 합니다. 이렇게 하면 클라우드 라우터가 다른 리전의 경로를 확인하고 공지할 수 있습니다.
- 새로운 Cloud Shell 탭을 열고 bgp-routing mode를 vpc-demo에서 GLOBAL로 업데이트합니다.
gcloud compute networks update vpc-demo --bgp-routing-mode GLOBAL
- 변경된 것을 확인합니다.
gcloud compute networks describe vpc-demo
다음과 유사하게 출력됩니다.
autoCreateSubnetworks: false
creationTimestamp: '2022-01-25T02:52:58.553-08:00'
id: '4735939730452146277'
kind: compute#network
name: vpc-demo
routingConfig:
routingMode: GLOBAL
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo
subnetworks:
- https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/subnetworks/vpc-demo-subnet1
- https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/us-west1/subnetworks/vpc-demo-subnet2
x_gcloud_bgp_routing_mode: GLOBAL
x_gcloud_subnet_mode: CUSTOM
- 현재 SSH를 통해 on-prem 네트워크의 인스턴스에 연결되어 있는 Cloud Shell 탭에서 리전의 vpc-demo-instance2 인스턴스를 핑합니다.
ping -c 2 10.2.1.2
핑에 성공합니다. 다음과 유사하게 출력됩니다.
PING 10.2.1.2 (10.2.1.2) 56(84) bytes of data.
64 bytes from 10.2.1.2: icmp_seq=1 ttl=62 time=34.9 ms
64 bytes from 10.2.1.2: icmp_seq=2 ttl=62 time=32.2 ms
--- 10.2.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 32.189/33.528/34.867/1.339 ms
작업 7. HA VPN 터널 구성 확인 및 테스트하기
이 작업에서는 각 HA VPN 터널의 고가용성 구성이 잘 완료되었는지 테스트하고 확인합니다.
-
새 Cloud Shell 탭을 엽니다.
-
vpc-demo 네트워크에서 tunnel0을 삭제합니다.
gcloud compute vpn-tunnels delete vpc-demo-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
삭제를 확인하라는 메시지가 표시되면 'y'를 입력합니다. 해당하는 tunnel0이 on-prem 네트워크에서 삭제됩니다.
- 터널이 삭제되었는지 확인합니다.
gcloud compute vpn-tunnels describe on-prem-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
Handshake_with_peer_broken이라는 자세한 상태가 표시됩니다.
creationTimestamp: '2022-01-25T03:22:33.581-08:00'
description: ''
detailedStatus: Handshake with peer broken for unknown reason. Trying again soon.
id: '4116279561430393750'
ikeVersion: 2
kind: compute#vpnTunnel
localTrafficSelector:
- 0.0.0.0/0
name: on-prem-tunnel0
peerGcpGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/vpc-demo-vpn-gw1
peerIp: 35.242.117.95
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
remoteTrafficSelector:
- 0.0.0.0/0
router: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/on-prem-router1
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/on-prem-tunnel0
sharedSecret: '*************'
sharedSecretHash: AO3jeFtewmjvTMO7JEM5RuyCtqaa
status: FIRST_HANDSHAKE
vpnGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/on-prem-vpn-gw1
vpnGatewayInterface: 0
- 열린 SSH 세션을 실행 중인 이전의 Cloud Shell 탭으로 전환하여 vpc-demo 네트워크와 on-prem 네트워크의 인스턴스 간 핑을 확인합니다.
ping -c 3 10.1.1.2
다음과 유사하게 출력됩니다.
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=62 time=6.31 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=62 time=1.13 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=62 time=1.20 ms
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 1.132/2.882/6.312/2.425 ms
이제 트래픽이 두 번째 터널을 통해 전송되기 때문에 핑은 계속 성공합니다. HA VPN 터널 구성이 완료되었습니다.
작업 8. (선택사항) 실습 환경 삭제하기
이 작업에서는 사용했던 리소스를 삭제합니다. 이 작업은 선택사항입니다. 실습을 종료하면 모든 리소스와 프로젝트가 자동으로 삭제 및 폐기됩니다. 하지만 비용을 절약하고 리소스 사용을 줄이려면 자체 환경에서 리소스를 직접 삭제하는 방법을 알고 있어야 합니다.
VPN 터널 삭제하기
- Cloud Shell에서 다음 명령어를 입력하여 나머지 터널을 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute vpn-tunnels delete on-prem-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute vpn-tunnels delete vpc-demo-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute vpn-tunnels delete on-prem-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
BGP 피어링 삭제하기
- 각 BGP 피어에서 다음 명령어를 입력하여 피어링을 삭제합니다.
gcloud compute routers remove-bgp-peer vpc-demo-router1 --peer-name bgp-on-prem-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers remove-bgp-peer vpc-demo-router1 --peer-name bgp-on-prem-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers remove-bgp-peer on-prem-router1 --peer-name bgp-vpc-demo-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers remove-bgp-peer on-prem-router1 --peer-name bgp-vpc-demo-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
클라우드 라우터 삭제하기
- 다음 명령어를 각각 입력하여 라우터를 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute routers delete on-prem-router1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers delete vpc-demo-router1 --region {{{ project_0.default_region | "REGION" }}}
VPN 게이트웨이 삭제하기
- 다음 명령어를 각각 입력하여 VPN 게이트웨이를 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute vpn-gateways delete vpc-demo-vpn-gw1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute vpn-gateways delete on-prem-vpn-gw1 --region {{{ project_0.default_region | "REGION" }}}
인스턴스 삭제하기
- 다음 명령어를 입력하여 각 인스턴스를 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute instances delete vpc-demo-instance1 --zone {{{ project_0.default_zone | "ZONE" }}}
gcloud compute instances delete vpc-demo-instance2 --zone {{{project_0.default_zone_2 | "ZONE"}}}
gcloud compute instances delete on-prem-instance1 --zone zone_name
NOTE: Replace with the zone in which the on-prem-instance1 was created.
방화벽 규칙 삭제하기
- 다음 명령어를 입력하여 방화벽 규칙을 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute firewall-rules delete vpc-demo-allow-custom
gcloud compute firewall-rules delete on-prem-allow-subnets-from-vpc-demo
gcloud compute firewall-rules delete on-prem-allow-ssh-icmp
gcloud compute firewall-rules delete on-prem-allow-custom
gcloud compute firewall-rules delete vpc-demo-allow-subnets-from-on-prem
gcloud compute firewall-rules delete vpc-demo-allow-ssh-icmp
서브넷 삭제하기
- 다음 명령어를 입력하여 서브넷을 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute networks subnets delete vpc-demo-subnet1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute networks subnets delete vpc-demo-subnet2 --region {{{project_0.default_region_2 | REGION 2}}}
gcloud compute networks subnets delete on-prem-subnet1 --region {{{ project_0.default_region | "REGION" }}}
VPC 삭제하기
- 다음 명령어를 입력하여 VPC를 삭제합니다. 각 작업을 확인하라는 메시지가 표시되면 'y'를 입력합니다.
gcloud compute networks delete vpc-demo
gcloud compute networks delete on-prem
작업 9: 검토하기
이 실습에서는 HA VPN 게이트웨이를 구성했습니다. 또한 VPN 터널을 사용해 동적 라우팅을 구성하고 전역 동적 라우팅 모드를 구성했습니다. 마지막으로 HA VPN이 잘 구성되어 정상적으로 작동하는지 확인했습니다.
실습 종료하기
실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
- 별표 1개 = 매우 불만족
- 별표 2개 = 불만족
- 별표 3개 = 중간
- 별표 4개 = 만족
- 별표 5개 = 매우 만족
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.