在linux环境下搭建Dhcp服务器  

(1)首先配置dhcp服务器端---安装dhcp服务:
dhcp-3.0.5-23.el5.i386.rpm dhcp主要配置包)
 dhcpv6-1.0.10-18.el5.i386.rpm dhcp工具包)
rpm -ivh dhcp-3.0.5-23.el5.i386.rpm (可以使用rpm或者yum安装)
(2)配置dhcp服务器:
rpm -qc dhcp    查看dhcp中可配置的脚本
rpm -ql dhcp |less  查看dhcp包的安装位置
Dhcp的主要配置文件为:/etc/dhcpd.conf  进入进行编译
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
#                                                                                                                
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {      (建立作用域)
# --- default gateway
        option routers                  192.168.10.254;       网管地址:
        option subnet-mask              255.255.255.0;
        option nis-domain               "domain.org";
        option domain-name              "test.ct";                服务器名标识
        option domain-name-servers 222.88.88.88,222.85.85.85;  dns服务器地址与备用地址        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;
        range dynamic-bootp 192.168.10.10 192.168.10.30;                 地址池
        default-lease-time 21600;                                       租约
        max-lease-time 43200;
        # we want the nameserver to appear at a fixed address
        host ns {                                            设置地址绑定
                next-server marvin.redhat.com;
                hardware ethernet 00:0c:29:cf:12:2a;
                fixed-address 192.168.10.2;
        }
r  /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample (在底行使用此方法获取该文件的配置脚本参考)
3)编译完成后  执行下面命令可以检查脚本是否有错,并可根据报错找出位置
[root@luo Server]# service dhcpd configtest
Syntax: OK   (此为没错)
(4)启动dhcp服务
chkconfig   dhcpd  on  或者  service dhcpd  start 
(5)dhcp客户端(linux)获取地址:
在命令行中使用 dhclient工具获取地址,linux dhcp服务器分配地址的顺序是由大到小
dhclient -d eth0   eth0网卡获取地址 

使用linux操作系统搭建dhcp服务器_职场

此时便可以看到获取的地址是192.168.10.30,是从192.168.10.3服务器上获取的
 

使用linux操作系统搭建dhcp服务器_职场_02

我们绑定的主机也获取到了相应的ip
当然对比一下,在windows安装配置dhcp服务器那更是小菜一碟
 

使用linux操作系统搭建dhcp服务器_Missingluo_03

(6)如果网络内存在上千台主机,那么上叙的配置是远远不行的
这里我们需要使用超级作用域了,顾名思义,超级作用域是一个很大域,里面有若干个小的子作用域组成windows下配置如下:
 

使用linux操作系统搭建dhcp服务器_Missingluo_04 使用linux操作系统搭建dhcp服务器_linux_05

那么linux下呢,我们可以这样来:
使用一个 shared-network test{ 子作用域 例如:
ddns-update-style interim;
ignore client-updates;
shared-network test{
subnet 192.168.20.0 netmask 255.255.255.0 {
# --- default gateway
        option routers                  192.168.20.254;
        option subnet-mask              255.255.255.0;
        option nis-domain               "domain.org";
        option domain-name              "test.ct";
        option domain-name-servers      222.88.88.88,222.85.85.85;
        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;
        range dynamic-bootp 192.168.20.10 192.168.20.10;
        default-lease-time 21600;
        max-lease-time 43200;
        # we want the nameserver to appear at a fixed address
}
subnet 192.168.10.0 netmask 255.255.255.0 {
# --- default gateway
        option routers                  192.168.10.254;
        option subnet-mask              255.255.255.0;
        option nis-domain               "domain.org";
        option domain-name              "test.ct";
        option domain-name-servers      222.88.88.88,222.85.85.85;
        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;
        range dynamic-bootp 192.168.10.2 192.168.10.2;
        default-lease-time 21600;
        max-lease-time 43200;
        # we want the nameserver to appear at a fixed address
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 00:0c:29:cf:12:2a;
                fixed-address 192.168.10.2;
        }
}
}
然后检查是否有错:service dhcpd configtest
在重启服务:   service dhcpd restart
 

使用linux操作系统搭建dhcp服务器_休闲_06 使用linux操作系统搭建dhcp服务器_休闲_07

(7)但是每个dns每次获取的都是分配的,若想自己手动配置:
 dns指向参数文件------/etc/resolv.conf
nameserver 222.85.85.85
nameserver 222.88.88.88
则需要编译 /etc/sysconfig/network-scripts/ifcfg-eth0 文件
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.100.255
HWADDR=00:0c:29:5a:46:70
IPADDR=192.168.100.99
NETMASK=255.255.255.0
NETWORK=192.168.100.0
PEERDNS=no              (添加)
ONBOOT=yes
GATEWAY=192.168.100.254
TYPE=Ethernet
(8)此时便可以通过修改/etc/resolv.conf  手工分配dns
 

使用linux操作系统搭建dhcp服务器_休闲_08

9服务器选项作用整个超级作用域,作用域选项作用个子作用域
 

使用linux操作系统搭建dhcp服务器_Missingluo_09