~/network/dhcp
IP 주소 & 할당

DHCP

Dynamic Host Configuration Protocol

DHCP는 네트워크에 접속하는 단말에 IP 주소와 통신에 필요한 설정 정보를 자동으로 할당하는 프로토콜이다. 사무실에서 노트북을 켜기만 해도, 카페에서 Wi-Fi에 접속하기만 해도 별도 설정 없이 인터넷이 되는 이유가 바로 DHCP이다.

왜 필요한가

IP 통신을 하려면 단말은 최소한 다음 정보가 필요하다.

  • IP 주소
  • 서브넷 마스크
  • 기본 게이트웨이 주소
  • DNS 서버 주소

이를 모두 사용자가 수동으로 설정한다면:

  • 사용자에게 매우 번거롭다.
  • 단말이 수십 ~ 수천 대로 늘어나면 관리자 입장에서 IP 충돌 관리가 거의 불가능에 가깝다.

DHCP는 이 모든 정보를 단말에 자동으로 배포하여 이 문제를 해결한다.

DORA 4단계

DHCP는 클라이언트가 IP를 할당받기까지 4단계를 거치며, 머리글자를 따 DORA라고 부른다.

DHCP DORA 4단계 다이어그램: Discover, Offer, Request, Acknowledge 메시지의 송수신 흐름
단계의미보내는 쪽패킷 종류
DiscoverDHCP 서버 탐색클라이언트브로드캐스트
OfferIP 제안서버브로드캐스트(또는 유니캐스트)
RequestIP 요청클라이언트브로드캐스트
Acknowledge확인/할당 완료서버브로드캐스트

1. Discover (탐색)

새로 접속한 클라이언트는 아직 IP가 없으므로, 같은 네트워크에 있는 DHCP 서버를 찾기 위해 브로드캐스트를 보낸다.

  • 출발지 IP: 0.0.0.0 (자신의 IP를 모름)
  • 목적지 IP: 255.255.255.255 (브로드캐스트)
  • UDP 포트: 클라이언트 68 → 서버 67
    • DHCP 서버: 라우터
    • DHCP 클라이언트: 라우터 이더넷 인터페이스, PC

2. Offer (제안)

DHCP 서버는 사용 가능한 IP 정보를 골라 클라이언트에게 제안한다. IP 주소뿐 아니라 게이트웨이, DNS, 임대 시간 같은 설정도 함께 보낸다.

여러 DHCP 서버가 응답할 수도 있는데, 클라이언트는 보통 가장 먼저 도착한 Offer를 선택한다.

3. Request (요청)

클라이언트는 제안받은 정보로 "이 IP를 정식으로 사용하겠다"고 다시 브로드캐스트한다. 다른 서버들에게도 "그 제안은 거절한다"는 의미를 동시에 전달하기 위해 브로드캐스트로 보낸다.

4. Acknowledge (확인)

선택된 서버가 "OK, 임대 기간 동안 사용하세요"라고 응답한다. 이 시점부터 클라이언트는 받은 IP로 통신을 시작한다.

주요 DHCP 옵션

DHCP 서버는 IP 주소 외에도 다양한 설정 정보를 옵션 번호로 식별해 전달한다.

옵션이름설명
1Subnet Mask서브넷 마스크
3Router기본 게이트웨이
6DNS ServerDNS 서버 주소
15Domain Name도메인 이름
51IP Lease TimeIP 임대 시간
66TFTP Server부팅 서버 (PXE 부팅용)
67Bootfile Name부팅 파일명
121Classless Static Route정적 경로 추가

옵션 66, 67은 단말이 OS 없이 네트워크 부팅(PXE)할 때 부팅 이미지를 어디서 받아올지 알려주는 용도로, 데이터센터 자동화나 PC 일괄 배포 환경에서 자주 쓰인다.

Lease (임대) 개념

