IPv4와 IPv6의 차이: 주소 길이·헤더·프래그먼테이션·주소 설정·NAT 비교

IPv4와 IPv6는 모두 패킷을 목적지까지 전달하는 네트워크 계층 프로토콜입니다. IPv4 주소는 32비트로 약 43억 개밖에 없으므로, 사설 주소와 NAT로 많은 기기가 하나의 글로벌 주소를 함께 쓰는 방식이 일반화되었습니다. IPv6는 주소를 128비트로 늘리고, 헤더를 40바이트 고정으로 단순화했으며, 경로 도중의 라우터에 의한 패킷 분할(단편화)을 없앴습니다. 다만 둘은 호환되지 않아 IPv4 전용 기기와 IPv6 전용 기기는 직접 통신할 수 없습니다. 그래서 전환에는 듀얼 스택(둘을 동시에 운용), 터널링(한쪽의 패킷을 다른 쪽 패킷 안에 넣어 운반), NAT64 같은 주소 변환을 조합합니다.

비교 항목IPv4IPv6
주소 길이와 개수32비트: 2의 32제곱(약 43억) 개128비트: 2의 128제곱(약 3.4×10^38) 개
표기법8비트씩 4개의 10진수를 점으로 구분(예: 192.0.2.1)16비트씩 8개로 나눈 16진수를 콜론으로 구분. 각 그룹 앞의 0과, 0이 이어지는 부분 한 곳을 ::로 생략할 수 있습니다(예: 2001:db8::1)
헤더옵션과 헤더 체크섬이 있는 20~60바이트의 가변 길이체크섬이 없는 40바이트 고정. 옵션은 확장 헤더로 뒤에 연결합니다. TTL에 해당하는 것은 홉 리밋입니다
단편화(프래그먼테이션)송신원뿐 아니라 경로 도중의 라우터도 패킷을 분할할 수 있습니다(DF 비트가 설정되지 않은 경우)라우터는 분할하지 않고 송신원만 확장 헤더로 패킷을 분할합니다. 링크 MTU는 1280바이트 이상
주소 자동 설정DHCP로 할당(또는 수동 설정)라우터 광고(RA)의 정보로 호스트가 스스로 주소를 만드는 SLAAC, 또는 DHCPv6. 링크 로컬 주소는 항상 자동으로 만들어집니다
MAC 주소 확인브로드캐스트로 묻는 ARP멀티캐스트로 묻는 ICMPv6의 근접 탐색(NDP)
NAT주소 부족을 보완하려고 사설 주소와 NAPT로 글로벌 주소 하나를 함께 쓰는 것이 일반적입니다주소가 넉넉하므로 모든 기기가 글로벌 주소를 받아 같은 주소로 종단 간 통신하도록 설계되었습니다. NAT는 일반적으로 쓰지 않습니다
전송 대상의 종류유니캐스트, 브로드캐스트, 멀티캐스트유니캐스트, 멀티캐스트, 애니캐스트. 브로드캐스트는 없고 멀티캐스트가 그 역할을 대신합니다
IPsec선택 사항. 필요할 때 추가합니다초기 요구 사항에서는 구현이 필수였고, 현재 요구 사항(RFC 8504)에서는 권장입니다. 실제로 쓰는지는 둘 다 설정에 따릅니다

수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.

상황별 선택 기준

IPv4
지금도 많은 네트워크와 서비스가 쓰고 있어, 당분간 거의 모든 기기가 지원해야 합니다. 주소가 부족하므로 사설 주소와 NAT를 함께 씁니다.
IPv6
많은 기기에 NAT를 거치지 않고 글로벌 주소를 주고 싶을 때나, 새 네트워크를 구축할 때. 실제로는 보통 IPv4와 함께 듀얼 스택으로 도입합니다.

자주 묻는 질문

IPv6 기기는 IPv4 기기와 직접 통신할 수 있나요?

