001.DHCP简介

一 DHCP概念

DHCP指动态主机配置协议,是一个局域网的网络协议,使用UDP协议工作。

二 应用

  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本,提高网络配置效率

三 分配的主要信息

  • 网卡的IP地址、子网掩码
  • 对应的网络地址、广播地址
  • 默认网关地址
  • DNS服务器地址
  • 引导文件、TFTP服务器地址

四 DHCP流程

顺序 协议 形式 备注

客户端寻找服务器

DISCOVER


广播


源地址为0.0.0.0,目标地址为255.255.255.255

服务器提供地址信息


OFFER

广播
 

接受并广播

DHCP REQUEST

广播

源地址为0.0.0.0,目标地址为255.255.255.255

服务器确认

ACK

广播
 

客户端重新登录

REQUEST

广播

续租目的地址为DHCP服务器地址

服务器确认

ACK

单播

续约应答

4.1 DHCP客户机初始化

1. 寻找DHCP Server

当DHCP客户机第一次登录网络的时候(也就是客户机上没有任何IP地址数据时),它会通过UDP 67端口向网络上发出一个DHCPDISCOVER数据包(包中包含客户机的MAC地址和计算机名等信息)。因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,目标地址为255.255.255.255,然后再附上DHCP discover的信息,向网络进行广播。

DHCP discover的等待时间预设为1秒,也就是当客户机将第一个DHCP discover封包送出去之后,在1秒之内没有得到回应的话,就会进行第二次DHCP discover广播。若一直没有得到回应,客户机会将这一广播包重新发送四次(以2,4,8,16秒为间隔,加上1-1000毫秒之间随机长度的时间)。如果都没有得到DHCP Server的回应,客户机会从169.254.0.0/16这个自动保留的私有IP地址中选用一个IP地址。并且每隔5分钟重新广播一次,如果收到某个服务器的响应,则继续IP租用过程。

2. 提供IP地址租用

当DHCP Server监听到客户机发出的DHCP discover广播后,它会从那些还没有租出去的地址中,选择最前面的空置IP,连同其它TCP/IP设定,通过UDP 68端口响应给客户机一个DHCP OFFER数据包(包中包含IP地址、子网掩码、地址租期等信息)。此时还是使用广播进行通讯,源IP地址为DHCP Server的IP地址,目标地址为255.255.255.255。同时,DHCP Server为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。

由于客户机在开始的时候还没有IP地址,所以在其DHCP discover封包内会带有其MAC地址信息,并且有一个XID编号来辨别该封包,DHCP Server响应的DHCP OFFER封包则会根据这些资料传递给要求租约的客户。

3. 接受IP租约

如果客户机收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCP OFFER(一般是最先到达的那个),并且会向网络发送一个DHCP REQUEST广播数据包(包中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等),告诉所有DHCP Server它将接受哪一台服务器提供的IP地址,所有其他的DHCP服务器撤销它们的提供以便将IP地址提供给下一次IP租用请求。此时,由于还没有得到DHCP Server的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。

事实上,并不是所有DHCP客户机都会无条件接受DHCP Server的OFFER,特别是如果这些主机上安装有其它TCP/IP相关的客户机软件。客户机也可以用DHCP REQUEST向服务器提出DHCP选择,这些选择会以不同的号码填写在DHCP Option Field里面。客户机可以保留自己的一些TCP/IP设定。

4. 租约确认

当DHCP Server接收到客户机的DHCP REQUEST之后,会广播返回给客户机一个DHCP ACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。

客户机在接收到DHCP ACK广播后,会向网络发送三个针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP DECLINE数据包给DHCP Server,拒绝此IP地址租约,并重新发送DHCP discover信息。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。

如果网络上没有其它主机使用此IP地址,则客户机的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。

4.2 DHCP客户机租期续约

客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP Server发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。

如果在租期过去50%的时候没有更新,则客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP联系。如果还不成功,到租约的100%时候,客户机必须放弃这个IP地址,重新申请。如果此时无DHCP可用,客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。

原文地址:https://www.cnblogs.com/itzgr/p/9888552.html

时间: 2024-07-31 05:06:33

001.DHCP简介的相关文章

001.Redis简介及安装

原文:001.Redis简介及安装 一 Redis简介 1.1 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key-value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储. Redis支持数据的备份,即master-sla

001 Windows 简介

001 Windows简介 #Windows 简介 Windows版本历史 16位图形用户界面 16位和32位混合操作系统 64位操作系统 移动设备操作系统 NT架构 #Windows与编程语言 Windows API SDK&API&MFC SDK (SoftWare Development Kit) API (Application Programming Interface) MFC (Microsoft Foundation Classes) Windows API分类 基础服务

001.NFS简介

一 简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NFS在文件传

001.iSCSI简介

一 iSCSI简介 Internet小型计算机系统接口是一个机遇TCP/IP的协议,用于通过IP网络仿真SCSI高性能本地存储总线,从而为远程存储设备提供数据传输和管理.作为SAN协议,iSCSI跨本地和广域网扩展SAN,通过分布式服务器和数组提供独立于位置的数据存储检索. 二 iSCSI优点 使用SAN摆脱了本地布线限制,促进了本地或远程数据中心的存储整合: iSCSI结构是逻辑性的,仅使用软件配置来进行新的存储分配,无需其他电缆和物理磁盘: iSCSI使用多个远程数据中心简化了数据复制.迁移

001. Ansible简介

一 简介 Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点. 实现了批量系统配置, 批量程序部署, 批量运行命令等功能. Ansible是基于模块工作的, 本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块, Ansible只是提供一种框架.主要包括: Play books:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible依次

001.etcd简介及单节点使用

一 etcd简介 1.1 概述 etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于 Go 语言实现. 特点: 简单:支持 REST 风格的 HTTP+JSON API 安全:支持 HTTPS 方式的访问 快速:支持并发 1k/s 的写操作 可靠:支持分布式结构,基于 Raft 的一致性算法 延伸:ZooKeeper 是一套分布式系统中进行同步和一致性管理的

001.HAProxy简介

一 HAProxy简介 HAProxy是可提供高可用性.负载均衡以及基于TCP(从而可以反向代理mysql等应用)和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理.HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或多线程模型受内存限

001.LVS简介及算法

一 LVS简介 1.1 LVS介绍 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能. 使用LVS需要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能.高可用的服务器群集,它具有良好的可靠性,可扩展性和可操作性,从而以低廉的成本实现最优的服务性能. 1.2 LVS主要作用 作用:提供一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载带宽.增加吞吐量,加强网

001.Heartbeat简介

一 Heartbeat简介 1.1 概述 Heartbeat是Linux-HA项目中的一个组件,也是当前开源HA项目中最成功的一个例子,它提供了所有HA软件所需要的基本功能,如心跳检测和资源接管.监测群集中的系统服务.在群集中的节点间转移共享IP地址的所有者等.heartbeat最核心的功能包括两个部分,心跳监测和资源接管.心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资