DHCP(Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜)는 네트워크 안에서 IP 주소를 빠르고 자동으로, 중앙 집중식으로 관리·배분하는 프로토콜입니다. IP 주소뿐만 아니라 서브넷 마스크, 기본 게이트웨이, DNS 서버 정보 등 기기가 네트워크에 연결하는 데 필요한 각종 설정도 함께 구성해 줍니다.
DHCP는 인터넷 표준을 제정하는 국제기구인 IETF(Internet Engineering Task Force)의 '동적 호스트 구성 워킹 그룹'이 만들었습니다.
DHCP 작동 방식
DHCP 서버는 고유한 IP 주소를 발급하고, 그 외 네트워크 정보도 자동으로 설정해 줍니다. 일반적인 가정이나 소규모 사무실에서는 공유기(라우터)가 DHCP 서버 역할을 담당하며, 규모가 큰 네트워크에서는 별도의 서버 컴퓨터가 이 역할을 맡는 경우가 많습니다.
작동 원리는 간단합니다. 네트워크에 접속하려는 기기(클라이언트)가 라우터(호스트)에게 IP 주소를 요청하면, 호스트는 사용 가능한 IP 주소 하나를 할당해 클라이언트가 네트워크상에서 통신할 수 있도록 해줍니다.
구체적인 과정은 다음과 같습니다.
1. DHCPDISCOVER – 주소 탐색
기기의 전원이 켜지고 DHCP 서버가 있는 네트워크에 연결되면, 해당 기기는 서버에게 IP 주소를 달라고 요청합니다. 이 요청 메시지를 DHCPDISCOVER라고 부릅니다.
2. DHCPOFFER – 주소 제안
DISCOVER 패킷이 DHCP 서버에 도착하면, 서버는 해당 기기가 사용할 수 있는 IP 주소 하나를 확보해 두고, DHCPOFFER 패킷으로 클라이언트에게 그 주소를 제안합니다.
3. DHCPREQUEST – 주소 수락
제안을 받은 기기는 DHCPREQUEST 패킷으로 응답하여 해당 IP 주소를 받겠다고 수락 의사를 밝힙니다.
4. ACK / NACK – 최종 확인
서버는 ACK 패킷을 보내 기기가 특정 IP 주소를 사용하게 되었음을 확인하고, 새 주소를 받기 전까지 그 주소를 얼마나 오래 사용할 수 있는지(임대 기간)를 함께 알려줍니다. 반대로 서버가 해당 기기에 주소를 줄 수 없다고 판단하면 NACK을 보냅니다.
DHCP 사용의 장점과 단점
컴퓨터를 비롯해 네트워크(로컬 또는 인터넷)에 연결되는 모든 기기는 통신을 위해 올바른 설정이 필요합니다. DHCP 덕분에 이러한 설정이 자동으로 이루어지기 때문에, 컴퓨터·스위치·스마트폰·게임 콘솔 등 거의 모든 네트워크 기기에서 활용됩니다.
IP 주소가 동적으로 할당되기 때문에 두 기기가 같은 IP 주소를 갖는 충돌 가능성도 크게 줄어듭니다. 수동으로 고정 IP를 배정할 때 흔히 발생하는 문제입니다.
관리 측면에서도 DHCP는 네트워크 운영을 한결 수월하게 만들어 줍니다. 모든 기기는 기본값인 '자동으로 주소 받기' 설정만 켜두면 되고, 관리자가 일일이 각 기기에 주소를 지정할 필요가 없습니다.
또한 기기가 자동으로 IP 주소를 받을 수 있기 때문에, DHCP로 설정된 기기는 네트워크 사이를 자유롭게 이동하면서도 새로운 주소를 즉시 받을 수 있습니다. 모바일 기기에는 특히 유용한 특징입니다.
대부분의 경우 DHCP 서버로부터 주소를 받은 기기는 네트워크에 접속할 때마다 주소가 바뀝니다. 만약 주소를 수동으로 배정한다면, 관리자는 새 클라이언트마다 주소를 직접 지정해야 하고, 이미 사용 중인 주소는 다른 기기에 재사용하기 전에 수동으로 해제해야 합니다. 이런 방식은 시간이 많이 걸리고, 사람이 직접 설정하는 만큼 실수 가능성도 커집니다.
고정 IP 주소를 사용해야 하는 경우
DHCP에는 분명한 장점이 있지만 단점도 있습니다. 프린터나 파일 서버처럼 한자리에 고정되어 있으면서 항상 접근 가능해야 하는 기기에는 계속 변하는 동적 IP 주소가 적합하지 않습니다. 예를 들어 네트워크 프린터의 IP 주소가 언젠가 바뀐다면, 그 프린터에 연결된 모든 컴퓨터는 주소가 바뀔 때마다 설정을 수정해야 합니다.
이런 불편은 해당 기기들에만 DHCP를 적용하지 않고 고정 IP 주소(static IP)를 직접 할당하면 피할 수 있습니다.
같은 원리가 홈 네트워크의 특정 컴퓨터에 원격 접속을 상시 유지해야 하는 경우에도 적용됩니다. DHCP가 켜져 있으면 그 컴퓨터의 IP 주소는 언젠가 변경되므로, 기록해 둔 주소는 오래 유효하지 않습니다. IP 주소 기반으로 접속하는 원격 제어 소프트웨어를 사용한다면, 해당 기기만 DHCP를 끄고 고정 IP를 설정하는 것이 좋습니다.
DHCP에 대해 더 알아야 할 것들
DHCP 서버는 기기에 배정할 IP 주소의 범위(scope), 즉 주소 풀(pool)을 정의합니다. 기기는 이 주소 풀 안의 주소를 통해서만 정상적인 네트워크 연결을 얻을 수 있습니다.
이것이 DHCP가 강력한 또 다른 이유입니다. 사용 가능한 주소 수보다 많은 기기를 시간차로 연결할 수 있기 때문입니다. 예를 들어 서버가 20개의 주소를 정의했다면, 동시에 20대만 주소를 사용하지 않는다면 30대, 50대, 심지어 200대 이상의 기기도 네트워크에 연결할 수 있습니다.
DHCP는 일정 기간(임대 기간, lease period) 동안만 IP 주소를 할당하므로, ipconfig 같은 명령어로 컴퓨터의 IP 주소를 조회하면 시점에 따라 결과가 달라질 수 있습니다.
DHCP가 동적 IP 주소를 클라이언트에게 배포한다고 해서, 고정 IP 주소를 함께 사용할 수 없다는 뜻은 아닙니다. 동적 주소를 받는 기기와 수동으로 주소가 지정된 기기가 같은 네트워크 안에 공존할 수 있습니다.
ISP(인터넷 서비스 제공업체) 역시 DHCP로 IP 주소를 할당합니다. 공인 IP 주소를 확인해 보면 알 수 있는데, 가정용 네트워크가 고정 IP를 사용하는 경우가 아니라면 주소는 시간이 지나면서 바뀌곤 합니다. 고정 공인 IP는 보통 웹 서비스를 대외적으로 운영하는 기업에만 제공됩니다.
Windows에서는 DHCP 서버가 정상적인 IP 주소를 배달하지 못했을 때 APIPA가 임시 특수 주소를 자동으로 할당하며, 기기가 제대로 된 주소를 받을 때까지 이 주소를 사용합니다.
자주 묻는 질문
DHCP 스누핑(DHCP Snooping)이란?
DHCP 스누핑은 허용되지 않은 DHCP 트래픽을 차단하는 2계층(Layer 2) 보안 기술입니다. 네트워크 스위치 운영체제에 내장된 이 기술은 승인받지 않은 DHCP 서버가 DHCP 클라이언트에게 IP 주소를 제공하는 것을 방지합니다.
DHCP 릴레이(DHCP Relay)란?
릴레이 에이전트는 클라이언트와 서버 사이에서 DHCP 패킷을 전달하는 호스트입니다. 네트워크 관리자는 릴레이 에이전트를 활용해 서로 다른 물리적 서브넷에 있는 클라이언트와 서버 간의 요청 및 응답을 전달할 수 있습니다.