DHCP 服务器的架设

DHCP- Dynamic Host Configuration Protocol 动态主机分配协议的缩写,但是它的前身是 BOOTP 该协一般应用在大的网络配置中,可以省去管理员为每个主机配置的 ip 地址,以及在配置中出现 ip 地址冲突。

1 先确认要作为 DHCP 服务器的主机上的 DHCP rpm 包是否安装,

  # rpm  -qa  dhcp

  如果没有安装则需要挂载本地光盘,并安装 dhcp rpmbao

 #mkdir  /media/cdrom  

#mount   /dev/cdrom   /media/cdrom

#cd  /media/cdrom/Server

2 redaht 5.4 上提供的是 dhcp-3.0.5-21.el5.i386.rpm

 #rpm –vhi   dhcp-3.0.5-21.el5.i386.rpm

 warning: dhcp-3.0.5-21.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:dhcp                   ########################################### [100%]

3 在安装完 dhcp rpm 包后,可以查看系统自动为之安装的文件

  Dhcp 的主配置文: etc/dhcpd.conf   但是在 redhat 5.4 上是个空文件,在配置前需要拷贝模板文件, /usr/share/doc/dhcp*/dhcpd.conf.sample 

 

服务脚本文件是: /etc/rc.d/init.d/dhcpd

Dhcp 中继器的脚本文件: /etc/rc.d/init.d/dhcrelay

Dhcp 执行参数文件: /etc/sysconfig/dhcpd

Dhcp 中继器的执行参数文件: /etc/sysconfig/dhcrelay

Dhcp 的租钥文件 /var/lib/dhcpd/dhcpd.leases/

Dhcp 服务器的监听端口是 68 dhcp 中继器服务器的监听端口是 67

4 dhcp 客户端向 dhcp 服务器发送请求的过程分为四个阶段

Dhcpdiscovery  dhcpoffer dhcprequest  dhcpack

因为 dhcp 的主配置文件默认是空的 ,所以 在配置 dhcp 服务器是,应先拷贝主配置文件

 

 

[root@freehat ~]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample  /etc/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

 

subnet 192.168.0.0 netmask 255.255.255.0 {

注: subnet 是指的会 dhcp 服务器中的地址池的 ip 地址所在的网络,但是注意的是 dhcp 服务器的 ip 地址必须在该网络内,不然, dhcp 服务启动不了,显然 netmask 是子网掩码

# --- default gateway

        option routers                  192.168.0.1;

             注:这是 dhcp 客户端在获取 IP 地址时自动获得的网关

        option subnet-mask              255.255.255.0;

             注: dhcp 客户端,获得到的子网掩码

        option nis-domain               "domain.org";

              注: dhcp 客户端在获取地址的同时自动为之配置 nis 服务器的域名、

 

        option domain-name              "domain.org";

             dhcp 获得地址的同时也有获得域名

        option domain-name-servers      192.168.1.1;

           注:为客户指向 dns 服务器

 

        option time-offset              -18000; # Eastern Standard Time

#       option ntp-servers              192.168.1.1;

           该项是指的网络时间服务器

#       option netbios-name-servers     192.168.1.1;

    该项指的是, wins 服务器

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

#       option netbios-node-type 2;

 

        range  192.168.0.10 192.168.0.20

         当然在配置 dhcp 服务器是这是最关键的,应为只是 dhcp 的地址池,当客户端发送请求,服务器端在接到请求是会自动的在地址池中找未用的 ip 地址,但是 Linux 上的 dhcp 服务器是按照从大到小的顺序为客户端分配 ip 地址的

       

        default-lease-time 21600;

             该项是指的是 dhcp 的默认的租用期限

        max-lease-time 43200;

          该项是指 dhcp 的最大热租用期限

   注: dhcp 客户端在获得到 ip 地址 后,当使用的时间达到租期的一半是就会就会向 DHCP 服务器续约,当续约不成功时, dhcp 客户端就会在租约的 87% ,还会继续续约,如果还不能成功是,则客户端还会继续使用当足月到期时,就会释放该 ip 地址,但是在续约是库胡端使用的是单播; dhcp 客户端就会发送 DHCPDISCOVER 包,

 

        # we want the nameserver to appear at a fixed address

 

当然有时,也会为一些主机绑定 ip 地址,因此就可以用下面的 host ,为某些主机

绑定 ip 地址

      Hardware ethernet :该项是指的要绑定主机的 mac 地址

       Fixed-address :是指的是要绑定的 ip 地址

例如         host ns {

                ;

                hardware ethernet 12:34:56:78:AB:CD;

                fixed-address 192.168.1.2;

        }

}

