《查看linux下dhcp服务器分配出去的IP地址及剩余IP地址精品资料.docx》由会员分享,可在线阅读,更多相关《查看linux下dhcp服务器分配出去的IP地址及剩余IP地址精品资料.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、怎样查看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 服务器
2、消息,以找出未授权的 DHCP 服务器phpDHCPAdmin :一个基于 web 界面的管理 DHCP 工具。有认证、错误检查、数据库驱动,简单易用Analyzes of behavior of protocol DHCP :dhcpmap 能够“注入”和捕捉 DHCP 流量dhcpphp :一个 PHP 脚本,用于显示一个 DHCP 服务器的 leases 记录webDHCP :类似 phpDHCPAdmin 的工具DHCP lease parser :是一个简单的守护进程,它把 DHCP 服务器的 leases 状态的变化记录到一个数据库,以便历史查询。同时该工具还提供了一个历史记录以供
3、查询Lanloard DHCP lease tracker :一个 CGI 程序,用于跟踪 DHCP leasesISC DHCP dhcpd.conf parser and editor :以一个友好的界面方便你编辑 dhcpd.confDHCPdetector :用于检测网络上的 DHCP 服务,主要是为了找出 rogue DHCPreportdhcp.pl :一个用于汇报 DHCP 统计信息的 perl 脚本,需要启用 web 服务所以俺也动手写了一个,功能比较简单,主要有 :1、查询某个 mac 的租用记录 (v1.0)2、查询某个 ip 地址的租用记录 (v1.0)3、查询某个主机名
4、的租用记录 (v1.0)4、允许指定查询的开始时间和结束时间。开始时间默认为当天0点,结束时间默认为当前。(v1.0)5、列出所有曾经被租用的 ip 以及它们目前的状态 (v1.0)6、许指定某个备份的 lease.record. 进行查询。(v1.1)7、每月15日的0点10分自动把 lease 记录以 lease.record. 备份,所以意味着默认只能查15天内的数据 (v1.1)二、限制目前暂时不考虑 DHCP Failover 以及 DHCP Omshell 的分析(这两个东西都会在 dhcpd.leases 中写数据)。该脚本只记录客户机的 mac、客户机的主机名(如果有的话)以及
5、 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 :完成上述的功能的第16 项 。c) rotate.sh :每月15日的0点10分自动把当前的 /tmp/lease.record 备份
6、为 /tmp/lease.record. ,同时重启 lease_watch。四、屏幕截图按 ip 选择:按 mac 选择 :按 hostname 选择:指定某个历史文件进行查询列出所有曾经被租用的 ip 以及其状态 :语法 :=从dhcpd.lease中提取MAC和IP地址. 2008-01-10 22:17:26从DHCP的log中提取MAC和IP地址./var/lib/dhcpd/dhcp.lease中的一段记录如下: lease 192.168.1.238 starts 0 2007/11/25 11:57:41;ends 0 2007/11/25 17:57:41;tstp 0 20
7、07/11/25 17:57:41;binding state free;hardware ethernet 00:0c:29:ac:4e:01;uid 377eth0000001000001016354015J000014)254N001;# cat dhcpd.leases | egrep lease|hardware | sed s/lease/g | sed s/g | sed s/hardware ethernet/g网友给的办法.测试了一下.重复的较多.主要是出现了.同一个MAC多次获取不同的IP地址的情况在CU上找到更好的命令urlcat dhcpd.leases|awk BEG
8、INRS=ORS=print $2,$21,n或者awk BEGINRS=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; 19
9、2.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.1
10、68.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 BEGINRS=ORS=print $2,$21,n192.16
11、8.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
12、.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
13、 +8 dhcpd.leases|less|awk BEGINRS=ORS=print $2,$21,n|sed s/g192.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
14、.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.23
15、9 00:16:d3:b6:1b:d2; 我们再把结果排序一下,让它看上去舒服一些.#tail -n +8 dhcpd.leases|less|awk BEGINRS=ORS=print $2,$21,n|sed s/g|sort -n192.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:
16、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:
17、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 列出MACcat dhcpd.lease|grep -o 本文出自 “风吹云动” 博客,请务必保留此出处1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容见表1 参数解释ddns-update-style配置DHCP-DNS 互动更新模式。default-lease-time指
18、定确省租赁时间的长度,单位是秒。max-lease-time指定最大租赁时间长度,单位是秒。hardware指定网卡接口类型和MAC地址。server-name通知DHCP客户服务器名称。get-lease-hostnames flag检查客户端使用的IP地址。fixed-address ip分配给客户端一个固定的地址。authritative拒绝不正确的IP地址的要求。2. DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等。主要内容见表2: 声明解释shared-network用来告知是否一些子网络分享相同网络。subnet描述一个IP地址是否属
19、于该子网。range 起始IP 终止IP提供动态分配IP 的范围。host 主机名称参考特别的主机。group为一组参数提供声明。allow unknown-clients deny unknown-client是否动态分配IP给未知的使用者。allow bootp;deny bootp是否响应激活查询。allow bootingdeny booting是否响应使用者查询。filename开始启动文件的名称,应用于无盘工作站。next-server设置服务器从引导文件中装如主机名,应用于无盘工作站。3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键
20、字作为开始,主要内容包括见表3: 选项解释subnet-mask为客户端设定子网掩码。domain-name为客户端指明DNS名字。domain-name-servers为客户端指明DNS服务器IP地址。host-name为客户端指定主机名称。routers为客户端设定默认网关。broadcast-address为客户端设定广播地址。ntp-server为客户端设定网络时间服务器IP地址。imeoffset为客户端设定和格林威治时间的偏移时间,单位是秒。+rpm -qa| grep dhcpd #查看主机是否安装dhcp包# cp /usr/share/doc/dhcp*/dhcpd.conf
21、.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
22、 255.255.255.0; #设置客户端子网掩码 option domain-name domain.org; #设置域名 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-ti
23、me 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,如果设置静态
24、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-
25、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 timeoffset:为客户端设定和格林威治时间的偏移时间
26、,单位是秒 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:为一组参数提供声明 a
27、llow 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.m
28、essages查看dhcp的日志信息 DHCP客户端 1. 配置网卡设置dhcp方式获取IP地址。 2. 然后重启网卡获取IP地址,在服务器端可以查看/var/log/messages日志信息查看客户端是否在向DHCP客户端申请IP地址,可以查看/var/db/dhcp.leases查看租约申请记录。 3. #/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:
29、 DHCPOFFER on 192.168.23.132 to 00:0c:29:54:6b:77 (win2003) 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 (win2003) via eth0 Oct 5 21:50:39 master dhcpd: DHCPACK on 192.168.23.132 to 00:0c:29:54:6b:77 (win2003) via eth0 dhcpd.leases: # c
30、at /var/db/dhcpd.leases #dhcp服务器和客户端租约建立的启动和到期时间的记录文件,仅在客户端申请IP地址之后才会有: lease 192.168.23.129 #linux客户端申请IP地址 starts 2 2010/10/05 13:24:26; # lease 开始租约时间 ends 2 2010/10/05 19:24:26; # lease 结束租约时间 cltt 2 2010/10/05 13:24:26; binding state active; next binding state free; hardware ethernet 00:0c:29:3
31、e:1b:f2; #客户机网卡MAC地址 server-duid 000001000001024=257w000014)000x; lease 192.168.23.132 #windows客户端申请ip地址 starts 2 2010/10/05 13:50:39; ends 2 2010/10/05 19:50:39; cltt 2 2010/10/05 13:50:39; binding state active; next binding state free; hardware ethernet 00:0c:29:54:6b:77; uid 001000014)Tkw; #用来验证客
32、户机的UID标示 client-hostname win2003; #客户机名称 注意:lease 开始租约时间和lease 结束租约时间是格林威治标准时间(GMT),不是本地时间 Dhcp客户端重新获取IP地址:#dhclient eth0附录资料:不需要的可以自行删除CentOS网络设置这里介绍一下Linux下的网络设置文件,这是网络计算机服务器的前提条件。1网络的基本设置我们在设置网络环境的时候,提前要弄清楚以下的相关信息。IP IP地址 Netmak 子网掩码Gateway 默认网关HostName 主机名称DomainName 域名DNS DNS的IP2网络设置文件无论是通过网络配置
33、命令(下文将提到)来配置网络,还是通过图形化的配置界面,最终的配置信息都将写入到某某的文件中,也就是说一旦我们知道了这些信息都写到了什么文件中或哪儿个文件中,我们就可以通过直接的修改某某文件来直接进行配置,下面就说明一下网络设置将要涉及到的几个主要的文件。不光是 CentOS,其他的UNIX系的OS都可以通过这个方法来配置网络,不过系统的不同定义也不同,比如说有些系统会说到通过直接修改文件的方法配置网络信息会导致网络环境的不稳定,提倡使用图形界面或配置命令的形式来配置网络,这里要特别的注意。(1)文件 /etc/sysconfig/network这个/etc/sysconfig/network
34、文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。设定形式:设定值=值/etc/sysconfig/network的设定项目如下:NETWORKING 是否利用网络 GATEWAY 默认网关IPGATEWAYDEV 默认网关的接口名HOSTNAME 主机名DOMAIN 域名(2)文件 /etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那
35、么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3.(这里面的文件是相当重要的,涉及到网络能否正常工作)设定形式:设定值=值设定项目项目如下:DEVICE 接口名(设备,网卡)BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手动) HWADDR MAC地址ONBOOT 系统启动的时候网络接口是否有效(yes/no)TYPE 网络类型(通常是Ethemet)NETMASK 网络掩码IPADDR IP地址IPV6INIT IPV6是否有效(yes/no)GATEWAY 默认网关IP地址这里有一个例子:CODE:rootli
36、nux # cat -n /etc/sysconfig/network-scripts/ifcfg-eth0 1 DEVICE=eth0 2 BOOTPROTO=static 3 BROADCAST=192.168.1.255 4 HWADDR=00:0C:2x:6x:0x:xx 5 IPADDR=192.168.1.23 6 NETMASK=255.255.255.0 7 NETWORK=192.168.1.0 8 ONBOOT=yes 9 TYPE=Ethernet(3)文件 /etc/resolv.conf这个文件是用来配置主机将用的DNS服务器信息。在这个文件中如果不设置DNS服务器的
37、IP地址,那么在通信的时候,将无法指定像 url=/url/url这样的域名。(DNS是Domain NameSystem的简称,中文名称域名解析服务器,主要是IP和域名转换功能)/etc/resolv.conf的设定项目:domain 定义本地域名search 定义域名和搜索列表nameserver定义被参照的DNS服务器的IP地址(最多可指定3个)一般来说最重要的是第三个nameserver项目,没有这项定义,用域名将无法访问网站,并且yum等服务将无法利用(4)文件 /etc/hosts/etc/hosts这个文件是记载LAN内接续的各主机的对应HostName和IP用的。在LAN内,我
38、们各个主机间访问通信的时候,用的是内网的IP地址进行访问(例:192.168.1.22,192.168.1.23),从而确立连接进行通信。除了通过访问IP来确立通信访问之外,我们还可以通过HostName进行访问,我们在安装机器的时候都会给机器起一个名字,这个名字就是这台机器的HostName,通过上图可以看到,HostA的 hostname是centos1,HostB的hostname是centos2那我们怎么能不但通过IP确立连接,通过这个IP对应的 HostName进行连接访问呢?解决的办法就是这个/etc/hosts这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应
39、写入这个文件的时候,就可以解决问题。要在HostA上用ssh访问HostB的时候,在命令行下做这样的操作: - CODE:rootcentos1 # ssh 192.168.1.23email=root192.168.1.23sroot192.168.1.23s/email password:Last login: Mon Dec 25 15:04:58 2006 from centos1rootcentos2 #访问成功后,我们看到hostname的地方变化了。那么我们用hostname试试看: - CODE:rootcentos1 # ssh centos2ssh:centos2: Nam
40、e or service not known 提示错误,不知道主机rootcentos1 #那么我们编辑/etc/hosts文件,将HostB的IP和hostname的对应关系写入这个文件,如果主机有域名,可以将域名写在IP地址之后hostname之前,并且用空格隔开,形式如第三行127.0.0.1的设置。 - CODE:rootcentos1 # cat -n /etc/hosts 1 # Do not remove the following line, or various programs 2 # that require network functionality will fail
41、. 3 127.0.0.1 localhost.localdomain localhost 4 192.168.1.23 centos2rootcentos2 #然后我们再从复#ssh centos2的操作 - CODE:rootcentos1 # ssh centos2email=rootcentos2srootcentos2s/email password:Last login: Mon Dec 25 15:05:07 2006 from centos1rootcentos2 #可以看到访问成功了,这个文件就是这样的,倘若你要用windowsXP访问局域网中的linux你也可以用上面的方法
42、,只不过在 windowsXP下面你也要修改hosts这个文件,文件路径:C:WINDOWSsystem32driversetchosts,在这个文件中添加你要访问的局域网中的主机的IP和hostname,就能通过主机名访问主机了。3网络基本命令(1)network service的制御网络接口配置信息改动后,网络服务必须从新启动,来激活网络新配置的使得配置生效,这部分操作和从新启动系统时时一样的作用。制御(控制)是/etc/init.d/network这个文件,可以用这个文件后面加上下面的参数来操作网络服务。例如:rootlinux #/etc/init.d/networkrestart同样
43、也可以用service这个命令来操作网络服务例如:rootlinux #service network restartstart 启动stop 停止restart 再启动reload 和再启动一样(.)status 状态表示如果服务器软件采用rpm的方式安装,以上的内容大多数都对应。(2)network管理命令网络管理还有一些常用的命令,下面介绍几个常用的命令。ifconfignetstathostnamepingtracerouteifconfig这个命令可以用于,网络接口的启动/停止,更改设置和表示网络状态,在不添加任何参数的情况下,这个ifconfig可以表示网络接口的状态。例如:rootlinux # ifconfigeth0 Link encap:Ethernet HWaddr00:xx:xx:xx:04:45 inet addr:192.168.1.81 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80:20c:2