1. DHCP 확장 옵션
ㅇ DHCP 메세지 내용 대부분은, DHCP 패킷 마지막 부분에 옵션 형태로 포함됨
- 원래 BOOTP에 없었던 필드들은 모두 옵션 형태로 전달
- 결국 DHCP 메세지는 BOOTP 메세지와 동일하면서 확장한 형태 임
ㅇ BOOTP 및 DHCP 비교
- BOOTP
. 원래 크게 요청 및 응답이라는 단지 2개 유형 만으로 구분이 가능
. 그 크기가 300 바이트 짜리 고정 크기 임
- DHCP
. 옵션 내 유형 정의를 통해 복잡하고 매우 많은 유형 정의 가능
. 그 크기는 옵션에 따라 가변 길이임
.. 실제적인 크기를 한정짓는 것은 상위 UDP에서 담당함
ㅇ DHCP 옵션 내용
- 메세지의 성격(DHCP 메세지 타입, 53)에 따라,
. 추가적 정보들을 나타내는 가변의 옵션들로 구성
- DHCP 각 옵션은, 8 비트 옵션 유형 타입(option type/tag/code)으로 시작함
※ [참고] ☞ IANA의 DHCP,BOOTP 파라미터들(옵션 목록)
2. DHCP 메세지 확장 옵션 포멧
3. DHCP 옵션 구성
ㅇ 항상, 최초 4 바이트가 99(0x63),130(0x82),83(0x53),99(0x63)로 되어있음
- 이를 magic number 또는 magic cookie라고 불리움
ㅇ 각 옵션 필드들은 tag-length-value 형식을 갖춤
- Option type/tag/code : 옵션 유형 (8 비트)
- Option length : 옵션 길이 (8 비트)
- Option value/data : 옵션 유형에 따라 달라지는 그 자체의 내용 포함 (가변 길이)
ㅇ (비고)
- 옵션 길이는, `옵션 코드` 및 `옵션 길이` 필드를 미포함한 순수한 옵션 데이터 길이임
- 매 옵션 길이는, 255 바이트 이내가 원칙이나 이또한 초과도 가능
- 옵션 유형 태그/코드 = 255 이면, 옵션 리스트의 끝을 나타냄
4. DHCP 옵션 유형 (8 비트)
ㅇ 0 : 패딩 옵션
- 1 바이트 크기이며, 워드 정렬을 위해 사용
ㅇ 1 : 서브넷마스크
ㅇ 3 : 라우터 IP 주소
ㅇ 6 : Domain Name Server IP 주소
ㅇ 15 : Domain Name
- [참고] ☞ PQDN 참조
ㅇ 50 : Requested IP Address
- 서버의 DHCPOFFER 메세지 내 포함 제시된 IP 주소
ㅇ 51 : DHCP Lease Time
ㅇ 53 : DHCP 메세지 타입 ☞ DHCP 메세지 주요 유형 참조
- 1 (DHCPDISCOVER) : 클라이언트가 서버 탐색 (탐색)
- 2 (DHCPOFFER) : 서버가 클라이언트에게 할당 후보 IP 주소 제시 (제안)
- 3 (DHCPREQUEST) : 서버를 선택한 클라이언트가 원하는 구성 요청 (요청)
- 4 (DHCPDECLINE) : 이미 사용중인 중복 주소임을 알고서 거부함 (요청 수락 거부)
- 5 (DHCPACK) : 긍정 응답 (요청 수락)
- 6 (DHCPNACK) : 부정 응답 (요청 거부)
- 7 (DHCPRELEASE) : 정상적인 해제
- 8 (DHCPINFORM) : 클라이언트가 주소 정보 이외 추가 설정 정보를 얻기 위해 사용
ㅇ 54 : Server Identifier
- DHCPOFFER 메세지를 준 서버의 IP 주소 (여러 서버인 경우, 이를 구분하는 식별자로 삼음)
ㅇ 55 : Parameter Request List
ㅇ 56 : DHCP Error Message
ㅇ 58 : DHCP Renewal Time
ㅇ 59 : DHCP Rebinding Time
ㅇ 61 : Client Identifier
ㅇ 119 : Domain Search List
ㅇ 255 : 옵션 리스트 끝
※ [참고] ☞ IANA의 BOOTP,DHCP 파라미터 할당 내역