2.11.5DHCP/BOOTP
1.DHCP/BOOTP概述
BOOTP是一种基于UDP的协议,主要用于无盘工作站从服务器获得自己的IP地址、服务器的IP地址以及启动映像文件名。BOOTP使用UDP 67号和68号端口。UDP 67号用于服务,UDP 68号用于BOOTP客户端。
BOOTP原来是用于无磁盘主机连接到网络上的,可以自动地为那些主机设定TCP/IP环境。但BOOTP在设定前需获得客户端的硬件地址,而且分配的IP是静态的,这样会造成IP资源的浪费。
DHCP从原有的BOOTP协议发展而来,可以说是BOOTP的增强版。DHCP引入了“租约”的概念,可以有效且动态地分配客户端的TCP/IP设置,使网络管理员能够集中管理和自动分配IP网络地址。
DHCP分为两个部分:服务器端和客户端。DHCP服务器集中管理IP地址的动态分配以及网络上启用DHCP客户端的其他相关配置信息,并负责处理客户端的DHCP要求;而客户端则使用从服务器分配下来的IP网络配置数据。DHCP也使用UDP 67号和68号端口。UDP 67号用于DHCP服务器,UDP 68号用于DHCP客户端。
目前,BOOTP和DHCP都得到了普遍使用,其中,DHCP更为先进。操作系统都带有DHCP服务器,DHCP或BOOTP客户端是装在计算机中的一个程序,这样就可以对其进行配置操作。
2.引导程度协议(Bootstrap Protocol,BOOTP)的工作原理
(1)引导请求(BOOTP REQUEST)。客户端启动时,由于本身没有IP地址,这时BOOTP客户端就以广播的形式发出一个名为BOOTP REQUEST的IP地址查询请求包,这个请求包中包含了客户端MAC地址,也可能有一个IP地址(如果已经有IP地址)。客户端使用地址255.255.255.255发送广播,然后等待服务器的响应。如果在特定时间段内没有收到响应,客户端就重新发出请求。
(2)引导应答(BOOTP REPLY)。服务器通过发送一个引导应答包响应客户端的请求,请求信息中包含“通用”引导文件名,例如Unix或ethertIP。因此,服务器发送引导应答包时,它使用对应的引导文件的确切路径名称来取代这个字段。为了确定路径名,服务器会查询本身的数据库。这个数据库关联了客户端地址、请求文件名和为用户定制的特殊引导文件。如果请求(BOOTP REQUEST)文件名是空,服务器就返回一个文件名字段用于表示客户端需加载的默认文件。
在客户端IP地址未知的情况下,服务器必须要有一个MAC地址与IP地址相对应的数据库。客户端IP地址也被放到BOOTP REPLY的某一字段中。
3.DHCP的工作原理
DHCP提供3种IP地址分配方式:
(1)自动分配(Automatic Allocation)。客户端第一次成功地从DHCP服务器端租用到IP地址后,就永远使用这个地址。
(2)手动分配(Manual Allocation)。管理员分配给客户的IP地址,DHCP将地址传递给客户。
(3)动态分配(Dynamic Allocation)。客户端从DHCP服务器端租用到IP地址后,并非永远使用该IP,只要租约到期,客户端就要释放IP地址。当然,客户端可以比其他主机更优先地更新租约,或者租用其他的IP地址。