MFC
DHCP (동적 호스트 구성 프로토콜) 기본 사항
곰돌이짱
2014. 1. 9. 13:08
클라이언트가 DHCP 정보를 받도록 구성 된 후 처음으로 초기화 되 면 서버와의 대화를 시작 합니다.
다음은 클라이언트와 서버 프로세스 패킷 수준 설명을 다음 대화의 요약 테이블.
Source Dest Source Dest Packet MAC addr MAC addr IP addr IP addr Description ----------------------------------------------------------------- Client Broadcast 0.0.0.0 255.255.255.255 DHCP Discover DHCPsrvr Broadcast DHCPsrvr 255.255.255.255 DHCP Offer Client Broadcast 0.0.0.0 255.255.255.255 DHCP Request DHCPsrvr Broadcast DHCPsrvr 255.255.255.255 DHCP ACK
DHCP 클라이언트와 DHCP 서버 간의 자세한 대화는 다음과 같습니다.
DHCPDISCOVER
클라이언트는 DHCPDISCOVER 패킷을 보냅니다. 다음은 네트워크 모니터 캡처 DHCPDISCOVER 패킷을 IP와 DHCP 부분 표시에서 발췌입니다. IP 섹션에는 255.255.255.255 대상 주소 및 원본 주소를 0.0.0.0을 볼 수 있습니다. DHCP 섹션 검색 패킷 패킷에서는 식별 하 고 클라이언트 네트워크 카드의 실제 주소를 사용 하 여 두 위치에 있습니다. 참고 CHADDR 필드 및 DHCP 값: 클라이언트 식별자 필드는 동일 합니다.
IP: ID = 0x0; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 0 (0x0) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x39A6 IP: Source Address = 0.0.0.0 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: Discover (xid=21274A1D) DHCP: Op Code (op) = 1 (0x1) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 556223005 (0x21274A1D) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 0.0.0.0 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP Discover DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e DHCP: Host Name = JUMBO-WS DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06 DHCP: End of this option field
DHCPOFFER
DHCP 서버가 DHCPOFFER 패킷을 보내 응답 합니다. 캡처 발췌 한 아래는 IP 구역의 원본 주소가 DHCP 서버 IP 주소 및 대상 주소는 255.255.255.255 브로드캐스트 주소. DHCP 섹션에서 제공 하는 패킷이 식별합니다. 서버에서 클라이언트를 제공 하는 IP 주소 YIADDR 필드가 채워집니다. 참고 CHADDR 필드 여전히 요청 클라이언트의 실제 주소를 포함합니다. 우리가 참고 DHCP 옵션 필드 섹션에서 IP 주소와 함께 서버에서 전송 되는 다양 한 옵션입니다. 이 경우 서버의 서브넷 마스크, 기본 게이트웨이 (라우터), 임대 기간, WINS 서버 주소 (NetBIOS 이름 서비스) 및 NetBIOS 노드 종류를 보내는 것입니다.
IP: ID = 0x3C30; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 15408 (0x3C30) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x2FA8 IP: Source Address = 157.54.48.151 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: Offer (xid=21274A1D) DHCP: Op Code (op) = 2 (0x2) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 556223005 (0x21274A1D) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 157.54.50.5 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP Offer DHCP: Subnet Mask = 255.255.240.0 DHCP: Renewal Time Value (T1) = 8 Days, 0:00:00 DHCP: Rebinding Time Value (T2) = 14 Days, 0:00:00 DHCP: IP Address Lease Time = 16 Days, 0:00:00 DHCP: Server Identifier = 157.54.48.151 DHCP: Router = 157.54.48.1 DHCP: NetBIOS Name Service = 157.54.16.154 DHCP: NetBIOS Node Type = (Length: 1) 04 DHCP: End of this option field
DHCPREQUEST
클라이언트에서 DHCPREQUEST를 보내 여 DHCPOFFER에 응답 합니다. 아래 캡처의 IP 섹션에서 클라이언트의 소스 주소를 여전히 0.0.0.0 이며 패킷이 대상 여전히 255.255.255.255. 클라이언트를 제공 하는 주소를 사용 하 여 시작 괜찮습니다 서버에서 확인 받은 않은 때문에 클라이언트가 0.0.0.0을 유지 합니다. 대상이 둘 이상의 DHCP 서버 응답 수 있습니다 클라이언트를 제공 하는 서비스에 대 한 예약을 보유 될 수 있기 때문에 브로드캐스트 계속 됩니다. 그러면 이러한 다른 DHCP 서버가 제공 된 주소를 해제 하 고 해당 사용 가능한 풀으로 돌려 수 알고 있습니다. DHCP 섹션 패킷 요청을 식별 하 고 DHCP를 사용 하 여 제공 된 주소를 확인: 요청 주소 필드입니다. : DHCP 서버 식별자 필드에 IP 주소를 임대를 제공 하는 DHCP 서버를 보여 줍니다.
IP: ID = 0x100; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 256 (0x100) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x38A6 IP: Source Address = 0.0.0.0 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: Request (xid=21274A1D) DHCP: Op Code (op) = 1 (0x1) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 556223005 (0x21274A1D) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 0.0.0.0 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP Request DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e DHCP: Requested Address = 157.54.50.5 DHCP: Server Identifier = 157.54.48.151 DHCP: Host Name = JUMBO-WS DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06 DHCP: End of this option field
DHCPACK
DHCP 서버에 따라서 초기화 주기를 완료 하는 DHCPACK DHCPREQUEST에 응답 합니다. 원본 주소는 DHCP 서버 IP 주소 및 대상 주소는 255.255.255.255입니다. 클라이언트 주소 CHADDR 및 DHCP YIADDR 필드 포함: 클라이언트 식별자 필드를 요청 하는 클라이언트의 네트워크 카드의 실제 주소입니다. DHCP 옵션 섹션의 응답 패킷을 식별합니다
IP: ID = 0x3D30; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 15664 (0x3D30) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x2EA8 IP: Source Address = 157.54.48.151 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: ACK (xid=21274A1D) DHCP: Op Code (op) = 2 (0x2) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 556223005 (0x21274A1D) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 157.54.50.5 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP ACK DHCP: Renewal Time Value (T1) = 8 Days, 0:00:00 DHCP: Rebinding Time Value (T2) = 14 Days, 0:00:00 DHCP: IP Address Lease Time = 16 Days, 0:00:00 DHCP: Server Identifier = 157.54.48.151 DHCP: Subnet Mask = 255.255.240.0 DHCP: Router = 157.54.48.1 DHCP: NetBIOS Name Service = 157.54.16.154 DHCP: NetBIOS Node Type = (Length: 1) 04 DHCP: End of this option field
클라이언트가 이전 IP 주소를 할당 하는 DHCP에 다시 시작할 경우 클라이언트는 특히 특수 DHCPREQUEST 패킷을 이전에 임대 된 IP 주소를 요청 합니다. 원본 주소 0.0.0.0은 이며 대상 브로드캐스트 주소가 255.255.255.255입니다. Microsoft 클라이언트는 DHCP 옵션 필드 DHCP 채워집니다: 이전에 할당 된 주소를 사용 하 여 주소를 요청 합니다. 엄격 하 게 준수 하는 RFC 클라이언트 요청한 주소 CIADDR 필드 채워집니다. Microsoft DHCP 서버가 둘 중 하나를 허용 합니다.
IP: ID = 0x0; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 0 (0x0) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x39A6 IP: Source Address = 0.0.0.0 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: Request (xid=2757554E) DHCP: Op Code (op) = 1 (0x1) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 660034894 (0x2757554E) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 0.0.0.0 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP Request DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e DHCP: Requested Address = 157.54.50.5 DHCP: Host Name = JUMBO-WS DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06 DHCP: End of this option field
이 시점에서 서버가 수도 응답 하지 않을 수 있습니다. Windows NT DHCP 서버 동작 superscoping 같은 다른 요인 뿐만 아니라 사용 중인 운영 체제의 버전에 따라 달라 집니다. 서버는 클라이언트가 주소를 계속 사용할 수를 결정 하거나 유지 됩니다 자동 또는 ACK 있는 DHCPREQUEST. 서버가 클라이언트의 주소를 가질 수 없음을 판단, NACK를 보냅니다.
IP: ID = 0x3F1A; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 16154 (0x3F1A) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x2CBE IP: Source Address = 157.54.48.151 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: NACK (xid=74A005CE) DHCP: Op Code (op) = 2 (0x2) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 1956644302 (0x74A005CE) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 0.0.0.0 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP NACK DHCP: Server Identifier = 157.54.48.151 DHCP: End of this option field
클라이언트 검색 프로세스를 시작 합니다 있지만 DHCPDISCOVER 패킷 같은 주소 임대를 계속 시도 합니다. 많은 경우에 tth 클라이언트 같은 주소를 얻게 됩니다 있지만 없을 수 있습니다.
IP: ID = 0x100; Proto = UDP; Len: 328 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Service Type = 0 (0x0) IP: Precedence = Routine IP: ...0.... = Normal Delay IP: ....0... = Normal Throughput IP: .....0.. = Normal Reliability IP: Total Length = 328 (0x148) IP: Identification = 256 (0x100) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = UDP - User Datagram IP: Checksum = 0x38A6 IP: Source Address = 0.0.0.0 IP: Destination Address = 255.255.255.255 IP: Data: Number of data bytes remaining = 308 (0x0134) DHCP: Discover (xid=3ED14752) DHCP: Op Code (op) = 1 (0x1) DHCP: Hardware Type (htype) = 1 (0x1) 10Mb Ethernet DHCP: Hardware Address Length (hlen) = 6 (0x6) DHCP: Hops (hops) = 0 (0x0) DHCP: Transaction ID (xid) = 1053902674 (0x3ED14752) DHCP: Seconds (secs) = 0 (0x0) DHCP: Flags (flags) = 0 (0x0) DHCP: 0............... = No Broadcast DHCP: Client IP Address (ciaddr) = 0.0.0.0 DHCP: Your IP Address (yiaddr) = 0.0.0.0 DHCP: Server IP Address (siaddr) = 0.0.0.0 DHCP: Relay IP Address (giaddr) = 0.0.0.0 DHCP: Client Ethernet Address (chaddr) = 08002B2ED85E DHCP: Server Host Name (sname) = <Blank> DHCP: Boot File Name (file) = <Blank> DHCP: Magic Cookie = [OK] DHCP: Option Field (options) DHCP: DHCP Message Type = DHCP Discover DHCP: Client-identifier = (Type: 1) 08 00 2b 2e d8 5e DHCP: Requested Address = 157.54.51.5 DHCP: Host Name = JUMBO-WS DHCP: Parameter Request List = (Length: 7) 01 0f 03 2c 2e 2f 06 DHCP: End of this option field
클라이언트가 DHCP 서버에서 DHCP 정보 관련 된 임대 시간을 갖게 됩니다. 임대 기간이 클라이언트가 DHCP 할당 정보를 사용 하는 시간을 정의 합니다. 임대 특정 중요 시점에 도달 하면 클라이언트는 DHCP 정보를 갱신할 시도 합니다.
Windows 또는 Windows 작업 클라이언트에 대해 IP 정보를 볼, IPCONFIG 유틸리티를 사용 합니다. 클라이언트가 Windows 95 경우 WINIPCFG를 사용 합니다.