arrow_back

처리량이 높은 VPN 빌드

가입 로그인
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

처리량이 높은 VPN 빌드

Lab 1시간 universal_currency_alt 크레딧 7개 show_chart 고급
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP062

Google Cloud 사용자 주도형 실습

개요

이 실무형 실습에서는 안전하고 처리량이 높은 VPN을 만들고 그 속도를 테스트하는 방법을 알아봅니다.

Google Cloud 및 기타 클라우드 또는 온프레미스 시스템 간의 보안 통신은 공통적인 필수 요구사항입니다. 다행히 Google Cloud에서는 이러한 목표를 달성하기 위한 안전한 인터넷 보안 프로토콜(IPsec) 가상 사설망(VPN)을 쉽게 만들 수 있습니다. 단일 터널이 필요한 처리량을 제공하지 않을 경우 Google Cloud는 여러 터널에 트래픽을 원활하게 분산하여 추가 대역폭을 제공할 수 있습니다.

목표

VPN 만들기

  • Google Cloud 네트워크를 시뮬레이션하는 cloud라는 이름의 가상 프라이빗 클라우드(VPC)와 외부 네트워크를 시뮬레이션하는 on-prem(온프레미스)이라는 이름의 VPC를 만듭니다.
  • cloud VPC에 사용할 VPN 게이트웨이, 전달 규칙, 주소를 생성합니다.
  • 새 VPN을 위한 터널을 만들고 이를 통해 트래픽을 라우팅합니다.
  • on-prem VPC로 VPN 생성 프로세스를 반복하여 두 번째 VPN을 만듭니다.

VPN 테스트하기

  • Compute Engine을 사용하여 처리량 부하 테스트를 위한 가상 머신(VM)을 만듭니다.
  • iperf를 사용하여 단일 VPN의 처리량 속도를 테스트합니다.

기본 요건

작업 1. 클라우드 VPC 만들기

이 섹션에서 수행할 작업은 다음과 같습니다.

  • 클라우드 프로덕션 네트워크를 시뮬레이션하는 VPC를 만듭니다.
  • 일반적인 유형의 트래픽이 VPC를 통과하도록 허용합니다.
  • 호스트 배포를 위한 서브넷을 만듭니다.
  1. Cloud Shell을 설정한 후 다음을 실행하여 Google Cloud 프로젝트와 연결된 cloud라는 이름의 커스텀 VPC를 만듭니다.
gcloud compute networks create cloud --subnet-mode custom

이 VPC의 경우 기본값이 아닌 IP 주소를 사용할 수 있지만 기본 방화벽 규칙은 포함하지 않습니다.

  1. 부하 테스트 중에 VM과 통신하려면 시큐어 셸이 필요하므로 다음을 실행하여 SSHicmp를 사용 설정합니다.
gcloud compute firewall-rules create cloud-fw --network cloud --allow tcp:22,tcp:5001,udp:5001,icmp
  1. 다음을 실행하여 이 VPC 내에 서브넷을 만들고 리전과 IP 범위를 지정합니다.
gcloud compute networks subnets create cloud-east --network cloud \ --range 10.0.1.0/24 --region {{{project_0.default_region_2 | REGION2}}}

이 솔루션에서는 10.0.1.0/24 리전이 사용됩니다.

작업 2. 온프렘 VPC 만들기

이 섹션에서는 on-prem VPC 또는 cloud에 연결하려는 네트워크의 시뮬레이션을 생성합니다. 실제로는 여기에 리소스가 이미 있지만 이 실습에서는 터널을 만들고 구성을 검증하기 위해 다음 단계를 따릅니다.

  1. Cloud Shell에서 다음을 실행하여 프로젝트와 연결된 on-prem이라는 이름의 새 커스텀 서브넷 VPC를 만듭니다.
gcloud compute networks create on-prem --subnet-mode custom
  1. 부하 테스트 중에 VM과 통신하려면 시큐어 셸이 필요하므로 다음을 실행하여 on-prem VPC의 호스트에 SSHicmp를 사용 설정합니다.
