Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
IPv6는 NAT GW가 아니라 Egress Only Internet Gateway 서비스로 트래픽을 외부로 보내는 걸까?
이 이유를 IPv4와 IPv6의 특징을 통해 알아보자.
IPv4의 NAT(Network address translation)
한국은 인구 대비 많은 IPv4를 부여받았고, AWS가 많은 공인 IPv4를 사들여서 AWS에서는 공인 IPv4를 쉽게 이용할 수 있다. (국내 IP의 50% 가까이 점유했다는 말이 있다;;)
하지만 IPv4는 이미 전 세계적으로 고갈되고 있고, AWS에서도 이제 EIP와 같은 공인 IPv4 사용에 대한 유료화 정책을 추진하고 있다.
이미 고갈된 상태의 IPv4 체계가 아직까지 잘 사용되는 이유는 NAT의 역할이 크다.
VPC에서를 예를 들면, ALB의 공인 IP 하나만 존재해도 외부에서 접근할 수 있다.
ALB는 대상 자원의 private IPv4로 목적지 IP를 변환하여, private 자원에도 접근을 제공해 준다.
반대로 나갈 때는 NAT GW의 IP 하나만 있다면, private 자원의 IPv4가 NAT GW의 공인 IPv4로 변환되어 외부 인터넷에 접근할 수 있다.
따라서 NAT를 통해 공인 IP 몇 개만으로도 수천 개의 private IPv4로 변환할 수 있고, 내부 자원의 IP 노출을 막아 보안적으로도 우수하기 때문에 아직까지 잘 사용되고 있다.
물론 IP 변환 과정에서의 오버헤드는 분명 발생하며, 변환 과정에서 End-to-End 연결이 차단된다.
IPv6는 NAT GW가 필요할까?
IPv6는 128 bit를 사용하여 거의 무제한에 가까운 주소를 제공할 수 있다.
(IPv4 주소공간의 2^96배이다...)
따라서 NAT 없이도 모든 자원에 공인 IPv6를 할당하여 End-to-End 연결을 달성할 수 있다.
하지만 NAT를 사용하지 않는다면, 모든 자원의 주소가 그대로 노출되는 보안 문제가 발생한다.
이러한 이유로 AWS는 Egress Only Internet Gateway를 사용한다.
일반적인 Internet Gateway IPv6와 IPv4모두 사용 가능하지만, Egress Only IGW는 IPv6에서만 사용한다.
Egress Only IGW를 사용하기 위해 라우팅 테이블에서 로컬을 제외한 IPv6의 모든 대상(::/0)을 Egress Only IGW로 보내면된다.
Egress Only IGW는 상태 저장방식이기 때문에 내부에서 전달한 트래픽은 다시 들어올 수 있다.
하지만 외부에서 IPv6 주소로 자원에 직접 접근하면 차단된다.
따라서 IPv6 체계를 사용한다면 Egress Only IGW를 NAT GW 대용으로 사용할 수 있다.
반대로 외부에서 서비스에 접근하는 경우는 결국에 진입점이 필요하기 때문에 일반 Internet Gateway를 통해 접근할 수 있는 IPv6 주소를 제공하면 된다.
외부에서 서비스 자원으로 들어오는 정상적인 접근의 경우에는 ALB와 같이 노출된 IPv6에 Internet Gateway를 통해 접근하고, ALB가 내부 자원들에게 트래픽을 전달하는 방식으로 진행된다.
이 과정에서는 부하 분산을 위해 어쩔 수 없이 ALB에서 서비스 자원으로의 주소 변환 과정이 발생한다.
따라서 Egress Only IGW는 NAT GW처럼, 내부에서 외부로 나가는 IPv6 트래픽에만 사용할 수 있다.
듀얼 스택 구조
IPv4의 연결은 IPv4로, IPv6의 연결은 IPv6로 통신이 되기 때문에, VPC에 인터넷 연결이 필요하다면 아래처럼 NAT GW(IPv4만 지원)와 EIGW(IPv6만 지원)가 모두 필요하다.
외부로 나가는 것 뿐만아니라 내부로 들어오는 경우, ELB에도 Dual stack 세팅이 필요하다.
참조
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/egress-only-internet-gateway-basics.html
https://ko.wikipedia.org/wiki/IPv6
http://weekly.tta.or.kr/weekly/files/20093928033914_admin.pdf
'Cloud > AWS' 카테고리의 다른 글
[AWS] ECS의 네트워크 모드 (awsvpc, host, bridge) (0) | 2024.08.22 |
---|---|
AWS SOA-C02 공부법 및 합격 후기 (SysOps Administrator - Associate) (0) | 2024.08.17 |
[AWS] Gateway LoadBalancer란? (with Network Firewall) (0) | 2024.08.01 |
AWS의 메타데이터 서버가 링크 로컬 주소를 사용하는 이유 ( 169.254.169.254 주소는?) (0) | 2024.07.27 |
[AWS] VPC의 DNS 서버인 Route 53 Resolver 란? (0) | 2024.07.25 |