DHCP动态主机配置协议

动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。它常用于给主机动态地分配IP地址。DHCP是应用层协议,它是基于UDP的。

 DHCP协议工作原理:它使用C/S架构,需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文。

 DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可在自己发送的报文中提出对租用期的要求,默认8小时。

DHCP共有八种报文:

报文类型用途
DHCP discover客户端广播查找可用服务器
DHCP offer响应DHCP discover报文,分配相应配置参数
DHCP request客户端请求配置参数、请求配置确认、续租约
DHCP ack服务器确认DHCP request报文
DHCP decline客户端发现地址被使用,通知服务器
DHCP release客户端释放地址时通知服务器的报文
DHCP inform客户端已有IP地址,请求更详情配置参数
DHCP nak服务器告诉客户端地址请求不正确或租期已过期

DHCP是基于客户—服务器模型设计的,DHCP客户和DHCP服务器之间通过收发DHCP消息进行通信,如下图所示:

不论是DHCP客户机还是DHCP服务器,都是通过按DHCP消息格式要求来填写各个段的,形成具体的DHCP消息,DHCP使用的传输协议是非面向连接的UDP(用户数据报协议),从DHCP客户发出的DHCP消息送往DHCP服务器的端口67,DHCP服务器发给客户的DHCP消息送往DHCP客户的端口68,由于在取得服务器赋予的IP之前,DHCP客户并没有自己的IP,所以包含DHCP消息的UDP数据报的IP头的源地址段是0.0.0.0,目的地址则是255.255.255.255。 

当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络发出一个 DHCP discover 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为 0.0.0.0 ,而目的地址则为 255.255.255.255 ,然后再附上DHCPdiscover的信息,向网络进行广播。在 Windows 的预设情形下, DHCP discover 的等待时间预设为 1 秒,也就是当客户端将第一个 DHCP discover 封包送出去之后,在 1 秒之内没有得到响应的话,就会进行第二次 DHCP discover 广播。若一直得不到响应的情况下,客户端一共会有四次 DHCP discover 广播(包括第一次在内 ) ,除了第一次会等待 1 秒之外,其余三次的等待时间分别是 9、 13、 16 秒。如果都没有得到 DHCP 服务器的响应,客户端则会显示错误信息,宣告 DHCP discover 的失败。之后,基于使用者的选择,系统会继续在 5 分钟之后再重复一次 DHCP discover 的过程。

在DHCP环境下,由于DHCP服务器不工作DHCP服务器故障DHCP客户机和服务器通信故障等原因,导致若DHCP客户端无法从服务器端租用一个IP地址时,DHCP客户机会给自己分配一个APIPA(自动专有IP寻址)地址,该地址是一个B类地址,范围是169.254.0.1~169.254.255.254。

借助中继代理,DHCP客户机可以从外网段获取IP地址;DHCP不会同时租借相同的IP地址给两台主机;默认情况下DHCP分配的IP地址租约期为8天;DHCP客户机可以收到多个dhcpoffer,通常从中选择最先到达的作为本机的IP地址。

DHCP租约周期是IP地址的有效期。租约周期可长可短,取决于用户的上网环境和工作性质。一般把移动用户划分到租约期较短的管理类,把固定用户划分到租约期较长的管理类,远程访问用户划分到默认路由类。对于服务器主机则要为其保留固定的IP地址,并且要把保留的IP地址与服务器主机的MAC地址进行绑定。

在DHCP客户端上,在DOS提示符下输入“ipconfig/all”命令,即可查看客户端TCP/IP的详细配置信息。此时可以在客户端运行“ipconfig  /release”命令,手工释放IP地址。运行“ipconfig /renew”命令可以重新向DHCP服务器申请1P地址,此时,客户机向DHCP服务器发送一个Dhcpdiscover数据包来请求租用IP地址。

IP地址169. 254.220.167实际上是自动私有IP地址。当DHCP客户端无法与DHCP服务器通信时,在Windows 2000以前的系统中,如果计算机无法获取IP地址,则自动配置成“IP地址:0.0.0.0 ”、“子网掩码:0.0.0.0”的形式,导致其不能与其他计算机进行通信。而对于Windows 2000以后的操作系统,则在无法获取IP地址时自动配置成“IP地址:169.254.X.X”、“子网掩码:255.255.0.0”的形式,这样可以使所有获取不到IP地址的计算机之间能够通信。

DHCP的客户端可在每次启动并加入网络时动态地获得IP地址和相关配置参数。DHCP服务器以地址租约的形式将该配置提供给发出请求的客户端。

DHCP的租约期限为DHCP服务器所分配的IP地址的有效期,租约定义了指派的IP地址可以使用的时间长度。默认情况下DHCP的租约期限为8天,当租约期过了一半时(按默认时间算是4天),客户端将和设置它的TCP/IP配置的DHCP服务器更新租约。当租期过了87.5%时,如果客户端仍然无法与当初的DHCP服务器联系上,它将与其他DHCP服务器通信,如果网络上再没有任何DHCP服务器在运行时,该客户端必须停止使用该IP地址,并从发送一个dhcpdiscover数据包开始,再一次重复整个过程。

Linux下DHCP服务的配置文件是/etc/dhcpd.conf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值