gcloud compute firewall-rules create on-prem-fw --network on-prem --allow tcp:22,tcp:5001,udp:5001,icmp
  1. 다음 명령어를 사용해 리전의 서브넷 프리픽스를 지정합니다.
gcloud compute networks subnets create on-prem-central \ --network on-prem --range 192.168.1.0/24 --region {{{project_0.default_region |REGION}}} 참고: 이 예시에서는 리전에 `192.168.1.0/24`를 할당합니다. 서브네트워크와 방화벽 규칙이 있는 2개의 커스텀 VPC를 만듭니다.

작업 3. VPN 게이트웨이 만들기

안전한 외부 통신을 위해 각 환경에는 VPN 게이트웨이가 필요합니다. 다음 단계에 따라 클라우드 및 on-prem VPC의 초기 게이트웨이를 만듭니다.

  1. Cloud Shell에서 on-prem VPC 및 리전에 on-prem-gw1이라는 이름의 VPN 게이트웨이를 만듭니다.
gcloud compute target-vpn-gateways create on-prem-gw1 --network on-prem --region {{{project_0.default_region |REGION}}}
  1. 이제 cloud VPC 및 리전에 cloud-gw1이라는 이름의 VPN을 만듭니다.
gcloud compute target-vpn-gateways create cloud-gw1 --network cloud --region {{{project_0.default_region_2 | REGION2}}}

작업 4. 로컬 네트워크와 Google Cloud 네트워크 사이에 경로 기반 VPN 터널 만들기

각 VPN 게이트웨이에 정적 외부 IP 주소가 있어야 VPC 외부 시스템과 통신할 수 있습니다. 이제 클라우드 및 on-prem VPC의 IP 주소와 경로를 만듭니다.

  1. Cloud Shell에서 cloud-gw1 VPN 게이트웨이의 IP를 할당합니다.
gcloud compute addresses create cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
  1. 그런 다음 on-prem-gw1 VPN 게이트웨이의 IP를 할당합니다.
gcloud compute addresses create on-prem-gw1 --region {{{project_0.default_region |REGION}}}
  1. 이후 명령어에서 다시 찾을 필요가 없도록 게이트웨이 주소를 저장합니다.

먼저 cloud-gw1 게이트웨이에서 다음 명령어를 실행합니다.

cloud_gw1_ip=$(gcloud compute addresses describe cloud-gw1 \ --region {{{project_0.default_region_2 | REGION2}}} --format='value(address)')

그런 다음 on-prem-gw1 게이트웨이에서 다음 명령어를 실행합니다.

on_prem_gw_ip=$(gcloud compute addresses describe on-prem-gw1 \ --region {{{project_0.default_region |REGION}}} --format='value(address)')
  1. 이제 cloud VPC의 IPsec에 대한 전달 규칙을 만듭니다. 양방향으로 전달 규칙을 만들어야 합니다.

cloud-gw1에서 보안 페이로드 캡슐화(ESP) 프로토콜을 전달합니다.

gcloud compute forwarding-rules create cloud-1-fr-esp --ip-protocol ESP \ --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}

cloud-gw1에서 UDP:500 트래픽을 전달합니다.

gcloud compute forwarding-rules create cloud-1-fr-udp500 --ip-protocol UDP \ --ports 500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}

cloud-gw1에서 UDP:4500 트래픽을 전달합니다.

gcloud compute forwarding-rules create cloud-fr-1-udp4500 --ip-protocol UDP \ --ports 4500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
  1. 동일한 메서드를 사용해 on-prem VPC의 IPsec 터널에 대한 방화벽 전달 규칙을 만듭니다. 이 단계를 통해 IPsec 터널이 방화벽을 종료할 수 있습니다.

on-prem-gw1에서 ESP 프로토콜을 전달합니다.

gcloud compute forwarding-rules create on-prem-fr-esp --ip-protocol ESP \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}

on-prem-gw1에서 IPsec 터널을 설정하는 데 사용된 UDP:500 트래픽을 전달합니다.

gcloud compute forwarding-rules create on-prem-fr-udp500 --ip-protocol UDP --ports 500 \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}

