计算机网络-应用层篇-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服务器收到信息将确认信息单播给路由器,路由器单播给客户端
更多推荐

所有评论(0)