Pico战队 发表于 2022-8-1 11:03:11

去面试居然被问到了dhcp工作原理太搞了居然没答上来

本帖最后由 Pico战队 于 2022-8-1 11:06 编辑

去面试居然被问到了dhcp工作原理太搞了居然没答上来课程里有讲 而且很清晰 就是没记住,当时就蒙圈了。

闪电迈坤 发表于 2022-8-1 11:12:01

课程中的理论还是要记得不能只记操作,理论知识是面试与排障都要用到的。

整理总结 dhcp工作原理如下:

一、什么是DHCP?

DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,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 的 工作流程:



3、DHCP 协议包的组成

Xid :随机生成的一段字符串,两个数据包拥有相同的xid说明他们属于同一次会话
Ciaddr :客户端会在发送请求时将自己的ip地址放在此处
Yiaddr :服务器会将想要分配给客户端的ip地址放在此处
Siaddr :一般来说是服务器的ip地址.但是注意!根据openwrt源码给出的注释,当报文的源地址、siaddr、option­>server_id字段不一致(有经过跨子网转发)时,通常认为option­>srever_id字段为真正的服务器ip,siaddr有可能是多次路由跳转中的某一个路由的ip
Chaddr :客户端的mac地址
Giaddr :如果需要跨子网进行DHCP地址发放,则在此处填入经过的路由器的ip地址
Sname :服务器主域名
Options :可以自由添加的部分,用于存放客户端向服务器请求信息和服务器的应答信息

闪电迈坤 发表于 2022-8-1 11:13:31

需要注意的是实际工作场景中dhcp默认是不允许跨路由的,除非设置代理 跨子网转发。

Pico战队 发表于 2022-8-1 11:17:24

清晰 这次是真记住了
页: [1]
查看完整版本: 去面试居然被问到了dhcp工作原理太搞了居然没答上来