할 수 없습니다. 헤더 형식과 주소 길이가 달라 서로 호환되지 않습니다. 많은 네트워크는 기기에 IPv4 주소와 IPv6 주소를 모두 주고 상대에 맞는 쪽을 쓰는 듀얼 스택을 씁니다. IPv6 전용 기기가 IPv4 전용 서버에 접속하려면 NAT64와 DNS64 같은 변환 구조를 씁니다. IPv4 네트워크를 넘어 IPv6 패킷을 운반하려면 IPv4 패킷 안에 넣는 터널링을 씁니다.

IPv6에서는 NAT를 쓰지 않나요?

쓸 수는 있지만 일반적으로 필요하지 않습니다. IPv4에서 NAT가 퍼진 주된 이유는 주소 부족이었고, IPv6는 모든 기기에 충분한 글로벌 주소를 줄 수 있습니다. 밖에서 시작하는 연결을 제한하는 것은 NAT가 아니라 방화벽의 역할입니다. NAT는 통신을 암호화하지 않으며, 그것만으로 외부 공격을 막아 주지도 않습니다.

IPv6에서 DNS는 어떻게 바뀌나요?

A 레코드는 이름을 IPv4 주소에, AAAA 레코드는 IPv6 주소에 대응시킵니다. 듀얼 스택 기기는 보통 둘 다 질의하고, IPv6로 연결할 수 있으면 IPv6를, 그렇지 않으면 IPv4를 씁니다.

IPv6 주소는 왜 16진수로 쓰나요?

128비트를 10진수로 쓰면 매우 길어지기 때문입니다. 주소를 16비트씩 8개 그룹으로 나누고, 각 그룹을 4자리 16진수로 씁니다. 각 그룹 앞의 0은 생략할 수 있고, 0만 있는 그룹이 이어지는 부분은 한 곳만 ::로 줄일 수 있습니다. 예를 들어 2001:0db8:0000:0000:0000:0000:0000:0001은 2001:db8::1로 쓸 수 있습니다.

이해도 확인

IPv6 주소 2001:0db8:0000:0000:0000:0000:0000:0001을 생략 규칙에 따라 올바르게 줄여 쓴 것은?

  1. A2001:db8:1
  2. B2001:db8::1
  3. C2001:db8::0::1
정답과 해설 보기

정답: B. 2001:db8::1

IPv6 주소는 128비트로, 16비트씩 8개 그룹으로 나누고 각 그룹을 4자리 16진수로 씁니다(IPv4는 32비트입니다). 생략 규칙은 두 가지로, 각 그룹의 앞쪽 0은 생략할 수 있다는 것(0db8→db8, 0001→1)과, 0만으로 된 그룹이 연속되는 부분을 한 곳만 '::'로 바꿀 수 있다는 것입니다. 이 예에서는 3번째부터 7번째까지 0인 그룹 5개를 묶어 2001:db8::1이 됩니다. '::'를 두 곳에 쓰면 각각이 몇 그룹 분량의 0인지 정해지지 않으므로 쓸 수 없습니다. '2001:db8:1'은 그룹이 3개뿐이고 0인 그룹을 생략했음을 나타내는 '::'가 없어 다른 주소로 읽히므로 올바르지 않습니다.

다음 IPv4 주소 중 사설 주소 범위에 포함되는 것은?

  1. A172.32.0.1
  2. B192.168.100.1
  3. C11.1.1.1
정답과 해설 보기

정답: B. 192.168.100.1

RFC 1918에서 정한 사설 주소(프라이빗 주소)는 10.0.0.0/8, 172.16.0.0/12(172.16.0.0~172.31.255.255), 192.168.0.0/16의 세 범위입니다. 조직이나 가정 안에서 자유롭게 쓸 수 있는 주소로, 인터넷에서는 경로가 광고되지 않으므로 같은 주소를 많은 조직이 중복해서 사용할 수 있습니다. 인터넷과 통신할 때는 라우터의 NAT로 공인 주소(글로벌 주소)로 변환합니다. 172.32.0.1은 두 번째 옥텟이 16~31 범위를 벗어나므로 172.16.0.0/12에 들어가지 않으며, 11.1.1.1도 10.0.0.0/8 밖입니다.

