DHCP(Dynamic Host Configuration Protocol)

DHCP 프로토콜 설명

DHCP 프로토콜은 동적으로 호스트 IP를 부여하기 위한 프로토콜이다.

참고: 위키백과, http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol

RFC 2131, http://tools.ietf.org/html/rfc2131

DHCP 호스트 상태 및 동작 원리
[그림] DHCP 호스트 상태 및 동작 원리

DHCP 호스트 상태 및 동작 원리 설명

INIT: 초기 상태

    DHCP Discover 메시지를 67번 포트를 사용하여 브로드캐스트한다.

SELECTING: 선택 상태

    DHCP Discover 메시지를 보낸 후의 상태이다.

    서버에서 DHCP Offer 메시지를 수신한다.

REQUESTING: 요청 상태

    DHCP Request 메시지를 보낸 후의 상태이다.

BOUND: 바운드 상태

    DHCP ACK를 받은 후의 상태이다.

    임대 시간의 50%가 지나면 DHCP Request를 보내고 RENEWING 상태로 전이한다.

    임대 시간이 만료하면 DHCP Release를 보내고 INIT 상태로 전이한다.

RENEWING: 재설정 상태

    BOUND 상태에서 임대 시간의 50%가 지나 DHCP Request를 보낸 후의 상태이다.

    DHCP ACK를 받으면 다시 BOUND 상태로 전이한다.

    임대 시간의 87.5%가 지나면 DHCP Request를 보내고 REBINIDING 상태로 전이한다.

REBINDING: 재연결 상태

    RENEWING 상태에서 임대 시간의 87.5%가 지나 DHCP Request를 보낸 후의 상태이다.

    DHCP ACK를 받으면 BOUND 상태로 전이한다.

    DHCP NACK를 받으면 INIT 상태로 전이한다.

프로토콜 스택
DHCP 프로토콜 스택

 

DHCP 메시지는 옵션의 op 코드가 53이다.

OP: 요청(1), 응답(2)

HTYPE: ethernet일 때는 1

HLEN: ethernet일 때는 6

HOPS: 패킷이 전달할 때 경유할 수 있는 최대 홉 개수

XID: 요청과 응답을 확인하기 위한 트랜잭션 식별값

SECS: 클라이언트가 부팅 후 경과 시간(단위: 초)

Flags:맨 왼쪽 비트(0:유니 캐스트, 1:브로드 캐스트)만 사용하고 나머지는 0

CIADDR: 클라이언트 IP 주소(모를 때는 0.0.0.0)

YIADDR: 클라이언트 IP 주소, 요청의 응답으로 서버에서 채워줌

SIADDR: 서버의 IP 주소, 요청의 응답으로 서버에서 채워줌

GIADDR: 라우터의 IP 주소, 요청의 응답으로 서버에서 채워줌

CHADDR: 클라이언트 물리 주소

Server Name: 서버의 도메인 이름, 요청의 응답으로 서버에서 선택적으로 채워줌

Boot File name: 부트 파일의 전체 경로명, 요청의 응답으로 서버에서 선택적으로 채워줌

DHCP 쿠키: 0x63(99), 0x82(130), 0x53(83), 0x63(99)

Options: 옵션 OP(1) + 길이(1) + 값(가변)