这里我们配置个完整的 dhcp 服务器的过程,当然在配置 dhcp 先安装 dhcp 软件包,这里就不在重复上面的过程了

 

  值得注意的是: dhcp 服务器的 ip 地址 必须在该地址池中,否则 dhcp 服务不能启动

      subnet 的网络号必须和 rang 中的地址池相对应

subnet 192.168.2.0 netmask 255.255.255.0 {

 

# --- default gateway

        option routers                  192.168.2.1;

        option subnet-mask              255.255.255.0;

 

        option nis-domain               "domain.org";

        option domain-name              "domain.org";

        option domain-name-servers      192.168.2.1;

 

        option time-offset              -18000; # Eastern Standard Time

#       option ntp-servers              192.168.2.1;

#       option netbios-name-servers     192.168.2.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 192.168.2.2 192.168.2.25;

        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 12:34:56:78:AB:CD;

                fixed-address 207.175.42.254;

        }

}

当然我这里指是个例子,仅供参考

 

8 启动 dhcp 服务,并 把该服务加入到开机启动队列中

 # service dhcpd  start

 # chkconfig   dhcpd   on

 

 

9 接下来可以验证刚才的实验是否成功,如果用的是虚拟机做的实验,则可以在开启一台虚拟主机,并让其的网卡类型在同一个通道中,并让其网开的设置成自动获取的方式,当获取成功是,如果是 Windows ,可以在 dos 窗口中执行命令: ipconfig /all

  来查看其获得 ip 地址及 dns  网关,等其他信息

  如果是 Linux 的客户端时则可以,执行

[root@freehat ~]#  dhclient –d 可以查看其获取 ip 地址的过程

 

执行 ifconfig 查看器获取的 ip 地址

 

 

 

 

DHCP 中继服务器

 

 1 有时考虑其他的因素,不能在两个网络中同时配置两台 DHCP 服务器,但是有时有的路由器符合 RFC1542 的协议是,则 不需要配置中继代理,但是有时有些路由器支持中继代理的,价格比较昂贵,所以有是会考虑; Windows server 或者 Linux 主机来配置 dhcp 中继代理服务,当然这里的配置是用 linux 来配置的。

2 当然,我们还需要配置 dhcp 服务器,在这里就略过,但是在配置 dhcp 是必须指出默认网关,不然,需要中继的网络不能获得 ip 地址

 

3 在配置 dhcp 中继代理是同样需要安装 dhcp rpm 包,但是需要配置 /etc/sysconfig/dhcrelay

Vim  /etc/sysconfig/dhcrelay

  

INTERFACES="" 

  该项是 dhcp 代理服务器监听的网卡,如果有多快网卡则在填写多快网开并用“,”分开

DHCPSERVERS=""

   该项是指明 dhcp 服务器的 ip 地址

4 关闭 dhcp 代理服务器的 dhcp 服务,并启用 dhcrelay 服务,并加入到开机启动列队中

   [root@freehat ~]# service dhcrelay stop

   [root@freehat ~]  chkconfig  dhcpd   off

[root@freehat ~]# service dhcrelay start

[root@freehat ~] chkconfig   dhcrelay   on

 

5 当然也需要验证,该服务是否配置成功

  在客户端执行:

[root@freehat ~]#  dhclient –d 可以查看其获取 ip 地址的过程