siklog
[NCP/Network] IPsec VPN을 이용한 NCP to AWS MultiCloud 구성 방법 본문
테스트 환경: NCP Classic 환경 Server centos-7.3-64, AWS EC2 Server
NCP의 KR-2 Zone과 AWS의 VPC를 만들어 Site to Site VPN 방식으로 IPsec VPN을 연결해 보려고 한다.
NCP의 VPC 모드에서도 IPsec VPN을 제공하긴 하나 일반적인 서비스 형태가 아닌 Managed 서비스의 형태로 제공이 되고 있기에 테스트로 만들어 볼 순 없었고 때문에 Classic 환경에서 구성을 진행하였다.
NCP와 AWS의 IPsec VPN 설정 순서에 다소 차이가 있어 AWS설정을 먼저 한 후 NCP에 설정사항을 적용하는 방식으로 진행하였다. (꼭 이렇게 할 필요는 없음)
구성은 아래와 같은 과정으로 진행하였다.
1. AWS VPC, Subnet, EC2 생성
NCP Classic 환경 Server 생성 및 추가 비공인 IP 설정
- 먼저 AWS에서 VPC 및 Subnet를 생성하고 해당 Subnet 영역대로 EC2 서버를 만든다.
(여기서는 10.0.0.0/16영역의 VPC를 생성하고 10.0.1.0/24의 서브넷을 생성하여 10.0.1.0/24영역대로 서버를 만들었다.)
* NCP 서버에선 라우팅 테이블을 등록하기 전 추가 Network Interface 생성 및 연결 후 /etc/sysconfig/network-scripts/ifcfg-eth1에 해당 IP를 등록하는 과정을 먼저 진행한다. (추가된 비공인 ip로 연결할 수 있기 때문)
[CentOS의 경우]
$> vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=Interface IP 입력
NETMASK=255.255.255.0
ONBOOT=yes
$> ifup eth1
2. 가상 프라이빗 네트워크 연결 구성
- AWS에서 IPsec VPN을 사용하려면 고객 게이트웨이, 가상 프라이빗 게이트웨이, 사이트 간 VPN 연결 이렇게 세 가지를 차례대로 생성,연결해주면 연결할 수 있다.
3. 연결 구성 - 고객 게이트웨이
- 먼저 AWS 고객 게이트웨이를 생성하기위해선 연결할 상대의 퍼블릭 IP가 필요하기 때문에 NCP 콘솔에서 IPsec VPN Gateway을 먼저 생성하고 부여 받은 퍼블릭 IP를 AWS 고객 게이트웨이에 입력해준다
* IKEv1 Policy는 1차 2차 설정이 있는데 AWS는 나중에 설정을 하게 되어 있고 NCP에선 게이트웨이를 생성할 때 설정을 하게 되어 있어 NCP의 IPsec VPN Gateway을 먼저 생성하였다. (나중에 변경이 가능하므로 우선 생성 후 나중에 변경을 해도 무관하다.)
4. 연결 구성 - 가상 프라이빗 게이트웨이
- 고객 게이트웨이를 생성했다면 가상 프라이빗 게이트웨이를 생성하여 IPsec VPN 연결을 하게 될 AWS VPC에 연결을 해주는 작업이 필요하다.
5. 연결 구성 - 사이트 간 VPN연결
- 미리 생성한 가상 프라이빗 게이트웨이와 고객 게이트웨이를 선택해준다.
- 라우팅 옵션 설정 시 동적(BGP)는 지원하지 않기 때문에 라우팅 옵션을 정적(static) 으로 설정해준다.
6. 터널 옵션 설정
- 터널 내부 IPv4 CIDR과 사전 공유 키는 따로 지정을 해도 되고 지정하지 않으면 임의로 생성된다.
- 사이트 간 VPN에서 터널 옵션도 설정하게 되는데 AWS에선 1단계 2단계 정책을 한 번에 설정하도록 되어있다. 기본 값으로 모두 선택이 되어있고 사용하고자 하는 정책에 맞게 옵션을 선택 하면 된다. (터널 옵션 편집 버튼을 누르면 정책 설정 가능함)
- AWS는 DPD 옵션을 ikev2에서만 지원하므로 AWS VPN 자체에서 터널을 시작하는 기능은 NCP 와의 IPsec VPN 설정에선 사용할 수 없는 설정이다. (NCP의 IPsec VPN은 ikev1만 지원하기 때문)
- 단일터널만 사용할 예정이므로 tunnel 1만 설정해주었다.
7. IPsec VPN 터널 구성 정보
- 사이트 간 VPN에서 터널 옵션을 설정하여 생성하게 되면 구성 다운 로드를 통해 터널에 적용된 정책 구성 사항들을 볼 수 있다. 해당 구성 사항을 보고 NCP의 IPsec VPN 설정을 맞춰 적용하면 된다.
8. IKEv1 Policy 적용
- AWS IPsec VPN 터널 구성정보에 나와있는 대로 정책을 맞춰 주기 위해 NCP IPsec VPN Gateway의 1단계 IKEv1 Policy를 변경해준다.
* NCP에선 IKEv1 Policy만 지원하고 있다.
9. NCP IPsec VPN Tunnel 정책 설정
- NCP 콘솔에서 AWS 의 터널 IP를 이용하여 터널링을 맺어줘야 한다. 연결을 하게 될 AWS의 퍼블릭 IP와 서버 대역을 입력해주고, 2단계 IKEv1 Policy를 구성정보와 일치하게 입력해준다.
1) AWS 콘솔에서 VPN Tunnel Details 를 보면 Tunnel 1 의 외부 IP를 확인할 수 있고 이 IP를 Peer IP 부분에 넣어주면 된다.
2) Remote Network 는 10.0.0.0/16 으로 AWS 의 사설 네트워크 대역을 넣어주면 된다.
10. 라우팅 테이블 등록
- 마지막으로 라우팅 테이블에 등록을 해야한다. AWS는 콘솔에서 NCP는 서버에 직접 접속해서 각각 서로 연결할 상대 IP대역과 연결 게이트웨이를 추가할 수 있다.
* NCP Server에서 라우팅 테이블 추가 시 만약 추가 비공인 IP가 설정되어 있지 않을 경우 먼저 비공인 IP를 추가 후 라우팅 테이블을 등록하도록 한다. (1번 내용 중 추가 비공인 IP 설정 방법 참고)
[라우팅 테이블 설정]
게이트웨이 추가
# route add default gw [IP주소] [어뎁터명]
라우팅 테이블 추가
# route add -net [network_IP] netmask [subnet_mask] dev [어뎁터명]
라우팅 테이블 확인
# route -n
11. 연결 확인
- Ping이 통하도록 AWS 보안그룹에서 ICMP를 열어 주고 IPsec VPN으로 연결한 다른 쪽의 서버로 Ping을 보내 본 결과 정상적으로 통신돠는 것을 볼 수 있다.
* NCP 서버에서 추가된 비공인 IP는 ACG의 영향을 받지 않기때문에 NCP ACG에서는 ICMP를 열어줄 필요는 없다.
- NCP와 AWS 터널상태를 콘솔에서 확인하면 정상적으로 연결이 되어있을 경우 active, 작동이라고 표시가 되어있는 것을 확인할 수 있다.
* 처음 연결 시 정상적으로 설정을 완료 했음에도 상태가 inactive 로 지속되고 active 로 바뀌지 않는 것을 확인할 수 있는데 이는 AWS ikev1 은 DPD를 이용할 수 없기 때문에 상대방(NCP측)에서 터널을 개시해야 정상 연결이 되기 때문.
- NCP 콘솔에서도 연결 상태에 대한 정보를 확인할 수 있다.
'클라우드 > NCP' 카테고리의 다른 글
[NCP/Network] NCP Classic Load Balancer 에서 SSL Offloading 구성 (0) | 2022.04.09 |
---|---|
[NCP/콘솔 사용법] Object Storage 특정 버킷에 대한 서브 계정 권한 설정방법 (0) | 2022.04.06 |
[NCP/Network] PCS를 활용한 Active-Stanby 구조 HA cluster 구성 방법 (4) | 2022.03.26 |
[NCP/Network] Keepalived를 활용한 HA(고가용성) 구성 방법 (0) | 2022.03.22 |
[NCP/Load Balancer] Web 서버 서비스 별 기본 루트 경로 및 헬스체크 경로 (0) | 2022.03.17 |