dhcp的工作过程:
1.客户机请求ip
  客户机广播一个dhcp discover包,UDP的67端口,源ip0.0.0.0 目的ip255.255.255.255(有限广播)。还包括客户机的MAC和主机名
2.服务器响应
  服务器受到请求,检查ip地址池,如果有ip,广播一个dhcp offer包,UDP的68端口,源ip为服务器的ip,目的ip为255.255.255.255 ,还包括如下信息:客户端的MAC,服务器提供的ip,子网掩码,租约,服务器的ip
3.客户机选择
  使用收到的第一个dhcp offer包,并发送dhcp request包广播,使用UDP的67端口,源ip0.0.0.0目的ip 255.255.255.255
4.服务器确认
  dhcp服务器受到dhcp request包后,会以dhcp ACK包向客户端广播,确认成功。使用UDP的68端口,源ip为服务器的ip,目的ip为255.255.255.255,客户端收到dhcp ACK包后,即可使用ip地址。

DHCP服务器的安装包文件,dhcp开头的文件,安装盘上有。
相关配置文件:
/etc/dhcpd.conf           主配置文件,默认没有,需要手动建立
/etc/sysconfig/dhcpd      DHCP服务使用的网络接口
/etc/sysconfig/dhcrelay   多网段下的dhcp中继代理配置,
/var/lib/dhcpd/dhcpd.leases  dhcp服务的租约文件
/etc/rc.d/init.d/dhcpd       dhcp的启动脚本
/etc/rc.d/init.d/dhcrelay    dhcp中继代理的启动脚本
/usr/sbin/dhcpd              dhcp服务的执行文件
/usr/sbin/dhcrelay           dhcp中继代理服务的执行文件
/usr/share/doc/dhcp-3.0.4/dhcpd.conf.sample         dhcp的配置模板文件(一般情况下,可以复制此文件作为主配置文件)

以下为主配置文件模板的说明:

ddns-update-style interim;                                   //dhcp与dns的动态更新方式。
ignore client-updates;                                       //客户端的更新方式。

subnet 192.168.0.0 netmask 255.255.255.0 {                   //网段的声明,以下大括号中的都是本网段的配置信息。

# --- default gateway
    option routers            192.168.0.1;        //分配给主机的默认网关
    option subnet-mask        255.255.255.0;             //分配给主机的子网掩码

    option nis-domain        "domain.org";              //linux的nis域名,(可以没有)
    option domain-name        "domain.org";              //域名,
    option domain-name-servers    192.168.1.1;               //域名服务器的地址,(dns)

    option time-offset        -18000;    # Eastern Standard Time          //国际标准时间差
#    option ntp-servers        192.168.1.1;               //ntp网络时间服务器地址
#    option netbios-name-servers    192.168.1.1;               //netBIOS名称服务器地址(wins服务器)
# --- Selects point-to-point node (default is hybrid). Don't change this unless     //选择点到点模式,一般不要修改,除非你非常懂NetBIOS
# -- you understand Netbios very well
#    option netbios-node-type 2;                            //NetBIOS的模式为2 ,(不明白,反正现在用不着)

    range dynamic-bootp 192.168.0.128 192.168.0.254;       //可以分配的ip地址段
    default-lease-time 21600;                              //默认租约时间, 6小时,企业应用应改为43200秒
    max-lease-time 43200;                                  //最长租约时间,12小时。

    # we want the nameserver to appear at a fixed address  //保留的ip地址
    host ns {                                              //主机声明。
        next-server marvin.redhat.com;                  //主机名称(可以没有)
        hardware ethernet 12:34:56:78:AB:CD;            //主机的网卡地址(注意和Windows的表示方法不同)
        fixed-address 207.175.42.254;                   //主机使用的ip地址
    }
}

配置实例:
一般情况下,如果有多个网段,但dns可能只有一台或两台服务器,而且每个网段的配置都想同,所有加入全局配置即可
租约时间,默认是6小时,但我们工作的上班时间为8小时多,期间还要换ip地址,所以改为12小时比较合理
多个网段,在三层交换上配置DHCP中继代理。
如果Linux服务器有多个网卡,需在/etc/sysconfig/dhcpd 文件中指定提供DHCP服务的网卡接口
在/etc目录下建立dhcpd.conf 内容如下

ddns-update-style interim;
ignore client-updates;

option domain-name-servers    192.168.1.1,202.106.0.20;
default-lease-time 43200;
max-lease-time     50000;
subnet 192.168.1.0 netmask 255.255.255.0 {

    option routers        192.168.1.1;
    option subnet-mask        255.255.255.0;
    option domain-name        "domain1.org";
    option time-offset        -18000;   

    range dynamic-bootp 192.168.1.10 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {

    option routers        192.168.2.1;
    option subnet-mask        255.255.255.0;
    option domain-name        "domain2.org";
    option time-offset        -18000;   

    range dynamic-bootp 192.168.2.10 192.168.2.254;
}

重启服务 service dhcpd restart

此文档由  秘飞虎 (qq:815889476 mail:[email protected]) 整理,如果转载,请保留作者,及联系方式。