DHCP가 할당한 IP는 영구적이지 않고 임대(lease) 개념으로 동작한다.

  • 임대 시간이 만료되기 전에 클라이언트가 자동으로 갱신(renew) 요청
  • 보통 lease time의 절반(T1) 시점에 첫 갱신 시도
  • 갱신 실패하면 lease time의 7/8(T2) 시점에 다른 서버에도 요청
  • 끝까지 갱신 못 하면 IP를 반납하고 다시 Discover부터 시작

일반적인 lease time:

  • 가정용 공유기: 24시간
  • 사무실 환경: 4 ~ 8시간 (짧게 설정해 자주 회수)
  • 게스트 Wi-Fi: 1 ~ 2시간 (단기 사용 환경)

DHCP Relay

DHCP는 브로드캐스트 기반인데, 라우터는 기본적으로 브로드캐스트를 다른 서브넷으로 전파하지 않는다. 즉 DHCP 서버가 다른 서브넷에 있으면 클라이언트의 Discover가 서버에 도달하지 않는다.

이 문제를 해결하기 위해 DHCP Relay (또는 IP Helper) 가 사용된다.

  • 라우터/L3 스위치에 설정한다
  • 클라이언트의 DHCP 브로드캐스트를 받아 유니캐스트로 변환해 DHCP 서버로 전달한다
  • 응답도 다시 클라이언트에게 전달한다

대규모 네트워크에서는 보통 다음과 같이 운영한다.

  • 중앙에 1~2대의 DHCP 서버를 두고
  • 각 게이트웨이(VLAN별 L3 인터페이스)에 DHCP Relay를 설정
  • 모든 서브넷의 단말이 중앙 DHCP 서버에서 IP를 받음

정적 IP vs DHCP

구분정적 IPDHCP
설정 방식수동자동
적합한 단말서버, 프린터, 네트워크 장비PC, 노트북, 스마트폰
장점주소 고정, 외부 접근 일관성관리 편의, 충돌 방지
단점관리 부담, 충돌 위험IP가 바뀔 수 있음

대부분의 환경에서는 다음 조합을 쓴다.

  • 사용자 단말 → DHCP
  • 서버, 네트워크 장비 → 정적 IP (또는 DHCP 예약/MAC 기반 고정 할당)

DHCP 예약(reservation) 은 특정 MAC 주소에 항상 같은 IP를 할당해주는 기능이다. 단말 입장에서는 DHCP로 받지만, 결과적으로 IP는 고정되어 정적 IP의 장점도 함께 누릴 수 있다.

보안 이슈

DHCP는 인증 없이 동작하는 프로토콜이라 다음과 같은 공격이 가능하다.

  • Rogue DHCP Server: 공격자가 DHCP 서버를 띄워 잘못된 게이트웨이/DNS를 배포 → 트래픽 가로채기
  • DHCP Starvation: 가짜 클라이언트 다수가 IP를 모두 가져가 정상 단말이 IP를 못 받게 함

방어 수단으로 스위치 단에서 사용하는 기능:

  • DHCP Snooping: 신뢰할 수 있는 포트(서버 포트)에서만 DHCP 응답을 허용
  • Port Security: 한 포트의 MAC 수 제한
  • Dynamic ARP Inspection: DHCP Snooping 정보를 기반으로 ARP 위조 차단

정리

  • DHCP는 단말이 네트워크 설정을 자동으로 받게 하는 기본 프로토콜이다
  • DORA(Discover → Offer → Request → Acknowledge) 4단계로 동작한다
  • IP뿐 아니라 게이트웨이, DNS, 부팅 정보 등 여러 설정을 옵션 번호로 함께 배포한다
  • 다른 서브넷의 DHCP 서버를 쓰려면 라우터에 DHCP Relay를 설정해야 한다
  • 사용자 단말은 DHCP, 서버·장비는 정적 IP(또는 예약)가 일반적인 운영 방식이다
  • DHCP는 인증이 없는 프로토콜이라 DHCP Snooping 같은 보호 기능을 함께 쓰는 것이 권장된다