현재 선택한 정보보안 과정

정보보안기사 필기 이론 학습

이론 목록으로 돌아가기

공인·사설 주소와 NAT·DHCP

주소의 종류와 할당 방식을 나누고 PAT 변환과 DHCP 주소 임대 흐름을 이해합니다.

예상 읽기 11

NAT(Network Address Translation)는 네트워크 경계에서 주소 또는 주소·포트를 변환하는 기능이다. 이 기능을 주소의 종류, 주소 할당 방식과 나누어 살펴본다. 아래 192.0.2.0/24·198.51.100.0/24·203.0.113.0/24는 설명용 문서 대역이다.

1. 공인 주소와 사설 주소

공인 IPv4 주소

일반적으로 공인(public) IPv4 주소는 전 세계 인터넷에서 중복되지 않도록 관리되는 주소 공간에서 할당되며, 인터넷 라우팅에 사용될 수 있는 주소를 말한다.

여기서 주의할 점은 공인 주소라고 해서 인터넷의 모든 호스트가 반드시 그 장치에 접속할 수 있다는 뜻은 아니라는 것이다. 방화벽, 라우팅 정책, 서비스 미실행, 접근 제어 등으로 실제 통신은 차단될 수 있다.

즉 다음 둘은 다른 문제다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
공인 주소인가?  → 주소 공간과 라우팅 관점
접속 가능한가? → 경로·방화벽·서비스·정책 관점

사설 IPv4 주소

조직이나 가정 내부에서 독립적으로 사용할 수 있도록 예약된 IPv4 주소 공간을 사설(private) 주소 공간이라고 한다. 대표 범위는 다음 세 개다.

CIDR주소 범위크기
10.0.0.0/810.0.0.0 ~ 10.255.255.25516,777,216개
172.16.0.0/12172.16.0.0 ~ 172.31.255.2551,048,576개
192.168.0.0/16192.168.0.0 ~ 192.168.255.25565,536개

서로 다른 조직이 같은 사설 주소를 동시에 사용할 수 있다. 예를 들어 여러 가정에서 모두 192.168.0.10을 사용할 수 있다. 그 주소는 각 내부 네트워크의 문맥에서만 의미가 있기 때문이다.

사설 주소는 일반 인터넷에서 그대로 전역 라우팅되는 주소가 아니다. 사설 주소를 사용하는 호스트가 IPv4 인터넷과 통신할 때는 흔히 경계 라우터의 NAT를 거친다.

2. “사설처럼 보이는 주소”를 모두 사설 주소라고 부르면 안 된다

특수 목적 IPv4 주소 중에는 일반 인터넷에서 그대로 사용하지 않는 주소가 여럿 있지만, 그렇다고 모두 RFC 1918 사설 주소는 아니다.

주소 범위의미RFC 1918 사설 주소인가?
10.0.0.0/8사설 주소
172.16.0.0/12사설 주소
192.168.0.0/16사설 주소
127.0.0.0/8루프백아니오
169.254.0.0/16IPv4 링크-로컬아니오
100.64.0.0/10통신사업자 CGN용 Shared Address Space아니오

특히 172.x.x.x 전체가 사설 주소라는 식으로 외우면 틀린다. 사설 범위는 정확히 172.16.0.0부터 172.31.255.255까지다.

100.64.0.0/10도 여러 곳에서 재사용되고 전역 인터넷으로 전달하지 않는다는 점 때문에 사설 주소와 비슷해 보이지만, 통신사업자의 Carrier-Grade NAT(CGN)를 위해 별도로 예약된 Shared Address Space다. RFC 1918의 세 사설 대역과 구분한다.

3. 정적 주소와 동적 주소는 “주소가 공인인가 사설인가”와 별개의 기준이다

정적(static) 주소 할당은 특정 장치가 사용할 주소를 관리자가 고정적으로 정해 사용하는 방식이다. 장치에 직접 입력할 수도 있고, 중앙 관리 시스템이나 DHCP 서버가 특정 장치에 항상 정해진 주소를 전달하도록 관리할 수도 있다.

동적(dynamic) 주소 할당은 사용 가능한 주소 풀에서 장치에 주소를 일정 기간 할당하고 필요에 따라 회수·재사용하는 방식이다. IPv4 LAN에서는 DHCP가 대표적인 구현 방법이다.

따라서 다음 네 조합이 모두 가능하다.

주소 공간할당 방식예시 상황
공인정적외부에 지속적으로 같은 주소를 공개해야 하는 서버의 공인 IPv4를 고정
공인동적인터넷 회선이 연결될 때 ISP가 가입자 장비에 공인 IPv4를 동적으로 할당
사설정적내부 서버나 프린터에 192.168.10.10을 고정
사설동적노트북이 DHCP로 192.168.10.101을 임대받음

따라서 공인 = 정적, 사설 = 동적이라는 등식은 성립하지 않는다.

