配置DHCP服务器
1.DHCP服务器启动脚本——/etc/rc.d/init.d/dhcpd (/etc/rc.d 启动、改变运行级时运行的脚本或脚本的目录)
利用该启动脚本可实现DHCP服务器的启动、状态查询和停止等操作。启动之前,应先完成对DHCP服务器的配置。
2.配置DHCP服务器 启动、或改变运行级时运行的脚本或脚本的目录。
DHCP服务是通过程序/usr/sbin/dhcpd提供的。在DHCP服务器启动时,dhcpd要读取dhcpd.conf文件的内容(dhcpd.conf保存的是DHCP服务器的配置信息)。dhcpd将客户端租用的信息保存在dhcpd.lease文件中。在DHCP服务器为客户提供IP地址之前,将在这个文件中记录租用的信息。新的租用信息会添加到dhcpd.leases的尾部。为了向一个子网提供DHCP服务,dhcpd需要知道子网的网络号码和子网掩码。还有地址范围等等。
DHCP服务器配置文件内容:
⑴ DHCP的配置文件——/etc/dhcpd.conf
RHEL5安装后的默认情况下,此文件是一个空白文件。
该文件的模板是:/usr/share/doc/dhcp-3.0.5/dhcpd.conf .sample
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cat /etc/dhcpd.conf 如下图所示。
ddns-update-style interim; //定义所支持的DNS动态更新类型, (必选),一般设置成关闭,interim和none都是关闭的意思(interim或ad-hoc或none )
ignore client-updates; //忽略客户端更新,不允许动态更新dns
subnet 172.16.210.0 netmask 255.255.255.0 { //声明一个网段
# --- default gateway
option routers 172.16.210.254; //分配给客户机的网关地址或路由IP地址,在DHCP发布IP地址的同时,把网关发布出去。
option subnet-mask 255.255.255.0; //分配给客户机的子网掩码
option nis-domain “domain.org”; //设置NIS域名
option domain-name “domain.org”; //设置DNS域名,要与DNS的域名一致
option domain-name-servers 172.16.210.1; //DNS服务器的IP地址
option time-offset -18000; //为客户端设定和格林威治时间的偏移时间
# option ntp-servers 172.16.210.1; //为客户端设定网络时间服务器IP地址
# option netbios-name-servers 172.16.210.1; //设置默认的WINS服务器
# ---Selects point-to-point node (default is hybrid). Don't change this nless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 172.16.210.210 172.16.210.240; //可分配的IP范围
default-lease-time 21600; //默认的租约时间 6小时
max-lease-time 43200; //最大的租约时间 12小时
# we want the nameserver to appear at a fixed address
host ns { //对主机名为ns的主机做host声明设定对特定网卡的IP分配
next-server marvin.redhat.com; #设置由于定义服务器从引导文件中装入的主机名,用于无盘站。
hardware ethernet 12:34:56:78:AB:CD; //主机的MAC地址
fixed-address 172.16.210.222; //该地址始终分配给该主机
}
}
#全局配置项
# 利用subnet定义DHCP作用域,一个网段应定义一个作用域
shared-network test {
subnet 子网1 netmask 子网掩码 {
option routers 默认网关地址;
range [dynamic-bootp] low-address [high-address]; #指定可分配的IP地址池范围
[其他可选设置]
}
……
subnet 子网n netmask 子网掩码 {
option routers 默认网关地址;
range [dynamic-bootp] low-address [high-address];
[其他可选设置]
}
}
Group { #组配置项设置
host 主机名1 {
hardware ethernet 网卡物理地址;
对该主机的设置;
}
}
3.启动DHCP服务器
启动
# service dhcpd start
重新启动
service dhcpd restart
查询服务的启动状态
service dhcpd status
停止服务
service dhcpd stop
4.测试DHCP服务器
启动DHCP服务
在物理机将IP地址设置为自动获得
打开“运行”→输入“cmd”
释放IP地址:ipconfig /release
重新申请IP地址:ipconfig /renew
执行:ipconfig /all
此时若能看到所分配到的IP地址、默认网关和DNS服务器地址,则说明DHCP服务器工作正常,配置成功。
Linux客户机的配置
修改/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
或使用netconfig配置动态地址,然后运行#service network restart
设定1分钟后执行指定操作:
#at now+1minutes
at> service network restart
ctrl+D结束
调试服务器:
#tail /var/log/messages 查看日志信息
#more /var/lib/dhcpd/dhcpd.leases 查看IP分配情况
调试客户机:
Under unix:
#dhclient eth0 DHCP客户端工具,刷新网卡eh0,发送一个广播,重新请求一个IP
Under windows:
C:\>ipconfig /renew
有些网站上有如下说明:
现在配置文件已经有了,但还是不能启动dhcpd,为什么呢?因为我们还没有创建关于dhcpd的租用文件。
现在我们创建dhcpd.leases文件:
#touch /var/state/dhcp/dhcpd.leases
然后就可以启动DHCP了:
# /etc/rc.d/init.d/dhcpd start
如果希望在每次启动系统的时候也启动DHCPD,请执行命令:
# /sbin/chkconfig --level 3 dhcpd on
chkconfig 命令是检查、设置系统的各种服务。参数 —level <等级代号>指定该系统服务要在哪一个执行等级中开启或关闭,范围是0-7。然后,在Linux客户端的设置netconf在网络设置中把IP地址的获得设置为DHCP。 这样,我们DHCP服务器的配置就完成了。
而在我的系统Centos上面,在/var下没有state这文件夹,当然更加没有dhcpd.leases这个文件了。但是我的是可以启动DHCP服务的。至于要不要这个dhcpd.leases文件,在前面的红色字体:dhcpd将客户端租用的信息保存在dhcpd.lease文件中,那么没有这些信息应该也是可以完成dhcp服务的。当我创建这个目录以及文件夹state/dhcp/dhcpd.leases 后,我重启了dhcp服务,发现这个文件内容还是空白,那么所说的客服端租用信息保存在哪里呢?是不是系统不一样的缘故造成的?或许是在另一个文件中?
后来发现:
编译安装方法
#tar zxvf dhcp-latest.tar.gz
#cd dhcp-3.0.3
#./configure
#make
#make install
#vi /etc/dhcpd.conf
#touch /var/state/dhcp/dhcpd.leases rpm安装不用touch,文件默认安装在/var/lib/dhcpd/dhcpd.leases
#dhcpd