DHCP는 무엇을 전달하는가

Kobe·2026년 9월 6일

들어가며

카페나 사무실에서 노트북을 네트워크에 연결하면 사용자가 직접 IP 주소를 입력하지 않아도 잠시 뒤 인터넷을 이용할 수 있는데요, 그럼 누가 사용할 주소를 정하고, 필요한 네트워크 설정값은 어떻게 장치에 전달하는 걸까요?

이 역할을 담당하는 프로토콜이 DHCP(Dynamic Host Configuration Protocol)입니다.

RFC 2131에서는 DHCP를 크게 두 가지 구성 요소로 설명합니다.

  • DHCP 서버에서 클라이언트로 네트워크 설정값을 전달하는 프로토콜
  • 클라이언트가 사용할 네트워크 주소를 할당하는 메커니즘

DHCP consists of two components: a protocol for delivering host-specific configuration parameters [...] and a mechanism for allocation of network addresses to hosts.

출처: RFC 2131 - Dynamic Host Configuration Protocol, Section 1

이번 글에서는 먼저 'DHCP가 어떤 역할을 하는지', 그리고 'DHCP를 통해 어떤 네트워크 설정값을 전달할 수 있는지' 정리해보고자 합니다.

IP 주소만 설정한다고 끝나는 것은 아니다

장치가 IP 네트워크에서 통신하려면 IP 주소 외에도 환경에 따라 여러 네트워크 설정값이 필요합니다.

대표적으로 다음과 같은 값들이 있습니다.

값역할
IP 주소네트워크에서 장치를 식별하기 위한 주소
Subnet MaskIP 주소에서 Network Portion과 Host Portion의 경계를 구분
Default Gateway다른 네트워크로 패킷을 보낼 때 먼저 전달할 Router
DNS Server도메인 이름을 IP 주소로 변환할 때 사용할 DNS Server

이 값들은 사용자가 직접 설정할 수도 있습니다. 하지만, 네트워크에 연결되는 장치가 많아지면 모든 장치의 설정값을 사람이 직접 관리하는 것은 번거롭고 실수도 발생하기 쉽습니다.

예를 들어 새로운 장치가 들어올 때마다 사용할 IP 주소를 정해야 하고, 다른 장치와 주소가 겹치지 않는지도 관리해야 합니다. 장치가 다른 Subnet으로 이동하면 새로운 네트워크 환경에 맞게 설정값을 다시 변경해야 할 수도 있습니다.

DHCP를 사용하면 이러한 IP 주소와 관련 네트워크 설정의 할당 및 관리를 자동화할 수 있습니다. DHCP 서버는 사용할 IP 주소를 관리하고, DHCP 클라이언트가 네트워크에 연결할 때 주소와 관련 설정 정보를 제공할 수 있습니다.

DHCP가 전달하는 정보들

DHCP라고 하면 흔히 IP 주소를 자동으로 할당해주는 프로토콜을 먼저 떠올리지만, DHCP가 다루는 것은 IP 주소 하나뿐만이 아닙니다.

RFC 2132에서는 여러 설정 파라미터와 제어 정보가 DHCP 메시지의 options 필드에 저장되는 형태로 전달된다고 설명합니다.

Configuration parameters and other control information are carried [...] in the 'options' field of the DHCP message.

출처: RFC 2132 - DHCP Options and BOOTP Vendor Extensions

각 설정값에는 Option Code가 정의되어 있으며, 대표적인 값은 다음과 같습니다.

코드Option전달하는 값
1Subnet Mask클라이언트가 사용할 Subnet Mask
3Router클라이언트가 사용할 Router 정보
6Domain Name Server사용할 DNS Server
51IP Address Lease TimeIP 주소의 Lease 기간

각 Option은 RFC 2132에서 다음과 같이 정의되어 있습니다.

여기서 한 가지 구분할 부분이 있는데요, 클라이언트에게 할당되는 IP 주소 자체가 위 표의 DHCP Option으로 전달되는 것은 아닙니다.

DHCP 메시지에는 yiaddr라는 별도의 필드가 존재합니다. RFC 2131은 이 필드를 DHCP 메시지 구조에 정의하고 있으며, 새로운 주소를 할당하는 과정에서는 서버가 클라이언트에게 제안하는 주소를 이 필드에 담습니다.

반면 Subnet Mask, Router, DNS Server, Lease Time과 같은 추가 설정값은 DHCP Option을 통해 전달됩니다.

DHCP Message

├─ yiaddr : 클라이언트에게 제안하거나 할당할 IP 주소
│
└─ options
    ├─ Option 1  : Subnet Mask
    ├─ Option 3  : Router
    ├─ Option 6  : DNS Server
    └─ Option 51 : Lease Time

Each server may respond with a DHCPOFFER message that includes an available network address in the 'yiaddr' field (and other configuration parameters in DHCP options).

출처: RFC 2131 - Dynamic Host Configuration Protocol, Section 3.1

출처: RFC 2131 - DHCP Message Format, Section 2(+ Figure 1: Format of a DHCP message)
출처: RFC 2131 - Client-server interaction, Section 3.1

정리

DHCP는 IP 주소만 전달하는 것이 아닙니다. Subnet Mask, Router, DNS Server 등 클라이언트가 사용할 여러 네트워크 설정값을 DHCP Option을 통해 전달할 수 있습니다.

그렇다면 "IP 주소가 없는 클라이언트는 DHCP 서버와 어떻게 통신하고, 실제로 주소와 설정값을 전달받을까요?"

다음 글에서는 위 질문에 대해서 정리해 보도록 하겠습니다.

출처

profile
짧더라도 깊이 있게

0개의 댓글