DHCP全称是 Dynamic Host Configuration Protocol,中文名为动态主机配置协议,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议。
一、Solaris DHCP 服务器和Solaris DHCP的工作流程
Solaris DHCP服务器在主机系统的Solaris操作系统中作为一个守护进程运行。该服务器有两个基本功能:
1、管理 IP 地址-DHCP 服务器控制一组 IP 地址并将它们或永久性地分配给客户机,或在一段特定时间内分配给客户机。服务器使用租用机制来确定客户机可以使用非永久性地址的时间。当地址不再使用时,会返回到池中并可重新指定。服务器将 IP 地址与客户机的绑定信息保留在其 DHCP 网络表中,以确保地址不会被多台客户机使用。
2、为客户机提供网络配置-服务器指定 IP 地址并提供网络配置的其他信息,例如,主机名、广播地址、网络子网掩码、缺省网关、名称服务,以及可能的更多信息。这些网络配置信息从服务器的 dhcptab 数据库中获取。
    Solaris DHCP的工作流程如图1 ,一共六个步骤:
跟小段一起学Solaris(17)---DHCP服务
    1. 发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
    2. 提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息。
    3. 选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
    4. 确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
    5. 重新登录,以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP NACK否认信息。当原来的DHCP客户机收到此DHCP NACK否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。
    6. 更新租约,DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。
二、使用DHCP管理程序配置服务器环境

    DHCP 管理程序是可用于执行与 DHCP 服务关联的所有管理功能的图形用户界面 (graphical user interface, GUI) 工具。此工具除了用于管理服务器之外,还可用于管理服务器所用的数据。您必须以超级用户身份运行 DHCP 管理程序。我们能够在DHCP管理程序实现:
? 配置和取消配置 DHCP 服务器
? 启动、停止和重新启动 DHCP 服务器
? 禁用和启用 DHCP 服务
? 自定义 DHCP 服务器设置
Solaris DHCP 管理程序包括以下步骤:
        1. 终端中输入命令:./usr/sadm/admin/bin/dhcpmgr。当您在没有配置 DHCP 的服务器上运行 DHCP 管理程序时,屏幕上会显示以下信息。您可以指定是要配置 DHCP 服务器还是要配置 BOOTP 中继代理
跟小段一起学Solaris(17)---DHCP服务  
        2. 启动配置向导,首先选择数据存储格式。
        选择 DHCP 服务器将用来存储配置数据的数据存储类型。可用的类型有:文本文件 数据存储在纯文本的 ASCII 文件中。适用于数目较少的客户机(最多 10,000 台)。数据可通过 NFS 在多个 DHCP 服务器间共享。 NIS+ 数据存储在 NIS+ 表中。适用于客户机数量中等或较大的情况(最多 40,000 台)。数据可在多个 DHCP 服务器间共享。如果服务器尚未配置为 NIS+ 客户机,则不能选择 NIS+ 选项。要使用 NIS+ 数据存储类型,请退出向导,将服务器配置为 NIS+ 客户机,然后再运行 DHCP 管理器。 二进制文件 数据存储在二进制文本文件中。适用于客户机数量较大的情况(最多 100,000 台)。数据“不”能在多个 DHCP 服务器间共享。
跟小段一起学Solaris(17)---DHCP服务
        3. 选择存储文件的位置
        如果选择了“文本文件”或“二进制文件”数据存储类型,则要输入数据的路径(缺省值 = /var/dhcp)。如果选择了 NIS+,则要输入 NIS+ 服务器的网域(缺省值 = 本服务器的网域)。
跟小段一起学Solaris(17)---DHCP服务
        4. 选择主机命名服务
        选择 DHCP 服务器登记主机名时应该使用的名称服务,这些主机名与 DHCP 服务器分配给客户机的 IP 地址关联。
跟小段一起学Solaris(17)---DHCP服务
        5. 指定租用策略
        输入租用到期前的时间长度。租用是 DHCP 服务器授权 DHCP 客户机使用特定地址的时间量。您可以输入 1 小时到 3550 周。租用时间值应相对小一点,以便可以快速回收失效的地址;但也要足够大,以便在出现 DHCP 服务不可用的情况时,在运行 DHCP 服务的机器修复之前,客户机能继续运行。根据以往的经验,指定的时间应两倍于预测的服务器停机时间。例如,如果更换故障部件并重新引导服务一般需要四小时,则应指定八小时的租用时间。
        缺省设置允许客户机在租用到期前重新协商租用。当租用期间过半时,客户机将尝试更新租用。 如果不允许重新协商,则客户机必须发出新的 DHCP 请求,以便在租用期满时获取新地址。如果所处环境中的客户机比地址多,并且需要强制限制 IP 地址的使用时间,则可以选择此选项。
