반응형
 
 
Google Cloud는 하이브리드 환경을 지원하기 위해 Cloud와 On-Premise 간 VPN 접속을 통한 연결을 제공한다.
 
 
물론 아래와 같이 두 지점(Google Cloud가 제공하는 POP와 On-Premise 데이터 센터) 사이에 직접 전용선을 통해서 연결하는 Interconnect 기능도 제공한다.
 
 
 
Cloud VPN
 
여기서는 Cloud VPN을 사용하는 방법과 실제 구성 테스트를 해 보려고 한다. 실제 구성 테스트는 직접 On-Premise 환경에 테스트 가능한 VPN 장비가 있으면 문제가 없지만 그렇지 못한 경우가 많으므로 여기서는 Cloud의 두 VPC 간을 연결(하나는 Cloud, 다른 하나는 On-Premise를 가정)하는 테스트를 해볼 예정이다. 실제로 이 방법을 이용하면 Google Cloud VPC와 다른 클라우드(예: Amazon AWS)의 VPC를 연결하는 Multi Cloud 환경을 구축하는데도 도움이 될 것이다.
 
먼저 Google Cloud VPN은 IPSec 방식의 VPN을 지원하며 IKE(Internet Key Exchange) 1 및 2 키 교환 방식을 지원한다.
IPSec 방식이 아닌 VPN은 지원하지 않는다.
 
다음은 GCP 내의 두 VPC(실제로 여기서는 서로 다른 GCP 프로젝트) 간에 VPN을 연결하는 모습을 표현한 다이어그램이다.
(Draw.io 다이어그램: 
GCP-VPN.xml
다운로드
)
 
다음은 연결하고자 하는 두 개의 VPC와 각 서브넷이다.
첫 번째 VPC의 서브넷은 asia-northeast1 지역에 위치하는 default이다.
 
상대방에 해당하는 두 번째 VPC 및 서브넷은 myownsubnet이다.
 
자 그러면 VPN을 생성해 본다.
 
(1) 첫 번쨰 프로젝트의 GCP 콘솔에 로그인해서 Interconnect ==> VPN으로 이동
 
 
(2) VPN 생성
 
(3) 두 번째 프로젝트의 GCP 콘솔에서 VPN 생성
 
(4) 첫 번째 프로젝트에서 VPN 터널 구성 (터널은 복수로 구성 가능)
 
Cloud Router를 설정하여 BGP를 이용한 자동 라우팅 구성을 할 수도 있지만, 여기서는 정적인 라우팅만을 테스트한다.
특히 shared secret(공유된 비밀번호)은 양쪽 VPN이 동일하게 지정해야 한다.
 
이렇게 하고 생성하면 아래와 같이 vpn-1은 상대편 vpn-2와 접속을 하기 위해 시도한다.
 
(5) 두 번째 프로젝트에서 VPN 터널 구성
 
두 번째 VPN도 구성이 완료되면 서로 통신을 해서 다음과 같이 연결이 완료된다.
 
(6) VM을 생성하여 상호 통신이 되는지 확인
 
단, 이때 양쪽 VPN을 연결한 서브넷이 존재하는 지역에 VM을 생성해야 한다.
 
다음은 각각 생성된 두 개의 VM이다. 두 개의 VM은 방화벽에서 통신이 가능한 상태이어야 한다.
 
 
(7) 상호 네트워크 연결 테스트
 
다음과 같이 두 번째 프로젝트의 VM(서브넷 10.192.0.0)에서 첫 번째 프로젝트의 VM(서브넷 10.146.0.0)으로 ping과 ssh가 접속된다.
 
 
당연한 얘기지만 여태까지 작성한 VPN 구성을 삭제하면 둘 사이의 네트워크는 다시 단절된다.
 
 
이와 같이 실제 물리적인 VPN 장비 없이 Google Cloud의 VPN 기능을 테스트하였다.
 
참고로 아래는 각종 벤더들의 VPN 장비와 Google Cloud VPN을 연결하기 위한 가이드들이다.
 
 
 
 
 
Posted by Hey Jerry
,