IPv6 주소 압축이란?
IPv6 주소 압축(IPv6 address compression)은 전체 128비트 IPv6 주소를 RFC 5952에 정의된 규칙에 따라 가장 짧은 형태로 줄이는 과정입니다. 전체 형태의 IPv6 주소는 39자(예: 2001:0db8:0000:0000:0000:0000:0000:0001)로 매우 길어서 읽기 어렵고 입력 시 오류가 발생하기 쉽습니다.
압축은 두 가지 규칙을 적용합니다: (1) 각 16비트 그룹에서 선행 0을 제거하고(0db8 → db8), (2) 가장 긴 연속 0 그룹을 더블 콜론(::)으로 대체합니다. 위 예시를 압축하면 2001:db8::1이 되어 10자로 줄어듭니다.
IPv6 압축은 방화벽 규칙, DNS 존 파일, 서버 설정, 네트워크 문서화에서 필수적입니다. DNS 조회에서 AAAA 레코드를 확인하거나 IPv4 to IPv6 변환기로 생성된 주소를 압축할 때 이 도구를 사용하세요.

IPv6 주소를 압축하는 방법
IPv6 주소를 압축하려면 세 단계를 순서대로 적용합니다. 이 과정은 주소의 값을 변경하지 않으며, 텍스트 표현만 줄입니다. 위의 도구에 전체 IPv6 주소를 입력하면 자동으로 압축됩니다.
수동으로 압축하는 방법을 이해하면 네트워크 설정 문제 해결에 도움이 됩니다. 아래 단계를 따라 모든 IPv6 주소를 정규 형태로 변환하세요.
8개의 16비트 그룹 각각에서 앞에 오는 0을 제거합니다. 예: 0db8 → db8, 00ff → ff, 0000 → 0. 단, 그룹이 0000인 경우 최소 하나의 0은 유지합니다.
연속된 0 그룹 중 가장 긴 것을 찾습니다. 길이가 같은 연속 0 그룹이 두 개 이상이면 첫 번째 것을 선택합니다(RFC 5952 규칙).
찾은 가장 긴 연속 0 그룹을 ::로 대체합니다. ::는 주소당 한 번만 사용할 수 있습니다. 예: 2001:0db8:0000:0000:0000:0000:0000:0001 → 2001:db8::1
IPv6 압축 규칙 (RFC 5952)
RFC 5952('IPv6 주소 텍스트 표현에 대한 권고')은 2010년에 발행된 인터넷 표준으로, IPv6 주소를 작성하는 정규 형식을 정의합니다. 이 표준은 동일한 IPv6 주소가 여러 다른 방식으로 표기되는 혼란을 방지합니다.
아래 네 가지 규칙을 모두 준수해야 RFC 5952에 부합하는 정규 IPv6 표현이 됩니다. 이 도구는 모든 규칙을 자동으로 적용합니다.
규칙 1: 선행 0 제거
각 16비트 그룹에서 선행 0을 반드시 제거합니다. 2001:0db8:0000:0042 → 2001:db8:0:42. 0000은 단일 0으로 표기합니다.
규칙 2: 가장 긴 0 연속 그룹을 ::로 대체
연속된 16비트 0 필드 중 가장 긴 것을 ::로 압축합니다. 단일 0 그룹도 ::로 대체할 수 있지만, 가장 긴 연속 그룹에만 적용합니다.
규칙 3: ::는 한 번만 사용
::는 주소에서 한 번만 나타날 수 있습니다. 같은 길이의 연속 0 그룹이 두 개이면 첫 번째 것을 ::로 압축합니다. 두 번 사용하면 주소가 모호해집니다.
규칙 4: 소문자 16진수 사용
16진수 숫자는 반드시 소문자(a-f)를 사용합니다. 2001:0DB8은 잘못된 표기이며, 2001:0db8이 올바릅니다.
압축된 IPv6 주소를 확장하는 방법
압축된 IPv6 주소를 확장하는 것은 압축의 역과정입니다. 축약된 형태를 전체 128비트 표기법으로 복원하여 네트워크 장비 설정, 프로그래밍, 디버깅에 활용할 수 있습니다.
확장은 두 단계로 수행됩니다. 먼저 ::를 올바른 수의 0 그룹으로 복원하고, 그다음 각 그룹에 선행 0을 추가하여 4자리로 만듭니다.
::가 대체하는 0 그룹의 수를 계산합니다. 총 8개 그룹이 되어야 하므로, 기존 그룹 수를 세고 8에서 빼면 됩니다. 예: 2001:db8::1에서 ::는 6개의 0000 그룹을 대체합니다.
각 그룹을 정확히 4자리 16진수로 만들기 위해 선행 0을 추가합니다. 예: db8 → 0db8, 1 → 0001. 결과: 2001:0db8:0000:0000:0000:0000:0000:0001
확장 예시
2001:db8::1 → 2001:0db8:0000:0000:0000:0000:0000:0001 (::가 6개의 0000 그룹으로 확장, db8이 0db8로, 1이 0001로 패딩)
IPv6 압축 예시
아래는 일반적인 IPv6 주소의 압축 및 확장 예시입니다. 각 예시는 전체 형태와 최단 압축 형태를 보여주며, 적용된 규칙을 설명합니다.
이 예시들을 통해 IPv6 압축의 작동 방식을 이해할 수 있습니다. 위의 도구에 직접 입력하여 결과를 확인해 보세요.
IPv6 루프백 주소
전체: 0000:0000:0000:0000:0000:0000:0000:0001 → 압축: ::1 (7개의 0 그룹이 ::로 대체, IPv4의 127.0.0.1에 해당)
Google DNS IPv6
전체: 2001:4860:4860:0000:0000:0000:0000:8888 → 압축: 2001:4860:4860::8888 (4개의 0 그룹이 ::로 대체)
링크-로컬 주소
전체: fe80:0000:0000:0000:0000:0000:0000:0001 → 압축: fe80::1 (6개의 0 그룹이 ::로 대체, 로컬 네트워크 세그먼트용)
모든 0 주소 (미지정)
전체: 0000:0000:0000:0000:0000:0000:0000:0000 → 압축: :: (8개의 0 그룹 전체가 ::로 대체, 소스 주소 미지정 시 사용)
IPv6 압축이 필요한 경우
전체 형태의 IPv6 주소는 39자나 되어 관리하기 어렵습니다. IPv6 압축을 사용하면 주소를 훨씬 짧게 표현할 수 있어 다양한 실무 상황에서 필수적입니다.
특히 방화벽 규칙 작성, DNS 존 파일 편집, 서버 설정, 네트워크 문서화, 로그 분석 등에서 압축된 IPv6 주소를 사용하면 효율적입니다. NS 조회로 네임서버를 확인하거나 MX 조회로 메일 서버를 확인할 때도 IPv6 주소가 표시될 수 있습니다.
방화벽 규칙 — ACL과 필터 규칙에서 짧은 IPv6 주소를 사용하여 가독성 향상
DNS 존 파일 — AAAA 레코드에서 압축된 IPv6 주소로 관리 편의성 확보
서버 설정 — nginx, Apache 등의 설정 파일에서 IP 바인딩 시 사용
네트워크 문서화 — 인프라 문서에 읽기 쉬운 IPv6 주소 표기
로그 분석 — 로그 파일에서 IPv6 주소를 빠르게 식별하고 비교
프로그래밍 — IPv6 관련 코드에서 테스트 데이터 및 설정값 관리
관련 도구
DNS Robot은 IPv6 압축 도구를 보완하는 다양한 IP 변환 및 네트워크 분석 도구를 제공합니다. 종합적인 네트워크 진단을 위해 함께 사용하세요.