[IPSec VPN] Juniper JunOS 장비에서 AWS와의 Site-to-Site VPN 터널링 과정
-
AWS에서 Site-to-Site VPN을 설정하려면 온프레미스에 있는 IPSec VPN 장비와 터널링하는 과정이 필요합니다. 본 포스팅에서는 Juniper 기반의 IPSec VPN 장비의 GUI 환경에서 터널링하는 방법을 설명합니다. AWS에서 Site-to-Site VPN 연결을 구성하는 방법은 아래 포스팅을 참고해주시기 바랍니다.
앞선 포스팅에서 생성했던 VPN 연결에서 구성 다운로드를 하여 해당 구성대로 VPN 터널링을 진행하면 되는데, 그러기 위해선 터널링을 구성할 온프레미스 IPSec VPN의 구성 정보가 필요합니다. 여기서는 아래 [그림 1]과 같이 Juniper의 JunOS 버전의 장비에 구성하는 것을 설명합니다.
해당 구성 정보를 바탕으로 AWS 콘솔에서 앞서 생성한 VPN 연결을 선택하여 [그림 2]와 같이 구성 다운로드를 클릭합니다.
Transit Gateway로 구성 변경한 후에 캡처한 화면이고, IPSec VPN에서 해야할 작업은 동일하니 참고만 해주세요.
구성에 맞게 공급 업체, 플랫폼, 소프트웨어, IKE 버전 항목들을 선택하여 다운로드하여 나온 파일을 실행시키면 다음 [그림 4]와 같은 내용을 확인할 수 있습니다.
필자는 회사에서 네트워크를 주로 담당하는 인원이 아닐 뿐더러 장애가 났을 때 즉각적인 대응을 할 수 있도록 작업 내용을 이해하면서 진행하기 위해 GUI 환경에서 진행하였습니다.
위 구성 파일 내용을 이해해보면, 샵(#)은 주석이고, 주석이 없는 내용을 CLI에서 명령어를 입력하라는 내용인 것 같습니다. 주석에 명령어를 수행하는 내용들이 설명되어 있고, 본 포스팅에서는 해당 명령어에 해당하는 부분을 GUI 환경에서 하나하나 내용을 확인하면서 천천히 진행해볼 것이다.
Juniper IPSec VPN에서 Site-to-Site VPN 터널링 과정
1. IKE (Phase I) 구성
처음으로, security ike proposal 명령에 해당하는 메뉴를 [그림 5]와 같이 찾아갔습니다. Security Services > VPN > IKE (Phase I)메뉴로 들어와 3개의 탭 중 맨 오른쪽의 Proposal을 눌러 우측 상단의 + 버튼을 클릭합니다.
구성 파일 내용대로 이름은 ike-prop-vpn-0db1a14-1, authentication-algorithm은 sha1, authentication-method는 pre-shared-keys, dh-group은 group2, lifetime-seconds는 28800으로 세팅하고 OK를 눌러줍시다.
다음으로, [그림 5]의 가운데 탭인 IKE Policy로 들어와 마찬가지로 우측 상단의 +를 눌러 구성 파일 내용대로 설정하여 줍시다.
여기서 Name은 이해하기 쉬운 이름으로 아무 이름을 입력해주시면 됩니다. 그리고 두 번째 탭인 IKE Polycy Options를 들어가면 앞선 Proposal에서 설정한 pre-shared-keys에 대한 값을 입력해줄 수 있는데, 이 또한 구성 파일에 들어있는 값을 그대로 붙여넣어주면 됩니다.
다음으로, [그림 5]의 첫 번째 탭인 Gateway로 들어와 마찬가지로 우측 상단의 +를 눌러 구성 파일 내용대로 설정하여 줍시다.
앞서 생성한 Policy를 선택하고, Excernal Interface에는 각자의 환경에서 WAN으로 나갈 때 사용되는 인터페이스를 선택하여주면 됩니다. Site to Site VPN의 Remote Peer IP도 구성 파일의 내용에 있는 값을 그대로 입력하여 주고, 기타 옵션들도 동일하게 설정해주면 되겠습니다.
여기까지 설정하였으면 Phase I 구성은 끝난 것입니다.
2. IPSec (Phase II) 구성
Security Services > VPN > IPsec (Phase II) 메뉴로 들어와 Phase I과 마찬가지로 3개의 탭 중 맨 오른쪽의 Proposal을 눌러 우측 상단의 + 버튼을 클릭합니다.
Phase I 때와 같이 구성 파일 내용과 동일한 내용대로 값을 채워넣어가면 됩니다.
다음 두 번째 탭에 있는 Policy도 우측 상단의 + 버튼을 눌러 생성해줍시다.
앞서 생성한 Proposal을 선택하여 넘어가면 됩니다.
다음으로, Phase II의 첫 번째 탭인 VPN을 생성하기 이전에 터널링을 위한 인터페이스를 먼저 생성해주어야 합니다. Network > Routing > Ports 메뉴로 이동하여 새로운 인터페이스를 생성해줍시다.
마찬가지로 구성 파일 내용에 있는 터널링 IP 대역을 그대로 입력하여 생성해주고, 여기서 인터페이스 번호는 st0.79입니다.
다시 돌아와서, Phase II의 첫 번째 탭인 VPN을 생성해줍시다.
앞서 생성했던 Gateway, Policy, Tunnel Interface를 선택하고, IPSec VPN Options 탭에서 VPN 모니터도 구성 파일대로 세팅해줍시다.
여기서는 VPC에 해당하는 모든 대역대를 지정해두었고, 해당 대역의 IP는 모두 위에서 생성한 st0.79 인터페이스를 타고 클라우드로 넘어갈 수 있도록 라우팅을 미리 설정해두었습니다.
IPSec VPN에서 라우팅까지 구성해주었으면, Commit하여 AWS 상에서 터널링이 잘 구성되었는지 확인하여 줍시다.
추가로 다른 지역이나 IPSec VPN에 연결된 네트워크 장비를 통해 해당 터널링으로 통신해야 한다면 별도의 네트워크 장비에서도 라우팅을 추가해주어야 합니다. 예를 들어, 백본에 연결된 서버 및 PC에서 위에서 구성한 VPN 터널링을 통해 클라우드와 통신해야 한다면, 아래 [그림 16]과 같이백본에서 다음 홉을 IPSec VPN으로 타도록 설정해야 합니다.
4. AWS VPN 터널링 상태 확인
위에서 터널링을 성공적으로 구성했다면 다음 [그림 17]과 같이 AWS 상에서 VPN 터널링 1번의 링크가 Up 되어 있는 것을 확인할 수 있습니다.