Next Previous Contents

4. DHCP服务器安装配置

4.1 安装

        ~# aptitude install dhcp3-server dhcp3-common
当前版本 3.0.4-6

安装过程中会自动创建 /etc/default/dhcp3-server

4.2 配置文件:

        /etc/dhcp3/dhcpd.conf
        /etc/init.d/dhcp3-server

        http://www.isc.org/sw/dhcp/

/etc/dhcp3/dhcpd.conf通常包括三部分:parameters、declarations 、option。

parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。

        参数                            解释

        ddns-update-style               配置DHCP-DNS 互动更新模式。

        default-lease-time              指定确省租赁时间的长度,单位是秒。

        max-lease-time                  指定最大租赁时间长度,单位是秒。

        hardware                        指定网卡接口类型和MAC地址。

        server-name                     通知DHCP客户服务器名称。

        get-lease-hostnames flag        检查客户端使用的IP地址。
                        
        fixed-address ip                分配给客户端一个固定的地址。

        authritative                    拒绝不正确的IP地址的要求。

declarations (声明):用来描述网络布局、提供客户的IP地址等:

        声明                            解释

        shared-network                  用来告知是否一些子网络分享相同网络。

        subnet                          描述一个IP地址是否属于该子网。

        range 起始IP 终止IP             提供动态分配IP 的范围。

        host                            主机名称参考特别的主机。

        group                           为一组参数提供声明。

option(选项):用来配置DHCP可选参数,全部用option关键字作为开始:

        选项                            解释

        subnet-mask                     为客户端设定子网掩码。

        domain-name                     为客户端指明DNS名字。

        domain-name-servers             为客户端指明DNS服务器IP地址。

        host-name                       为客户端指定主机名称。

        routers                         为客户端设定默认网关。

        broadcast-address               为客户端设定广播地址。

        ntp-server                      为客户端设定网络时间服务器IP地址。

        time-offset                    为客户端设定和格林威治时间的偏移时间,单位是秒。

下边是一个简单的配置文件示例:

        $ cat /etc/dhcp3/dhcpd.conf

        ddns-update-style none;

        authoritative;

        log-facility local7;

        subnet 192.168.100.0 netmask 255.255.255.0 {
          range 192.168.100.129 192.168.100.200;
          option domain-name-servers 202.98.198.168, 202.98.192.68;
          option domain-name "mydebian.org";
          option routers 192.168.100.1;
          option broadcast-address 192.168.100.255;
          default-lease-time 600;
          max-lease-time 7200;
        }


        host hostname  {
          hardware ethernet 00:0C:29:44:73:BE;
          fixed-address 192.168.100.128;
        }

4.3 服务器的启动与停止

dhcp服务器的启动

        ~# /etc/init.d/dhcp3-server start

dhcp服务器的停止

        ~# /etc/init.d/dhcp3-server stop

dhcp服务器的重启

        ~# /etc/init.d/dhcp3-server restart

当出现错误时,可以通过查看日志文件/var/log/syslog来获取详细的错误信息,以找出错误所在!

如果主机上装有多个网卡,则可以通过修改/etc/default/dhcp3-server文件,来指定DHCP服务器监听的接口, 比如

        $ cat /etc/default/dhcp3-server

        INTERFACES="eth0 eth1"

则指定DHCP服务器仅对第一,二块网卡接口进行监听,也可以通过直接修改/etc/init.d/dhcp3-server服务器启动脚本的INTERFACES项来指定要监听的端口, 比如

        INTERFACES="eth0"

仅对第一块网卡接口进行监听

4.4 租期数据库

在 DHCP 服务器第一次启动时, 会自动创建 /var/lib/dhcp3/dhcpd.leases 文件, 用于存放DHCP 的客户租期信息。不应该对该文件进行手动修改。每分配一个IP地址, 相关信息就会自动写入该文件。这些信息包括租期的长度;IP 地址被分配的对象;租期的开始和终止日期; 以及客户机的网卡 MAC 地址。

该中所用的时间是格林威治标准时间(GMT)。随着IP地址的分配,该文件不时的被重建:首先,所有已知的租期会被储存到一个临时的租期文件中,dhcpd.leases 文件被重命名为 dhcpd.leases ,然后,临时租期数据库被写入 dhcpd.leases 文件。

在租期数据被重命名为备份文件,新文件被写入之前,DHCP 守护进程有可能被杀死,系统也有可能会崩溃。如果发生了这种情况,启动服务所需的 dhcpd.leases 文件就不会存在。这时,请不要创建新租期文件。因为这样做会丢失所有原有的旧租期文件,从而导致更多问题。正确的办法是把 dhcpd.leases  备份文件重命名为 dhcpd.leases,然后再启动守护进程。

        tonybox:~# ls -l /var/lib/dhcp3/
        total 8
        -rw-r--r-- 1 root root 1664 2006-09-13 00:36 dhcpd.leases
        -rw-r--r-- 1 root root 1664 2006-09-12 05:36 dhcpd.leases~

管理员可以通过查看/var/lib/dhcp/dhcpd.leases文件来监督IP资源的分配情况。

dhcpd.leases文件的格式如下:

        Leases address {statement}

下边是我的dhcpd.leases文件中的一部分:

        lease 192.168.100.200 {#DHCP服务器分配的IP地址#
          starts 1 2006/09/11 19:54:26;# lease 开始租约时间#
          ends 1 2006/09/11 20:04:26;# lease 结束租约时间#
          tstp 1 2006/09/11 20:04:26;
          binding state active;
          next binding state free;
          hardware ethernet 00:0c:29:44:73:be;#客户机网卡MAC地址#
        }

4.5 DHCP 客户端的配置

如果客户端通过DHCP服务器来获取相关的网络信息的话, 可以做如下操作: 修改/etc/network/interfaces为如下内容:

        auto lo
        iface lo inet loopback

        auto eth0
        iface eth0 inet dhcpi
完成后, 重启网络服务:
        # /etc/init.d/network restart
使用 ifconfig 命令, 来检查效果


Next Previous Contents