테스트하며 이해해보는 사이트 간 VPN (YAMAHA RTX830이용)

MZC_Global
Cloud Villains
Published in
15 min readSep 12, 2023

--

AWS에는 VPN 서비스가 있어 외부에서 AWS로 접속 시, VPN을 이용하여 안전하게 접속이 가능합니다. 본 게시글에서는 YAMAHA RTX830 VPN 루터를 이용한 사이트간 VPN 접속 방법을 기재 해 보도록 하겠습니다.

Client VPN의 접속방법에 대해서는 저희 회사 다른 분이 쓰신 게시글을 참고 해 주시길 바랍니다.

https://medium.com/cloudvillains/vpn-%EB%B6%84%ED%95%A0-%ED%84%B0%EB%84%90%EC%97%90-%EB%8C%80%ED%95%B4-%EB%B0%B0%EC%9A%B0%EB%A9%B4%EC%84%9C-vpn%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95-%ED%95%B4-%EB%B3%B4%EA%B8%B0-bdeee71351

2개의 VPN 사용 구분

VPN은 공개 된 인터넷을 이용하면서 마치 전용 프라이빗 네트워크를 이용하는 것 처럼 안전하게 통신하는 기술 입니다. VPN은 주로 Client VPN과 사이트 간 VPN, 2가지로 나뉘는데요, 이들의 사용 방법에 대해 설명 해 보겠습니다.

■ Client VPN

Client VPN은 원격 액세스 VPN이라고도 불리며, VPN엔드포인트에 단말마다 VPN을 접속 합니다. VPN접속에 VPN Client 소프트웨어를 이용합니다. 또한 암호화에는 SSL/TLS를 이용 합니다.

Client VPN 접속 예시

현재는 HTTPS나 SFTP와 같은 VPN을 이용하지 않아도 통신이 암호화 된 경우가 거의 대부분 입니다. 그렇기 때문에 Client VPN은 암호화때문이라기 보다는 ‘인터넷에서 내부 네트워크에 들어갈 것’ 이나 ‘Client VPN접속 후에 할당 된 Client CIDR에 의한 접속처 액세스 제한’을 목적으로 이용 된 경우가 많을 것 입니다.

사이트간 VPN과 다른 VPN 접속처가 고정 되어 있지 않은 것은 외출한 곳에서나 자택에서 VPN을 이용하여 내부 네트워크에 접속하는 경우를 의미합니다. 반대로 VPN Client소프트웨어가 설치 되지 않는 (또는 서버 등 운용상 인정 되지 않음) 기기는 VPN접속 불가하다는 단점도 있습니다.

■ 사이트 간 VPN

사이트간 VPN은 거점간 VPN이라고도 불리며, VPN엔드포인트에 대해 네트워크 단위로 VPN에 접속 합니다. VPN접속에는 VPN루터 (또는 그에 상당하는 기기)가 필요합니다. 또 암호화에는 IPsec이 이용 됩니다.

사이트간 VPN접속 예시

Client VPN과 다른 각각의 단말에 VPN Client소프트웨어를 인스톨하여 단말 시작 마다 VPN접속 인증 작업이 필요 없게 됩니다. VPN에 접속하는 네트워크에 설치되어 있는 것 만으로 이용 가능합니다. 그 때문에 외출한 곳에서나 자택에서의 VPN접속 용도로는 적합하지 않습니다. 일반적으로 오피스 네트워크, 데이터 센터, 클라우드 서비스 내의 프라이빗 네트워크를 접속하기 위해 이용 됩니다.

본 게시글의 구성

구성도

본 게시글은 상기와 같은 구성으로 생각 하고 있습니다.

또한 이하와 같이 VPN이외의 설정은 완료한 것으로 하겠습니다.

주의

본 게시글의 이미지나 항목명은 영어로 되어 있습니다. 한국어 표시를 희망하시는 분들은 항목명을 한국어로 변환 해 주시길 바랍니다.

개요

  1. 고객 게이트웨이 만들기
  2. 가상 프라이빗 게이트웨이 만들기
  3. 가상 프라이빗 게이트웨이를 VPC에 연결
  4. 사이트 간 VPN 설정
  5. RTX830용 VPN 설정 파일 다운로드
  6. RTX830용 VPN 설정 파일 수정
  7. 라우팅 테이블 설정
  8. RTX830 설정
  9. VPN 접속 확인
  10. VPN 연결 확인
  11. 마지막으로

