Home
home

Lab - IPv6 전용 서브넷 및 인스턴스 생성

1. 목표

AWS 퍼블릭 IPv4 과금 정책(’24.02)에 따라 IPv6 워크로드가 가능한 인스턴스에 대한 IPv6 환경 검토 중가 필요합니다.
IPv6 전용 서브넷에 IPv6 전용 인스턴스를 구성하며 NAT64DNS64를 통해 IPv6에서 IPv4까지 통신 가능한 환경을 구성합니다.
IPv4 환경에서 IPv6 접근 검토

2. 기본 환경 구성

구성 요소
VPC
Subnet - Dualstack Subnet
Subnet - IPv6 Only Subnet
IGW
NAT GW
Routing Table - Dualstack Routing Table
Routing Table - IPv6 Routing Table
EC2 - Bastion Host
EC2 - IPv6 Only Host
약식 구성도
[Caption] 테스트 구성도

3. 통신 확인 (IPv6 ⇒ IPv6, IPv6 ⇒ IPv4)

BastionHost SSH 접근 후 IPv6Host로 SSH 접근
ping6 2406:da12:41a:1e20:39ae:5094:895d:4173
Shell
복사
# IPv6Host의 IPv6 주소 확인 후 ping 테스트
ssh 2406:da12:41a:1e20:39ae:5094:895d:4173
Bash
복사
# 암호 기반으로 SSH 접근 수행
========================================= INPUT: password: qwe123 :END
Bash
복사
IPv6 Host SSH 접근 - IPv6 to IPv6 통신 확인
ifconfig
Shell
복사
# 인터페이스 IPv6 주소 확인
========================================= OUTPUT: ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001 inet 169.254.25.196 netmask 255.255.255.255 broadcast 0.0.0.0 inet6 2406:da12:41a:1e20:39ae:5094:895d:4173 prefixlen 128 scopeid 0x0<global> inet6 fe80::c5c:6bff:fe49:cedc prefixlen 64 scopeid 0x20<link> ether 0e:5c:6b:49:ce:dc txqueuelen 1000 (Ethernet) RX packets 18946 bytes 24728419 (23.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3201 bytes 334692 (326.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 :END
Bash
복사
curl google.com
Bash
복사
# google.com 접근 (성공 - redirect)
========================================= OUTPUT: <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML> :END
Bash
복사
nslookup google.com
Bash
복사
# google.com 도메인 정보 확인
========================================= OUTPUT: Server: fd00:ec2::253 Address: fd00:ec2::253#53 Non-authoritative answer: Name: google.com Address: 142.250.206.206 Name: google.com Address: 2404:6800:400a:813::200e :END
Bash
복사
google.com 서버는 Dualstack으로 IPv4와 IPv6 모두 지원합니다.
IPv6Host는 IPv6 주소로 통신 가능합니다. (IPv6Host ⇒ ::/0 ⇒ IGW)
IPv6 Host SSH 접근 - IPv6 to IPv4 통신 확인
curl ipinfo.io
Shell
복사
# ipinfo.io 접근 (실패)
========================================= OUTPUT: curl: (7) Failed to connect to ipinfo.io port 80 after 3145 ms: Couldn't connect to server :END
Bash
복사
nslookup ipinfo.io
Bash
복사
# ipinfo.io 도메인 정보 확인
========================================= OUTPUT: Server: fd00:ec2::253 Address: fd00:ec2::253#53 Non-authoritative answer: Name: ipinfo.io Address: 34.117.186.192 :END
Bash
복사
ipinfo.io에 접근이 실패되는 것은 해당 서버는 IPv4만 지원하여 IPv6Host는 IPv6 only로 IPv4를 사용할 수 없으니 접근이 불가합니다.
IPv6SN에 DNS64 비활성화 => 활성화
현재 DNS64 기능이 비활성화 상태
[Caption] DNS64 비활성화 상태
IPv6SN 선택 ⇒ 작업 ⇒ 서브넷 설정 편집 ⇒ DNS64 활성화 [Check]
[Caption] DNS64 활성화 상태로 전환
curl ipinfo.io
Shell
복사
# ipinfo.io 접근 (성공)
========================================= OUTPUT: { "ip": "43.201.122.37", "hostname": "ec2-43-201-122-37.ap-northeast-2.compute.amazonaws.com", "city": "Incheon", "region": "Incheon", "country": "KR", "loc": "37.4565,126.7052", "org": "AS16509 Amazon.com, Inc.", "postal": "21505", "timezone": "Asia/Seoul", "readme": "https://ipinfo.io/missingauth" ... :END
Bash
복사
nslookup ipinfo.io
Bash
복사
# ipinfo.io 도메인 정보 확인
========================================= OUTPUT: Server: fd00:ec2::253 Address: fd00:ec2::253#53 Non-authoritative answer: Name: ipinfo.io Address: 34.117.186.192 Name: ipinfo.io Address: 64:ff9b::2275:bac0 :END
Bash
복사
DNS64를 활성화하면 Amazon Route53 Resolver를 통해 64:ff9b::/96으로 AAAA 레코드 응답해 줍니다.
64:ff9b::/96은 Well-Known Prefix로 IPv4 주소를 16진수로 전환해서 주소를 정의합니다.
34.117.186.192
34 ⇒ 0x22
117 ⇒ 0x75
186 ⇒ 0xba
192 ⇒ 0xc0
즉, 64:ff9b::2275:bac0
또한 통신을 위해 IPv6를 IPv4로 변환하는 NAT64 동작이 필요하며, NAT Gateway를 생성하면 별도의 설정 없이 동작 가능합니다.
결론적으로 IPv6 only 환경에서 IPv4로 통신할 때 DNS64에 의해 Well-Known Prefix IPv6 주소를 응답받고 NAT64로 라우팅하여 통신합니다. (IPv6Host ⇒ 64:ff9b::/96 ⇒ NAT64 ⇒ IGW)
[Caption] 라우팅 테이블 확인
IPv6Host가 속한 서브넷의 라우팅 테이블을 확인하면 미리 Well-Known Prefix(64:ff9b::/96)에 대해 NAT GW로 향하는 경로로 설정니다.

4. 자원 삭제

NAT Gateway 삭제
EC2 인스턴스 삭제
탄력적 IP 주소 릴리스
Route53 레코드 삭제
VPC 삭제