哈喽,大家好~今天为大家介绍的是基于Red Hat Enterprise Linux 5平台打造的DHCP服务器,嘿嘿~~说起DHCP,相信很多前辈都已经很熟悉了,再次俺就不卖弄什么了啊,写此文章的目的是为了和我们这些初学者一起分享一下学习中的乐趣,顺便就是记录一下自己学习的成果~~以免以后忘记嘛~~呵呵~~
好了,废话不多说了,步入正题吧~~
DHCP的全称是动态主机配置协议(Dynamic Host Configuration Protocol),由IETF设计。目的就是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。运行DHCP的服务器把TCP/IP网络设置集中起来,动态处理工作站IP地址的配置,用DHCP租约和预置的IP地址相联系,DHCP租约提供了自动在TCP/IP网络上安全分配和租用IP地址的机制,实现IP地址的集中式管理,基本上不需要网络管理人员的人为干预。
呵呵,白话了半天,准备开整喽~~
目的:用linux配置DHCP服务器
环境:为内部局域网提供DHCP服务。网段为192.168.0.0
步骤:
挂载光盘:
[root@longmuxiaozi ~]# mount /dev/cdrom /mnt
mount: block device /dev/cdrom is write-protected, mounting read-only
进入光盘安装包目录:
[root@longmuxiaozi ~]# cd /mnt/Server/
找到安装包dhcp-3.0.5-3.el5.i386.rpm进行安装
[root@longmuxiaozi Server]# rpm -ivh dhcp-3.0.5-3.el5.i386.rpm
warning: dhcp-3.0.5-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]
 获得DHCP服务的所有配置文件存在的位置。其中包括主配置文件、租约文件和启动服务的脚本:
[root@longmuxiaozi Server]# rpm -qlc dhcp
/etc/dhcpd.conf    //主配置文件
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcrelay //中继
/etc/sysconfig/dhcpd  //侦听
/etc/sysconfig/dhcrelay  
/var/lib/dhcpd/dhcpd.leases //租约
1、主配置文件
DHCP默认的主配置文件是/etc/dhcpd.conf。但用户打开后会发现,在其中没有任何的配置项目,只有一条重要的参考信息:
[root@longmuxiaozi Server]# cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
通过这条信息告诉用户,DHCP提供了一个配置模版,用户只需要将/usr/share/doc/dhcp*/dhcpd.conf.sample复制/etc/dhcpd.conf文件就可以完成配置文件的创建工作
[root@longmuxiaozi Server]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample  /etc/dhcpd.conf
cp:是否覆盖“/etc/dhcpd.conf”? y
DHCP服务器的配置文件是一个文本文件,DHCP里有一个语法分析器,能对这个文件进行语法分析,获得配置参数。dhcpd.conf格式是递归下降的,关键字大小写敏感,可以有注释,注释以“#”开头,一直到该行结束。
[root@longmuxiaozi Server]# cat /etc/dhcpd.conf
ddns-update-style none;  //关闭动态DNS的更新,如果想打开,可以把参数none改为interim。
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 domain-name              "longmuxiaozi.com";  //提供给客户机的域名。
        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;
# --- 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.0.128 192.168.0.254;  //设置地址范围。
        default-lease-time 21600;  //指定默认租约时间,这里的time是以秒为单位的。此为默认租约时间21600秒(6小时)。
        max-lease-time 43200;  //最大租约时间43200秒(12小时)。

        # 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;  //主机的网卡的硬件(MAC)地址。
                fixed-address 207.175.42.254;   //指定固定的地址
        }
}
这段配置文件将允许DHCP服务器分配如下一段地址范围给DHCP客户: 192.168.0.128 192.168.0.254;
2、租约文件
dhcpd.leases是DHCP客户租约的数据库文件,默认目录在/var/lib/dhcpd/,文件包含租约声明每次一个租约被获取、更新或释放,他的新值就被记录到文件的末尾。DHCP记录这个文件的格式是:
lease ip-address {statements....}
每个记录包含一个提供客户的IP地址,在括号里的语句包含一些租约信息。具体的租约信息因客户发出不同的DHCP请求而稍有差别。
需要注意的是dhcpd.lease的时间记录采用UTC时间,而不是本地时区的时间。要查看本机的UTC时间可以执行“date -u”命令。
启动DHCP服务:
[root@longmuxiaozi /]# service dhcpd start
检查进程:
[root@longmuxiaozi /]# ps aux | grep dhcpd
检查状态:
[root@longmuxiaozi /]# service dhcpd status
检查端口:(DHCP服务端使用udp67号端口,客户端68)
[root@longmuxiaozi /]# netstat -naup | grep 67
[root@longmuxiaozi /]# netstat -nlutp | grep 68
查看日志:
[root@longmuxiaozi /]# tail -f /var/log/messages