1.客户端利用DHCP取得IP参数的过程:
    1).客户端:利用广播数据包发送搜索DHCP服务器的数据包
        当客户端开机或者重新启动网卡时,客户端住交会发出查找DHCP服务器的UDP数据包(DHCP discover包)给所有物理网段内的计算机,此数据包的来源IP为0.0.0.0目标IP是255.255.255.255 ,所以一般主机接收到此数据包后直接给予丢弃,若局域网有DHCP服务器则进行后续动作。
    2).服务器端:提供客户端网络相关的租约等以供选择 
        DHCP服务器接收到客户端的要求后,会针对客户端的MAC与本身的设置进行如下动作(发送DHCP offer包):
        ----到服务器的日志文件中查找该用户之前是否曾经租用过某个IP,若有且该IP目前无人使用,则提供该IP给客户端;
        ----若配置文件针对该MAC地址提供特定的固定IP时,则提供固定IP给客户端;
        ----若不符合上述两个条件,则随机选取当前没有被使用的IP参数给客户端,并记录这个租约等待客户端的回应。
    3).客户端:决定选择DHCP服务器提供的网络参数并向服务器确认(DHCP request包):
        由于局域网中可能并不只是一台DHCP服务器,但客户端仅能接受一组参数(一般采用先到先用的原则)。当 Client 端接收到响应的讯息之后,Client 端也会对发送一个广播数据包给所有物理网段的主机,告知已经接受该服务器的租约。其他没被接受的服务器则收回IP租约。同时,会以 ARP 封包在网域内发出讯息,以确定来自DHCP 主机发放的 IP 并没有被占用!如果该 IP 已经被占用了,那么 Client 对于这次的DHCP 信息将不接受,而将再次向网域内发出 DHCP 的需求广播封包;若该 IP 没有被占用,则client 可以接受 DHCP 主机所给的网络的参数,那么这些参数将会被使用于 client端的网络设定当中。 
    4).服务器端:记录这次的租约行为,并向客户端发送想要数据包确认(DHCP  ACK包)
        当服务器端收到客户端确认的选择后,服务器会会送确定的响应包,并告知这个网络参数租约的期限,并开始计时。那么该租约何时回到期而被解约?有如下几个情况:
        ----客户端脱机:关闭网络接口(ifdown),重新启动(reboot),关机(shutdown)等,都算是脱机,这时Server就会将该IP回收,并防止Server的备用区。
        ----客户端租约到期:当客户端使用的IP到达期限规定的时间,而没有重新提出DHCP的申请时(一般客户端会在租约的1/2,3/4的时间点上向服务器端提出继续使用该IP的申请),Server会将该IP回收。但客户端可以向DHCP再次要求分配IP。
2.一个局域网的DHCP服务器设置的例子
    ----/etc/dhcp/dhcpd.conf
#整体的环境设定
ddns-update-style    none;    //不要更新DDNS的设置
ignore    client-updates;    //忽略客户端的DNS更新功能
default-lease-time  259200;    //默认租约时间,以秒计算,3天
max-lease-time    518400;    //最大租约时间,6天
option    routers    192.168.1.1;    //默认路由
option    domain-name    "luyx30.no-ip.org";    //给予一个域名
option    domain-name-servers     119.233.255.229,58.22.96.66;    //这个设定会修改/etc/resolv.conf文件内容
##关于动态分配的IP
subnet 192.168.1.0 netmask 255.255.255.0{
    range 192.168.1.100 192.168.1.200;
    host lulu.luyx30.no-ip.org {
        hardware ethernet 00:16:6F:0A:7B:8D;    //客户端网卡MAC地址
        fixed-address    192.168.1.30;    //给予固定的IP地址
    }
}
    ----由于存在多个网卡,所以在CentOS5.X以前需要做一下设置:
####/etc/sysconfig/dhcpd
DHCPDARGS="eth0"
    ----放行防火墙规则,启动服务器,并观察日志文件
/etc/init.d/dhcpd start
tail -n 30 /var/log/messages 
    ----检查服务器的租约文件
cat /var/lib/dhcpd/dhcpd.leases
    ----DHCP客户端设置
    1).在网卡设置中加入以下设置:BOOTPROTO=dhcp
    2).查看客户端租约的信息:cat /var/lib/dhclient/dhclient-eth0.leases
3.使用ether-wake实现远程自动开机
    ----需要BIOS和网卡及主板支持网络唤醒的功能
    ----需要主机接上网线,且电源也是接通的
    ----ether-wake -i eth0 00:16:6F:0A:7B:8D