跟小段一起学Solaris(17)---DHCP服务
        6. 指定DNS域名和服务器地址
        DNS 域服务器将主机名解析为主机地址。如果服务器配置为使用 DNS,则将显示域名和 DNS 服务器的地址。如果字段为空,则可以输入域名和 DNS 域服务器地址。我们可以输入多个服务器的地址。列表中的顺序将决定服务器的查询顺序。
跟小段一起学Solaris(17)---DHCP服务
        7. 指定DHCP网络地址和子网掩码
跟小段一起学Solaris(17)---DHCP服务
        8. 指定DHCP工作的网络类型和路由器
        网络类型: 指定网络是局域网 (LAN) 还是点对点 (PPP)。路由选定 :由器是一台具有多个网络接口的机器,可以将 IP 包从一个网络转发到另一个网络。在多数情况下,客户机应使用路由器搜索来连接到一个路由器。如果网络中有不能使用路由器搜索的客户机,则可输入一个路由器的 IP 地址,使客户机可以与其他网络中的系统通信。
跟小段一起学Solaris(17)---DHCP服务
        9. 依次指定NIS和NIS+ 域名、服务器地址
跟小段一起学Solaris(17)---DHCP服务
跟小段一起学Solaris(17)---DHCP服务
        10. 检查以前配置选项
跟小段一起学Solaris(17)---DHCP服务
        最后一步检查以前配置选项,确认没有修改的地方后点击“完成”按钮结束服务器工作环境的配置。完成对向导提示的回答时,DHCP 管理程序会创建下列选项:
? 服务配置文件 /etc/inet/dhcpsvc.conf : 记录服务器配置选项的关键字和值。
? dhcptab 表 : DHCP 管理程序会在 dhcptab 表不存在的情况下创建该表。
? 语言环境宏:其名为 Locale  包含本地时区相对于标准时间 (Universal time, UTC) 的偏移(以秒为单位)。
? 服务器宏:其名称与服务器的节点名称相匹配, 包含由配置 DHCP 服务器的管理员的输入来决定值的选项。
? 网络地址宏:其名称与客户机网络的网络地址相同, 包含由配置 DHCP 服务器的管理员的输入来决定值的选项。这些选项适用于所有驻留在宏名称所指定的网络上的客户机。
? 网络的网络表: 在您为该网络创建 IP 地址之前,会创建一个空白的表。 直到您添加了 IP 地址之后才有内容。
三、运行地址向导,给服务器配置地址。
配置DHCP服务器之后,会弹出一个对话框询问是否运行地址向导,点击是。
跟小段一起学Solaris(17)---DHCP服务
        1. 指定IP地址数目,在这里我分配10个IP地址进行测试。
跟小段一起学Solaris(17)---DHCP服务
        2. 这里我们要输入地址范围的第一个IP地址,然后向后类推刚才的数目。
跟小段一起学Solaris(17)---DHCP服务
        3. 这里我们能够看到刚才添加的IP地址。
跟小段一起学Solaris(17)---DHCP服务
        4. 这里要我们输入客户机的配置信息,可以用宏。以后我们会在网络安装Solaris时具体的说一下,如何用宏来配置客户机信息。
跟小段一起学Solaris(17)---DHCP服务
        5. 这里我们选择客户机的租用类型。
跟小段一起学Solaris(17)---DHCP服务
        6. 检查一下刚才的配置信息,准确无误的话就点击完成吧!
跟小段一起学Solaris(17)---DHCP服务
四、用客户机来检测Solaris的DHCP服务器是否可用
        配置地址向导之后,我们必须点击服务查看一下当前的DHCP服务状态。如果是停止的话,就要点击启动使刚才的配置生效。如果是启动的话,我们要点击重新启动。否则刚才的配置不生效。
跟小段一起学Solaris(17)---DHCP服务
        先用我的Windows2003虚拟机检测一下。HoHo~没问题的!
跟小段一起学Solaris(17)---DHCP服务
        再用我的WindowsXP虚拟机试试呢?也没问题!
跟小段一起学Solaris(17)---DHCP服务
        刚才我们使用两台客户机从DHCP服务器获取了IP地址,这在DHCP管理程序中能够发现。
跟小段一起学Solaris(17)---DHCP服务
        好,用我的物理机获取一个。
跟小段一起学Solaris(17)---DHCP服务
跟小段一起学Solaris(17)---DHCP服务
        OK,今天我们就到这里吧,配置DHCP服务器能够看出很明显的效果,也很有实际意义,以后我们一起来实现多台客户机共享上网。