DHCP 日志分析
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种有效的IP 地址分配手段,现已经被广泛地应用在各种局域网管理。它能动态地向网络中每台计算机分配唯一的IP 地址,并提供安全、可靠、简单和统一的TCP/IP网络配置,确保不发生IP地址冲突。当在服务器上启用DHCP后,我们希望了解服务的运行情况,希望看到详细日志。可以通过下面的命令了解到dhcp server的日志文件在什么地方。以RHEL系统为例,命令如下:
#rpm –ql dhcp-server
DHCP服务的默认日志不会输出到指定文件,而是和NFS服务一样,输出到/var/log/messages文件中,成了日志的大杂烩,不便于分辨,也不便于查找故障,一旦messages文件遭到破坏,DHCP的日志也跟着受影响。
对于以上日志我们可以把在1.2节学到的脚本放到这里进行分析。还有没有其他什么文件,记录了DHCP的分配IP的信息呢?那就是/var/lib/dhcp/db/dhcpd.leases文件,它记录了客户机分配IP的详细信息。下面我们通过一个例子解读一下。
客户机每次获取地址后会产生如下信息:
Lease 192.168.150.207 {
Starts 12012/12/31 11:23:32
End 1 2012/12/31 11:25:32;
Tstp 1 2012/12/31 11:25:32;
Cltt 1 2012/12/31 11:25:32;
Bindingstate free;
Hardwareethernet 00:0c:29:51:b3:d9;
Uid“\001\000\014)Q\263\331”;
Client-hostname “linux-5jlv”;
}
每当发生租约变化的时候,都会在文件结尾添加新的租约记录,也就是说这个文件是在不断变化的。表1-13做出解释。
表1 DHCP日志含义
参数
含义
Lease
租用IP
starts
开始时间
end
结束时间
tstp
指定租约过期时间
cltt
客户端续约时间
Binding state
租约绑定状态自由(free)、激活(active)
Hardware ethernet
客户机网卡MAC地址
UID
客户端标识符由三位八进制表示用于与MAC匹配
Client-hostname
客户机名称
从上面分析看到,DHCP服务器的日志在messages和dhcpd.leases里分别有一部分都不全面,如何将DHCP的日志专门转储到特定文件中呢?下面介绍一种方法。
假设我们需要将日志记录在/var/log/目录下,我们先touch一个dhcp.log文件。
1).创建dhcp.log文件
#touch /var/log/dhcp.log
#chmod 640 /var/log/dhcp.log
2).修改/etc/dhcpd.conf配置文件,然后保存并退出。(注意不同Linux发行版配置文件路径有所不同)
log-facility local4;
3).在/etc/rsyslog.conf文件中添加
Local4.* /var/log/dhcp.log
注意要把下面这行语句注销
Local4,local5.* -var/log/localmessages;RSYSLOG_TraditionalFileFormat
重启DHCP服务即可生效,这时的日志文件就是DHCP服务器出现故障后排除错误的一个重要基础数据。所以,我们还需要定期对这个日志文件作好备份工作。否则,当这个日志意外丢失后,我们就很难查清DHCP服务器的故障。
另外,对于Windows Server 平台DHCP日志,请参考http://support.microsoft.com/kb/298367/zh-cn。