目录

概述

其客户端与服务器及其分配

DHCP中继

作用及特点

DHCP协议中的报文

DHCP服务工作流程(流程,重新登录,续租,跨网提供服务)


  • 概述

  • DHCP(Dynamic Host Configuration Protocol):动态主机配置协议
  • 是一个局域网协议
  • 是应用UDP协议的应用层协议
  • 指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码
  • 其客户端与服务器及其分配

  • DHCP前身是BOOTP
  • 在Linux的网卡配置中也能看到显示的是BOOTP
  • DHCP引进一个bootp没有的概念:租约
  • bootp分配的地址是永久的,而dhcp分配的地址是可以有期限的
  • DHCP分为两个部分:一个是服务器端,另一个是客户端
  • 客户端
  • 通常为网络中的PC、打印机等终端设备
  • 使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS、子网掩码、默认网关等
  • DHCP服务器
  • 所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求
  • DHCP服务器为客户端分配IP地址有三种形式:
  • 自动分配方式(Automatic Allocation)
  • DHCP服务器为主机指定一个永久性的IP地址
  • 一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址
  • 动态分配方式(Dynamic Allocation)
  • DHCP服务器给主机指定一个具有时间限制的IP地址
  • 时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用
  • 手工分配方式(Manual Allocation)
  • 客户端的IP地址是由网络管理员指定的
  • DHCP服务器只是将指定的IP地址告诉客户端主机
  • 第三种是最常见的使用形式
  • 地址的有效使用时间段称为租用期,租用期满之前,客户端必须向服务器请求继续租用
  • 服务器接受请求后才能继续使用,否则无条件放弃
  • DHCP中继

  • 默认情况下,路由器隔离广播包,不会将收到的广播包从一个子网发送到另一个子网
  • 当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继
  • DHCP中继主机必须自己具有路由能力,且能将双方的数据报互传对方
  • 如果不使用中继,也可以在每一个网络中安装DHCP服务器,但这样的话,一来设备成本会增加,而且管理上面也比较分散
  • 当然,如果在大型的网络中,这样的均衡式架构还是可取的
  • DHCP中继代理
  • 就是在DHCP服务器和客户端之间转发DHCP数据包
  • 当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息
  • DHCP中继代理的数据转发,与通常路由转发是不同的
  • 通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容
  • 而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去
  • 作用及特点

  • DHCP可以自动分配IP、子网掩码、网关、DNS
  • DHCP客户端使用的端口68,服务端使用端口67,使用的UDP应用层的协议
  • DHCP一般不为服务器分配IP,因为他们要使用固定IP,所以DHCP一般只为办公环境的主机分配IP
  • DHCP服务器和客户端需要在一个局域网内,在为客户端分配IP的时候需要进行多次广播
  • 但DHCP也可以为其他网段内主机分配IP,只要连接两个网段中间的路由器能转发DHCP配置请求即可,但这要求路由器配置中继功能
  • DHCP协议中的报文

  • DHCP DISCOVER :
  • 客户端开始DHCP过程发送的包,是DHCP协议的开始
  • DHCP OFFER :
  • 服务器接收到DHCP DISCOVER之后做出的响应
  • 它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
  • DHCP REQUEST :
  • 客户端对于服务器发出的DHCP OFFER所做出的响应
  • 在续约租期的时候同样会使用
  • DHCP ACK :
  • 服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文
  • 在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用
  • DHCP NAK :
  • DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求
  • DHCP RELEASE :
  • 一般出现在客户端关机、下线等状况
  • 这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
  • DHCP INFORM :
  • 客户端发出的向服务器请求一些信息的报文
  • DHCP DECLINE :
  • 当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址
  • DHCP服务工作流程(流程,重新登录,续租,跨网提供服务)

  • 工作流程细节
  • 第一步:搜索阶段
  • 当DHCP客户端第一次登录网络的时候
  • 计算机发现本机上没有任何IP地址设定
  • 将以广播方式发送DHCP discover发现信息来寻找DHCP服务器
  • 即向255.255.255.255发送特定的广播信息
  • 网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息
  • 但只有DHCP服务器才会做出响应(DHCP DISCOVER)
  • 第二步:提供阶段
  • 在网络中接收到DHCP discover发现信息的DHCP服务器就会做出响应
  • 它从尚未分配的IP地址池中挑选一个分配给DHCP客户机
  • 向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP offer提供信息
  • 因为此时客户端还没有IP,所以返回信息也是以广播的方式返回的(DHCP OFFER)
  • 第三步:选择阶段
  • DHCP客户端接受到DHCP offer提供信息之后
  • 选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息
  • 该信息包含向它所选定的DHCP服务器请求IP地址的内容(DHCP REQUEST)
  • 第四步:确认阶段
  • 当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后
  • 便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息
  • 确认租约,并指定租约时长
  • 告诉DHCP客户端可以使用它提供的IP地址
  • 然后,DHCP客户机便将其TCP/IP协议与网卡绑定
  • 另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址(DHCP ACK)
  • 重新登录
  • 以后DHCP客户端每次重新登录网络时
  • 就不需要再发送DHCP discover发现信息了
  • 而是直接发送包含前一次所分配的IP地址的DHCP request请求信息
  • 当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息
  • 如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息
  • 当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址
  • 续租
  • DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限
  • 期满后DHCP服务器便会收回出租的IP地址
  • 如果DHCP客户机要延长其IP租约,则必须更新其IP租约
  • DHCP客户机启动时和IP租约期限到达租约的50%时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息
  • 续租的过程(只有最后两步请求):
  • 单播:继续请求使用提供的IP
  • 单播:确认续租
  • 两个租约表:
  • 静态租约表:
  • 对应一个静态租约存储文件,server运行时从文件中读取静态租约表
  • 动态租约表:
  • 对应一个周期存储文件,server周期性将租约表存进该文件,在程序开始时将会读取上次存放的租约表(租约表记录了当前所有分配的租约,包括静态链接的)
  • DHCP服务器要跨网段提供服务
  • 如果DHCP服务器要跨网段提供服务,一样是四步请求
  • 只不过是每一步中间都多了一个路由器和DHCP服务器之间的单播通信
  • 1、客户端广播方式发送报文,搜索DHCP服务器
  • 所有机器包括路由器都收到报文,路由器配置了中继,知道搜索消息后单播给DHCP服务器;
  • 2、DHCP服务器单播返回信息给路由器,路由器再广播给客户端;
  • 3、客户端选择DHCP服务器提供的IP
  • 并广播信息告诉它我选好了,路由器单播给DHCP服务器;
  • 4、DHCP服务器收到信息将确认信息单播给路由器,路由器单播给客户端
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