DHCP服务器的工作原理
DHCP简介
DHCP的前身是BOOTP,工作在OSI的应用层。它是一个引导协议,帮助计算机从指定的DHCP服务器获取配置信息。使用DHCP客户机/服务器模式,请求配置信息的计算机称为“DHCP客户机”,而提供信息的计算机称为“DHCP服务器”。为DHCP客户端分配地址有三种方式,分别是手动配置、自动配置和动态配置。DHCP最重要的功能是动态分配。除了IP地址之外,DHCP还为客户端提供了其他配置信息,比如子网掩码,这样客户端就可以自动配置并连接到网络,而不需要用户动手。
为什么使用DHCP?
DHCP在快速发送客户端网络配置方面非常有用。配置客户端系统时,如果管理员选择DHCP,则无需输入IP地址、子网掩码、网关或DNS服务器,客户端会从DHCP服务器检索这些信息。当网络管理员想要更改大量系统的IP地址时,DHCP也很有用。与其重新配置所有系统,不如在服务器中为新的IP地址集编辑一个DHCP配置文件。如果机构的DNS服务器发生变化,只需在DHCP服务器中进行更改,而无需在DHCP客户端中进行更改。一旦客户端网络重新启动(或客户端重新启动系统),更改将生效。此外,如果便携式计算机或任何类型的便携式计算机被配置为使用DHCP,只要每个办公室都有一个允许它联网的DHCP服务器,它就可以在办公室之间自由移动,而无需重新配置。
DHCP的工作流程
1.发现阶段
也就是说,DHCP客户端搜索DHCP服务器。客户端发送DHCP discover信息以广播方式查找DHCP服务器(因为DHCP服务器的IP地址是客户端未知的),即发送特定的广播信息到地址255.255.255.255。网络上安装了TCP/IP的每台主机都会收到此广播信息,但只有DHCP服务器会做出响应。
2.供应阶段
即DHCP服务器提供IP地址的阶段,网络中所有接收到DHCP discover信息的DHCP服务器都会做出响应。它从租用的IP地址中选择一个IP地址并将其分配给DHCP客户端,并向其发送包含租用的IP地址和其他设置的DHCP offer消息。
3.选择阶段
也就是说,DHCP客户端选择由DHCP服务器提供的IP地址。如果不止一个DHCP服务器向DHCP客户端发送DHCP提供信息,DHCP客户端只接受第一个收到的DHCP提供信息。然后它通过广播应答一个DHCP请求消息,该消息包含请求它所选择的DHCP服务器的IP地址的内容。广播该答案以通知所有DHCP服务器,它将选择由DHCP服务器提供的IP地址。
4.确认阶段
也就是说,DHCP服务器确认所提供的IP地址。当DHCP服务器收到DHCP客户端应答的DHCP请求消息时,发送包含DHCP客户端提供的IP地址等设置的DHCP ACK消息,告知DHCP客户端可以使用该IP地址,然后DHCP客户端将其TCP/IP与网卡绑定。此外,除了DHCP客户端选择的服务器之外,所有其他DHCP服务器都将收回提供的IP地址。
5.再次登录。
以后DHCP客户端每次再次登录网络时,不需要发送DHCP discover信息,而是直接发送包含上次分配的IP地址的DHCP请求信息。当DHCP服务器收到此信息时,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP ACK消息。如果该IP地址不能再分配给原来的DHCP客户端(如果该IP地址已经分配给其他DHCP客户端),DHCP服务器将向DHCP客户端回复DHCP NACK消息。当原始DHCP客户端收到此信息时,它必须重新发送DHCP发现信息,以请求新的IP地址。
6.续租
一般DHCP服务器租给DHCP客户端的IP地址是有租期的,租期过后DHCP服务器会收回IP地址。如果一个DHCP客户想要延长它的IP租用,它必须更新它的IP租用。当DHCP客户端启动且IP租期过半时,DHCP客户端会自动向DHCP服务器发送更新其IP租期的信息。
DHCP的设计目标
(1)DHCP应该是一种机制而不是策略。它必须允许本地系统管理员控制配置参数,并且本地系统管理员应该能够有效地管理他们希望管理的资源。
(2)客户端不需要手动配置,而是要在没有参与的情况下找到适合本地机器的配置参数,并使用这些参数进行配置。
(3)不需要为单个客户端配置网络。在正常情况下,网络管理员不需要输入任何预先设计的用户配置参数。
(4)DHCP不需要在每个子网上配置一台服务器。出于经济原因,DHCP服务器必须能够与路由器或BOOTP转发代理一起工作。
(5)DHCP客户端必须能够响应多个DHCP服务器提供的服务。出于网络稳定性和安全性的考虑,有时需要在网络中添加多台DHCP服务器。
(6)DHCP必须使用现有的网络协议静态配置和实现。
(7)DHCP必须能够与BOOTP转发代理互操作。
(8)DHCP必须能够为现有的BOOTP客户端提供服务。
(9)不允许多个客户端同时使用一个网络地址。
(DHCP客户端重启后,仍然可以保留原来的配置参数。如果可能,应该将客户端指定为相同的配置参数。
(DHCP服务器重启后,客户端的配置参数仍然可以保留。如果可能的话,即使重启DHCP机制,也要把原来的配置参数分配给客户端。
(12)能自动为新增客户端提供配置参数。
(13)支持为特定客户永久和固定分配网络地址。
上面(9)~(13)的设计目标是针对网络层参数的设计,这是DHCP必须要做的。
安装DHCP服务器
DHCP配置文件
它可以通过使用RHEL 5.0自带的RPM包来安装。安装完成后,DHCP端口管理程序dhcpd的配置文件是/etc目录下的一个名为dhcpd.conf的文件。让我们手动创建/etc/dhcpd.conf文件。这个文件通常由三部分组成,即参数parameters、声明declarations和option options。
1.1中的参数。DHCP配置文件
参数指示如何执行任务、是否执行任务或向客户端发送哪些网络配置选项。主要参数见表8-1。
DHCP配置文件中的主要参数
参数编号
解释
ddns-更新样式
配置DHCP-DNS交互式更新模式
默认租赁时间
以秒为单位指定默认租赁时间的长度。
最大租赁时间
以秒为单位指定最大租用时间长度。
五金器具
指定NIC接口类型和MAC地址。
服务器名称
通知DHCP客户端服务器名称
get-lease-hostname标志
检查客户端使用的IP地址。
固定地址ip
给客户端分配一个固定地址
权威性的