4. Basic NAT와 NAPT(PAT)를 구분한다

NAT를 이해할 때 가장 중요한 구분 중 하나는 주소만 바꾸는가, 주소와 전송 계층 식별자까지 함께 바꾸는가다.

Basic NAT

Basic NAT는 내부 주소와 외부 주소를 주소 단위로 매핑한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
192.168.10.20  ↔  198.51.100.25

한 내부 주소가 하나의 외부 주소와 대응하는 1:1 형태를 생각하면 이해하기 쉽다.

정적 NAT는 고정된 주소 매핑을, 동적 NAT는 풀에서 필요할 때 배정하는 매핑을 뜻한다. 이는 단말의 정적·동적 IP 할당과 별도 기준이다.

NAPT 또는 PAT

NAPT(Network Address Port Translation)는 IP 주소뿐 아니라 TCP/UDP 포트 같은 전송 계층 식별자도 함께 변환한다. 흔히 PAT(Port Address Translation)라고도 부른다.

이 방식에서는 여러 내부 장치가 하나의 외부 IPv4 주소를 공유할 수 있다.

예를 들어 두 내부 호스트가 모두 HTTPS 서버 203.0.113.10:443에 접속한다고 하자.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
내부 A 192.168.10.20:51514 → 198.51.100.25:40001 → 203.0.113.10:443
내부 B 192.168.10.21:51514 → 198.51.100.25:40002 → 203.0.113.10:443

외부 주소는 둘 다 198.51.100.25지만 변환된 출발지 포트가 40001, 40002로 다르므로 NAT 장비가 응답을 어느 내부 연결로 돌려보낼지 구분할 수 있다.

예시 변환 테이블은 다음처럼 생각할 수 있다.

내부 식별외부에서 보이는 식별원격 목적지
192.168.10.20:51514198.51.100.25:40001203.0.113.10:443
192.168.10.21:51514198.51.100.25:40002203.0.113.10:443

응답 패킷이 198.51.100.25:40001로 돌아오면 NAT 장비는 매핑을 조회하여 이를 192.168.10.20:51514로 전달한다.

좌우로 이동해 그림을 확인하세요.그림 크게 보기
PAT: 하나의 외부 주소를 공유
PAT: 하나의 외부 주소를 공유

5. NAT는 방화벽이나 암호화와 같은 개념이 아니다

NAPT 환경에서는 내부에서 먼저 만든 변환 상태가 없는 외부의 임의 패킷이 내부 호스트로 바로 연결되기 어려운 경우가 많다. 이 때문에 NAT가 보안 기능처럼 느껴질 수 있다.

하지만 다음 등식은 틀리다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
NAT = 방화벽 = 암호화

각 기능의 목적은 다르다.

기능중심 목적
NAT주소 또는 주소·포트 변환
방화벽정책에 따라 통신 허용/차단
암호화데이터의 기밀성 보호

정적 매핑이나 포트 전달처럼 외부에서 내부 서비스로 들어오는 경로를 만들 수도 있다. 따라서 NAT가 있다는 이유만으로 내부 서비스가 안전하다고 판단하면 안 된다. 접근 정책은 방화벽 등 별도의 보안 통제로 판단한다.

6. DHCP는 호스트가 네트워크 설정을 자동으로 받게 한다

새로운 호스트가 IPv4 네트워크에서 정상 통신하려면 IP 주소만 필요한 것이 아니다. 일반적으로 다음과 같은 설정이 필요하다.

  • 자신의 IPv4 주소
  • 서브넷 마스크
  • 기본 게이트웨이(라우터)
  • 필요한 경우 DNS 서버 주소 등 추가 구성 정보
  • 주소 임대 시간

DHCP는 서버가 이러한 네트워크 설정을 클라이언트에 전달할 수 있게 하는 UDP 기반 프로토콜이다. 중계가 없는 일반적인 DHCPv4 클라이언트·서버 교환에서 클라이언트가 서버로 보내는 메시지는 UDP 68 → 67, 서버가 클라이언트로 보내는 메시지는 UDP 67 → 68 방향을 사용한다.

DNS 서버의 주소를 DHCP 옵션으로 전달할 수 있다는 사실과 DNS 자체가 이름을 해석하는 동작은 구분해야 한다. 여기서는 DHCP가 설정값을 전달하는 과정까지만 다룬다.

7. DHCP의 기본 DORA 흐름

처음 네트워크에 연결된 클라이언트는 아직 자신의 IPv4 주소와 DHCP 서버 위치를 모를 수 있다. 이때 대표적인 주소 획득 과정은 다음 네 메시지로 설명할 수 있다.

  1. DHCPDISCOVER — 클라이언트가 사용 가능한 DHCP 서버를 찾는다.
  2. DHCPOFFER — 서버가 사용 가능한 주소와 설정을 제안한다.
  3. DHCPREQUEST — 클라이언트가 선택한 제안을 요청한다.
  4. DHCPACK — 선택된 서버가 주소 임대와 설정을 확정한다.

