Amazon Virtual Private Cloud(Amazon VPC)에서 관리하는 VPC에 대한 AWS Site-to-Site VPN 연결이 있습니다. 상호 연결된 여러 사이트에 중복되거나 동일한 IP 주소 범위가 있으며, Site-to-Site VPN 연결에 대한 NAT를 구성하려고 합니다.
간략한 설명
AWS VPN은 VPN 트래픽에 NAT를 적용하는 관리형 옵션을 제공하지 않습니다.
VPN 트래픽에 NAT를 적용하려면 다음 작업 중 하나를 수행하십시오.
- AWS Marketplace의 소프트웨어 기반 VPN 솔루션을 사용하여 NAT를 수동으로 구성합니다.
- 소프트웨어 기반 VPN 솔루션 및 iptables를 실행하는 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에서 NAT를 수동으로 구성합니다.
다음 해결 방법의 예제 구성에서는 VPC 2개를 사용합니다. 첫 번째는 AWS 관리형 VPN이고, 두 번째는 고객 게이트웨이로 사용할 수 있는 소프트웨어 기반 VPN 솔루션입니다.
중요: IP 주소 중복 문제를 해결하려면 소스 NAT와 대상 NAT 모두에 대한 솔루션이 있어야 합니다. 프라이빗 NAT 게이트웨이는 소스 IP 주소 NAT를 수행할 수 있지만 소스 NAT 및 대상 NAT를 모두 수행할 수는 없습니다. 하지만 NAT 인스턴스는 소스 및 대상 NAT를 동시에 처리할 수 있습니다.
해결 방법
VPN 트래픽 허용
VPN 트래픽을 허용하도록 VPC 라우팅 테이블, 보안 그룹 및 네트워크 액세스 제어 목록(네트워크 ACL)을 구성합니다.
다음 단계를 완료하십시오.
- 라우팅 테이블에서 네트워크 트래픽을 대상 네트워크로 전달하는 경로를 만듭니다. 탄력적 네트워크 인터페이스를 소프트웨어 기반 EC2 Linux 인스턴스의 대상으로 설정합니다.
- 라우팅 테이블에 목적지가 인터넷 게이트웨이인 기본 경로가 있는지 확인합니다.
- 인바운드 트래픽을 허용하도록 인스턴스의 보안 그룹 규칙을 수정합니다. 포트 500(ISAKMP) 및 4500(IPsec NAT-Traversal)에서 UDP 패킷을 사용합니다.
- 인스턴스가 VPN 서브넷 간에 IP 주소 패킷을 전달할 수 있도록 소스/대상 검사를 비활성화합니다.
VPN 연결 구성
- 관련 솔루션에 대해 Site-to-Site VPN 연결을 구성합니다(아직 없는 경우). Site-to-Site VPN 예제 구성 파일을 다운로드할 수 있습니다.
- 배포판의 패키지 관리자를 사용하여 EC2 Linux 인스턴스에 VPN 솔루션을 설치합니다.
참고: strongSwan을 VPN 솔루션으로 사용하려면 GitHub 웹 사이트에서 vpn-gateway-strongswan을 참조하십시오.
iptables 구성
소스 NAT에 대해 iptables를 구성하려면 다음 sudo iptables 명령을 실행합니다.
sudo iptables -t nat -A POSTROUTING -d your_destination_address_or_CIDR -j SNAT --to-source your_IP_address
참고: your_destination_address_or_CIDR을 목적지 주소 또는 CIDR로 바꾸고 your_IP_address를 IP 주소로 바꾸십시오.
대상 NAT의 경우 다음 sudo iptables 명령을 실행합니다.
sudo iptables -t nat -A PREROUTING -j DNAT --to-destination your_IP_address
참고: your_IP_address를 IP 주소로 바꾸십시오.
실행 중인 iptables 구성을 파일에 저장하려면 다음 sudo iptables-save 명령을 실행합니다.
sudo iptables-save > /etc/iptables.conf
부팅 시 iptables 구성을 로드하려면 /etc/rc.local에서 exit 0 문 앞에 다음 줄을 입력합니다.
sudo iptables-restore < /etc/iptables.conf
필요에 따라 Site-to-Site VPN 연결을 테스트할 수 있습니다.