IPv6 기초: IPv6란 무엇이며 왜 중요한가
인터넷은 IPv4 주소가 고갈되고 있습니다. IPv6는 128비트 주소와 더 깔끔한 설계로 이 문제를 해결합니다. 알아야 할 내용을 소개합니다.
IPv6가 존재하는 이유#
IPv4 주소는 고갈되었습니다. "고갈될 수 있다" 또는 "고갈될 것이다"가 아니라 실제로 고갈되었습니다. IANA는 2011년에 지역 등록 기관에 마지막 블록을 할당했습니다. 2015년까지 대부분의 지역에서 풀이 소진되었습니다.
TL;DR - 빠른 요약
핵심 포인트:
- IPv4는 43억 개의 주소가 고갈되었습니다. IPv6는 340언데실리온 개의 주소를 제공합니다
- IPv6는 더 빠른 라우팅을 위해 단순화된 40바이트 헤더를 가지고 있습니다(IPv4의 20-60바이트 대비)
- 자동 구성(SLAAC)과 내장된 IPsec으로 DHCP와 NAT가 필요 없습니다
- 주소는 선행 0 제거와 연속된 0에 대한
::를 사용하여 압축됩니다(한 번만 사용)
바로가기: 압축 규칙 | IPv6 vs IPv4 | 특수 주소
IPv4의 32비트 주소 공간은 약 43억 개의 주소를 제공합니다. 1981년에는 무한해 보였습니다. 하지만 스마트폰, IoT 기기, 서버 및 인터넷에 연결된 모든 것들이 예상보다 빠르게 이러한 주소를 소비했습니다. NAT, carrier-grade NAT 및 점점 더 복잡한 해결 방법으로 대응했습니다. 이러한 해결 방법은 작동하지만 지연 시간을 추가하고, 종단 간 연결을 중단하며, 네트워크 관리를 더 어렵게 만듭니다.
IPv6는 128비트 주소를 사용합니다. 이는 340언데실리온 개의 주소입니다. 지구 표면의 모든 제곱미터에 수십억 개의 주소를 부여할 수 있습니다. 고갈되지 않을 것입니다.
128비트 주소 형식#
IPv6 주소는 다음과 같이 보입니다:
2001:0db8:85a3:0000:0000:8a2e:0370:7334콜론으로 구분된 16진수 4자리의 8개 그룹입니다. 각 그룹은 16비트를 나타냅니다(16진수 4자리 × 자리당 4비트 = 16비트). 8개 그룹 × 16비트 = 총 128비트입니다.
16진수는 0-9와 a-f를 사용합니다. 대소문자는 중요하지 않습니다. 2001:DB8::1과 2001:db8::1은 동일합니다.
압축 규칙#
32개의 16진수를 모두 작성하는 것은 지루합니다. IPv6에는 주소를 단축하는 두 가지 압축 규칙이 있습니다.
규칙 1: 선행 0 제거#
모든 그룹에서 선행 0을 제거할 수 있습니다:
2001:0db8:0000:0042:0000:8a2e:0370:7334
↓
2001:db8:0:42:0:8a2e:370:7334각 그룹에는 여전히 최소 한 자리가 필요합니다. 0000을 아무것도 없는 것으로 압축할 수 없습니다. 이것이 규칙 2가 처리하는 부분입니다.
규칙 2: 연속된 0을 ::로 대체#
연속된 모든 0 그룹의 한 시퀀스를 ::로 만들 수 있습니다. 이것은 주소당 한 번만 작동합니다. 두 번 사용하면 모호해집니다. 각 ::가 얼마나 많은 0 그룹을 나타내는지 알 수 없습니다.
2001:db8:0:0:0:0:0:1
↓
2001:db8::1가장 긴 0의 연속을 선택하세요. 두 개의 동일한 연속이 있는 경우 첫 번째 것을 압축합니다(대부분의 도구는 관례상 가장 왼쪽을 압축합니다).
주소당 하나의 ::
::는 한 번만 사용할 수 있습니다. 2001::db8::1 주소는 유효하지 않습니다. 각 ::가 얼마나 많은 0 그룹을 나타내는지 판단할 수 없기 때문입니다.
실제 예시#
실제 주소에서 압축이 작동하는 방법은 다음과 같습니다:
| 전체 주소 | 압축 | 참고 |
|---|---|---|
2001:0db8:0000:0000:0000:0000:0000:0001 | 2001:db8::1 | 호스트 1이 있는 문서 접두사 |
fe80:0000:0000:0000:0000:0000:0000:0001 | fe80::1 | 링크 로컬 루프백 |
0000:0000:0000:0000:0000:0000:0000:0001 | ::1 | 전역 루프백 |
0000:0000:0000:0000:0000:0000:0000:0000 | :: | 미지정 주소 |
2001:0db8:85a3:0000:0000:8a2e:0370:7334 | 2001:db8:85a3::8a2e:370:7334 | 중간 0 |
압축이 작동하는 방법을 보려면 IPv6 검증기로 다양한 형식을 시도해 보세요.
IPv6 vs IPv4: 단순히 크기만 큰 것이 아님#
대부분의 비교는 주소 공간에 초점을 맞춥니다. 그것은 공정합니다. IPv6가 존재하는 주된 이유입니다. 그러나 프로토콜 재설계는 다른 문제도 해결했습니다.
| 기능 | IPv4 | IPv6 | 영향 |
|---|---|---|---|
| 주소 길이 | 32비트 | 128비트 | 43억 대 340언데실리온 주소 |
| 주소 형식 | 점으로 구분된 10진수 | 콜론으로 구분된 16진수 | 니블 경계에서 서브넷 분할이 더 쉬움 |
| 헤더 크기 | 20-60바이트(가변) | 40바이트(고정) | 더 빠른 라우팅 결정 |
| 헤더 체크섬 | 있음 | 없음 | 라우터가 패킷당 더 적은 작업 수행 |
| 단편화 | 모든 라우터 | 소스만 | 라우터가 더 적은 작업 수행, 경로 MTU 발견 필요 |
| NAT 요구 사항 | 거의 보편적 | 불필요 | 종단 간 연결 복원 |
| IPsec | 나중에 추가됨 | 처음부터 설계됨 | 더 쉬운 암호화 통신 |
| 자동 구성 | DHCP 필요 | SLAAC 내장 | 장치가 스스로 구성 가능 |
주소 공간을 넘어서는 주요 개선 사항#
단순화된 헤더#
IPv4의 헤더에는 12개의 필수 필드와 60바이트로 확장되는 옵션이 있습니다. 라우터는 모든 패킷에 대해 모든 것을 파싱해야 합니다. IPv6의 헤더는 항상 8개 필드로 40바이트입니다. 확장 헤더가 추가 사항을 처리하지만 대부분의 패킷에는 필요하지 않습니다. 라우터가 패킷을 더 빠르게 처리합니다.
NAT 불필요#
IPv4에서는 거의 모든 가정과 사무실 네트워크가 NAT 뒤에 숨어 있습니다. NAT는 IP 주소를 포함하는 프로토콜(VoIP용 SIP 같은)을 중단시키고, 피어 투 피어 연결을 더 어렵게 만들며, 라우터에 상태를 추가합니다. 모든 것에 충분한 IPv6 주소가 있으면 장치가 전역 라우팅 가능 주소를 가질 수 있습니다. 원하는 경우 노트북, 전화기 및 스마트 냉장고 모두 종단 간으로 연결할 수 있습니다. (방화벽은 여전히 존재합니다. NAT 없이 인바운드 트래픽을 차단할 수 있습니다.)
자동 구성 (SLAAC)#
IPv6 장치는 SLAAC(Stateless Address Autoconfiguration)를 사용하여 스스로 구성할 수 있습니다. 라우터가 네트워크 접두사를 알리고 장치가 자체 주소를 생성합니다. DHCP 서버가 필요하지 않습니다. 중앙 집중식 관리를 위해 DHCPv6를 계속 사용할 수 있지만 기본 연결은 그것 없이 작동합니다.
IPsec 내장#
IPv4는 배포 후 몇 년 후에 IPsec을 추가했습니다. IPv6는 처음부터 그것을 포함했습니다. 설계가 더 깔끔합니다. (IPsec은 이제 필수가 아닌 권장 사항이지만 통합은 여전히 IPv4의 개조보다 낫습니다.)
실제 성능
실제로 IPv6는 종종 IPv4보다 더 나은 성능을 발휘합니다. Facebook은 IPv6 사용자의 연결이 10-15% 더 빠르다고 보고했습니다. IPv6 트래픽이 더 직접적인 경로를 사용하기 때문입니다. carrier-grade NAT가 없고, 미들박스가 적으며, 복잡성이 적습니다.
볼 수 있는 특수 주소#
루프백: ::1#
IPv6 루프백 주소입니다. IPv4의 127.0.0.1과 동일한 목적입니다. 이 주소로의 트래픽은 로컬 시스템에 남아 있습니다. IPv6는 IPv4의 전체 127.0.0.0/8 블록 대신 하나의 루프백 주소만 가지고 있습니다.
미지정: ::#
"주소 없음" 또는 "모든 주소"를 나타냅니다. 장치에 아직 주소가 없거나 모든 인터페이스에 바인딩하는 리스닝 소켓 구성에서 이것을 볼 수 있습니다.
링크 로컬: fe80::/10#
모든 IPv6 인터페이스는 자동으로 fe80::로 시작하는 링크 로컬 주소를 생성합니다. 이러한 주소는 로컬 네트워크 세그먼트에서만 작동합니다. 라우터가 전달하지 않습니다. 이들은 이웃 발견, 라우터 알림 및 로컬 통신에 필수적입니다. 인터페이스는 접미사 생성 방법에 따라 fe80::1 또는 fe80::a4b2:c3d4:e5f6:7890이 될 수 있습니다.
문서: 2001:db8::/32#
예시 및 문서용으로 예약되어 있습니다. 2001:db8:로 시작하는 모든 주소는 실제 인터넷에서 할당되지 않습니다. 튜토리얼, RFC 및 이러한 예시에서 그것을 보는 이유입니다. 문서를 작성하는 경우 독자가 실수로 프로덕션 주소를 구성하지 않도록 2001:db8:: 접두사를 사용하세요.
URL의 IPv6#
URL의 IPv6 주소에는 대괄호가 필요합니다. 대괄호가 없으면 주소의 콜론이 포트 구분 기호와 충돌합니다:
http://[2001:db8::1]/
http://[2001:db8::1]:8080/
https://[2001:db8:85a3::8a2e:370:7334]/api/endpoint대괄호는 주소가 끝나는 위치와 포트가 시작하는 위치를 명확하게 합니다. 브라우저 URL, 구성 파일 및 IPv6 주소를 다른 구성 요소와 결합하는 다른 모든 곳에서 이 표기법을 사용하게 됩니다.
오늘날 우리가 있는 곳#
IPv6 채택은 현실적이지만 불균등합니다. Google은 트래픽의 약 40%가 IPv6를 통해 도착한다고 보고합니다. 주요 클라우드 제공업체(AWS, Google Cloud, Azure), CDN(Cloudflare, Akamai) 및 ISP(Comcast, T-Mobile, Deutsche Telekom)는 강력한 IPv6 지원을 제공합니다. 모바일 네트워크는 종종 IPv6 전용으로 실행되며 필요할 때 IPv4로 다시 변환합니다.
기업 네트워크는 뒤처져 있습니다. 많은 내부 도구와 보안 어플라이언스가 여전히 IPv6를 선택 사항으로 취급합니다. 변화하고 있지만 천천히입니다.
좋은 소식: IPv4와 IPv6는 나란히 실행됩니다. 듀얼 스택 네트워크는 둘 다 지원합니다. 스위치를 전환하고 모든 것을 하룻밤에 변환할 필요가 없습니다. 하지만 새로운 시스템을 구축하는 경우 처음부터 IPv6용으로 설계하세요. 나중에 추가하는 것이 더 어렵습니다.
관련 기사#
- IPv6 주소 유형: 전역, 링크 로컬, 멀티캐스트 설명 - 다양한 유형의 IPv6 주소와 각각의 용도에 대해 자세히 알아보세요.
- IPv6 서브넷팅: /48에서 /64까지 - IPv6 주소 공간을 서브넷으로 나누는 방법을 배우세요. IPv4보다 간단합니다.
직접 해보세요
IPv6 검증기를 사용하여 IPv6 주소 작성 및 압축을 연습하세요. 정식 형식을 표시하고 일반적인 실수를 잡아냅니다.