한양과학기술고등학교

에듀테크 프로젝트 대시보드

DHCP

DHCP — IP 주소를 자동으로 나눠주는 원리

노트북을 카페 와이파이에 연결하면 몇 초 만에 인터넷이 된다. 그 사이 DHCP(Dynamic Host Configuration Protocol)가 IP 주소·서브넷 마스크·게이트웨이·DNS 서버 주소를 자동으로 빌려준다. 핵심은 DORA라 불리는 4번의 메시지 교환.

1. 아직 IP가 없는데 어떻게 통신하지?

인터넷 통신은 보통 "내 IP → 상대 IP"로 이뤄진다. 그런데 방금 접속한 기기는 자기 IP도, DHCP 서버 IP도 모른다. 그래서 첫 메시지는 브로드캐스트로 보낸다.

  • 출발지 IP = 0.0.0.0 ("아직 주소 없음")
  • 목적지 IP = 255.255.255.255 (같은 네트워크의 모두에게)
  • 자기를 구분하는 유일한 정보는 MAC 주소(랜카드 고유번호)
  • UDP 포트 67(서버) / 68(클라이언트) 사용

DHCP 서버는 이 브로드캐스트를 듣고, 응답도 (아직 클라이언트에 IP가 없으므로) 브로드캐스트로 돌려준다. 대상은 메시지 안의 MAC 주소로 구분한다.

2. DORA — 4단계 직접 돌려보기

아래 "새 기기 연결" 버튼을 누르면 기기 한 대가 D → O → R → A 순서로 주소를 임대받는다. 서버의 주소 풀은 192.168.0.100 ~ 192.168.0.105 로 6개뿐이라, 계속 누르면 곧 고갈(pool exhausted)되는 것도 볼 수 있다.

1. DISCOVER0.0.0.0 → 255.255.255.255
"DHCP 서버 있나요?"
2. OFFER서버 → 브로드캐스트
"192.168.0.x 쓰세요"
3. REQUEST0.0.0.0 → 브로드캐스트
"그 주소로 할게요"
4. ACK서버 → 확정
임대 시간·게이트웨이·DNS 포함
새 기기
0.0.0.0
DHCP 서버 (공유기)
192.168.0.1
DISCOVER
OFFER
REQUEST
ACK

주소 풀 (192.168.0.100 ~ .105)

임대 테이블 (lease table)

MAC 주소할당 IP남은 임대
아직 임대 없음

3. 왜 REQUEST를 또 브로드캐스트로 보내나?

한 네트워크에 DHCP 서버가 여러 대 있을 수 있다. 그러면 OFFER도 여러 개 온다. 클라이언트는 보통 가장 먼저 온 OFFER를 고르고, REQUEST 안에 "나는 서버 A가 준 192.168.0.103을 선택했다"고 적는다.

이 REQUEST를 브로드캐스트로 보내는 이유: 선택받지 못한 서버 B도 이 메시지를 듣고 "내가 예약해 둔 주소는 취소하고 풀에 되돌려 놓자"라고 알 수 있게 하기 위해서다.

4. 임대(lease)와 갱신 — 영구가 아니다

IP는 빌리는 것이다. ACK에는 임대 시간(예: 24시간)이 들어 있다. 클라이언트는 시간을 다 쓰기 전에 스스로 갱신(renew)한다.

정상 사용
갱신 시도 (T1·T2)
만료
0%T1 = 50% · T2 = 87.5%100%
  • T1 (임대의 50%): 원래 준 서버에게 유니캐스트로 "계속 쓸게요" REQUEST → ACK 받으면 타이머 리셋.
  • T2 (87.5%): 원래 서버가 응답이 없으면, 브로드캐스트로 아무 DHCP 서버에게나 갱신 요청.
  • 100%: 그래도 실패하면 IP를 버리고 처음부터 DISCOVER를 다시 시작한다.
임대 방식 덕분에 카페처럼 손님이 계속 바뀌는 곳에서도 주소가 재활용된다. 노트북을 껐다 나가면 임대가 만료되고 그 IP는 다음 손님에게 다시 나간다.

5. 실제로 확인해 보기

# 리눅스: 현재 임대 정보
$ cat /var/lib/dhcp/dhclient.leases
lease {
  interface "wlan0";
  fixed-address 192.168.0.103;
  option dhcp-lease-time 86400;      # 24시간
  option routers 192.168.0.1;         # 게이트웨이
  option domain-name-servers 192.168.0.1;
  renew   4 2026/09/02 12:00:00;         # T1
  rebind  4 2026/09/02 21:00:00;         # T2
}

# 윈도우: IP 반납 후 새로 받기
> ipconfig /release
> ipconfig /renew

DHCP가 한 번에 알려주는 것: ① IP 주소 ② 서브넷 마스크(CIDR) ③ 기본 게이트웨이(NAT 라우터) ④ DNS 서버(이름 해석). 이 4가지가 있어야 인터넷이 된다.

한 줄 요약 — IP가 없는 기기가 브로드캐스트로 DISCOVER → 서버가 OFFER → 기기가 REQUEST로 하나 선택 → 서버가 ACK로 확정. 주소는 사는 게 아니라 임대라서 절반 시점(T1)부터 갱신하고, 안 되면 만료 후 재활용된다.