1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 查看linux下dhcp服务器分配出去的IP地址及剩余IP地址

查看linux下dhcp服务器分配出去的IP地址及剩余IP地址

时间:2019-06-22 07:38:29

相关推荐

查看linux下dhcp服务器分配出去的IP地址及剩余IP地址

1。你可以查看防火墙信息,如图,可以清晰的看到,192.1681.200的IP给了哪个MAC地址

2. /var/lib/dhcpd/dhcpd.leases 这个文件专门记录了DHCP的分配情况

一、介绍

由于 ISC DHCP 没有提供相应的统计工具,所以只能自己动手写一个。 上也有很多,例如

QUOTE:

php DHCP hosts list : 一个 php 脚本,用于列出一个 DHCP 服务器上的 host 信息

rogueDetect :发送一个“诱骗”作用的 DHCP DISCOVER ,并等待非权威的 DHCP 服务器消息,以找出未授权的 DHCP 服务器

phpDHCPAdmin :一个基于 web 界面的管理 DHCP 工具。有认证、错误检查、数据库驱动,简单易用

Analyzes of behavior of protocol DHCP :dhcpmap 能够“注入”和捕捉 DHCP 流量

dhcpphp :一个 PHP 脚本,用于显示一个 DHCP 服务器的 leases 记录

webDHCP :类似 phpDHCPAdmin 的工具

DHCP lease parser :是一个简单的守护进程,它把 DHCP 服务器的 leases 状态的变化记录到一个数据库,以便历史查询。

同时该工具还提供了一个历史记录以供查询

Lanloard DHCP lease tracker :一个 CGI 程序,用于跟踪 DHCP leases

ISC DHCP dhcpd.conf parser and editor :以一个友好的界面方便你编辑 dhcpd.conf

DHCPdetector :用于检测网络上的 DHCP 服务,主要是为了找出 rogue DHCP

reportdhcp.pl :一个用于汇报 DHCP 统计信息的 perl 脚本,需要启用 web 服务

所以俺也动手写了一个,功能比较简单,主要有 :

1、查询某个 mac 的租用记录 (v1.0)

2、查询某个 ip 地址的租用记录 (v1.0)

3、查询某个主机名的租用记录 (v1.0)

4、允许指定查询的开始时间和结束时间。开始时间默认为当天0点,结束时间默认为当前。(v1.0)

5、列出所有曾经被租用的 ip 以及它们目前的状态 (v1.0)

6、许指定某个备份的 lease.record.<date> 进行查询。(v1.1)

7、每月15日的0点10分自动把 lease 记录以 lease.record.<date> 备份,所以意味着默认只能查15天内的数据 (v1.1)

二、限制

目前暂时不考虑 DHCP Failover 以及 DHCP Omshell 的分析(这两个东西都会在 dhcpd.leases 中写数据)。

该脚本只记录客户机的 mac、客户机的主机名(如果有的话)以及 lease 的开始/结束时间/状态。

由于环境所限,只有1台客户机可供测试,所以欢迎各位朋友多多指正

三、 脚本组成

a) lease_wath.sh ,主要是跟踪 /var/lib/dhcp/dhcpd.leases 文件的输出,并固定输出到某个文件(默认是 /tmp/lease.record)。

每次只能启动一个 lease_watch.sh ,否则程序会报错(Error!Another lease_watch is running!)

b) parse.sh :完成上述的功能的第1~6 项 。

c) rotate.sh :每月15日的0点10分自动把当前的 /tmp/lease.record 备份为 /tmp/lease.record.<date> ,同时重启 lease_watch。

四、屏幕截图

按 ip 选择:

按 mac 选择 :

按 hostname 选择:

指定某个历史文件进行查询

列出所有曾经被租用的 ip 以及其状态 :

语法 :

http://carywu./13185/61628

========================

从dhcpd.lease中提取MAC和IP地址. -01-10 22:17:26

从DHCP的log中提取MAC和IP地址./var/lib/dhcpd/dhcp.lease中的一段记录如下:

