Skip to content
난이도 문제은행 5

IPv6와 NAT ​

IPv4 주소는 약 43억 개뿐이라 인터넷 장치가 늘면서 모자라게 됐다. 이 부족을 푸는 길은 두 가지다. 주소 자체를 크게 늘린 IPv6(Internet Protocol version 6, 인터넷 프로토콜 버전 6)로 가는 것, 그리고 공인 주소 하나를 여러 장치가 나눠 쓰게 하는 NAT(Network Address Translation, 네트워크 주소 변환)다. 실기 시험은 IPv6의 비트 수·표기·주소 유형과 NAT의 정의·종류를 묻는다.

IPv6 주소의 구조와 축약 표기 ​

IPv6 주소는 128비트다. 16비트씩 8개 그룹으로 나누고, 각 그룹을 16진수 4자리로 적어 콜론(:)으로 구분한다. 그대로 쓰면 너무 길어서 RFC(Request for Comments, 인터넷 표준 문서) 4291은 두 가지 줄임 규칙을 둔다.

  1. 그룹 안의 앞자리 0은 생략할 수 있다. 0db8은 db8, 0000은 0이 된다. 단 그룹마다 숫자가 하나는 남아야 한다.
  2. 0으로만 된 그룹이 연달아 있으면 ::로 한 번에 줄일 수 있다. 이 ::는 주소 안에서 한 번만 쓴다. 두 번 쓰면 각 자리에 0 그룹이 몇 개씩 들어갔는지 알 수 없기 때문이다.

예를 들어 2001:0db8:0000:0000:0000:ff00:0042:8329는 2001:db8::ff00:42:8329가 된다. 0 그룹이 두 군데 있으면 더 긴 쪽을 ::로 줄인다. 2001:db8:0:0:1:0:0:1은 길이가 같아 앞쪽을 줄인 2001:db8::1:0:0:1이 표준 표기(RFC 5952)다.

IPv6는 주소만 늘린 것이 아니라 설계 때부터 IPsec(IP Security, IP 보안)으로 인증·기밀성(confidentiality)·무결성(integrity)을 지원하도록 했다. 처음에는 모든 IPv6 장치가 IPsec을 반드시 구현해야 했지만 RFC 6434부터 권장(SHOULD)으로 바뀌었고, 지금 표준 RFC 8504도 그대로 둔다. 시험에서는 IPv6의 장점으로 인증성·기밀성·무결성 지원을 든다.

IPv6 주소 유형 ​

IPv6에는 브로드캐스트(broadcast)가 없다. 네트워크 안의 모두에게 보내는 일은 멀티캐스트(multicast)로 대신한다. 주소는 누구에게 전달하느냐에 따라 유니캐스트(unicast)·멀티캐스트(multicast)·애니캐스트(anycast) 세 가지로 나눈다.

유형전달 대상관계
유니캐스트인터페이스 하나1:1
멀티캐스트그룹의 모든 인터페이스1:다
애니캐스트그룹 중 가장 가까운 하나1:1(가장 가까운)

애니캐스트는 같은 주소를 여러 장치에 주고, 보내는 쪽에서 경로상 가장 가까운 한 곳으로만 배달하는 방식이다.

주소 앞부분(프리픽스, prefix)으로 유형을 알아볼 수 있다. /10처럼 슬래시 뒤 숫자는 앞에서부터 고정된 비트 수다. 루프백(loopback)은 ::1, 링크 로컬 유니캐스트(link-local unicast)는 fe80::/10, 멀티캐스트는 ff00::/8로 시작한다. 인터넷에서 쓰는 글로벌 유니캐스트는 현재 2000::/3 범위에서 배정된다.

NAT의 개념과 종류 ​

NAT는 내부망의 사설 IP 주소(private IP address)와 외부의 공인 IP 주소를 서로 바꿔 주는 기술이다. 공유기나 라우터가 나가는 패킷의 출발지 주소를 공인 주소로 고쳐 쓰고, 돌아오는 응답은 표를 보고 원래 내부 주소로 되돌린다. 이렇게 하면 공인 주소가 적어도 많은 장치가 인터넷을 쓸 수 있고, 외부에서 내부 주소가 보이지 않는다.

종류바꾸는 방식
정적 NAT사설 주소 1개를 공인 주소 1개에 고정 연결
동적 NAT공인 주소 풀에서 그때그때 1:1로 빌려줌
PAT(NAPT)공인 주소 1개를 포트 번호로 나눠 여러 장치가 공유

PAT(Port Address Translation, 포트 주소 변환)는 RFC 3022에서 NAPT(Network Address Port Translation)라고 부른다. 가정용 공유기가 쓰는 방식이며, 리눅스에서는 IP 마스커레이드(IP masquerade)라는 이름으로도 부른다.

NAT에는 대가가 있다. 주소가 중간에서 바뀌므로 종단 간(end-to-end) 연결성이 깨진다. 외부에서 먼저 내부 장치로 접속하기 어렵고, 패킷 안에 주소를 담는 일부 응용이나 IPsec 같은 종단 간 보안과 잘 맞지 않는다(NAT가 주소를 바꾸면 주소까지 포함해 검증하는 IPsec이 실패할 수 있기 때문이다).

시험 포인트 ​

  • IPv6 → 128비트, 16비트 × 8그룹, 16진수, 콜론 구분, IPsec 기반 보안 지원. IPv4는 32비트, 8비트 × 4, 10진수, 점 구분.
  • ::는 한 번만, 앞자리 0은 생략 가능. 뒷자리 0은 생략할 수 없다.
  • IPv6 주소 유형 → 유니캐스트·멀티캐스트·애니캐스트. 브로드캐스트는 없다.
  • "가장 가까운 하나에게 전달" → 애니캐스트.
  • "사설 주소를 공인 주소로 바꿔 준다" → NAT. 포트로 공인 주소 하나를 여럿이 나눠 씀 → PAT(NAPT).

관련 문서