客户端|DHCP的基本原理

客户端|DHCP的基本原理

文章图片


哈喽 , 大家好 , 太阁小老虎 , 基础知识大讲堂 , 开始啦!你准备好了没!
1.DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 , 从BOOTP(Bootstrap Protocol)协议发展而来 , 是IETF为实现IP的自动配置而设计的协议 , 它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务 器的IP地址等TCP/IP参数 。
DHCP协议报文采用UDP方式封装 , DHCP服务器所侦听的端口号是67 , 客户端的端口号是68 。
2.DHCP的原理:

  • DHCP客户端初次接入网络时会发送DHCP发现报文(DHCP Discover) , 用于查找和定位DHCP服务器 。
  • DHCP服务器在收到DHCP发现报文后 , 会发送DHCP请求报文(DHCP Offer)此报文包含IP地址等配置信息 。
  • 在DHCP客户端收到服务器发送的DHCP提供报文后 , 会发送DHCP请求报文(DHCP Request)另外在DHCP客户端获取IP地址并重启后 , 同样也会发送DHCP请求报文 , 用于确认分配的IP地址等配置信息 。
  • DHCP客户端获取的IP地址租期快要到期时 , 也会发送DHCP请求报文向服务器申请延长IP地址租期 。
  • 收到DHCP客户端发送的DHCP请求报文后 , DHCP服务器会回复DHCP确认报文(DHCP ACK)客户端收到DHCP确认报文后 , 会将获取的IP地址等信息进行配置和使用 。
  • 如果DHCP服务器收到DHCP-Request报文后 , 没有找到相应的记录 , 则发送DHCP-NAK报文作为应答 , 告知DHCP客户端无法配合适IP地址 。
  • DHCP客户端通过发送DHCP释放报文(DHCP Release)来释放IP地址 。 收到DHCP释放报文后 , DHCP服务器可以把该IP分配给其他DHCP客户端 。
DHCP的报文类型:

DHCP客户端和服务器之间的报文交互过程:
为了获取IP地址等配置信息 , DHCP客户端需要和DHCP服务器进行报文交互 。
【客户端|DHCP的基本原理】首先 , DHCP客户端发送DHCP发现报文来发现DHCP服务器 。 DHCP服务器会选取一个未分配的IP地址 , 向DHCP客户端发送DHCP提供报文 。 此报文中包含分配给客户端的IP地址和其他配置信息 。 如果存在多个DHCP服务器 , 每个DHCP服务器都会响应 。
如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文 , DHCP客户端将会选择收到的第一个DHCP提供报文 , 然后发送DHCP请求报文 , 报文中包含请求的IP地址 。 收到DHCP请求报文后 , 提供该IP地址的DHCP服务器会向DHCP客户端发送一个DHCP确认报文 , 包含提供的IP地址和其他配置信息 。
DHCP客户端收到DHCP确认报文后 , 会发送免费ARP报文 , 检查网络中是否有其他主机使用分配的IP地址 。 如果指定时间内没有收到ARP应答DHCP客户端会使用这个IP地址 。 如果有主机使用该IP地址 , DHCP客户端会DHCP服务器发送DHCP拒绝报文 , 通知服务器该IP地址已被占用 。 然后DHCP客户端会向服务器重新申请一个IP地址 。
3.什么是DHCP中继?什么是option82字段?
(1)定义:DHCP Relay即DHCP中继 , 它实现了不同网段之间的DHCP服务器和客户端之间的报文交互 。
(2)作用:DHCP中继承但处于不同网段之间的DHCP客户端和服务器之间中继服务 , 将DHCP协议报文跨网段透传到目的DHCP服务器 , 最终使网络上的DHCP客户端可以共同使用一个DHCP服务器 。
(3)工作原理:DHCP客户端发送请求报文给DHCP服务器 , DHCP中继收到该报文并适当处理后 , 以单播形式发送给指定的位于其他网段上的DHCP服务器 , 服务器根据请求报文中提供的必要信息 , 通过DHCP中继配置信息返回给客户端 , 完成对客户端的动态配置 。

(4)Option82字段:称为中继代理信息选项 , 该选项记录了DHCP客户端的位置信息 , DHCP中继或DHCP Snooping设备接收到DHCP客户端发送给DHCP服务器的请求报文后 , 在该报文中添加option82 , 并转发给DHCP服务器 。
管理员可以从Option82中获得DHCP客户端的位置信息 , 以便定位DHCP客户端 , 实现对客户端的安全和计费等控制 。 支持Option82的服务器还可以根据该选项的信息制定IP地址和其他参数的分配策略 , 提供更加灵活的地址分配方案 。
Option82最多可以包含255个子选项 , 若定义了Option82 , 则至少要定义一个子选项 , 目前设备只支持两个子选项:sub-option1(Circuit ID , 电路ID子选项)和sub-option2(Remote ID , 远程ID子选项) 。
Circuit ID:主要用来标识客户端所在的VLAN , 接口等信息 。
Remote ID:主要用老标识客户端接入的设备 , 一般为设备的MAC地址 。
好啦 , 今天的知识点就到这里 , 你理解了嘛!


    推荐阅读