动态主机配置协议 (DHCP) 基础知识

您所在的位置:网站首页 dhcp无响应 动态主机配置协议 (DHCP) 基础知识

动态主机配置协议 (DHCP) 基础知识

2024-07-09 03:37| 来源: 网络整理| 查看: 265

动态主机配置协议 (DHCP) 基础知识 项目 04/11/2023

动态主机配置协议 (DHCP) 是由 RFC 1541(已被 RFC 2131 取代)定义的标准协议,它允许服务器向客户端动态分发 IP 地址和配置信息。 通常,DHCP 服务器至少向客户端提供以下基本信息:

IP 地址

子网掩码

默认网关

也可以提供其他信息,例如域名服务 (DNS) 服务器地址和 Windows Internet 名称服务 (WINS) 服务器地址。 系统管理员使用解析到客户端的选项来配置 DHCP 服务器。

更多信息

下列 Microsoft 产品提供 DHCP 客户端功能:

Windows NT Server 版本 3.5、3.51 和 4.0

Windows NT Workstation 版本 3.5、3.51 和 4.0

Windows 95

用于 MS-DOS 的 Microsoft 网络客户端版本 3.0

用于 MS-DOS 的 Microsoft LAN Manager 客户端版本 2.2C

用于 Windows for Workgroups 版本 3.11、3.11A 和 3.11b 的 Microsoft TCP/IP-32

不同的 DHCP 客户端支持从 DHCP 服务器接收的不同选项。

以下 Microsoft 服务器操作系统提供 DHCP 服务器功能:

Windows NT Server 版本 3.5

Windows NT Server 版本 3.51

Windows NT Server 版本 4.0

当客户端在配置为接收 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: Client Identifier”字段中的值是相同的。

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) = DHCP: Boot File Name (file) = 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.255。 DHCP 部分将数据包标识为 Offer。 YIADDR 字段填充有服务器为客户端提供的 IP 地址。 请注意,CHADDR 字段仍包含请求客户端的物理地址。 此外,我们在“DHCP Option Field”部分服务器发送的各种选项以及 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) = DHCP: Boot File Name (file) = 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 部分将数据包标识为 Request 使用“DHCP: Requested Address”字段验证提供的地址。 “DHCP: Server Identifier”字段显示提供租约的 DHCP 服务器的 IP 地址。

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) = DHCP: Boot File Name (file) = 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。 YIADDR 字段包含客户端的地址,CHADDR 和“DHCP: Client Identifier”字段是请求方客户端中网卡的物理地址。 “DHCP Option”部分将数据包标识为 ACK。

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) = DHCP: Boot File Name (file) = 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

如果客户端以前已分配 DHCP 的 IP 地址,并且它已重新启动,则客户端将专门请求以前租用的 IP 地址,以特殊的 DHCPREQUEST 数据包。 源地址为 0.0.0.0,目标地址为广播地址 255.255.255.255。 Microsoft 客户端将使用以前分配的地址填充“DHCP Option”字段“DHCP: Requested Address”。 严格符合 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) = DHCP: Boot File Name (file) = 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 服务器的行为取决于使用的操作系统版本以及其他因素(如超级复制)。 如果服务器确定客户端仍然可以使用该地址,它将保持无提示或 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) = DHCP: Boot File Name (file) = 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 数据包仍会尝试租用相同的地址。 在许多情况下,客户端将获取相同的地址,但可能不会。

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) = DHCP: Boot File Name (file) = 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 for Workgroups 客户端上的 IP 信息,请使用 IPCONFIG 实用工具。 如果客户端是 Windows 95,请使用 WINIPCFG。

参考

有关 DHCP 的详细信息,请参阅 RFC1541 和 RFC2131。 可以通过 Internet 在多个站点上获取 RFC,例如:http://www.rfc-editor.org/ 和 http://www.tech-nic.qc.ca/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3