lease 192.168.1.238 {

starts 0 /11/25 11:57:41;

ends 0 /11/25 17:57:41;

tstp 0 /11/25 17:57:41;

binding state free;

hardware ethernet 00:0c:29:ac:4e:01;

uid "\377eth0\000\001\000\001\016\354\015J\000\014)\254N\001";

}

# cat dhcpd.leases | egrep 'lease|hardware' | sed 's/lease//g' | sed 's/{//g' | sed 's/hardware ethernet//g网友给的办法.测试了一下.重复的较多.主要是出现了.同一个MAC多次获取不同的IP地址的情况在CU上找到更好的命令[url]/thread-980700-1-1.html[/url]cat dhcpd.leases|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'

或者

awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}' dhcpd.leases解释:

RS 输入的记录他隔符 新行

ORS 输出的记录分隔符 新行

从头查找,遇到}结束,显示第2和第21个字段.ip在第2个字段.mac在第21个字段.这样出来的结果基本符合我们的要求.All so

}192.168.1.250 00:0c:29:ac:4e:01;

}192.168.1.238 00:0c:29:ac:4e:01;

}192.168.1.241 00:0c:29:ac:4e:01;

}192.168.1.246 00:0c:29:ac:4e:01;

}192.168.1.248 00:0c:29:ac:4e:01;

}192.168.1.251 00:0c:29:05:ac:8a;

}192.168.1.253 00:0c:29:c2:b3:44;

}192.168.1.247 00:0a:eb:f3:39:dd;

}192.168.1.254 00:0c:29:c2:b3:44;

}192.168.1.249 00:0c:29:a8:c7:0a;

}192.168.1.245 00:0c:29:79:e2:aa;

}192.168.1.244 00:0c:29:79:e2:aa;

}192.168.1.243 00:0c:29:9d:e8:d8;

}192.168.1.240 00:0c:29:a8:59:21;

}192.168.1.242 00:0c:29:9d:e8:d8;

}192.168.1.239 00:16:d3:b6:1b:d2;

} 缺点就是第一行多了All so 每一行多了},也就是说我们要把这个结果再处理一下.

去掉第一行和最后一行,并把它排序.改进一下命令,由于dhcpd.lease前面7行都是注释的内容,我们跳过这些行tail -n +8 dhcpd.lease

从第8行开始显示dhcpd.lease文件#tail -n +8 dhcpd.leases|less|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'192.168.1.252 00:0c:29:ac:4e:01;

}192.168.1.250 00:0c:29:ac:4e:01;

}192.168.1.238 00:0c:29:ac:4e:01;

}192.168.1.241 00:0c:29:ac:4e:01;

}192.168.1.246 00:0c:29:ac:4e:01;

}192.168.1.248 00:0c:29:ac:4e:01;

}192.168.1.251 00:0c:29:05:ac:8a;

}192.168.1.253 00:0c:29:c2:b3:44;

}192.168.1.247 00:0a:eb:f3:39:dd;

}192.168.1.254 00:0c:29:c2:b3:44;

}192.168.1.249 00:0c:29:a8:c7:0a;

}192.168.1.245 00:0c:29:79:e2:aa;

}192.168.1.244 00:0c:29:79:e2:aa;

}192.168.1.243 00:0c:29:9d:e8:d8;

}192.168.1.240 00:0c:29:a8:59:21;

}192.168.1.242 00:0c:29:9d:e8:d8;

}192.168.1.239 00:16:d3:b6:1b:d2;

} 现在还有该死的},我们用sed命令把它替换掉.sed 's/}//g'

替换所有的}为空#tail -n +8 dhcpd.leases|less|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'|sed 's/}//g'192.168.1.252 00:0c:29:ac:4e:01;

192.168.1.250 00:0c:29:ac:4e:01;

192.168.1.238 00:0c:29:ac:4e:01;

192.168.1.241 00:0c:29:ac:4e:01;

192.168.1.246 00:0c:29:ac:4e:01;

192.168.1.248 00:0c:29:ac:4e:01;

192.168.1.251 00:0c:29:05:ac:8a;

192.168.1.253 00:0c:29:c2:b3:44;