가정용 브로드밴드 라우터는 NAT(네트워크 주소 변환)의 일종인 NAPT(IP 마스커레이드)를 수행한다. NAPT로 가능해지는 것으로 올바른 것은?

  1. A가정 내 여러 단말이 포트 번호로 구별됨으로써 하나의 공인 IP 주소를 동시에 공유하여 인터넷과 통신할 수 있다
  2. B가정 내 단말과 인터넷 사이의 통신이 암호화되어 도중에 엿볼 수 없게 된다
  3. C가정 내 단말마다 서로 다른 공인 IP 주소가 자동으로 할당된다
정답과 해설 보기

정답: A. 가정 내 여러 단말이 포트 번호로 구별됨으로써 하나의 공인 IP 주소를 동시에 공유하여 인터넷과 통신할 수 있다

NAT(네트워크 주소 변환)는 라우터를 지나는 패킷의 출발지나 목적지 IP 주소를 바꿔 쓰는 기술입니다. NAPT는 IP 주소에 더해 포트 번호도 바꿔 쓰고, '내부의 주소와 포트'와 '외부의 포트'의 대응을 변환 테이블에 기록합니다. 그래서 사설 주소를 쓰는 여러 단말이 라우터가 가진 하나의 공인 주소를 동시에 사용할 수 있습니다. 돌아온 패킷은 변환 테이블을 보고 올바른 단말로 전달됩니다. 주소를 바꿔 쓸 뿐 암호화는 하지 않습니다. 또한 외부에서 시작되는 통신은 변환 테이블에 없으므로 그대로는 내부 단말에 도달하지 않으며, 내부에서 서버를 공개하려면 포트 포워딩 등의 설정이 필요합니다.

  1. ARP의 역할로 올바른 것은?
  2. IPv4 헤더의 TTL(Time To Live)의 역할로 올바른 것은?
  3. DHCP로 단말이 IP 주소를 얻을 때의 메시지 순서로 올바른 것은?

네트워크 기초 문제 풀기

주요 용어 설명

CIDR
Classless Inter-Domain Routing의 약자. IP 주소의 네트워크부 길이를 192.168.1.0/24처럼 '/' 뒤의 비트 수(프리픽스 길이)로 자유롭게 정하는 방식과 그 표기법.
서브넷 마스크(Subnet Mask)
IP 주소 중 상위 몇 비트가 네트워크를 나타내는 부분(네트워크부)인지를 나타내는 32비트 값. 255.255.255.0처럼 쓰며, CIDR 표기의 /24와 같은 의미가 된다.
NAT(네트워크 주소 변환)
Network Address Translation의 약자. 라우터를 지나는 패킷의 IP 주소를 바꿔 쓰는 기술. 포트 번호도 바꿔 써서 하나의 공인 주소를 많은 단말이 공유하는 것을 NAPT(IP 마스커레이드)라고 한다.
DHCP
Dynamic Host Configuration Protocol의 약자. 네트워크에 연결한 단말에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 등의 설정을 기한을 두고 자동으로 할당하는 프로토콜.
ARP(주소 결정 프로토콜)
Address Resolution Protocol의 약자. IP 주소로부터 같은 네트워크에 있는 기기의 MAC 주소를 알아내는 프로토콜. 요청을 브로드캐스트로 보내고, 해당하는 기기가 응답한다.
MAC 주소(MAC Address)
이더넷이나 무선 LAN에서 같은 네트워크 안의 기기를 지정하는 데 사용하는 48비트 주소. 상위 24비트가 제조사를 나타내며, 제조 시에 인터페이스마다 할당된다.
DNS(도메인 네임 시스템)
Domain Name System의 약자. www.example.com 같은 도메인 이름과 통신에 사용하는 IP 주소를 대응시키는, 전 세계의 서버에서 분산 관리되는 구조.

관련 비교