一、DHCP的功能

     首先﹐必须有一台DHCP工作在网络上面﹐它会监听网络的DHCP请求﹐它提供两种IP租约方式﹕

     Automatic Allocation 

     自动分配﹐其情形是﹕一旦DHCP客户端第一次成功的从DHCP服务器端租用到IP地址之后﹐就永远使用这个地址。

     Dynamic Allocation

     动态分配﹐当DHCP第一次从HDCP服务器端租用到IP地址之后﹐并非永久的使用该地址﹐只要租约到期﹐客户端就得释放(release)这个IP地址﹐以给其它工作站使用。当然﹐客户端也可以延续(renew)租约﹐或是租用其它的IP地址。

     DHCP除了能动态的设定IP地址之外﹐还可以将一些IP保留下来给一些特殊用途的机器使用﹐也可以按照MAC地址来分配固定的IP地址﹐这样可以给您更大的设计空间。同时﹐DHCP还可以帮客户端指定网络﹑网关﹑routerNet MaskDNS服务器﹑WINS服务器﹑等等项目﹐您在客户端上面﹐除了将DHCP选项打勾之外﹐几乎无需做任何的IP环境设定。

二、DHCP 套件结构

    在 DHCP 的套件结构当中,也是仅有一个配置文件。 

        /etc/dhcp/dhcpd.conf:这个就是 dhcp 的主要的配置文件!这个文件不见得会存在,请手动来建立!另外,其实每个 dhcp 套件在安装的时候,都会附上一个范例档案,您可以使用 rpm -ql grep dhcp 来查询到 dhcpd.conf.sample 这个文件!然后将该档案复制成为 /etc/dhcpd.conf 后,在手动去修改/etc/dhcpd.conf 即可,这样设定比较容易咯! 

        /usr/sbin/dhcpd:这个就是 DHCP daemon 执行文件啰!  

        /var/lib/dhcp/dhcpd.leases:租约的启始与到期日就是记录在这个文件中的.

        要做的事情只是修改一个档案﹕/etc/dhcp/dhcpd.conf

        和其它 Linux 设定档一样( lilo.confsmb.conf )﹐一开始是关于 global 的设定﹐其后再分开不同的 section 来设定。有些设定可以同时在 global section﹐但有些则只能用于 global section 里面﹐如果有冲突﹐在 section 里面则以 section 为准﹔如果 section 里面没设﹐则以 global 的设定为准。而 section 里面﹐或许还包括其它 sub-section﹐诸如此类。

 #this file for dhcpd configuration

 #by yahoon 20070619

 #global settins

 default-lease-time 259200;

 max-lease-time 777600;

 ddns-update-style interim; //Redhat下没有这句,dhcp服务无法启动

 #section settings

 subnet 192.168.0.0 netmask255.255.255.0{   //定义网络地址192.168.0.0,子网掩码为24:255.255.255.0

  range 192.168.0.30 192.168.0.50;   //分配的范围从0.300.50

  option broadcast-address 192.168.0.255; //广播地址,注意是根据上面的网络地址,子网掩码计算出来的

  option routers 192.168.0.1; //设定网关

  option domain-name-servers 192.168.0.111,202.103.24.68; //DNS,这个0.111是我昨天配的内网DNS,202.103.24.68是外网的.

 }

 host yahoon{    //对单个主机做MACIP的绑定,即这个MAC分配一个固定的IP,yahoon是待分配客户端的主机名,不重要,会以客户端真实的名称为主

  hardware ethernet 00:0B:6A:DF:1E:F4;   //主机yahoonMAC

  fixed-address 192.168.0.28; //为其固定分配的IP

  option broadcast-address 192.168.0.255; //以下意义的与上面相同

  option routers 192.168.0.1;

  option domain-name-servers 192.168.0.111;

 }

 三、启动 DHCP 服务﹕

 /etc/rc.d/init.d/dhcpd start

 (如果 dhcpd 之前已经跑起来了﹐用 restart代替 start)

 查看端口

 [root@test root]# netstat -utl 会有

udp       0      0 *:bootps                *:*

[root@test dhcp]# netstat -utln 会有

udp       0      0 0.0.0.0:67              0.0.0.0:*

 查看日志

 tail /var/log/messages

 四、测试

 在客户端上改为自动获得IP/DNS,测试效果.特别的yahoon这台机的信息要是

 Physical Address. . . . . . . . . :00-0B-6A-DF-1E-F4

 Dhcp Enabled. . . . . . . . . . . : Yes

 Autoconfiguration Enabled . . . . : Yes

 IP Address. . . . . . . . . . . . :192.168.0.28

 Subnet Mask . . . . . . . . . . . :255.255.255.0

 Default Gateway . . . . . . . . . :192.168.0.1

 DNS Servers . . . . . . . . . . . :192.168.0.111

  

设置完成.