Cloud/GCP

HA VPN (GCP to AWS)

달빛궁전- 2023. 6. 7. 15:39

💡 문서의 목적
Site To Site VPN은 Public망이 아닌 Private 한 통신을 하기 위해 만들어진 방식
GCP, AWS간 VPN 구성 후 통신까지가 본 문서의 목적이며
인터넷에 있는 대부분의 문서들이 2021년전 문서입니다.
2023년 현재 AWS, GCP메뉴가 많이 달라져 작성하게 되었습니다.

💡 주의사항
AWS VPN은 기본적으로 HA로 구성되게 되어있다.
이말의 뜻은 VPN 생성시 기본적으로 Tunnel을 2개 생성되며 삭제는 불가능하다.

GCP에서 HA VPN이라 하면 NIC Interface 2개를 사용하여 터널을 맺는 것인데, 이를 AWS적용하자면 GCP Interface 2개, AWS VPN연결을 2개 생성하여 총 4개의 Tunnel을 맺어야 HA VPN으로 구성됩니다.
아래 그림은 GCP Interface 1번 → AWS Tunnel 1, 2번과 각각 연결하여 터널은 2개이나 제대로 구성되지 않았다는 메시지가 발생됩니다.

Untitled.png

AWS의 경우 2개의 Tunnel이 정상적으로 구동됨을 알 수 있습니다.

Untitled.png

위의 부분에 유의하여 HA VPN을 설정해보시길 바랍니다.
해당 문서에서는 GCP Interface 1번 → AWS Tunnel 1, 2와 연결하는 것으로 진행합니다.

목차

  • 구성도

Untitled.png

GCP 설정

GCP에서 HA VPN은 설정 마법사로 생성을 지원합니다.

Untitled.png

  1. 하이브리드 연결 → VPN → 고가용성(HA) VPN 선택

    Untitled.png

입력 비고
VPN 게이트웨이 이름 명명규칙에 따라 입력
네트워크 AWS VPC와 연결할 GCP의 네트워크
리전 VPC를 구성하는 리전 선택
IP6를 사용한다면 이중스택, IP4만 사용한다면 단일스택으로 진행

Untitled.png

  1. 피어 VPN게이트웨이 (상대방 VPN정보) 온프렘 - Google Cloud 외부 (AWS, Azure) 로 선택 후 새 피어 VPN 게이트웨이 만들기 선택

여기에서 GCP설정은 잠시 대기하고, AWS 리소스를 생성진행 GCP의 VPN GW는 만들어졌으니 차 후 진행해도 상관없으나, 이 문서에서는 순서대로 진행하겠습니다.

AWS 설정

AWS에서는 고객 게이트웨이, 가상 프라이빗 게이트웨이, Site to Site VPN연결 설정이 필요

  1. 고객 게이트웨이

    메뉴진입 : VPC → 고객 게이트웨이 → 고객 게이트웨이 생성

    embed

입력 비고
BGP ASN GCP의 Route에서 설정할 BGP ASN값
(값은 64,512~65,534 또는 4,200,000,000~4,294,967,294 범위)
IP 주소 GCP Cloud HA VPN게이트웨이 만들기 → VPN터널 추가 하였을때 인터페이스 (NIC0, NIC1)에 대한 IP를 발급되므로 해당 값 입력

