소스 및 대상 IP 주소 모두 RFC 1918이 아닌 외부 IP 주소가 되도록 온프레미스 사이트와 Google Cloud 간에 기본 VPN 터널 연결을 구성할 수 있습니다. 예를 들어 온프레미스 IP 주소 범위가 Google Cloud VM IP 주소와 충돌하지 않도록 원격 사이트에 대한 기본 VPN 연결을 구성할 수 있습니다.
이 튜토리얼에서는 Google Cloud 프로젝트, Google Cloud 콘솔, 가상 머신(VM) 인스턴스, 기본 VPN, 몇 가지 Linux 명령어를 사용합니다. 연결을 테스트하려면 VM과 원격 피어 사이에 트래픽을 송수신하도록 새 VM 인스턴스를 만듭니다.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- 워크스테이션에서
gcloud
명령줄 도구를 설치합니다. - 프로젝트를 사용하도록
gcloud
명령줄 도구를 구성합니다. 다음 명령어에서PROJECT_ID
를 프로젝트 ID로 바꿉니다.gcloud config set project PROJECT_ID
- 온프레미스 서브넷이 온프레미스 VPN 게이트웨이에 연결되어 있는지 확인합니다.
- 피어 VPN 게이트웨이 구성의 안내에 따라 Google Cloud와 온프레미스 VPN 게이트웨이 간에 피어 VPN 게이트웨이를 구성합니다.
새로운 고정 외부 IP 주소 예약
Compute Engine에서 각 VM 인스턴스는 여러 네트워크 인터페이스를 가질 수 있습니다. 각 인터페이스는 내부 및 외부 IP 주소를 모두 포함할 수 있습니다. 전달 규칙에는 외부 부하 분산을 위한 외부 IP 주소 또는 내부 부하 분산을 위한 내부 주소를 지정할 수 있습니다. 고정 IP 주소에 대한 자세한 내용은 외부 IP 주소를 참조하세요.
고정 외부 IP 주소는 사용자가 해제하도록 결정할 때까지 프로젝트를 위해 예약되는 IP 주소입니다. 고객이 서비스에 액세스하기 위해 사용하는 IP 주소가 있는 경우 해당 프로젝트만 사용할 수 있도록 이 IP 주소를 예약할 수 있습니다. 또한 고정 외부 IP 주소로 임시 외부 IP 주소를 승격할 수도 있습니다.
다음과 같은 두 가지 유형의 외부 IP 주소를 예약할 수 있습니다.
- 하나 이상의 네트워크 인터페이스가 포함된 VM 인스턴스 또는 리전 네트워크 부하 분산기가 사용하는 리전 IP 주소
- 전역 부하 분산기에 사용되는 전역 IP 주소
리전 및 전역 부하 분산기 목록은 Google Cloud 부하 분산기 요약을 참조하세요.
Google Cloud CLI를 사용하거나 API를 통해 고정 외부 IP 주소를 예약합니다. IP 주소를 예약한 후에는 새 인스턴스를 만드는 동안 IP 주소를 새 인스턴스에 할당하거나 기존 인스턴스에 IP 주소를 할당합니다.
콘솔
고정 주소 예약 페이지로 이동
새 주소의 이름을 선택합니다.
IPv4 또는 IPv6 주소 여부를 지정합니다. IPv6 주소는 전역만 가능하며 전역 부하 분산기에서만 사용될 수 있습니다.
이 IP 주소가 리전 또는 전역인지 지정합니다. 인스턴스 또는 네트워크 부하 분산기에 대해 고정 IP 주소를 예약하는 경우에는 리전을 선택합니다. 전역 부하 분산기에 대해 고정 IP 주소를 예약하는 경우에는 전역을 선택합니다.
리전 IP 주소인 경우에는 주소를 만들 리전을 선택합니다.
선택사항: IP 주소에 연결할 리소스를 선택합니다.
예약을 클릭하여 IP 주소를 예약합니다.
gcloud
gcloud compute
를 사용하여 고정 외부 IP 주소를 예약하려면 compute addresses create
명령어를 사용합니다.
전역 IP 주소를 예약하려면 --global
및 --ip-version
필드를 사용합니다. --ip-version
필드에 IPV4
또는 IPV6
를 지정합니다. IPv6 주소는 전역만 가능하며 전역 부하 분산기에서만 사용될 수 있습니다.
ADDRESS_NAME
을 이 주소의 이름으로 바꿉니다.
gcloud compute addresses create ADDRESS_NAME \ --global \ --ip-version [IPV4 | IPV6]
리전 IP 주소를 예약하려면 --region
필드를 사용합니다.
gcloud compute addresses create ADDRESS_NAME \ --region=REGION
다음을 바꿉니다.
ADDRESS_NAME
: 이 주소의 이름REGION
: 이 주소를 예약할 리전입니다. 이 리전은 IP 주소가 할당된 리소스와 동일한 리전이어야 합니다. 모든 리전 IP 주소는 IPv4입니다.
결과를 보려면 다음과 같이 compute addresses describe
명령어를 사용합니다.
gcloud compute addresses describe ADDRESS_NAME
API
리전 IPv4 주소를 만들려면 리전 addresses.insert
메서드를 호출합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses
요청 본문에는 다음이 포함되어야 합니다.
{ "name": "ADDRESS_NAME" }
다음을 바꿉니다.
ADDRESS_NAME
: 주소 이름입니다.REGION
: 요청의 리전 이름입니다.PROJECT_ID
: 이 요청의 프로젝트 ID
전역 고정 IPv4 주소의 경우 globalAddresses.insert
메서드를 호출합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
요청 본문에는 다음이 포함되어야 합니다.
{ "name": "ADDRESS_NAME" }
전역 고정 IPv6 주소의 경우 globalAddresses.insert
메서드를 호출합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses
요청 본문에는 다음이 포함되어야 합니다.
{ "name": "ADDRESS_NAME", "ipVersion": "IPV6" }
결과를 보려면 addresses.get
메서드를 사용하세요.
Terraform
Terraform 모듈을 사용하여 외부 IP 주소를 만들 수 있습니다.
다음 예시에는 Terraform 인수에 변경 가능한 예시 값이 있습니다. 이 예시에서는 3개의 리전 외부 IPv4 주소를 만듭니다.
다음 예시에서는 전역 외부 IPv6 주소를 만듭니다.
IP 전달 사용 설정
VM을 생성할 때 또는 기존 VM에서 canIpForward
인스턴스 속성을 업데이트할 때 IP 전달을 사용 설정할 수 있습니다. IP 전달은 VM 수준에서 사용 설정되며 VM에 연결된 모든 인터페이스에 적용됩니다.
VM을 만들 때 IP 전달 사용 설정
이 안내에서는 VM을 만들 때 IP 전달을 사용 설정하는 방법을 설명합니다. 기존 VM에서 IP 전달을 사용 설정해야 하는 경우 canIpForward
인스턴스 속성을 업데이트합니다.
콘솔
- VM 인스턴스 페이지로 이동합니다.
VM 인스턴스로 이동 - 인스턴스 만들기를 클릭합니다.
- 부팅 디스크에서 Linux 이미지를 선택했는지 확인합니다(예: Debian GNU/Linux).
- 네트워킹, 디스크, 보안, 관리, 단독 테넌시를 클릭합니다.
- 네트워킹을 클릭합니다.
- IP 전달에 사용 설정을 선택합니다.
- 다른 인스턴스 매개변수를 지정합니다.
- 만들기를 클릭합니다.
gcloud
gcloud
를 사용하여 인스턴스를 만들 때 --can-ip-forward
플래그를 명령어에 추가합니다.
gcloud compute instances create ... --can-ip-forward
API
인스턴스를 만들 때 canIpForward
필드를 사용하여 IP 전달을 사용 설정합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "canIpForward": true, ...other fields }
다음을 바꿉니다.
- PROJECT_ID: 인스턴스가 생성된 프로젝트의 ID입니다.
- ZONE: 인스턴스가 생성된 Google Cloud 영역입니다.
자세한 내용은 instances.insert
메서드를 참조하세요.
Terraform
Terraform 리소스를 사용하여 IP 전달이 사용 설정된 VM 인스턴스를 만들 수 있습니다.
이 예시에서는 Terraform 인수에 변경 가능한 할당된 값이 있습니다.
인그레스 트래픽 경로 만들기
새 정적 경로를 만들려면 다음 단계를 따르세요. 작업 전에 다음 사항을 숙지해야 합니다.
커스텀 정적 경로의 대상 범위는 VPC 네트워크의 모든 서브넷 경로에서 사용되는 대상 범위와 일치하거나 더 구체적일 수 없습니다.
- VPC 네트워크 피어링을 사용하여 두 개의 VPC 네트워크를 연결하는 경우 한 네트워크에서 사용되는 커스텀 정적 경로의 대상 위치는 두 네트워크에서 사용되는 서브넷 경로와 일치하거나 더 구체적일 수 없습니다. Google Cloud는 이런 식으로 서브넷 경로와 충돌하는 커스텀 정적 경로를 거부합니다.
자동 모드 VPC 네트워크를 사용하는 경우 충돌을 방지하려면 대상 위치가
10.128.0.0/9
범위에 속하는 정적 경로를 만들지 않아야 합니다. 자세한 내용은 자동 모드 네트워크용으로 예약된 IP 주소 범위를 참조하세요.커스텀 정적 경로의 대상은 모든 내부 할당 범위와 겹칠 수 없습니다.
VM을 다음 홉으로 사용하는 커스텀 정적 경로를 만들려면 다음 홉으로 사용되는 인스턴스에 대해 잘 알아야 합니다. Google Cloud는 다음 홉 인스턴스를 선택하는 경우 경로를 만들 때 VM이 존재하는지만 검증합니다.
네트워크 태그를 사용하여 경로를 만들면 이 태그가 있는 VM만 해당 경로를 수신합니다. 그러나 태그가 지정된 VM은 네트워크 태그가 없는 모든 경로를 수신합니다.
콘솔
- Google Cloud 콘솔의 경로 페이지로 이동합니다.
경로로 이동 - 경로 만들기를 클릭합니다.
- 경로의 이름과 설명을 지정합니다.
- 경로가 적용될 기존 네트워크를 선택합니다.
- 대상 IP 범위를 지정하여 경로의 대상 위치를 정의합니다.
- 경로의 우선순위를 지정합니다. 우선순위는 여러 경로의 대상 위치가 동일한 경우에 라우팅 순서를 결정하는 데만 사용됩니다. 자세한 내용은 정적 경로 매개변수를 참조하세요.
- 네트워크 태그가 일치하는 특정 인스턴스에만 경로를 적용하려면 인스턴스 태그 필드에서 태그를 지정합니다. 경로를 네트워크의 모든 인스턴스에 적용하려는 경우 또는 내부 TCP/UDP 부하 분산기를 경로의 다음 홉으로 선택하는 경우 이 필드를 비워 둡니다. 네트워크 태그는 다음 홉으로 내부 TCP/UDP 부하 분산기가 있는 경로에는 적용되지 않습니다.
경로의 다음 홉을 지정합니다.
- 인스턴스 지정을 선택하면 인스턴스를 이름으로 선택할 수 있습니다. 그러면 IP 주소가 변경되더라도 트래픽이 해당 인스턴스(또는 동일한 영역에 있는 동일한 이름의 대체 인스턴스)로 라우팅됩니다.
- IP 주소 지정을 선택하면 VPC 네트워크에 있는 기존 인스턴스의 IP 주소를 입력할 수 있습니다. 유효한 다음 홉 IP 주소의 중요 제한사항은 정적 경로의 다음 홉을 참조하세요.
다양한 유형의 다음 홉에 대한 자세한 내용은 정적 경로 다음 홉을 참조하세요.
만들기를 클릭합니다.
gcloud
새 커스텀 정적 경로를 만듭니다.
gcloud compute routes create ROUTE_NAME \ --destination-range=DESTINATION_RANGE \ --network=NETWORK \ NEXT_HOP_SPECIFICATION
자리표시자를 바꿉니다.
- ROUTE_NAME은 경로의 이름입니다.
- DESTINATION_RANGE는 이 경로를 적용할 대상 IP 주소를 나타냅니다. 가능한 가장 광범위한 대상 위치는
0.0.0.0/0
입니다. - NETWORK는 경로를 포함할 VPC 네트워크의 이름입니다.
- NEXT_HOP_SPECIFICATION은 커스텀 정적 경로의 다음 홉을 나타냅니다. 다음 중 하나만 다음 홉으로 지정해야 합니다. 다양한 유형의 다음 홉에 대한 자세한 내용은 정적 경로 다음 홉을 참조하세요.
--next-hop-instance=INSTANCE_NAME
및--next-hop-instance-zone=ZONE
: 이 다음 홉을 사용하여 이름 및 영역에 따라 트래픽을 기존 VM 인스턴스로 전달합니다. 트래픽은 경로와 동일한 네트워크에 있는 VM 네트워크 인터페이스의 기본 내부 IP 주소로 전송됩니다.--next-hop-address=ADDRESS
: 이 다음 홉을 사용하여 트래픽을 기존 VM 인스턴스의 IP 주소로 전달합니다.
커스텀 정적 경로를 네트워크 태그에 따라 특정 VM에만 적용하려면 --tags
플래그를 추가하고 하나 이상의 네트워크 태그를 지정합니다. 네트워크 태그와 커스텀 정적 경로가 함께 작동하는 방식에 대한 자세한 내용은 적용 가능한 경로를 참조하세요. 모든 커스텀 정적 경로에 태그를 사용할 수 있습니다.
gcloud
구문에 대한 자세한 내용은 SDK 문서를 참조하세요.
API
새 커스텀 정적 경로를 만듭니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes { "destRange": "DESTINATION_RANGE", "name": "ROUTE_NAME", "network": "NETWORK_NAME", "priority": PRIORITY, "NEXT_HOP_SPECIFICATION": VALUE }
자리표시자를 바꿉니다.
- PROJECT_ID는 경로가 생성된 프로젝트의 ID입니다.
- DESTINATION_RANGE는 이 경로를 적용할 대상 IP 주소를 나타냅니다. 가능한 가장 광범위한 대상 위치는
0.0.0.0/0
입니다. - ROUTE_NAME은 경로의 이름입니다.
- NETWORK_NAME은 경로를 포함할 VPC 네트워크의 이름입니다.
- NEXT_HOP_SPECIFICATION의 VALUE는 커스텀 정적 경로의 다음 홉을 나타냅니다. NEXT_HOP_SPECIFICATION에
nextHopIp
,nextHopInstance
다음 홉 필드 중 하나만 지정해야 합니다. 다양한 유형의 다음 홉에 대한 자세한 내용은 정적 경로 다음 홉을 참조하세요.
자세한 내용은 routes.insert
메서드를 참조하세요.
Terraform
Terraform 모듈을 사용하여 정적 경로를 만들 수 있습니다.
이 정적 경로는 인터넷에 대한 기본 경로를 만듭니다.
정적 라우팅을 사용하여 기본 VPN 만들기
VPN 설정 마법사는 기본 VPN 게이트웨이를 만들 수 있는 유일한 Google Cloud Console 옵션입니다. 마법사에는 기본 VPN 게이트웨이, 터널, BGP 세션, 외부 VPN 게이트웨이 리소스를 만들기 위한 모든 필수 구성 단계가 포함되어 있습니다. 하지만 BGP 세션 구성과 같은 특정 단계는 나중에 완료할 수도 있습니다.
콘솔
게이트웨이 구성
Google Cloud 콘솔에서 VPN 페이지로 이동합니다.
게이트웨이를 처음 만드는 경우 VPN 연결 만들기를 클릭합니다.
VPN 설정 마법사를 선택합니다.
기본 VPN 옵션 버튼을 선택합니다.
계속을 클릭합니다.
VPN 연결 만들기 페이지에서 다음 게이트웨이 설정을 지정합니다.
- 이름: VPN 게이트웨이의 이름입니다. 이름은 나중에 변경할 수 없습니다.
- 설명: 원할 경우 설명을 추가합니다.
- 네트워크: VPN 게이트웨이와 터널을 만들 기존 VPC 네트워크를 지정합니다.
- 리전: Cloud VPN 게이트웨이 및 터널은 리전별 개체입니다. 게이트웨이가 위치할 Google Cloud 리전을 선택합니다. 다른 리전에 있는 인스턴스 및 다른 리소스는 경로 순서에 따라 이그레스 트래픽에 터널을 사용할 수 있습니다. 최상의 성능을 원한다면 관련 Google Cloud 리소스와 동일한 리전에서 게이트웨이와 터널을 찾습니다.
- IP 주소: 리전별 외부 IP 주소를 만들거나 기존 주소를 선택합니다.
터널 구성
새 터널의 경우 터널 섹션에서 다음 설정을 지정합니다.
- 이름: VPN 터널의 이름입니다. 이름은 나중에 변경할 수 없습니다.
- 설명: 원할 경우 설명을 입력합니다.
- 원격 피어 IP 주소: 피어 VPN 게이트웨이의 외부 IP 주소를 지정합니다.
- IKE 버전: 피어 VPN 게이트웨이에서 지원하는 적절한 IKE 버전을 선택합니다. 피어 기기에서 지원되는 경우 IKEv2가 권장됩니다.
- IKE 사전 공유 키: 인증에 사용되는 사전 공유 키(공유 보안 비밀)을 제공합니다. Cloud VPN 터널의 사전 공유 키는 피어 VPN 게이트웨이에서 상대 터널을 구성할 때 사용한 공유 비밀번호와 일치해야 합니다. 암호적으로 강력한 사전 공유 키를 생성하려면 다음 안내를 따르세요.
- 정책 기반 터널 선택
- 라우팅 옵션에서 정책 기반을 선택합니다.
- 원격 네트워크 IP 범위에서 온프레미스 VPN 설정의 로컬 트래픽이 사용하는 IP 주소 범위를 공백으로 구분된 목록으로 제공합니다.
- 로컬 IP 범위 필드에 이전에 만들고 서브넷 프리픽스
/32
가 포함된 외부 IP 주소 범위를 입력합니다. - 완료를 클릭합니다.
- 만들기를 클릭합니다.
gcloud
Cloud VPN 게이트웨이를 만들려면 다음 명령 시퀀스를 완료합니다. 명령어에서 다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 IDNETWORK
: Google Cloud 네트워크의 이름REGION
: 게이트웨이 및 터널을 만들 Google Cloud 리전GW_NAME
: 게이트웨이의 이름GW_IP_NAME
: 게이트웨이에 사용되는 외부 IP 주소의 이름- 선택사항:
--target-vpn-gateway-region
은 기본 VPN 게이트웨이가 작동할 리전입니다. 값은--region
과 같아야 합니다. 지정하지 않으면 이 옵션이 자동으로 설정됩니다. 이 옵션은 이 명령어 호출의 기본 compute/region 속성 값을 재정의합니다.
게이트웨이 리소스 구성
대상 VPN 게이트웨이 객체를 만듭니다.
gcloud compute target-vpn-gateways create GW_NAME \ --network=NETWORK \ --region=REGION \ --project=PROJECT_ID
리전 외부(정적) IP 주소를 예약합니다.
gcloud compute addresses create GW_IP_NAME \ --region=REGION \ --project=PROJECT_ID
피어 VPN 게이트웨이를 구성할 때 사용할 수 있도록 IP 주소를 적어 둡니다.
gcloud compute addresses describe GW_IP_NAME \ --region=REGION \ --project=PROJECT_ID \ --format='flattened(address)'
전달 규칙 3개를 만듭니다. 이러한 규칙은 Google Cloud에 ESP(IPsec), UDP 500, UDP 4500 트래픽을 게이트웨이로 전송하도록 지시합니다.
gcloud compute forwarding-rules create fr-GW_NAME-esp \ --load-balancing-scheme=EXTERNAL \ --network-tier=PREMIUM \ --ip-protocol=ESP \ --address=GW_IP_NAME \ --target-vpn-gateway=GW_NAME \ --region=REGION \ --project=PROJECT_ID
gcloud compute forwarding-rules create fr-GW_NAME-udp500 \ --load-balancing-scheme=EXTERNAL \ --network-tier=PREMIUM \ --ip-protocol=UDP \ --ports=500 \ --address=GW_IP_NAME \ --target-vpn-gateway=GW_NAME \ --region=REGION \ --project=PROJECT_ID
gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \ --load-balancing-scheme=EXTERNAL \ --network-tier=PREMIUM \ --ip-protocol=UDP \ --ports=4500 \ --address=GW_IP_NAME \ --target-vpn-gateway=GW_NAME \ --region=REGION \ --project=PROJECT_ID
Cloud VPN 터널 만들기
명령어에서 다음을 바꿉니다.
TUNNEL_NAME
: 터널의 이름ON_PREM_IP
: 피어 VPN 게이트웨이의 외부 IP 주소IKE_VERS
: IKEv1의 경우1
, IKEv2의 경우2
SHARED_SECRET
: 사전 공유 키(공유 비밀번호)입니다. Cloud VPN 터널의 사전 공유 키는 피어 VPN 게이트웨이에서 상대 터널을 구성할 때 사용한 공유 비밀번호와 일치해야 합니다. 암호적으로 강력한 사전 공유 키를 생성하려면 다음 안내를 따르세요.
정책 기반 VPN:
LOCAL_IP_RANGES
: 쉼표로 구분된 Google Cloud IP 주소 범위의 목록입니다. 예를 들어 VPC 네트워크의 각 서브넷에 대해 CIDR 블록을 제공할 수 있습니다. 이것은 Cloud VPN의 관점에서 볼 때 왼쪽입니다.REMOTE_IP_RANGES
: 쉼표로 구분된 피어 네트워크 IP 주소 범위의 목록입니다. 이것은 Cloud VPN을 기준으로 오른쪽입니다.
정책 기반 VPN 터널을 구성하려면 다음 명령어를 실행합니다.
gcloud compute vpn-tunnels create TUNNEL_NAME \ --peer-address=ON_PREM_IP \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --local-traffic-selector=LOCAL_IP_RANGES \ --remote-traffic-selector=REMOTE_IP_RANGES \ --target-vpn-gateway=GW_NAME \ --region=REGION \ --project=PROJECT_ID
경로 기반 VPN의 경우 로컬 및 원격 트래픽 선택기 모두 라우팅 옵션 및 트래픽 선택기에 정의된 대로
0.0.0.0/0
입니다.경로 기반 VPN 터널을 구성하려면 다음 명령어를 실행합니다.
gcloud compute vpn-tunnels create TUNNEL_NAME \ --peer-address=ON_PREM_IP \ --ike-version=IKE_VERS \ --shared-secret=SHARED_SECRET \ --local-traffic-selector=0.0.0.0/0 \ --remote-traffic-selector=0.0.0.0/0 \ --target-vpn-gateway=GW_NAME \ --region=REGION \ --project=PROJECT_ID
이전 단계의
--remote-traffic-selector
옵션에서 지정한 각 원격 IP 주소 범위에 대한 정적 경로를 만듭니다. 각 원격 IP 주소 범위에 대해 이 명령어를 반복합니다.ROUTE_NAME
을 경로의 고유 이름으로 바꾸고REMOTE_IP_RANGE
를 적절한 원격 IP 주소 범위로 바꿉니다.gcloud compute routes create ROUTE_NAME \ --destination-range=REMOTE_IP_RANGE \ --next-hop-vpn-tunnel=TUNNEL_NAME \ --network=NETWORK \ --next-hop-vpn-tunnel-region=REGION \ --project=PROJECT_ID
트래픽을 전송 및 수신하도록 VM 구성
설정을 완료하고 VM에서 트래픽을 전송 및 수신할 수 있는지 여부를 테스트하려면 다음 단계를 수행합니다.
트래픽 수신
- Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
- 가상 머신 인스턴스 목록에서 앞에서 만든 VM을 찾고 SSH를 클릭합니다.
앞에서 예약한 공개 IP 주소를 사용하여 VM의 IP 주소 별칭을 만듭니다. 이 단계를 완료하면 VM에 대한 트래픽을 수신할 수 있습니다.
다음 명령어를 실행합니다.
sudo ip address add EXTERNAL_IP_ADDRESS/32 dev eth0
EXTERNAL_IP_ADDRESS
를 앞에서 예약한 공개 IP 주소로 바꿉니다.
트래픽 전송
- Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
- 가상 머신 인스턴스 목록에서 앞에서 만든 VM을 찾고 SSH를 클릭합니다.
다음 명령어를 실행하여 외부 IP 주소를 핑할 수 있는지 테스트합니다.
$ ping -I EXTERNAL_IP_ADDRESS REMOTE_PEER_IP_ADDRESS PING 10.0.0.1 (10.0.0.1) from EXTERNAL_IP_ADDRESS : 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=4.46 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.11 ms
REMOTE_PEER_IP_ADDRESS
를 원격 피어 서브넷의 IP 주소로 바꿉니다.VPN 터널로 트래픽을 전송할 때 VM에서 이 인터페이스를 자동으로 사용하도록 하려면
iptables
규칙을 만들면 됩니다.예를 들어 다음 명령어를 실행하여
iptables
규칙을 만듭니다.$ sudo iptables -t nat -A POSTROUTING --destination REMOTE_PEER_SUBNET -j SNAT --to-source EXTERNAL_IP_ADDRESS
REMOTE_PEER_SUBNET
을 원격 피어의 서브넷으로 바꿉니다.다음 명령어를 실행하여 Cloud VPN 터널을 테스트합니다.
$ ping REMOTE_PEER_IP_ADDRESS PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=3.48 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.42 ms
$ ping EXTERNAL_IP_ADDRESS PING 35.195.72.19 (35.195.72.19) 56(84) bytes of data. 64 bytes from 35.195.72.19: icmp_seq=1 ttl=64 time=0.033 ms 64 bytes from 35.195.72.19: icmp_seq=2 ttl=64 time=0.062 ms