Discover → Offer → Request → ACK의 첫 글자를 딴 DORA는 이 네 단계를 기억하기 위한 학습용 약칭이다.

DHCPDISCOVER

클라이언트가 아직 유효한 IPv4 주소를 갖지 않은 초기 상태에서는 자신의 출발지 IPv4 주소를 0.0.0.0으로 두고 로컬 브로드캐스트를 이용해 서버를 찾을 수 있다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
UDP 클라이언트 포트 68 → DHCP 서버 포트 67
출발지 IP: 0.0.0.0
목적지 IP: 255.255.255.255   (초기 로컬 브로드캐스트의 대표 형태)

DHCPOFFER

DHCP 서버는 사용 가능한 IP 주소, 임대 시간 및 필요한 설정값을 제안한다. 네트워크에 서버가 여러 개라면 클라이언트가 둘 이상의 제안을 받을 수도 있다.

DHCPREQUEST

클라이언트는 선택한 서버와 주소를 알리기 위해 DHCPREQUEST를 보낸다. 최초 선택 단계의 DHCPREQUEST를 브로드캐스트하면 제안을 보낸 다른 DHCP 서버들도 어떤 제안이 선택되었는지 알 수 있다.

DHCPACK

선택된 서버는 주소와 설정을 확정하여 DHCPACK을 보낸다. 클라이언트는 이를 바탕으로 인터페이스를 구성하고 임대 시간을 관리한다.

실제 전송에서 DHCPOFFER와 DHCPACK이 항상 무조건 같은 방식으로 브로드캐스트된다고 외우면 안 된다. 클라이언트의 상태, broadcast 플래그, ciaddr, 중계 여부 등에 따라 서버의 응답 전달 방식은 달라질 수 있다. 시험에서는 우선 초기 주소 획득의 논리적 DORA 순서와 UDP 67/68의 방향을 정확히 구분한다.

8. DHCP 주소 임대와 갱신

동적 할당된 IPv4 주소에는 lease(임대)라는 사용 기간이 설정될 수 있다. 클라이언트는 임대가 끝날 때마다 처음부터 주소를 버리는 것이 아니라, 만료 전에 DHCPREQUEST를 사용해 갱신을 시도한다.

서버가 갱신 시점을 별도로 지정하지 않은 일반적인 기본값에서는 다음과 같이 동작한다.

  • T1: 임대 기간의 약 50% 시점 — 원래 임대해 준 서버에 갱신을 우선 시도
  • T2: 임대 기간의 약 87.5% 시점 — 갱신이 되지 않았다면 더 넓게 재바인딩을 시도
  • 임대 만료: 유효한 갱신에 실패한 채 임대가 끝나면 해당 주소를 계속 정상 주소처럼 사용하면 안 됨

이 숫자는 DHCP 서버가 다른 값을 제공하지 않았을 때의 기본 관계다. 핵심은 동적 주소가 영구 소유가 아니라 임대되고, 만료 전에 갱신 절차가 존재한다는 점이다.

9. 라우터가 브로드캐스트를 넘기지 않는데 DHCP 서버가 다른 네트워크에 있으면?

초기 DHCPDISCOVER는 로컬 브로드캐스트로 시작할 수 있다. 일반 라우터는 이런 링크 브로드캐스트를 다른 서브넷으로 그대로 전달하지 않는다.

여러 VLAN이나 서브넷이 하나의 중앙 DHCP 서버를 사용할 때는 DHCP relay agent(중계 에이전트)를 둘 수 있다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
클라이언트 --(로컬 DHCP 요청)--> DHCP Relay --(중계)--> 중앙 DHCP 서버

중계 에이전트는 요청이 어느 네트워크에서 왔는지를 서버가 판단할 수 있는 정보를 제공한다. DHCP 메시지의 giaddr 필드는 이러한 중계 상황에서 relay agent의 주소를 나타내는 데 사용된다.

따라서 “DHCP 서버는 반드시 클라이언트와 같은 브로드캐스트 도메인에 있어야 한다”는 설명은 틀리다. 중계 기능이 없다면 초기 브로드캐스트가 라우터를 넘지 못하지만, DHCP relay를 구성하면 다른 서브넷의 중앙 서버를 사용할 수 있다.

스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01172.32.0.1은 RFC 1918 사설 주소인가?
정답 및 해설

아니다. 해당 사설 대역은 172.16.0.0/12이며 172.16.0.0부터 172.31.255.255까지다.

02DHCP 최초 주소 획득의 네 메시지 순서는?
정답 및 해설

Discover → Offer → Request → ACK이다. 서버 발견, 제안, 선택 요청, 임대 확정의 순서다.