192.168.1.247 00:0a:eb:f3:39:dd;

192.168.1.254 00:0c:29:c2:b3:44;

192.168.1.249 00:0c:29:a8:c7:0a;

192.168.1.245 00:0c:29:79:e2:aa;

192.168.1.244 00:0c:29:79:e2:aa;

192.168.1.243 00:0c:29:9d:e8:d8;

192.168.1.240 00:0c:29:a8:59:21;

192.168.1.242 00:0c:29:9d:e8:d8;

192.168.1.239 00:16:d3:b6:1b:d2;我们再把结果排序一下,让它看上去舒服一些.#tail -n +8 dhcpd.leases|less|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'|sed 's/}//g'|sort -n

192.168.1.238 00:0c:29:ac:4e:01;

192.168.1.239 00:16:d3:b6:1b:d2;

192.168.1.240 00:0c:29:a8:59:21;

192.168.1.241 00:0c:29:ac:4e:01;

192.168.1.242 00:0c:29:9d:e8:d8;

192.168.1.243 00:0c:29:9d:e8:d8;

192.168.1.244 00:0c:29:79:e2:aa;

192.168.1.245 00:0c:29:79:e2:aa;

192.168.1.246 00:0c:29:ac:4e:01;

192.168.1.247 00:0a:eb:f3:39:dd;

192.168.1.248 00:0c:29:ac:4e:01;

192.168.1.249 00:0c:29:a8:c7:0a;

192.168.1.250 00:0c:29:ac:4e:01;

192.168.1.251 00:0c:29:05:ac:8a;

192.168.1.252 00:0c:29:ac:4e:01;

192.168.1.253 00:0c:29:c2:b3:44;

192.168.1.254 00:0c:29:c2:b3:44;如果只是单纯要IP或者MAC

列出IPcat dhcpd.leases|grep -o '\<[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\>'列出MACcat dhcpd.lease|grep -o '\<[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}\>'

本文出自 “风吹云动” 博客,请务必保留此出处http://coolerfeng./133059/58773

1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容见表1

2. DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等。主要内容见表2:

3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容包括见表3:

++++++++++++++++++++

rpm -qa| grep dhcpd #查看主机是否安装dhcp包

# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf

/var/lib/dhcpd/dhcpd.leases为dhcp服务器和客户端租约建立的启动和到期时间的记录文件。

# cat /etc/dhcpd.conf

ddns-update-style none; #设置不要更新DDNS的设置

subnet 192.168.23.0 netmask 255.255.255.0 { #定义网段IP范围,须在本机所处网段范围内,{}内的信息表示此网段的配置信息

# --- default gateway

option routers 192.168.23.1; #设置客户端默认网关

option subnet-mask 255.255.255.0; #设置客户端子网掩码

option domain-name ""; #设置域名

option domain-name-servers 192.168.23.128; #设置网络内部DNS服务器的IP地址

option time-offset -18000; # Eastern Standard Time

range dynamic-bootp 192.168.23.129 192.168.23.254; #定义DHCP地址池的服务范围,需排除静态地址

default-lease-time 21600; #设置默认租约时间

max-lease-time 43200; #设置最大租约时间

host ns { #设置静态IP地址,用于网络内固定服务器IP,不要置于定义好的DHCP地址池范围内,否则会引起IP冲突。

hardware ethernet 00:0C:29:00:5B:78; #设置静态主机的mac地址,与IP进行绑定

fixed-address 192.168.23.128;

}

}

配置/etc/dhcpd.conf

#为注释,除括号一行外,每行都应以;结尾,

设置的项目都具有独特的名称。形式为<参数代号><设置内容>,如default-time 20000

某些项目必须利用option设置,形式为option<参数代码><设置内容>

DHCP的ip分为静态ip和动态ip,如果设置静态ip需要知道要设置主机的MAC地址,#ping 目标主机ip,#arp –n查看。

parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户

Defaults-lease-time:默认租约时间,默认单位为秒

Max-lease-time:最大租约时间,客户端超过租约但尚未更新IP时,最长可以使用该IP的时间