on-prem-gw1에서 암호화된 트래픽을 전송하는 UDP:4500 트래픽을 전달합니다.

gcloud compute forwarding-rules create on-prem-fr-udp4500 --ip-protocol UDP --ports 4500 \ --address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}} VPN 게이트웨이 2개와 필요한 전달 규칙을 만듭니다.

보통은 on-prem-tunnel1cloud-tunnel1 터널을 만들고 검증하는 다음 단계에서 보안 비밀을 생성합니다. 보안 비밀을 만들어 안전하게 저장하는 방법에 관한 자세한 내용은 Secret Manager 개념 개요 가이드를 확인하세요. 지금은 'sharedsecret' 문자열을 사용합니다.

on-prem-tunnel1 로컬 네트워크와 cloud-tunnel1 클라우드 기반 네트워크의 터널을 만듭니다. 각 네트워크에는 VPN 게이트웨이가 있어야 하고 보안 비밀이 일치해야 합니다. 다음 두 명령어에서 [MY_SECRET]을 'sharedsecret'으로 바꿉니다. 프로덕션 시나리오에서는 자신이 생성한 보안 비밀로 바꿉니다.

  1. on-prem에서 cloud로 통하는 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create on-prem-tunnel1 --peer-address $cloud_gw1_ip \ --target-vpn-gateway on-prem-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \ --remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region |REGION}}}
  1. 클라우드에서 온프렘으로 통하는 VPN 터널을 만듭니다.
gcloud compute vpn-tunnels create cloud-tunnel1 --peer-address $on_prem_gw_ip \ --target-vpn-gateway cloud-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \ --remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region_2 | REGION2}}}

게이트웨이를 만들고 터널을 빌드했으므로 이제 서브넷에서 두 개의 터널을 통과하는 경로를 추가해야 합니다.

  1. on-prem VPC에서 cloud 10.0.1.0/24 범위까지의 트래픽을 터널로 라우팅합니다.
gcloud compute routes create on-prem-route1 --destination-range 10.0.1.0/24 \ --network on-prem --next-hop-vpn-tunnel on-prem-tunnel1 \ --next-hop-vpn-tunnel-region {{{project_0.default_region |REGION}}}
  1. cloud VPC에서 on-prem 192.168.1.0/24 범위까지의 트래픽을 터널로 라우팅합니다.
gcloud compute routes create cloud-route1 --destination-range 192.168.1.0/24 \ --network cloud --next-hop-vpn-tunnel cloud-tunnel1 --next-hop-vpn-tunnel-region {{{project_0.default_region_2 | REGION2}}} 2개의 VPN 터널을 만듭니다.

작업 5. VPN을 통한 처리량 테스트하기

지금까지 온프렘과 클라우드 VPC 간에 안전한 경로를 구축했습니다. 처리량을 테스트하려면 네트워크 부하 테스트를 위한 오픈소스 도구인 iperf를 사용합니다. 테스트를 위해서는 각 환경에 VM이 필요하며, 그 중 하나는 트래픽을 전송하고 다른 하나는 트래픽을 수신해야 합니다. 이 VM은 다음 단계에서 만듭니다.

단일 VPN 부하 테스트하기

이제 cloud-loadtest라는 이름의 클라우드 VPC에 대한 가상 머신을 만듭니다. 이 예시에서는 OS에 Debian Linux 이미지를 사용합니다.

참고: 기존 프로젝트가 있으면 이 단계를 생략하고 기존 리소스를 사용해도 됩니다. VM의 대역폭은 vCPU당 2Gbps이므로 최소 4개의 vCPU가 필요합니다.
  1. 다음을 실행합니다.
gcloud compute instances create "cloud-loadtest" --zone {{{project_0.default_zone_2 |ZONE2}}} \ --machine-type "e2-standard-4" --subnet "cloud-east" \ --image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \ --boot-disk-type "pd-standard" --boot-disk-device-name "cloud-loadtest"
  1. on-prem-loadtest라는 이름의 on-prem VPC에 대한 가상 머신을 만듭니다. 이 예시에서는 클라우드 VPC와 동일한 Debian 이미지가 사용됩니다. 기존 리소스가 있으면 이 단계를 생략합니다.

