首页 > 代码库 > DHCP服务器的构建
DHCP服务器的构建
DHCP:Dynamic Host Configuration Protocol(动态主机配置协议)
服务器端监听在UDP/67进行客户端的响应
客户端监听在UDP/68向服务器端进行请求
当一个区域中有多个DHCP-Server时,则客户端发起请求后谁先响应就用谁的IP,具体过程如下:
客户端发起广播,向区域内所有DHCP服务器请求获取一个IP(依靠MAC地址进行表示自己)
DHCP服务器收到后以单播响应给客户端一个IP、DNS、Gateway(这是客户端还没有IP,依靠MAC地址进行识别)
客户端使用最先给它响应的DHCP服务器分发的地址,并以广播的形式通知区域内所有DHCP服务器,用了谁的IP
客户端使用了哪个DHCP服务器的IP,哪个DHCP服务器就给予确认一下
具体的四个报文如下
client-->DHCPDISCOVERY 发现报文(广播)
server-->DHCPOFFER 提供报文(单播)
client-->DHCPREQUEST 请求报文(广播)
server-->DHCPACK 确认报文(单播)
而一般来说如果DHCP服务器分发的IP都是有时间限定的,比如定义IP有效时间为6小时,则客户端使用到只剩3小时时就必须进行IP续租,但是如果去续租的时候服务器没有给予响应,则会在等一半时间,到了只剩1.5小时是再去续租,如果一直到时间结束还没有续租成功则客户端会释放此IP(发一个release报文),重新申请一个IP
注:续租是以单播形式进行的
如果DHCP服务器和客户端没有在一个网段(中间有路由器相隔),则就不能直接分发IP,因为路由器不传递广播报文,这时可以将路由器配置成为一个DHCP中继器,让中继器收到客户端的广播后以单播的形式转发给DHCP服务器便可
客户端已广播形式发起请求(discovery)
路由器(有中继功能)收到广播后以单播形式转发请求
DHCP服务器收到请求后以单播进行响应(offset)
路由器收到DHCP的响应后以广播形式转发给client
client以广播形式确认用了哪个DHCP服务器的IP(request)
路由器以单播形式转发client的确认给DHCP服务器
DHCP服务器以单播形式进行ACK确认(ACK)
路由器以单播形式将ACK确认发送给client
一般来说一个DHCP服务器可以为多个网段的客户机提供DHCP服务,但必须有一个地址池中的IP与DHCP服务器的网卡IP处在一个网段(表示为本地客户端提供DHCP服务)
此外DHCP服务器还能以标示MAC地址的方式,为某个特定主机提供特定的IP(此IP必须不在地址池中)
比如为你老板的主机单独分发IP
[root@node1 ~]# yum install dhcp -y
[root@node1 ~]# rpm -ql dhcp
/etc/dhcp/dhcpd.conf dhcp的配置文件
/usr/sbin/dhcpd 将服务器配置成为dhcp服务器用的
/usr/sbin/dhcrelay 将服务器配置成为中继器用的
/var/lib/dhcpd/dhcpd.leases 记录了哪个IP被续租了
[root@node1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcpd.conf
[root@node1 ~]# vim /etc/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.128 192.168.0.254; 地址池范围为192.168.0.128-192.168.0.254,linux系统从最大的IP开始分配,而windows从最小的分配
option domain-name-servers 192.168.1.1,192.168.1.2,192.168.1.3 ;指定三个DNS服务器(Linux最多指定三个)
option domain-name "internal.example.org"; 指定/etc/resolve.conf中的搜索域
option routers 192.168.0.1;指定默认网关,分发IP时直接将网关也指定
option broadcast-address 192.168.0.23; 指定广播地址
default-lease-time 600; 默认租约时间长为600秒
max-lease-time 7200; 最大租约时间长为7200秒
}
host passacaglia { 依据MAC地址提供一个特定的IP
hardware ethernet 0:0:c0:5d:bd:95; 为0:0:c0:5d:bd:95主机分发IP192.168.0.188
fixed-address 192.168.0.188;
}
[root@node1 ~]# service dhcpd start 启动服务器
这样一个dhcp服务器就配置完成了分配的地址范围为192.168.0.128 到192.168.0.254;
DNS服务器为192.168.0.1,192.168.0.2,192.168.0.3
网关为192.168.0.1
本文出自 “11097124” 博客,请务必保留此出处http://11107124.blog.51cto.com/11097124/1900612
DHCP服务器的构建