IPv6가 생긴 이유
IPv6(RFC 8200)는 IPv4의 43억 개 주소가 바닥날 것이 분명해진 1990년대에 설계되었습니다. IPv6 주소는 128비트, 즉 2¹²⁸(약 3.4 × 10³⁸)개의 주소를 제공합니다. 중요한 것은 숫자의 크기가 아니라, 모든 네트워크가 필요한 만큼 주소 공간을 얻고 모든 기기가 다시 전 세계에서 도달 가능한 주소를 가질 수 있다는 점입니다. NAT가 필요 없습니다.
IPv6는 IPv4의 업그레이드가 아니며, 두 프로토콜은 나란히 동작합니다(듀얼 스택). 오늘날 주요 서비스로 가는 트래픽 중 크고 계속 늘어나는 비중이 IPv6를 쓰며, 특히 모바일 네트워크에서 두드러집니다.
표기법: 16진수 그룹
IPv6 주소는 16진수 네 자리씩 여덟 그룹을 콜론으로 구분해 씁니다.
2001:0db8:0000:0000:0000:ff00:0042:8329
한 그룹은 16비트입니다. 16진수 숫자는 0–9와 a–f이며, 대소문자를 구분하지 않지만 관례상 소문자로 씁니다.
축약 규칙
긴 0의 연속이 흔하기 때문에 축약 규칙이 두 가지 있고(RFC 4291), RFC 5952가 이를 적용하는 유일하게 올바른 방법을 정합니다.
- 각 그룹의 앞자리 0을 뺍니다:
0db8→db8,0042→42,0000→0. - 연속된 0 그룹 한 구간을
::로 바꿉니다. 가장 긴 구간을, 길이가 같으면 첫 번째 구간을, 그리고 두 그룹 이상일 때만 바꿉니다.::는 한 번만 쓸 수 있습니다. 여러 번 쓰면 주소가 모호해지기 때문입니다.
그래서 2001:0db8:0000:0000:0000:ff00:0042:8329는 2001:db8::ff00:42:8329가 됩니다. 루프백 주소 0:0:0:0:0:0:0:1은 ::1, 미지정 주소는 그냥 ::입니다.
아래 탐색기에서 아무 주소나 넣어 보세요. 전체 표기와 표준 표기를 나란히 보여 줍니다.
전체 표기
축약 표기
2001:db8::ff00:42:8329
범위: 특수 목적 · Documentation (2001:db8::/32)
프리픽스와 /64
IPv6도 IPv4처럼 CIDR 표기법을 씁니다. 일반적인 글로벌 유니캐스트 주소는 다음과 같이 나뉩니다.
- 라우팅 프리픽스(보통 /48 또는 /56) — 통신사가 사이트에 할당합니다.
- 서브넷 ID — /64까지의 비트로, 사이트 안의 네트워크에 번호를 매깁니다. /48 하나에 서브넷 65,536개가 들어갑니다.
- 인터페이스 식별자(하위 64비트) — 네트워크에서 기기를 식별합니다.
LAN 하나는 거의 언제나 /64입니다. 상태 비저장 주소 자동 설정(SLAAC)이 이를 전제로 하기 때문입니다. 기기는 인터페이스 식별자를 스스로 정하며, 요즘은 개인정보 보호를 위해 무작위로 만들고(RFC 8981) 주기적으로 바꿉니다.
자주 만나는 주소 종류
- 글로벌 유니캐스트
2000::/3— 공개된 라우팅 가능 주소. - 링크 로컬
fe80::/10— 모든 IPv6 인터페이스가 하나씩 가지며, 같은 링크 안에서만 유효합니다. 이웃 탐색과 라우팅 프로토콜에 쓰입니다. - 고유 로컬
fc00::/7(실제로는fd00::/8) — 사설 주소에 해당하는 IPv6 주소(RFC 4193). - 멀티캐스트
ff00::/8— IPv6에는 브로드캐스트가 없고 멀티캐스트 그룹이 그 역할을 대신합니다. - 루프백
::1과 미지정::. - IPv4 매핑
::ffff:0:0/96— IPv6 소프트웨어가 IPv4 상대를 나타내는 방식. 예:::ffff:192.0.2.1. - 문서용
2001:db8::/32와3fff::/20— 이 페이지처럼 예시를 들 때 쓰는 주소.
특수 용도 IPv6 블록
예약된 IPv6 블록의 전체 목록입니다. 이 사이트의 분류기가 사용하는 IANA 레지스트리에서 생성했습니다.
| 블록 | 용도 | 참고 문서 | 전역 도달 가능 |
|---|---|---|---|
| ::/128 | Unspecified Address | RFC 4291 | 아니요 |
| ::1/128 | Loopback Address | RFC 4291 | 아니요 |
| ::ffff:0:0/96 | IPv4-mapped Address | RFC 4291 | 아니요 |
| 64:ff9b::/96 | IPv4-IPv6 Translation (NAT64) | RFC 6052 | 예 |
| 64:ff9b:1::/48 | Local-use IPv4/IPv6 Translation | RFC 8215 | 아니요 |
| 100::/64 | Discard-Only Address Block | RFC 6666 | 아니요 |
| 2001::/32 | TEREDO | RFC 4380 | 아니요 |
| 2001:2::/48 | Benchmarking | RFC 5180 | 아니요 |
| 2001:db8::/32 | Documentation | RFC 3849 | 아니요 |
| 2001:10::/28 | Deprecated (ORCHID) | RFC 4843 | 아니요 |
| 2001:20::/28 | ORCHIDv2 | RFC 7343 | 예 |
| 2002::/16 | 6to4 | RFC 3056 | 아니요 |
| 3fff::/20 | Documentation | RFC 9637 | 아니요 |
| 5f00::/16 | Segment Routing (SRv6) SIDs | RFC 9602 | 아니요 |
| fc00::/7 | Unique-Local | RFC 4193 | 아니요 |
| fe80::/10 | Link-Local Unicast | RFC 4291 | 아니요 |
| ff00::/8 | Multicast | RFC 4291 | 아니요 |
듀얼 스택, 그리고 이 사이트가 두 주소를 감지하는 방법
브라우저는 한 번에 한 가지 주소 체계로만 연결합니다. 둘 다 쓸 수 있으면 보통 IPv6를 우선합니다(Happy Eyeballs, RFC 8305). 두 주소를 모두 보여 주기 위해 ipaddress.si는 브라우저에서 호스트 이름 두 개에 추가로 접속합니다. 하나는 IPv4(A) 레코드만, 다른 하나는 IPv6(AAAA) 레코드만 가진 이름입니다. 각각이 본 주소가 해당 체계에서의 내 주소입니다. IPv6 요청이 실패하면 연결에 작동하는 IPv6가 없다는 뜻입니다.
자주 묻는 질문
- IPv6를 쓰고 있는지 어떻게 알 수 있나요?
- 이 사이트의 홈페이지를 열어 보세요. 기본 주소나 IPv6 줄에 IPv6 주소가 보이면 연결이 IPv6를 지원하는 것입니다.
- IPv6가 IPv4보다 빠른가요?
- 본질적으로 빠르지는 않지만 빠를 수는 있습니다. IPv6 트래픽은 통신사급 NAT를 거치지 않는 경우가 많아 중간 단계와 상태 기반 병목이 하나 줄어듭니다.
- IPv6에서도 방화벽이 필요한가요?
- 네. NAT가 없으면 기기가 전 세계에서 라우팅 가능한 주소를 갖게 됩니다. 요청하지 않은 수신 트래픽을 막는 상태 기반 방화벽이 NAT가 암묵적으로 해 주던 보호를 대신합니다.
- IPv6 주소가 자꾸 바뀌는 이유는?
- 개인정보 보호 확장(RFC 8981)이 임시 인터페이스 식별자를 만들어 주기적으로 바꾸기 때문에, 여러 네트워크에 걸쳐 기기를 추적하기 어려워집니다. /64 프리픽스는 보통 그대로입니다.