1、Linux操作系统 第 9章 动态主机配置协议 DHCP 9.1 DHCP简介 9.2 DHCP的配置 9.3 DHCP服务器的高级配置 9.4 DHCP故障排除 习题 Linux操作系统 9.1 DHCP 简 介9.1.1 为什么需要 DHCPTCP/IP协议目前已经成为互联网的公用通信协议,在局域网上也是必不可少的协议。用 TCP/IP协议进行通信时,每一台计算机 (主机 )都必须拥有一个 IP地址用于在网络上标识自己。如果 IP地址的设置是由系统管理员在每一台计算机上手工进行设置,把它设定为一个固定的 IP地址时,就称为静态 IP地址。 Linux操作系统 设定静态的 IP地址是常见的方
2、法之一,但在许多场合并不适用。如果网络的规模较大,系统管理员给每一台计算机分配 IP地址的工作量就会很大,而且常常因为用户不遵守规则而会出现错误,例如:导致 IP地址的冲突等。在把大批计算机从一个网络移动到另一个网络或者改变部门计算机所属子网时,同样存在改变 IP地址的工作量大的问题。随着笔记本电脑的普及,移动办公也是大家习以为常的事,当电脑从一个网络移动到另一网络时,则每次移动也需要改变 IP地址,并且移动的电脑在每个网络都需要占用一个 IP地址。Linux操作系统 我们再来看看 IP地址的占用问题。如果某个网络上有 200台计算机,采用静态 IP地址时,每台计算机都需要预留一个 IP地址,
3、即共需要 200个 IP地址。然而这200台计算机并不同时开机,假如只有 20台计算机同时开机,我们就浪费了 180个 IP地址。这种情况对于ISP(Internet Service Provider)来说,是一个十分严重的问题,如果 ISP有 100 000个用户,难道需要 100 000个IP地址不成?因此必须要有方法解决这个问题。DHCP(Dynamic Host Configuration Protocol)就是应这个需求而诞生的。采用 DHCP的方法配置计算机 IP地址的方案称为动态 IP地址。Linux操作系统 在动态 IP地址的方案中,每台计算机并不设定固定的 IP地址,而是在计
4、算机开机时才被分配一个 IP地址,这台计算机被称为 DHCP客户端 (DHCP Client)。而负责给 DHCP客户端分配 IP地址的计算机称为 DHCP服务器。也就是说 DHCP是采用客户 /服务器 (Client/Server)模式,有明确的客户端和服务器角色的划分。 DHCP服务器在给 DHCP客户分配 IP地址 (即 IP地址租用 )的时候,还会有租用时间的限制,超过租用时间时, DHCP服务器就把这个 IP地址回收。 Linux操作系统 回收的 IP地址可以重新分配给另一个 DHCP客户,这样 IP地址就被重复使用,大大提高了 IP地址的利用率。移动的计算机在不同的网络上开机时,将
5、会获得它所在网络上的 DHCP服务器分配的有效 IP地址,也就不必手工更改 IP地址的设置了。由于 DHCP客户是在开机的时候自动获得 IP地址的,因此并不能保证每次获得的 IP地址是相同的。动态 IP地址方案可以减少管理员的工作量是显而易见的,只要 DHCP服务器正常, IP地址的冲突是不会发生的。要大批量更改计算机的所在子网或其他 IP参数,只要在 DHCP服务器上进行即可。Linux操作系统 9.1.2 BOOTP引导程序协议DHCP是对 BOOTP的扩展,所以我们要先介绍BOOTP(BOOTstrap Protocol)。 BOOTP也称为自举协议,它使用 UDP来使一个工作站自动获取
6、配置信息。为了获取配置信息,协议软件广播一个 BOOTP请求报文,收到请求报文的 BOOTP服务器查找出发出请求的计算机的各项配置信息 (如 IP地址、默认路由地址、子网掩码等 ),将配置信息放入一个 BOOTP应答报文,并将应答报文返回给发出请求的计算机。 Linux操作系统 这样,一台计算机就获得了所需的配置信息。由于计算机发送 BOOTP请求报文时还没有 IP地址,因此它会使用全广播地址作为目的地址,而使用全 “0”作为源地址, BOOTP服务器可使用广播 (Broadcast)将应答报文返回给计算机,或使用收到的广播帧上的 MAC地址进行单播 (Unicast)。Linux操作系统 但
7、是, BOOTP设计用于相对静态的环境,管理人员创建一个 BOOTP配置文件,该文件定义了每一个主机的一组 BOOTP参数。配置文件只能提供主机标识符到主机参数的静态映射,如果主机参数没有要求变化,BOOTP的配置信息通常保持不变。配置文件不能快速更改,此外管理员必须为每一主机分配一个 IP地址,并对服务器进行相应的配置,使它能够理解从主机到IP地址的映射。由于 BOOTP是静态配置 IP地址和 IP参数的,不可能充分利用 IP地址和减少配置的工作量,因此有必要引入自动机制。Linux操作系统 9.1.3 DHCP动态主机配置协议DHCP是对 BOOTP的扩充,此协议从两个方面对BOOTP进行有力的扩充。第一, DHCP可使计算机通过一个消息获取它所需要的配置信息,例如,一个DHCP报文除了能获得 IP地址,还能获得子网掩码、网关等。第二, DHCP允许计算机快速动态获取 IP地址,为了使用 DHCP的动态地址分配机制,管理员必须配置DHCP服务器使得它能够提供一组 IP地址。任何时候一旦有新的计算机连到网络上,新的计算机与服务器联系,并申请一个 IP地址。服务器从管理员指定的 IP地址中选择一个地址,并将它分配给该计算机。