1. DHCP 메세지 타입 (유형 코드)
ㅇ DHCPDISCOVER (1) : 클라이언트가 서버를 찾기위해 브로드캐스팅하는 메세지 (탐색)
ㅇ DHCPOFFER (2) : 서버가 클라이언트에게 할당 후보 IP 주소 제시 (제안)
ㅇ DHCPREQUEST (3) : 서버를 선택한 클라이언트가 원하는 구성 요청 (요청)
- 후보로 제시된 IP 주소의 사용을 요청
- IP 주소의 유효기간 연장을 요청
ㅇ DHCPDECLINE (4) : 이미 사용중인 중복 주소임을 알고서 거부함 (요청 수락 거부)
ㅇ DHCPACK (5) : 긍정 응답 (요청 수락)
ㅇ DHCPNACK (6) : 부정 응답 (요청 거부)
- 클라이언트의 요청 사항을 서버가 거부
ㅇ DHCPRELEASE (7) : 클라이언트가 정상적인 해제를 서버에게 요청
- 통상, 클라이언트는 그냥 전원을 끄므로, 후에 다시금 DHCPREQUEST로써 유효기간 연장 요청
ㅇ DHCPINFORM (8) : 클라이언트가 주소 정보 이외 추가 설정 정보를 얻기 위해 사용
- 즉, 주소 설정 정보 이외의 추가 정보의 요청
ㅇ DHCPFORCERENEW (9)
ㅇ DHCPLEASEQUERY (10)
ㅇ DHCPLEADEUNASSIGNED (11)
ㅇ DHCPLEASEUNKNOWN (12)
ㅇ DHCPLEASEACTIVE (13)
2. DHCPDISCOVER 메세지 (탐색)
ㅇ 처음에 클라이언트가 DHCP 서버를 탐색하는 브로드캐스트 메세지
- 출발지 IP 주소 : 0.0.0.0
- 목적지 IP 주소 : 255.255.255.255 (브로드캐스트)
ㅇ DHCP 메세지 포멧 내 필드
- op 필드 : 1 (clinet -> server) (요청 BOOTREQUEST)
- flags 필드 : Broadcast (`1000 0000 0000 0000`)
- xid 필드 : 클라이언트가 선택하는 랜덤한 32 비트짜리 수
. (요청 및 응답을 짝짓는데 사용)
- ciaddr 필드 : Zero IP Address 값을 써넣음
. (아직 미확정이므로 편의상 0.0.0.0)
- chaddr 필드 : 자신의 MAC 주소를 써넣음
3. DHCPOFFER 메세지 (제안)
ㅇ 클라이언트 DHCPDISCOVER 메세지에 서버가 할당 후보 IP 주소를 제시/응답하는 메세지
- 출발지 IP 주소 : DHCP 서버의 IP 주소
- 목적지 IP 주소 : 255.255.255.255 (브로드캐스트)
ㅇ DHCP 메세지 포멧 내 필드
- op 필드 : 2 (server -> client) (응답 BOOTREPLY)
- flags 필드 : Bradcast (`1000 0000 0000 0000`)
- yiaddr : Your IP Address (4 바이트)
. 클라이언트에 할당 IP 주소를 제시/제안
- giaddr : Gateway IP Address (4 바이트)
. 디폴트 게이트웨이 IP 주소
- options
. 임대기간 : DHCP Lease Time
4. DHCPREQUEST 메세지 (요청)
ㅇ 클라이언트가 DHCP 서버에게 자신이 사용할 구성정보의 내역을 알려주며 요청
- 출발지 IP 주소 : 0.0.0.0
- 목적지 IP 주소 : 255.255.255.255 (브로드캐스트)
ㅇ DHCP 메세지 포멧 내 필드
- op 필드 : 1 (clinet -> server) (요청 BOOTREQUEST)
- flags 필드 : Broadcast (`1000 0000 0000 0000`)
- siaddr : 클라이언트가 선택한 DHCP 서버의 IP 주소
- ciaddr : 클라이언트 자신이 사용하려는 IP 주소
- xid : 클라이언트가 선택하는 랜덤한 32 비트짜리 수
. (요청 및 응답을 짝짓는데 사용)
5. DHCPACK 메세지 (요청 수락)
ㅇ DHCP 서버가 클라이언트 자신이 사용할 구성정보 제안에 대한 수락 메세지
- 출발지 IP 주소 : DHCP 서버의 IP 주소
- 목적지 IP 주소 : 255.255.255.255 (브로드캐스트)
ㅇ DHCP 메세지 포멧 내 필드
- op 필드 : 2 (server -> client) (응답 BOOTREPLY)
- flags 필드 : Broadcast (`1000 0000 0000 0000`)
- xid : 클라이언트가 선택하는 랜덤한 32 비트짜리 수
. (요청 및 응답을 짝짓는데 사용)
- yiaddress : Your IP Address (4 바이트)
- options