Untitled.png

  1. 가상 프라이빗 게이트웨이

    메뉴진입 : VPC → 가상 프라이빗 게이트웨이 → 가상 프라이빗 게이트웨이 생성

    Untitled.png

    AWS에서 사용할 ASN 번호 생성

    생성 된 후 작업 → VPC에 연결 선택

    Untitled.png

    Untitled.png

    GCP와 연결해야하는 VPC을 선택하여 연결

  2. Site-to-Site VPN 연결

    메뉴진입 : VPC → Site-to-Site VPN연결 → VPN연결 생성

    Untitled.png

    입력 비고
    대상 게이트웨이 유형 미리 설정한 가상 프라이빗 게이트웨이 설정
    고객 게이트웨이 ID 미리 설정한 고객 게이트웨이 설정
    로컬 IPv4 GCP대역
    원격 IPv4 AWS대역
    번역이 반대로 된 상태로 보임

    터널을 생성하고, 해당 VPN을 선택하면 나오는 정보에서 터널 상태 확인

    Untitled.png

    외부 IP주소 1, 2를 메모하여 다시 GCP설정으로 진행한다.

    Untitled.png

    상단의 구성 다운로드 → 위와 같이 공급업체, 플랫폼을 선택 후 AWS VPN의 설정 값을 다운로드 한다.

    예제 VPN파일

    vpn-0f10884c7abbcd790.txt

  • GCP 진행

    1. 피어 VPN게이트웨이 설정

      Untitled.png

    2. VPN터널 추가

    Untitled.png

    온프렘 선택 피어 VPN → 기존 설정한 게이트웨이 선택

      ![Untitled.png](https://blog.kakaocdn.net/dn/CMD2e/btsi3pUpLvs/Dce286bkrTxktihV5LyXu1/img.png)
    
    
      Route를 신규로 생성하며,  생성시 GCP BGP에 사용할 ASN을 입력
    
    
      	**VPN터널** 
    
    
      	![Untitled.png](https://blog.kakaocdn.net/dn/ob9GU/btsiSRysoQN/7P8kTSKtVhmmL0QtPT7tH0/img.png)
    
    
      	사전 공유키는 AWS Config값 중 아래의 내용에 되어있습니다.
      	아니면, AWS엔지니어와 Key값을 서로 맞추면 됩니다.
    
    
      	```text
      	#1: Internet Key Exchange Configuration
      	
      	Configure the IKE SA as follows:
      	Please note, these sample configurations are for the minimum requirement of AES128, SHA1, and DH Group 2.
      	Category "VPN" connections in the GovCloud region have a minimum requirement of AES128, SHA2, and DH Group 14.
      	You will need to modify these sample configuration files to take advantage of AES256, SHA256, or other DH groups like 2, 14-18, 22, 23, and 24.
      	NOTE: If you customized tunnel options when creating or modifying your VPN connection, you may need to modify these sample configurations to match the custom settings for your tunnels.
      	
      	Higher parameters are only available for VPNs of category "VPN," and not for "VPN-Classic".
      	The address of the external interface for your customer gateway must be a static address.
      	Your customer gateway may reside behind a device performing network address translation (NAT).
      	To ensure that NAT traversal (NAT-T) can function, you must adjust your firewall !rules to unblock UDP port 4500.
      	If not behind NAT, and you are not using an Accelerated VPN, we recommend disabling NAT-T. If you are using an Accelerated VPN, make sure that NAT-T is enabled.
      	  - IKE version              : IKEv2
      	  - Authentication Method    : Pre-Shared Key
      	  **- Pre-Shared Key           : KzIUUSd4StYDwqS0nHIrvDKePEMmlmdx**
      	  - Authentication Algorithm : sha1
      	  - Encryption Algorithm     : aes-128-cbc
      	  - Lifetime                 : 28800 seconds
      	  - Phase 1 Negotiation Mode : main
      	  - Diffie-Hellman           : Group 2
      	```
    
  1. BGP 세션 구성 동적 라우팅을 하기 위해 BGP에 대한 세션을 구성하여야합니다.

    Untitled.png

    BGP세션 구성 선택

    Untitled.png

    Untitled.png

BGP세션 IP는 AWS config 파일에서 #3 Tunnel Interface Configuration에서 찾을 수 있습니다.

![Untitled.png](https://blog.kakaocdn.net/dn/6QMA1/btsi2xr6ij7/MGx6SQR6E7BPOi5G3bMKok/img.png)

- GCP 설정 완료
VPN터널과 BGP세션 상태가 녹색체크 확인

![Untitled.png](https://blog.kakaocdn.net/dn/L9zh0/btsiZWlF45u/ktUoGZcQOLKU1kz0fN2z70/img.png)

- AWS 설정 완료
Tunnel 1, 2 상태가 UP

	![Untitled.png](https://blog.kakaocdn.net/dn/bQfmkh/btsi2NVIA1r/FkdS1dXfJDmPmtFuKRKXVk/img.png)


### 방화벽, 라우팅 설정

- GCP의 경우 자동으로 라우팅처리가 되어있음
필요한 경우 AWS대역과 방화벽 처리 필요
- AWS
VPC → 라우팅 테이블 → 해당 VPC선택 → 라우팅 편집
GCP대역을 가상 프라이빗 게이트웨이로 선택

	![Untitled.png](https://blog.kakaocdn.net/dn/byAouH/btsi2RRdqoi/21A805QyGMV0Kkpj3vhnD1/img.png)


	이후 각 양단의 VPC에 존재하는 VM에서 Ping이나 서비스 체크를 통해 통신되는지를 확인

'Cloud > GCP' 카테고리의 다른 글

GCP에서 SSH 포트 변경시 다양한 방안  (0) 2023.08.07
GCP Console에서 gcloud IAP를 사용하여 instace(GCE)연결  (0) 2023.06.27
[GCP/Monitoring] Monitoring Agent 설치시 에러메시지가 발생될때  (0) 2023.06.24
GCP 보안  (0) 2023.05.30
Cloud storage  (0) 2023.05.12
Memorystore  (0) 2023.05.12
SQL  (0) 2023.05.12