작성자 : gasida.cloudnet@, 업데이트 : 2020.07.26
내부(AWS 인스턴스) → 외부(인터넷)로 통신
만 처리해줍니다
IPv6 트래픽 지원을 하지 않습니다
외부 전용 인터넷 게이트웨이
를 통하여 가능합니다프라이빗 서브넷과 연결되며 내부 인스턴스에서 외부(인터넷)과 통신 시 퍼블릭 서브넷의 NAT 인스턴스로 트래픽을 전송합니다.
NAT 인스턴스
는 iptables IP masquerading
기능을 통하여 내부 인스턴스의 IP와 Port를 NAT 인스턴스의 IP와 Port로 변환됩니다.
변환된 후 NAT 인스턴스는 인터넷 게이트웨이로 트래픽을 전송합니다.
인터넷 게이트웨이
는 NAT 인스턴스의 프라이빗 IP를 미리 맵핑된 탄력적IP로 1:1 IP NAT
변환 하여 외부(인터넷)으로 전송합니다.
아래 동작 내용은 2절 [실습] 환경 설정
을 하고 IP 정보를 확인하면서 이해하는 것을 권장합니다.
트래픽 흐름에 따른 동작
[그림 1-2-1] NAT 인스턴스를 통한 외부 접속 시 트래픽 흐름에 따른 동작
① 내부 인스턴스(10.40.2.101)에서 외부(60.1.1.1) HTTP 접속을 시도합니다. '프라이빗 서브넷 라우팅 테이블'에 따라서 'NAT 인스턴스'로 트래픽을 보내게 됩니다.
② NAT 인스턴스는 IP masquerading
기능을 통해서 소스IP(10.40.2.101 → 10.40.1.100)와 Port 를 변환하고 정보를 기록합니다. 이후 '퍼블릭 서브넷 라우팅 테이블'에 따라서 '인터넷 게이트웨이로 트래픽을 보내게 됩니다.
③ 인터넷 게이트웨이는 프라이빗(소스) IP와 탄력적 IP간의 IP 변환(NAT)
를 수행합니다. 소스IP(10.40.1.100 → a.b.c.d)로 변환하고 외부(인터넷)으로 트래픽을 보냅니다.
④ 웹서버(60.1.1.1)에서 요청을 처리하고 응답 트래픽을 보냅니다.
⑤ 인터넷 게이트웨이에 인입된 트래픽은 목적지IP(a.b.c.d → 10.40.1.100)으로 IP 변환(NAT)
하여 VPC 내부로 보냅니다.
⑥ NAT 인스턴스는 변환 정보
에 따라서 소스IP(10.40.1.100 → 10.40.2.101)와 Port 를 변환하여 프라이빗 서브넷을 보냅니다.
⑦ 최종적으로 응답 트래픽이 내부 인스턴스(10.40.2.101)로 도달하게 됩니다.