首页 > 技术文章 > 网络基础 05_DHCP

fjfan 2019-04-23 15:28 原文

1 DHCP概述

DHCP (Dynamic Host Configuration Protocol)是一种动态的向Internet终端提供配置参数的协议。在终端提出申请之后,DHCP可以向终端提供IP地址、网关、DNS服务器地址等参数。

DHCP是Bootstrap协议的一种扩展,基于UDP协议,客户端的端口号是68,服务器的端口号是67。

 

DHCP的必要性

在大型网络中,如果每台终端的地址都是由不同的使用这来分配,那么就很容易出现地址相同的情况。

 

  • 在TCP/IP网络上,每台工作站在访问网络及其资源之前,都必须进行基本的网络配置,一些主要参数诸如IP地址,子网掩码,缺省网关,DNS等必不可少,还可能需要一些附加的信息如IP管理策略之类。
  • 在大型网络中,确保所有主机都拥有正确的配置是一件的相当困难的管理任务,尤其对于含有漫游用户和笔记本电脑的动态网络更是如此。经常有计算机从一个子网移到另一个子网以及从网络中移出。手动配置或重新配置数量巨大的计算机可能要花很长时间,而IP主机配置过程中的错误可能导致该主机无法与网络中的其他主机通信。
  • 因此,需要有一种机制来简化IP地址的配置,实现IP的集中式管理。而IETF(Internet网络工程师任务小组)设计的动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)正是这样一种机制。

采用DHCP的好处

  • 减少错误

    通过配置DHCP,把手工配置IP地址所导致的错误减少到最低程度,例如已分配的IP地址再次分配给另一设备所造成的地址冲突等将大大减少。

  • 减少网络管理
  1. TCP/IP配置是集中化和自动完成的,不需要网络管理员手工配置。网络管理员能集中定义全局和特定子网的TCP/IP配置信息。
  2. 使用DHCP选项可以自动给客户机分配全部范围的附加TCP/IP配置值。客户机配置的地址变化必须经常更新,比如远程访问客户机经常到处移动,这样便于它在新的地点重新启动时,高效而又自动地进行配置。
  3. 同时大部分路由器能转发DHCP配置请求,这就减少了在每个子网设置DHCP服务器的必要,除非有其它原因要这样做。

DHCP的结构

DHCP采用客户机/服务器结构。DHCP服务器拥有一个IP地址池,当任何启用DHCP的客户机登录到网络时,可从它那里租借一个IP地址,不使用的IP地址就自动返回地址池,供再分配。

 

DHCP的责任

  • 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用
  • DHCP应当可以给用户分配永久固定的IP地址
  • DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)
  • DHCP服务器应当向现有的BOOTP客户端提供服务

 

  • 考虑到成本,无需每个子网都配备一台DHCP服务器,所以DHCP协议应当可以通过路由器或者BOOTP代理透传。
  • 当一台DHCP客户机重新启动时,在允许的情况下,它应当获得和上次相同的地址和配置

 

2 DHCP的基本工作流程

 

  • 客户机在本网段内广播DHCPDISCOVER报文已发现网络中的DHCP服务器,DHCP Relay可将此报文广播到其他的网段
  • 服务器向客户机回应请求,并给出一个可用的IP地址。此地址并非真的被分配。但在给出此地之前,应当用ICMP ECHO REQUEST报文进行检查。
  • 如果收到多个DHCPOFFER报文,DHCP客户机会根据报文的内容从其中选择一个给与响应。如果客户机之前曾经获得过一个IP地址,她会将此地址写在DHCPREQUEST报文的OPTIONS域的“REQUESTD IP ADDRESS”中发给服务器
  • 当收到DHCPREQUEST报文后,服务器将客户机的网络的(网络地址,硬件地址)同分配的IP地址绑定,在将IP地址发送给客户机
  • 当收到DHCPREQUEST报文后,如果发现其申请的地址无法被分配,则用DHCPNAK报文回应
  • 客户机收到DHCPACK报文后,再对所有的参数进行一次最后的检查,如果发现由地址冲突存在,则使用DHCPDECLINE报文回复服务器
  • 果客户机放弃现在使用的IP地址,则她使用DHCPRELEASE报文通知服务器,服务器将此地址回收以备下次使用。
  • 当客户机的地址到达50%租用期(T1)时,客户机进入RENEW状态,使用DHCPREQUEST报文续约;
  • 当客户机的地址到达87.5%租用期(T2)时,客户机进入REBINDING状态,使用DHCPREQUEST报文续约;

 

推荐阅读