고객 게이트웨이 만들기

구성도에서 볼 수 있듯이 고객 게이트웨이 장치(RTX830)는 온프레미스 환경에 있습니다. 이제부터 생성하려는 ‘고객 게이트웨이’는 ‘고객 게이트웨이 리소스’라고 불리우는 AWS 측 설정입니다.

고객 게이트웨이 리소스에는 고객 게이트웨이 장치(RTX830)의 글로벌 IP 주소와 같은 장치에 대한 정보가 저장됩니다. AWS 사이트 간 VPN 연결을 설정할 때 고객 게이트웨이(고객 게이트웨이 리소스)를 지정하면 연결할 고객 게이트웨이 디바이스(RTX830) 정보를 매번 하나씩 입력할 필요가 없습니다.

https://docs.aws.amazon.com/ko_kr/vpn/latest/s2svpn/your-cgw.html

■ 고객 게이트웨이 생성 작업

  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 Customer gateways를 클릭
  • Create customer gateway를 클릭하여 다음 항목을 입력하거나 선택
고객 게이트웨이 설정
  • 입력이나 선택이 완료되면 ‘Create customer gateway’를 클릭
  • 고객 게이트웨이가 생성되었는지 확인

가상 프라이빗 게이트웨이 만들기

가상 프라이빗 게이트웨이(Virtual Private Gateway)의 역할에 대해 설명하겠습니다.

VPC — 가상 프라이빗 게이트웨이

가상 프라이빗 게이트웨이는 VPN 연결에서 온프레미스와 통신할 때 이용되는 VPC의 출입구가 되는 게이트웨이입니다. 특정 VPC에 연결하면 ‘VPC — Virtual Private Gateway’가 접속됩니다.

사이트 간 VPN 설정으로 가상 프라이빗 게이트웨이를 타겟 지정

사이트 간 VPN 연결을 만들 때 ‘가상 프라이빗 게이트웨이 — 사이트 간 VPN’의 타겟 설정을 진행합니다. 이렇게 하면 ‘VPC — 가상 프라이빗 게이트웨이 — 사이트 간 VPN’ 통신이 가능합니다.

AWS 사이트 간 VPN 온프레미스 및 VPN 연결 설정

온프레미스와 사이트 간 VPN 연결이 설정되면 ‘VPC — 가상 프라이빗 게이트웨이 — 사이트 간 VPN — 온프레미스’ 형태로 AWS와 온프레미스간 통신이 가능합니다.

■ 가상 프라이빗 게이트웨이 생성 작업

  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 Virtual private gateways를 클릭
  • Create virtual private gateway를 클릭하여 다음 항목을 입력하거나 선택
가상 프라이빗 게이트웨이 설정
  • 입력 및 선택이 완료되면 ‘Create virtual private gateway’를 클릭
  • 가상 프라이빗 게이트웨이가 생성되는지 확인

가상 프라이빗 게이트웨이를 VPC에 연결

조금 전 만든 가상 프라이빗 게이트웨이를 VPC에 연결하여 VPC가 사이트 간 VPN을 통해 통신할 수 있도록 합니다.

■ 가상 프라이빗 게이트웨이 연결 작업

VPC에 연결
  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 ‘Virtual private gateways’를 클릭
  • 방금 만든 ‘example-prod-vgw’에 체크 표시
  • 오른쪽 상단의 ‘Actions’를 클릭
  • ‘Attach to VPC’를 클릭
  • 사용 가능한 VPC에서 VPN을 사용하는 VPC 선택
  • ‘Attach to VPC’를 클릭
  • 몇 분 후 ‘example-prod-vgw’의 상태가 ‘Attached’로 설정되어 있는지 확인

사이트 간 VPN 설정

사이트 간 VPN 설정은 VPC에 대한 연결 대상으로 가상 프라이빗 게이트웨이를 지정합니다. 또한 온프레미스에 대한 연결 대상으로서 고객 게이트웨이를 지정합니다. 이 VPN 연결을 설정하면 가상 프라이빗 게이트웨이를 통해 VPC와 온프레미스 통신이 가능하게 됩니다.

https://docs.aws.amazon.com/ko_kr/vpn/latest/s2svpn/create-cwan-vpn-attachment.html

