DHCP的工作原理:
技术细节:
作为一个Client 在使用DHCP获取一个IP地址时会与服务器之间通过以下几个数据包相互通信:
基于CentOS 6.5 安装 DHCP 服务器程序 在Linux中几乎都是采用的Paul Vixie/ISC DHCPd,来实现DHCP服务器端功能。可以访问http://www.isc.org/isc 获得最新消息。 目前大多数Linux发布都包含这个软件,如果是Red Hat,以RPM形式提供,通过rpm 或 yum 均可安装: [root@i-it ~]# yum install dhcp [root@i-it ~]# rpm -Uvh dhcp-4.1.1-31.P1.el6.x86_64.rpm 调整配置文件: [root@i-it ~]# cat /etc/dhcp/dhcpd.conf ddns-update-style interim; #配置使用DHCP-DNS动态更新模式。 ignore client-updates; #忽略客户端更新 subnet 10.204.10.0 netmask 255.255.255.0 { #作用域 option routers 10.204.10.250; #路由器地址(Gateway) option subnet-mask 255.255.255.0; #子网掩码选项 option nis-domain "i-it.info"; option domain-name "i-it.info"; #域名 option domain-name-servers 8.8.8.8; #DNS地址 option time-offset -18000; #为客户端设定格林威治时间的偏移时间,单位是秒 range dynamic-bootp 10.204.10.251 10.204.10.253; #租用IP地址的范围 default-lease-time 21600; #缺省租约时间 max-lease-time 43200; #最大租约时间 # we want the nameserver to appear at a fixed address host i-it { #主机声明 hardware ethernet 00:0C:29:30:2D:D7; #保留主机的MAC地址 fixed-address 10.204.10.204; #指定保留的IP地址 } } 同时可以参考安装包所提供的示例配置文件: [root@i-it ~]# ls /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample 启动DHCPD的服务并查看端口: [root@i-it ~]# service dhcpd start Starting dhcpd: [ OK ] [root@i-it ~]# netstat -panu | grep dhc* udp 0 0 0.0.0.0:67 0.0.0.0:* 3472/dhcpd udp 0 0 0.0.0.0:68 0.0.0.0:* 1398/dhclient 客户租约的数据库文件dhcpd.leases,文件包含租约声明,每次一个租约被获取、更新或释放,它的新值就被记录到文件的的末尾,租约时间采用GMT时间: [root@i-it ~]# cat /var/lib/dhcpd/dhcpd.leases # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc-dhcp-4.1.1-P1 server-duid "\000\001\000\001\032\327'a\000\014)0-\327"; lease 10.204.10.251 { starts 2 2014/04/08 21:48:34; ends 3 2014/04/09 03:48:34; cltt 2 2014/04/08 21:48:34; binding state active; next binding state free; hardware ethernet 00:0c:29:cc:de:94; } 几条实用的小指令: 获取租约文件中的IP地址,我的vsphere 中能拿来测试玩的只有两台机器..表明client只有一台,所以获取到的地址会相同..勿介意! [root@i-it dhcpd]# grep -o '\<[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\>' dhcpd.leases 10.204.10.251 10.204.10.251 获取租约文件中的MAC地址 [root@i-it dhcpd]# 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\}\>' dhcpd.leases 00:0c:29:cc:de:94 00:0c:29:cc:de:94 同时获取租约文件中的IP地址和MAC地址 [root@i-it dhcpd]# tail -n +15 dhcpd.leases |less|awk 'BEGIN{RS=ORS="}"}{print $2,$25,"\n"}'|sed 's/}//g' 10.204.10.251 00:0c:29:cc:de:94; 10.204.10.251 00:0c:29:cc:de:94;(责任编辑:IT) |