需要电脑或手机IP 地址才能上网。刘有两台电脑和两部手机,小梅有一台笔记本电脑、一台平板电脑和两部手机,老王、阿里、敏敏也有几台终端设备。若为每台设备手动配置IP 地址,会很麻烦,一点也不方便。特别是手机、笔记本电脑、平板电脑等设备,每次移动到新的地方,访问不同的网络,都必须重新设置 IP 地址,真的太麻烦了。
于是就有了DHCP协议,会自动配置设备的网络参数包括 IP 地址、子网掩码、网关地址DNS 替代手动配置的服务器等。还能统一 IP 网络管理方便地址分配。
DHCP 简介DHCP协议是从BOOTP协议发展而来。但 BOOTP 在相对静态的环境中运行,每个设备都配备了特殊的配置 BOOTP 在相当长的时间内,参数文件将保持不变。DHCP 面对以下两个方面 BOOTP 扩展:
DHCP 允许设备动态地获取IP 地址,而不是每个主机地址的静态指定。DHCP 其他配置参数可以分配,客户端只需要一个消息就可以得到它需要的所有配置信息。使用大刘的设备 DHCP 功能完成后,只要连接到网络,就可以进行 TCP/IP 通信。对于路由器和交换机,通常是手动配置 IP 地址等参数。
DHCP 是一种Client/Server 模式网络协议,由 DHCP Client 向 DHCP Server 提出配置申请,DHCP Server 返回为 DHCP Client 配置信息。这里的 Client 和 Server 是应用程序,可在计算机、服务器、路由器等设备上运行。
举个栗子:
大刘的电脑启动后,自动运行 DHCP Client ,DHCP Client 主动去其他设备 DHCP Server 提出请求,DHCP Server 根据预配置策略,返回相应的策略 IP 配置信息,DHCP Client 使用获得的 IP 与其他设备通信配置信息。
DHCP 分配机制DHCP 根据网络需求提供两种地址分配机制 Client 选择不同的分配策略。
DHCP 分配机制DHCP 根据网络需求提供两种地址分配机制 Client 选择不同的分配策略。动态分配机制:通过 DHCP 为 Client 分配一个有使用期限的 IP 地址。如果 Client 未及时续约,达到使用期限后,该地址可能会被其他地方续约 Client 使用。绝大多数 Client 使用这种动态分配地址。静态分配机制
:通过 DHCP 为特定的 Client 分配固定的 IP 地址。固定 IP 地址可以永久使用, Client 通常是打印机、服务器等设备。
在实际情况下,我们发现 DHCP Client 重启后,也可以得到相同的 IP 地址。DHCP Server 为 DHCP Client分配 IP 地址时,采用如下的顺序:DHCP Server 中与 DHCP Client 的 MAC 地址静态绑定的 IP 地址;DHCP Client曾经使用过的 IP 地址;首先找到的可用性 IP 地址。
若找不到可用的 IP 依次查询地址超过租期、
发生冲突的 IP 如果找到地址,就分配,否则报错处理。DHCP 系统组成
DHCP 系统由DHCP Server( DHCP 服务器)、
DHCP Client( DHCP 客户端)、DHCP Relay( DHCP 中继)等组成。DHCP Server
DHCP Server 提供网络参数给 DHCP Client ,通常是一个 DHCP 服务器或网络设备(路由器或三层交换机)具有服务功能。DHCP ServerDHCP Server 提供网络参数给 DHCP Client ,通常是一个 DHCP 服务器或网络设备(路由器或三层交换机)具有服务功能。例如:家庭使用
无线路由器。DHCP ClientDHCP Client 通过 DHCP Server获取网络参数,通常是主机或网络设备。例如:大刘的电脑、小美的
手机。DHCP Relay通常,DHCP 通过广播实现报文交互,DHCP 服务仅限于本地网段。如果需要跨网段实现 DHCP ,那么使用DHCP Relay技术实现。在 DHCP Server 和 DHCP Client 跨网段之间转发 DHCP 报文设备,通常是三层网络设备。DHCP 基本流程DHCP 采用协议报文UDP方式封装,DHCP Server 侦听端口号是67,DHCP Client 的端口号是68
。DHCP 通过发送和接收设备 UDP 67 和 UPD 68 协议交互端口报纸。DHCP 基本工作流程分为4个阶段,即
发现阶段、提供阶段、请求阶段、确认阶段。假设大刘的 PC 是一台新电脑,下面将描述 PC
第一次是如何通过 DHCP 获取 IP 地址的。描述方便,DHCP Server简称小 S,DHCP Client
简称小 C。
1、发现阶段小 C本地网段广播一个DHCP Discover目的是找到可以分配的报纸 IP 地址的小 S。
2、提供阶段本地网段的小 S收到 DHCP Discover 报文后,回应
DHCP Offer报文。DHCP Offer 报文包含可用性IP 地址和其它网络参数。
小 C 通过对比Discover 报文和 Offer 报文中的
xid 字段判断是否相同 Offer 报纸是否发给自己。3、请求阶段
小 C 会收到 小 S 发送的 DHCP Offer 报文。如果有多个 小 S,那么每个 小 S 都会回应 DHCP Offer 报文。通常 小 C 会选择最先收到的 Offer 报文,广播DHCP Request哪个是报文表示的 小 S 选择,剩下的 小 S 就凉凉了。如果 小 C 一段时间后一直没收到
DHCP Offer 然后它会重新发送报纸 DHCP Discover 报文。4、确认阶段
小 S收到 DHCP Request 广播报文后,发送
DHCP Ack报文作为回应,包括 小 C 网络参数。DHCP Ack 报文和之前 DHCP Offer 报文的参数不能有冲突,否则 小 S 会回应一个DHCP Nak报文。当 小 C 收到 DHCP Ack 报文后,会发送免费 ARP探测报纸,获得目的地址 IP 如果没有使用地址,那么 小 C 使用此地址并完成配置。DHCP 租期从 DHCP 协议上看,小 S
才有 IP 地址的所有权,而小 C只有 IP 地址的使用权。小 S 每次给 小 C 分配一个 IP 地址时,会约定一个 IP 地址的租期,通常是 24 小时。租期小 C 使用相应的 IP 地址。当租期到期后,小 C 将不能继续使用这个 IP 地址。当然,租期还没到期,小的 C 是可以申请续租这个 IP 地址的。T1租期到了一半
的时候,T2租期到了87.5%的时候。在 T1 时刻 小 C 会单播
一个DHCP Request报文给 小 S ,请求续租IP 地址。如果 小 C 收到了DHCP Ack回应报文,说明续租成功
。如果直到
T2时刻,小 C 都未收到 DHCP Ack 回应报文,然后会广播发送一个 DHCP Request 继续要求续租 IP 地址。如果 小 C 收到了 DHCP Ack 回复报文,说明续租成功。如果直到租期到期, 小 C 都未收到 DHCP Ack 必须回应报文
停止使用原来的 IP 地址。 小 C 从发现阶段开始,重新来申请一个 IP 地址。
DHCP Relay
动态获取 IP 使用地址广播报文发生的方式,所以 DHCP 只适用于 小 C 和 小 S 在
同一个子网内的情况。如果每个网段配置一个 小 S ,这显然太浪费了。实际上还有DHCP Relay这种角色。小 C 通过 DHCP Relay 实现跨网段与 小 S 通信,获取 IP 地址。这样,多个子网上 小 C 可使用同一个 小 S ,既节约成本,又便于集中管理。DHCP Relay 的工作原理如下:小 C 发送 DHCP Discover 或 DHCP Request广播报文,具有 DHCP Relay 接收功能网络设备后,报文将根据配置进行单播给指定的 小 S ;小 S 进行 IP 地址分配,单播发送给 DHCP Relay ,DHCP Relay 再次配置信息广播给 小 C ,完成对 小 C 动态配置。DHCP 协议报文前面提到的内容 DHCP 的一些报文类型,现在讲讲 DHCP 主要的8 种报文类型。常见的 5 报文类型有:DHCP Discover
、DHCP Offer、DHCP Request、DHCP Ack和DHCP Release,用得少的 3 报文类型有:DHCP Nak、DHCP Decline和DHCP Inform。DHCP Discover 报文它是 DHCP Client 第一次接入网络,DHCP 交互过程的第一个报文,用来寻找 DHCP Server请求报文。DHCP Offer 报文它是 DHCP Server 用来回应 DHCP Discover 并携带报文网络参数,包括:IP 地址、子网掩码、默认网关、DNS 服务器等。DHCP Offer 报文它是 DHCP Server 用来回应 DHCP Discover 并携带报文网络参数,包括:IP 地址、子网掩码、默认网关、DNS 服务器等。DHCP Request 报文它是 DHCP Client 发送的报途: 根据