■ 사이트 간 VPN 설정 작업

  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 ‘Site-to-Site VPN connections’를 클릭
  • ‘Create VPN connection’을 클릭하여 다음 항목을 입력하거나 선택
사이트 간 VPN 설정
  • Create VPN connection을 클릭
  • 사이트 간 VPN 연결 설정이 추가되었는지 확인

RTX830용 VPN 구성 파일 다운로드

RTX830용 VPN 설정 파일을 AWS Management Console에서 다운로드할 수 있습니다. 이 설정 파일에는 VPN 연결에 사용하는 자격 증명도 포함되어 있습니다. 본 게시글의 환경에서는 거의 그대로 사용 가능하지만, 샘플 파일이므로 자신의 환경에 맞추어 수정해야 합니다.

■ 설정 파일 다운로드

  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 Site-to-Site VPN connections를 클릭
  • 다운로드 구성을 클릭
  • 이하의 항목을 선택
  • 다운로드를 클릭하여 RTX830용 설정 파일을 로컬로 저장

RTX830용 VPN 설정 파일 수정

다운로드한 RTX830용 VPN 설정 파일을 수정합니다. RTX830의 글로벌 IP 주소가 포함된 부분을 프라이빗IP 주소로 다시 씁니다.

■ 변경 부분(1)

첫 번째 VPN 터널의 local address를 라우터의 글로벌 IP 주소에서 프라이빗 IP 주소로 변경합니다.

변경전
ipsec ike local address 1 xxx.xxx.xxx.xxx
변경후
ipsec ike local address 1 192.168.100.1

※ xxx.xxx.xxx.xxx에는 Create customer gateway경우 지정한 라우터의 외부 IP 주소(Global IP Address)가 기재되어 있습니다.

※ 192.168.100.1은 RTX830의 기본 내부 IP주소 (Private IP Address)입니다.

■ 변경 부분(2)

두 번째 VPN 터널의 ‘local address’를 라우터의 글로벌 IP 주소에서 사설 IP 주소로 변경합니다.

변경전
ipsec ike local address 1 xxx.xxx.xxx.xxx
변경후
ipsec ike local address 1 192.168.100.1

※xxx.xxx.xxx.xxx에는 Create customer gateway시에 지정한 라우터의 외부 IP 주소(Global IP Address)가 기재되어 있습니다.

※ 192.168.100.1은 RTX830의 기본 내부 IP주소 (Private IP Address)입니다.

라우팅 테이블 설정

이번에는 프라이빗 서브넷만 VPN 연결을 이용하여 온프레미스 환경과 통신할 수 있도록 합니다. 온프레미스 환경으로 라우팅 설정이 필요하지만 라우팅 정보는 BGP를 사용하여 온프레미스 환경의 라우터인 RTX830과 상호 작용합니다. (그 때문에 VPN 설정 생성시 Routing options에서 Dynamic (requires BGP)를 지정하고 있습니다)

Route propagation(라우팅 전파)을 활성화하면, VPN 연결 대상인 온프레미스 환경의 라우터(RTX830)에서 라우팅 정보를 받아 라우팅 테이블에 추가합니다.

https://docs.aws.amazon.com/ko_kr/vpn/latest/s2svpn/VPNRoutingTypes.html

■ 루트 테이블 설정 작업

라우팅 테이블 설정
  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 Route tables를 클릭
  • 사이트 간 VPN을 사용하는 프라이빗 서브넷의 라우팅 테이블 선택
  • 아래에 표시되는 라우팅 테이블 설정에서 Route propagation(라우팅 전파)을 클릭
  • Edit route propagation(라우팅 전파 편집)을 클릭
  • Propagation(전파)의 Enable(활성화)을 선택합니다.
  • Save를 클릭

RTX830 설정

이 설정을 진행 하기 전에 RTX830에서 사용하고 있는 기존 config 파일을 내보내 복원할 수 있도록 해 주십시오.
RTX830측에 VPN 설정이 있거나 VPN 설정이 터널 1과 터널 2로 설정된 경우 둘 다 AWS VPN 설정을 덮어쓰게 됩니다.

■ RTX830에 VPN 설정 추가

  • RTX830 관리 화면 (GUI)에 액세스
  • 상단 메뉴에서 관리를 클릭
  • 유지보수 -> 명령 실행
  • RTX830 용 VPN 설정 파일 내용 (텍스트)을 ‘커맨드 입력’양식에 붙여 넣기
  • 실행 클릭
  • VPN 설정 추가

