DHCP(Dynamic Host Configuration Protocol)
DHCP 프로토콜은 동적으로 호스트 IP를 부여하기 위한 프로토콜이다.
참고: 위키백과, http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
RFC 2131, http://tools.ietf.org/html/rfc2131
DCHP 호스트 상태 및 동작 원리
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 메시지는 옵션의 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) + 값(가변)
0 - Padding(1), 길이와 값이 없음
1 - Subnet Mask, 2 - Time Offset, 3 - Router, 4 - Time Server
5 - Name Server, 6 - Domain Name Server, 7 - Log Server
8 - Cookie Server, 9 - LPR Server, 10 - Impress Server
11 - Resource Location Server, 12 - Host Name
13 - Boot File Size, 14 - Merit Dump File, 15 - Domain Name
16 - Swap Server, 17 - Root path, 18 - Extensions Path
19 - IP Forwarding Enable/Disable, 20 - Non Local Source Routing Enablbe/Disable
21 - Policy Filter, 22 - Maximum Datagram Reassembly Size
23 - Default IP TTL, 24 - Path MTU Aging Timeout, 25 - Path MTU Plateau Table
26 - Interface MTU, 27 - All Subnets are Local, 28 - Broadcast Address
29 - Perform Mask Discovery, 30 - Mask Supplier, 31 - Perform Router Discover
32 - Router Solicitation Address, 33 - Static Route
34 - Trailer Encapsulation Option, 35 - ARP Cache Timeout, 36 - Ethernet Encapsulation
37 - TCP Default TTL, 38 - TCP Keepalive Interval, 39 - TCP Keepalive Garbage
40 - Network Information Service Domain, 41 - Network Information Servers
42 - Network Time Protocol Servers, 43 - Vendor Specific Information
44 - NetBIOS over TCP/IP Name Server, 45 - NetBIOS over TCP/IP Datagram Distribution Server
46 - NetBIOS over TCP/IP Node Type, 47 - NetBIOS over TCP/IP Scope
48 - X Window System Font Server, 49 - X Window System Display Manager
50 - Requested IP Address, 51 - IP Address Lease Time
52 - Option Overload
53 - DHCP Message Type
1:Discover, 2:Offer , 3: Request, 4: Decline 5: Ack ,6: NAK, 7: Release, 7: Inform
54 - Server Identifier, 55 - Parameter Request List
56 - Message, 57 - Maximum DHCP Message Size
58 - Renewal Time Value, 59 - Rebinding Time Value
60 - Vendor class identifier, 61 - Client Identifier
64 - Network Information Service and Domain, 65 - Network Information Service and Servers
66 - TFTP Server name, 67 - Bootfile name
68 - Mobile IP Home Agent, 69 - SMTP Server, 70 - POP3 Server
71 - NNTP Server, 72 - WWW Server, 73 - Default Finger Server
74 - Default IRC Server, 75 - StreetTalk Server, 76 - STDA Server
81 - Client Full Domain Name: 길이(1), Flags(1)
Flags(비트) - 예약 4, 서버 업데이트 1, ASCII Encoding 1, Override 1, Server of Client 1
116 - DHCP Auto: 길이(1), 자동여부(1, 0:수동, 1:자동)
255 - End of option
다른 네트워크 프로토콜
[프로그래밍 기술/TCPIP 프로토콜] - ethernet
[프로그래밍 기술/TCPIP 프로토콜] - ARP(Address Resolution Protocol)
[프로그래밍 기술/TCPIP 프로토콜] - ICMPv4
[프로그래밍 기술/TCPIP 프로토콜] - TCP(Transmission Control Protocol,RFC 675, RFC 793)
[프로그래밍 기술/TCPIP 프로토콜] - UDP(User Datagram Protocol, RFC 768)
'네트워크 및 보안 > TCPIP 프로토콜' 카테고리의 다른 글
DNS(Domain Name System, RFC 1034) (0) | 2015.02.03 |
---|---|
TCP(Transmission Control Protocol,RFC 675, RFC 793) (0) | 2015.02.02 |
UDP(User Datagram Protocol, RFC 768) (0) | 2015.02.02 |
ICMPv4 (0) | 2015.02.02 |
ARP(Address Resolution Protocol) (0) | 2015.02.02 |
IPv4 (0) | 2015.02.02 |
ethernet (0) | 2015.02.02 |