다음을 실행합니다.

gcloud compute instances create "on-prem-loadtest" --zone {{{project_0.default_zone |ZONE}}} \ --machine-type "e2-standard-4" --subnet "on-prem-central" \ --image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \ --boot-disk-type "pd-standard" --boot-disk-device-name "on-prem-loadtest"
  1. 콘솔 또는 명령줄을 사용하여 SSH를 통해 각 VM에 연결하고 다음 명령줄을 사용하여 iperf 사본을 설치합니다.
sudo apt-get install iperf
  1. on-prem-loadtest VM에서 다음 명령어를 실행합니다.
iperf -s -i 5

VM에 5초마다 상태를 보고하는 iperf 서버가 생성되었습니다.

  1. cloud-loadtest VM에서 다음 명령어를 실행합니다.
iperf -c 192.168.1.2 -P 20 -x C

20개의 스트림이 포함된 iperf 클라이언트를 만들었습니다. 이 클라이언트는 테스트를 10초 동안 실시한 후에 값을 보고합니다.

2개의 VM을 만들고 SSH를 통해 iperf를 설치합니다.

발생할 수 있는 문제 해결하기

참고: 다음은 실습 안내에 포함되지 않습니다.
  1. 로컬 네트워크용 터널을 만들 때 [MY_SECRET]을 'sharedsecret'으로 바꾸는 것을 잊은 경우:

다음 명령어를 사용하면 생성된 VPN 터널을 삭제할 수 있습니다.

gcloud compute vpn-tunnels delete [tunnel-name] --region [region]
  • [tunnel-name]을 터널 이름으로 바꿉니다.
  • [region]을 터널을 만들 때 지정한 리전으로 바꿉니다.
  1. 단일 VPN 부하 테스트 섹션에 문제가 발생한 경우:
  • 두 VM 모두에 iperf를 설치했는지 확인합니다.

  • 연결 거부 오류가 발생하면 다음을 확인합니다.

    • 생성된 네트워크(tcp:5001)의 방화벽 규칙
    • 서버가 on-prem-loadtest에서 제대로 실행되는지 여부
    • cloud-loadtest를 통해 서버에 연결하려는 경우인지 여부
  1. 콘솔에서 만든 전달 규칙을 확인하려는 경우:
  • 탐색 메뉴에서 네트워킹 섹션으로 이동합니다.
  • 네트워크 연결 > VPN을 클릭합니다.
  • Cloud VPN 게이트웨이를 클릭하여 Cloud VPN 게이트웨이 세부정보 페이지를 확인합니다.

수고하셨습니다

퀘스트 완료하기

이 사용자 주도형 실습은 Network Performance and Optimization, Security & Identity Fundamentals 퀘스트의 일부입니다. 퀘스트는 연관성이 있는 여러 실습을 하나의 학습 과정으로 구성한 것입니다. 퀘스트를 완료하면 배지를 얻고 수료를 인증할 수 있습니다. 배지를 공개하고 온라인 이력서 또는 소셜 미디어 계정에 연결할 수 있습니다. 이 실습을 포함한 퀘스트에 등록하여 즉시 수료 크레딧을 받으세요. 참여할 수 있는 모든 퀘스트는 Google Cloud Skills Boost 카탈로그를 참조하세요.

다음 실습 참여하기

Cloud CDN으로 퀘스트를 계속 진행하거나 다음 추천 항목을 확인하세요.

다음 단계

  • Google Cloud Router를 검토해 경계 게이트웨이 프로토콜(BGP)을 사용 설정하고 내결함성을 개선합니다.
  • Google Cloud Interconnect를 검토해 기타 상호 연결 옵션에 대해 알아봅니다.
  • Google Stackdriver로 VPN 게이트웨이를 모니터링합니다.
  • 다른 Google Cloud 기능을 직접 사용해 보세요. 튜토리얼을 살펴보세요.

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2024년 1월 10일

실습 최종 테스트: 2024년 1월 10일

Copyright 2024 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.