IPv4 vs IPv6 완전 정복 — 주소, `NAT`, 헤더, `NDP`까지
IPv4와 IPv6, 왜 따로 알아야 하나요?
네트워크 계층 글, HTTP 버전 글까지 읽고 나면 이런 질문이 자연스럽게 남습니다.
IPv4와IPv6는 주소 길이만 다른 걸까요?- 왜 아직도 많은 서비스는
IPv4를 쓰는데,IPv6는 계속 도입하라고 할까요? IPv6를 쓰면NAT이 사라진다고 하는데, 그게 정확히 무슨 뜻일까요?ARP,DHCP,broadcast처럼 익숙한 개념은IPv6에서 어떻게 바뀔까요?
핵심은 이것입니다.
IPv6는 단순히 주소를 길게 늘린 프로토콜이 아니라, 주소 부족과 확장성 문제를 해결하려고 네트워크 계층 구조를 다시 정리한 후속 프로토콜입니다
즉:
IPv4는 오랫동안 인터넷의 기본 프로토콜이었고- 주소 부족,
NAT, 복잡한 확장성 문제가 쌓였으며 IPv6는 이를 더 큰 주소 공간, 단순한 기본 헤더, 새로운 주소 설정과 이웃 탐색 방식으로 재정리했습니다
이 글에서는 IPv4와 IPv6를 "32비트 vs 128비트" 비교에서 끝내지 않고, 실무에서 체감되는 차이인 주소 배분, NAT, 헤더 처리, ARP와 NDP, 단편화 를 기준으로 정리하겠습니다.
기준: 이 글은
IPv4는RFC 791,IPv6는RFC 8200, 주소 구조는RFC 4291, 이웃 탐색은RFC 4861, 자동 주소 설정은RFC 4862를 기준으로 설명합니다.
먼저 가장 큰 차이부터 보면
실무에서는 아래 정도만 먼저 잡아도 큰 틀은 흔들리지 않습니다.
| 관점 | IPv4 |
IPv6 |
|---|---|---|
| 주소 길이 | 32-bit |
128-bit |
| 주소 부족 대응 | 사설 주소 + NAT가 매우 흔함 |
훨씬 넓은 주소 공간으로 NAT 필요성이 크게 줄어듦 |
| 주소 종류 | unicast, multicast, broadcast |
unicast, multicast, anycast |
| 기본 헤더 | 가변 길이, 헤더 체크섬 포함 | 고정 40 bytes, 헤더 체크섬 없음 |
| 옵션/확장 | IPv4 옵션 필드 | extension headers |
| 단편화 | 중간 라우터도 가능 | 출발지에서만 Fragment header 사용 |
| 이웃 탐색 | ARP |
NDP (ICMPv6) |
| 주소 설정 | 수동, DHCP, 사설망 중심 |
SLAAC, DHCPv6, link-local 주소 기본 사용 |
가장 짧게 줄이면 이렇습니다.
IPv4는 부족한 주소를 아껴 쓰기 위해NAT와 사설망을 적극 활용해 온 체계입니다IPv6는 더 큰 주소 공간과 더 단순한 기본 헤더를 바탕으로 구조를 다시 정리한 체계입니다- 그래서 실무 차이는 주소 표기보다
NAT, 라우팅, 이웃 탐색, 운영 방식에서 더 크게 드러납니다
Phase 1. 왜 IPv6가 필요해졌을까?
가장 먼저 이해해야 할 것은 "IPv6가 왜 나왔는가"입니다.
IPv4는 주소가 부족해졌다
IPv4 주소는 32-bit입니다. 이론상 주소 개수는 많아 보이지만, 인터넷이 커지고 서버, PC, 모바일, IoT 장치가 폭증하면서 공인 주소만으로 모든 장치를 직접 식별하기 어려워졌습니다.
그래서 실무에서는 보통 이런 구조가 익숙합니다.
인터넷 공인 IPv4 1개
↓
공유기 / 방화벽
↓
사설 IPv4 대역의 내부 장치 여러 대
이때 핵심 역할을 하는 것이 NAT입니다.
NAT는 문제를 "없앤" 것이 아니라 "우회"한 것이다
NAT 덕분에 사설 주소를 내부에서 재사용할 수 있게 되었고, 주소 부족 문제를 오래 버틸 수 있었습니다. 하지만 그 대가도 있었습니다.
- 종단 간 직접 연결이 더 복잡해졌습니다
- 포트 포워딩, 세션 상태 관리,
NAT traversal같은 추가 고민이 생겼습니다 - 주소와 포트가 중간 장비에서 바뀌므로 디버깅이 어려워질 수 있습니다
즉, NAT는 매우 실용적인 해법이었지만, 인터넷 계층 자체를 단순하게 만든 것은 아니었습니다.
IPv6는 더 넓은 주소 공간을 전제로 다시 설계됐다
IPv6는 128-bit 주소를 사용합니다. 이 차이는 단순히 "주소가 많아졌다"에서 끝나지 않습니다.
- 주소를 매우 넉넉하게 배분할 수 있고
- 네트워크마다 일관된 주소 계획을 세우기 쉬워지며
- 주소 부족 때문에 반드시 주소 공유용
NAT를 써야 하는 압박이 크게 줄어듭니다
즉, IPv6의 출발점은 이것입니다.
주소 부족을 애플리케이션과 운영 복잡도로 버티지 말고, 네트워크 계층에서 더 크게 풀자
Phase 2. 주소는 어떻게 달라졌을까?
주소 체계 차이는 가장 눈에 띄지만, 실무에서는 "길이"보다 "의미"를 같이 보는 편이 중요합니다.
1. 표기 방식이 다르다
IPv4는 보통 이렇게 씁니다.
192.168.0.10
10.0.0.15
203.0.113.20
IPv6는 16진수 블록을 :로 구분합니다.
2001:db8:abcd:1::10
fe80::1
::는 연속된 0 구간을 압축한 표기입니다.
2. 주소 종류도 다르다
IPv4에서는 unicast, multicast, broadcast를 자주 떠올립니다.
반면 IPv6는 broadcast가 없습니다. RFC 4291도 IPv6에는 broadcast 주소가 없고, 그 역할은 multicast가 대체한다고 설명합니다.
즉:
IPv4:broadcast가 있음IPv6:broadcast없음, 대신multicast중심
또 하나는 anycast입니다.
anycast는 같은 주소를 여러 인터페이스에 할당하고, 그중 라우팅 관점에서 가장 가까운 하나로 보내는 방식입니다. CDN이나 분산 서비스 이야기에서 자주 만나는 개념입니다.
3. link-local 주소가 훨씬 중요하다
IPv6에서는 link-local 주소가 기본적으로 매우 중요합니다. RFC 4291도 모든 인터페이스는 최소 하나의 link-local unicast 주소를 가져야 한다고 설명합니다.
- 같은 링크 안의 이웃과 통신할 때 사용하고
- 라우터 탐색과 이웃 탐색에도 쓰이며
- 인터페이스가 글로벌 주소를 아직 받기 전에도 기본 통신에 참여할 수 있습니다
즉, IPv6에서는 "공인 주소를 받기 전에는 아무것도 못 한다"보다, 링크 단위 기본 주소를 먼저 갖고 시작한다는 감각이 더 중요합니다.
Phase 3. 헤더 구조는 무엇이 달라졌을까?
주소만 바뀐 것이 아니라, 패킷 헤더 설계도 꽤 달라졌습니다.
IPv4 헤더는 가변 길이이고 체크섬이 있다
RFC 791의 IPv4 헤더는:
- 기본
20 bytes - 옵션이 있으면 더 길어질 수 있고
- 헤더 체크섬이 있으며
- 라우터가
TTL감소 등으로 헤더를 바꿀 때 체크섬도 다시 계산해야 합니다
이 구조는 유연하지만, 중간 장비가 처리해야 할 일이 더 있습니다.
IPv6 기본 헤더는 더 단순하다
RFC 8200의 IPv6 기본 헤더는 고정 40 bytes입니다.
그리고 실무에서 중요한 차이는 아래입니다.
- 헤더 체크섬이 없습니다
- 옵션성 정보는
extension headers로 분리합니다 TTL대신Hop Limit을 씁니다
핵심은 이것입니다.
IPv6는 자주 필요한 필드는 기본 헤더에 남기고, 추가 정보는 확장 헤더로 분리해서 기본 처리를 단순하게 만들었습니다
헤더가 더 단순하다고 무조건 "더 빠르다"는 뜻은 아니다
여기서 조심할 점이 있습니다.
IPv6 헤더가 더 정돈되어 있다고 해서, 모든 환경에서 IPv4보다 무조건 빠르다고 말할 수는 없습니다.
실제 성능은:
- 장비 구현
- 라우팅 경로
ACL/방화벽 정책- 애플리케이션 병목
같은 운영 요소에 더 크게 좌우될 수 있습니다.
즉, 헤더 설계 차이는 중요하지만 항상 체감 속도 차이로 직결된다고 보면 과합니다.
Phase 4. 단편화는 왜 운영 포인트가 될까?
IPv4와 IPv6의 중요한 차이 중 하나가 단편화입니다.
IPv4는 중간 라우터도 단편화할 수 있다
IPv4에서는 패킷이 경로 중간의 MTU보다 크면, 라우터가 패킷을 더 작은 조각으로 나눌 수 있습니다.
이 방식은 유연해 보이지만:
- 중간 장비가 추가 작업을 해야 하고
- 조각 손실 시 재조립 비용이 생기며
- 운영상 예측이 어려워질 수 있습니다
IPv6는 출발지에서만 단편화한다
RFC 8200 기준으로 IPv6에서는 중간 라우터가 패킷을 단편화하지 않습니다.
필요하다면:
- 출발지가
Path MTU를 고려해서 크기를 줄이거나 - 정말 필요한 경우 출발지가
Fragment header를 사용해 단편화합니다
즉, IPv6에서는 "중간 라우터가 알아서 잘게 쪼개 주겠지"라고 기대하면 안 됩니다.
그래서 Path MTU가 더 중요해진다
실무에서 이 차이는 꽤 크게 느껴집니다.
- 중간 장비가 조용히 잘라 주지 않으므로
- 송신 측이 경로 MTU를 더 의식해야 하고
- 잘못하면 큰 패킷이 기대대로 전달되지 않을 수 있습니다
그래서 IPv6 운영에서는 Path MTU Discovery와 관련된 방화벽/ICMPv6 정책까지 같이 봐야 할 때가 많습니다.
Phase 5. ARP와 DHCP는 IPv6에서 어떻게 바뀔까?
이 부분이 현장에서 가장 실무적으로 헷갈립니다.
IPv4에서는 보통 ARP와 DHCP가 익숙하다
같은 L2 링크 안에서:
- IP 주소에 대응하는 MAC 주소를 찾는 데는
ARP - 주소를 자동으로 받는 데는
DHCP
가 익숙합니다.
IPv6는 ARP 대신 NDP를 쓴다
RFC 4861의 Neighbor Discovery는 ICMPv6 기반으로:
- 이웃 존재 확인
- 링크 계층 주소 확인
- 라우터 발견
- 다음 홉 결정
- 경로 도달 가능성 관리
를 함께 처리합니다.
즉, IPv4에서 ARP가 맡던 일부 역할을 넘어, IPv6의 NDP는 라우터 발견과 이웃 상태 관리까지 더 넓게 다룹니다.
또 IPv6는 broadcast가 없기 때문에, ARP처럼 전체 브로드캐스트에 기대는 구조 대신 multicast를 적극 활용합니다. 그래서 ICMPv6와 NDP를 막연히 "부가 기능"처럼 다루면 실제 통신 자체가 흔들릴 수 있습니다.
주소 설정도 더 유연하다
RFC 4862는 SLAAC를 정의합니다. 즉, IPv6 호스트는 라우터 광고 정보를 바탕으로 상태 없는 자동 주소 설정을 할 수 있습니다.
물론 여기서 중요한 점은:
IPv6가 항상DHCPv6없이만 동작한다는 뜻은 아니고- 환경에 따라
SLAAC,DHCPv6, 둘의 조합이 모두 가능하다는 점입니다
즉:
IPv4:DHCP중심이 익숙함IPv6:SLAAC와DHCPv6를 함께 설계 대상으로 봄
으로 이해하는 편이 실무 감각에 가깝습니다.
Phase 6. 실무에서는 무엇을 가장 크게 체감할까?
실무에서 많이 생기는 오해를 먼저 정리하면 이렇습니다.
1. IPv6라고 NAT이 완전히 금지되는 것은 아니다
IPv6의 큰 장점은 주소 공유용 NAT 필요성이 크게 줄어든다는 점입니다. 하지만 이것이 "IPv6에서는 어떤 형태의 주소 변환도 절대 없다"는 뜻은 아닙니다.
실무에서는:
- 주소 부족 때문에 강제되는
NAT의 압박이 줄고 - 더 자연스러운
end-to-end주소 설계가 쉬워지며 - 방화벽 정책과 주소 계획을 더 직접적으로 볼 수 있게 됩니다
정도가 핵심입니다.
2. IPv6라고 자동으로 더 안전해지지는 않는다
주소가 많고 구조가 새롭다고 해서 보안이 자동으로 해결되지는 않습니다.
여전히:
- 어떤 주소를 외부에 노출할지
- 인바운드 정책을 어떻게 걸지
ICMPv6를 어디까지 허용할지- 이웃 탐색과 라우터 광고를 어떻게 통제할지
같은 운영 설계가 중요합니다.
즉, IPv6는 보안 정책을 없애는 기술이 아니라, 다른 전제 위에서 다시 설계해야 하는 기술에 가깝습니다.
3. 실제 전환은 보통 dual-stack으로 간다
많은 서비스가 하루아침에 IPv4를 버리고 IPv6만 쓰지는 않습니다.
보통은:
IPv4와IPv6를 함께 운영하는dual-stack- 외부는
IPv6, 내부 일부는 아직IPv4 - CDN/LB까지만
IPv6, 뒤쪽은IPv4
같은 점진적 구성이 더 현실적입니다.
즉, 실무에서 중요한 질문은 "IPv4냐 IPv6냐"의 이분법보다:
- 어디까지
IPv6를 열 것인가 - 어떤 구간이 아직
IPv4에 남아 있는가 DNS, 로드밸런서, 보안 정책이 둘 다를 일관되게 처리하는가
에 더 가깝습니다.
핵심만 다시 정리하면
마지막으로 IPv4와 IPv6를 한 번 더 비교하면 이렇게 볼 수 있습니다.
| 구분 | IPv4 |
IPv6 |
|---|---|---|
| 출발점 | 제한된 주소 공간 안에서 확장 | 넓은 주소 공간을 전제로 재설계 |
| 운영 체감 | 사설망, NAT, ARP, DHCP 중심 |
link-local, NDP, SLAAC, 더 직접적인 주소 계획 |
| 패킷 처리 | 가변 헤더, 체크섬, 라우터 단편화 가능 | 고정 헤더, 체크섬 없음, 출발지 단편화 중심 |
| 주소 전달 방식 | broadcast 사용 가능 |
broadcast 없음, multicast와 anycast 활용 |
핵심 포인트는 다섯 가지입니다.
IPv4와IPv6의 가장 큰 차이는 주소 길이만이 아니라, 주소 부족을 다루는 철학과 운영 구조에 있습니다.IPv4는 주소 부족 때문에 사설망과NAT가 매우 흔해졌고,IPv6는 더 넓은 주소 공간으로 그 압박을 크게 줄였습니다.IPv6는broadcast를 없애고multicast와anycast를 더 적극적으로 사용하는 구조입니다.IPv6는 기본 헤더를 단순화하고, 중간 라우터 단편화를 없애서Path MTU와 송신 측 조절이 더 중요해졌습니다.- 실무에서는
ARP/DHCP만 보지 말고,NDP,SLAAC,dual-stack, 방화벽 정책까지 함께 봐야IPv6를 제대로 이해할 수 있습니다.
결국 IPv4 vs IPv6는 "주소 표기가 다르다" 수준의 차이가 아니라, 인터넷 주소 부족을 어떻게 감당할지, 네트워크 계층을 얼마나 단순하게 유지할지에 대한 설계 철학 차이에 가깝습니다.