■ RTX830의 VPN 설정 확인

RTX830의 VPN 설정
  • 상단 메뉴에서 간단 설정 클릭
  • VPN -> 거점 간 연결 클릭
  • 연결 설정 목록에 두 개의 VPN 설정이 추가되어 있는지, VPN 연결이 설정되어 있는지 확인(접속 상황이 초록색 화살표로 되어있다면 OK)

■ RTX830의 Config 확인

  • 라우터 관리 화면 (GUI)의 오른쪽 상단에서 config를 클릭
  • 브라우저에서 보기를 클릭
  • tunnel select 1, tunnel select 2 설정이 추가되어 AWS Management Console에서 다운로드한 RTX용 VPN 구성 파일의 설정 값과 동일한지 확인

VPN 접속 확인

VPN 연결 확인
  • AWS Management Console에서 VPC 페이지로 이동
  • 왼쪽 메뉴에서 Site-to-Site VPN connections를 클릭
  • example-prod-vpn의 VPN 연결에 체크 표시
  • 하단 메뉴의 Tunnel details->Tunnel state->Status가 UP인지 확인

VPN 연결 확인

AWS -> 온프레미스, 온프레미스 -> AWS의 양방향 연결을 확인합니다.

■ AWS에서 온프레미스로의 연결 확인

  • 프라이빗 서브넷에 설치된 EC2 인스턴스 ‘10.0.11.154’에 Bastion을 통해 SSH 로그인
  • ‘10.0.11.154’에서 온 프레미스 클라이언트 ‘192.168.100.2’에 ping으로 연결 확인 (192.168.100.2측에서 ICMP의 Echo Request를 허가해 둠)
AWS에서 온프레미스로의 ping
$ ping 192.168.100.2
PING 192.168.100.2 (192.168.100.2) 56(84) bytes of data.
64 bytes from 192.168.100.2: icmp_seq=1 ttl=127 time=8.14 ms
64 bytes from 192.168.100.2: icmp_seq=2 ttl=127 time=7.40 ms
64 bytes from 192.168.100.2: icmp_seq=3 ttl=127 time=7.74 ms
64 bytes from 192.168.100.2: icmp_seq=4 ttl=127 time=7.87 ms
64 bytes from 192.168.100.2: icmp_seq=5 ttl=127 time=7.69 ms

※연결 OK

■ 온프레미스에서 AWS로의 연결 확인

  • 온프레미스 클라이언트 192.168.100.2에 로그인
  • 192.168.100.2에서 온프레미스 Client 10.0.11.154로 ping을 통해 연결 확인
온프레미스에서 AWS로의 ping
> ping 10.0.11.154
10.0.11.154 에 ping을 송신 하고 있습니다 32바이트 데이터:
10.0.11.154 에서의 응답: 바이트 수 =32시간 =7ms TTL=126
10.0.11.154 에서의 응답: 바이트 수=32시간 =7ms TTL=126
10.0.11.154 에서의 응답: 바이트 수=32시간 =8ms TTL=126
10.0.11.154 에서의 응답: 바이트 수=32시간 =7ms TTL=126
10.0.11.154 의 ping통계:
패킷 수: 송신 = 4, 수신 = 4, 손실 = 0 (0%의 손실),
라운드 트립 예상 시간 (밀리 초):
최소 = 7ms, 최대 = 8ms, 평균 = 7ms

※연결 OK

마지막으로

사이트간 VPN은 저렴하게 도입할 수 있는 거점간 통신으로서 널리 사용되고 있습니다. YAMAHA RTX830은 사이트간 VPN을 이용할 수 있는 VPN 라우터로서는 저렴하기때문에, 관심이 있으신 분은 본 게시글을 참고로 사이트간 VPN을 꼭 시험해 보시길 바랍니다.

읽어 주셔서 감사합니다.

원문게시글 : https://zenn.dev/megazone_japan/articles/aee08a90c42edf

메가존 일본 법인 블로그에 업로드 중인 게시글로 작성자 카와나 료(川名(亮))님의 동의를 얻어 번역한 게시글 입니다.

번역 : 메가존클라우드 Cloud Techonolgy Center 박지은 매니저

--

--

MZC_Global
Cloud Villains

A blog post will be posted from the global branch of MegazoneCloud