目录
1 动态主机配置协议 DHCP
1.1 DHCP 使用客户服务器方式
1.2 DHCP 工作方式
1.3 DHCP 中继代理 (relay agent)
1.4 租用期 (lease period)
1.5 DHCP 协议的工作过程
1 动态主机配置协议 DHCP
·动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制,允许一台计算机加入网络和获取 IP 地址,而不用手工配置。
·DHCP 给运行服务器软件、且位置固定的计算机指派一个永久地址,给运行客户端软件的计算机分配一个临时地址。
·在协议软件中,给协议参数赋值的动作叫做协议配置。
·一个协议软件在使用之前必须是已正确配置的。
·具体的配置信息取决于协议栈。
·连接到互联网的计算机的协议软件需要正确配置的参数包括:
·IP 地址
·子网掩码
·默认路由器的
·IP 地址
·域名服务器的 IP 地址
1.1 DHCP 使用客户服务器方式
·需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文 (DHCPDISCOVER),这时该主机就成为 DHCP 客户。
·本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。 DHCP 服务器先在其数据库中查找该计算机的配置信息。
·若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池 (address pool) 中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER)。
1.2 DHCP 工作方式
·DHCP 使用客户服务器方式,采用请求/应答方式工作。
·DHCP 基于 UDP 工作,DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。
(1)需要 IP 地址的主机向 DHCP 服务器广播发送发现报文 (DHCPDISCOVER)
(2)DHCP 服务器回答提供报文 (DHCPOFFER) (单播),提供 IP 地址等配置信息。
1.3 DHCP 中继代理 (relay agent)
问题:每个网络上都需要有 DHCP 服务器吗?
答案:不需要,因为会使 DHCP 服务器的数量太多。
问题:若没有 DHCP 服务器,如何自动获得地址?
解决:每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。
DHCP 中继代理以单播方式转发发现报文
·DHCP 中继代理收到主机广播发送的发现报文后,就以单播方式向 DHCP 服务器转发此报文,并等待其回答。
·收到 DHCP 服务器回答的提供报文后,DHCP 中继代理再将其发回给主机。
1.4 租用期 (lease period)
·DHCP 服务器分配给 DHCP 客户的 IP 地址的临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 协议称这段时间为租用期。
·租用期的数值应由 DHCP 服务器自己决定。
·DHCP 客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求。
1.5 DHCP 协议的工作过程
1:DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文。
2:DHCP 客户从 UDP 端口 68 发送 DHCP 发现报文 DHCPDISCOVER。
3:凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文 DHCPOFFER,因此 DHCP 客户可能收到多个 DHCP 提供报文 。
4:DHCP 客户从几个 DHCP 服务器中选择其中的一个,并向所选择的 DHCP 服务器发送 DHCP 请求报文 DHCPREQUEST。
5:被选择的 DHCP 服务器发送确认报文 DHCPACK,DHCP 客户可开始使用得到的临时 IP 地址了,进入已绑定状态。
·DHCP 客户现在要根据服务器提供的租用期 T 设置两个计时器 T1 和 T2,它们的超时时间分别是 0.5T 和 0.875T。当超时时间到时,就要请求更新租用期。
6:租用期过了一半(T1 时间到),DHCP 发送请求报文 DHCPREQUEST,要求更新租用期。
7:DHCP 服务器若同意,则发回确认报文 DHCPACK。DHCP 客户得到了新的租用期,重新设置计时器。
8:DHCP 服务器若不同意,则发回否认报 DHCPNACK。这时 DHCP 客户必须立即停止使用原来的 IP 地址,而必须重新申请 IP 地址(回到步骤2)。
·若 DHCP 服务器不响应步骤 6 的请求报文 DHCPREQUEST,则在租用期过了 87.5% 时 (T2 时间到),DHCP 客户必须重新发送请求报文 DHCPREQUEST(重复步骤 6),然后又继续后面的步骤。
9:DHCP 客户可随时提前终止服务器所提供的租用期,这时只需向 DHCP 服务器发送释放报文 DHCPRELEASE 即可。
欢迎一起学习~