더북(TheBook)

2.7.1 DHCP

사설 서브넷 망에 물린 여러 호스트의 고유 IPv4 주소를 일일이 할당하는 건 관리하는데 여간 고역이 아니다. 특히 노트북이나 스마트폰 등 모바일 기기를 추가해야 할 때는 더욱 그렇다. DHCP(dynamic host configuration protocol, 동적 호스트 설정 프로토콜)를 사용하면 기기를 네트워크에 물리기만 하면 DHCP가 설정을 자동으로 관리해 준다.

DHCP 클라이언트가 설치된 호스트를 네트워크에 물리면, DHCP 클라이언트가 호스트의 MAC 주소를 DHCPDISCOVER 메시지에 담아 UDP 주소 255.255.255.255:67에 브로드캐스트한다. 서브넷상 모든 호스트에 메시지가 전달되므로, 이 중 DHCP 서버가 있다면 이 메시지를 받게 된다. 새 클라이언트에 할당해 줄 IP 주소가 있다면 DHCP 서버는 DHCPOFFER 패킷을 보내준다. 이 패킷에는 할당할 IP 주소와 해당 클라이언트의 MAC 주소가 기재되어 있다. 이때까지는 아직 클라이언트에 IP 주소가 할당된 상태는 아니므로 패킷을 직접 되돌려 줄 수는 없다. 대신 서버는 패킷을 전체 서브넷에 UDP 포트 68로 브로드캐스트한다. 그러면 모든 DHCP 클라이언트가 패킷을 받게 될 터인데, 각자 메시지의 MAC 주소를 확인하고 자신이 그 호스트인지 확인한다. 해당 클라이언트가 메시지를 받으면, 할당된 IP 주소를 확인하여 이 주소를 받아들일지 결정한다. 받아들이기로 했다면 DHCPREQUEST에 제공된 주소를 담아 다시 브로드캐스트한다. 아직 요청이 유용하다면 서버는 다시 브로드캐스트로 DHCPACK 메시지를 보낸다. 이 최종 메시지로 새 클라이언트의 IP가 확정되었음을 알리며, 아울러 이 메시지에 서브넷 마스크, 라우터 주소, 추천 DNS 서버 정보 등 부가 네트워크 정보도 같이 담아 보낸다.

DHCP 패킷의 정확한 형식과 확장 DHCP 정보에 대해서는 2.11 더 읽을거리 절에서 RFC 2131을 참고하자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.