ddns-update-style 配置DHCP-DNS 互动更新模式

default-lease-time 指定确省租赁时间的长度,单位是秒

hardware 指定网卡接口类型和MAC地址

server-name 通知DHCP客户服务器名称

get-lease-hostnames flag 检查客户端使用的IP地址

fixed-address ip 分配给客户端一个固定的地址

authritative 拒绝不正确的IP地址的要求

option(选项):用来配置DHCP可选参数,全部用option关键字作为开始

option routers:为客户端设定默认网关

option subnet-mask:为客户端设定子网掩码

option domain-name:为客户端指明DNS名字

option domain-name-servers:为客户端指明DNS服务器IP地址

option time-offset:为客户端设定和格林威治时间的偏移时间,单位是秒

option ntp-server:为客户端设定网络时间服务器IP地址

option host-name 为客户端指定主机名称。若客户端使用windows,不要选择host-name,即不要为其指定主机名称。

option broadcast-address 为客户端设定广播地址

declarations (声明):描述网络布局、提供客户的IP地址等

shared-network:告知是否一些子网络分享相同网络

subnet:描述一个IP地址是否属于该子网

range:起始IP 终止IP 提供动态分配IP 的范围

host:主机名称参考特别的主机

group:为一组参数提供声明

allow unknown-clients/deny unknown-client:是否动态分配IP给未知的使用者

allow bootp/deny bootp:是否响应激活查询

allow booting/deny booting:是否响应使用者查询

filename:开始启动文件的名称,应用于无盘工作站

next-server:设置服务器从引导文件中装如主机名,应用于无盘工作站。

配置文件修改完成后,#/usr/sbin/dhcpd即可运行dhcpd服务,如有错误则会将错误信息显示在屏幕上。可以通过netstat –unlt|grep 67查看dhcp的信息。也可以通过查看/var/log.messages查看dhcp的日志信息

DHCP客户端

配置网卡设置dhcp方式获取IP地址。然后重启网卡获取IP地址,在服务器端可以查看/var/log/messages日志信息查看客户端是否在向DHCP客户端申请IP地址,可以查看/var/db/dhcp.leases查看租约申请记录。#/var/log/messages服务器端日志查看dhcp客户端申请IP地址的过程

Oct 5 21:50:39 master dhcpd: DHCPDISCOVER from 00:0c:29:54:6b:77 via eth0

Oct 5 21:50:39 master dhcpd: DHCPOFFER on 192.168.23.132 to 00:0c:29:54:6b:77 (win) via eth0

Oct 5 21:50:39 master dhcpd: DHCPREQUEST for 192.168.23.132 (192.168.23.254) from 00:0c:29:54:6b:77 (win) via eth0

Oct 5 21:50:39 master dhcpd: DHCPACK on 192.168.23.132 to 00:0c:29:54:6b:77 (win) via eth0

dhcpd.leases:

# cat /var/db/dhcpd.leases #dhcp服务器和客户端租约建立的启动和到期时间的记录文件,仅在客户端申请IP地址之后才会有:

………………………………………………

lease 192.168.23.129 { #linux客户端申请IP地址

starts 2 /10/05 13:24:26; # lease 开始租约时间

ends 2 /10/05 19:24:26; # lease 结束租约时间

cltt 2 /10/05 13:24:26;

binding state active;

next binding state free;

hardware ethernet 00:0c:29:3e:1b:f2; #客户机网卡MAC地址

}

server-duid "\000\001\000\001\024=\257w\000\014)\000[x";

lease 192.168.23.132 { #windows客户端申请ip地址

starts 2 /10/05 13:50:39;

ends 2 /10/05 19:50:39;

cltt 2 /10/05 13:50:39;

binding state active;

next binding state free;

hardware ethernet 00:0c:29:54:6b:77;

uid "\001\000\014)Tkw"; #用来验证客户机的UID标示

client-hostname "win"; #客户机名称

}

注意:lease 开始租约时间和lease 结束租约时间是格林威治标准时间(GMT),不是本地时间

Dhcp客户端重新获取IP地址:#dhclient eth0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。