[Linux]经典面试题 - 服务管理 - DHCP

一、DHCP概述

1.1 DHCP是什么?

  • DHCP(动态主机配置协议)是一个局域网的网络协议。
  • DHCP Server配置好地址池,Client登陆的时候就能自动获取到IP、掩码、DNS等。

1.2 DHCP细节

  • DHCP服务端使用UDP:67;客户端使用UDP:68。

  • DHCP运行分为四个基本过程:

    1. 请求IP租约

    2. 提供IP租约

    3. 选择IP租约

    4. 确认IP租约

  • 客户在获得一个IP地址后,会发送一个ARP请求来避免由于HDCP地址池重叠而引发的IP冲突。

  • DHCP中涉及到中继的问题,都是把广播帧拆分成多个单播帧进行发送。

二、DHCP报文详情

2.1 DHCP的八种报文

报文类型 封包类型 作用
DHCP DISCOVER 广播 客户端用于找DHCP服务器。
DHCP OFFER 单播 DHCP服务器响应DHCP DISCOVER报文,此报文携带各种配置信息。
DHCP REQUEST 广播 三种用途:
1. 客户端初始化,发送广播DHCP REQUEST回应DHCP OFFER报文。
2. 客户端重上线,用于确认先前分配的IP地址等配置信息。
3. 客户端租约将到期,用于进行IP地址的续约。
DHCP ACK 单播 DHCP服务器对客户端的DHCP REQUEST报文的确认,此时客户端真正获得IP与相关配置信息。
DHCP NAK 单播 DHCP服务器对客户端的DHCP REQUEST报文的拒绝。(如上所述的三种DHCP REQUEST情况的拒绝响应时发送 DHCP NAK报文)。
DHCP RELEASE 单播 客户端可通过发送此报文主动释放服务器分配给它的IP地址,服务器收到此报文后,就可以将这个IP地址分配给其他设备。
DHCP DECLINE 单播 客户端发现地址与其他设备冲突时,向DHCP服务器发送DHCP DECLINE报文,用于重新申请地址。
DHCP INFORM 单播 客户端获取地址后,若想获取更为详细的信息如:DNS、网关等,则向DHCP服务器发送DHCP INFORM请求报文。

2.2 DHCP 报文格式

image-20210629223844574

(图片来自百度)

2.3 DHCP Options

BOOTP / DHCP options (networksorcery.com)

三、DHCP工作流程

3.1 租约四步曲

image-20210629225805530

  1. 发现,客户端广播发送DHCP DISCOVER报文给同网段的设备(DHCP服务器、DHCP中继)。报文中携带了客户端MAC(chaddr)、需请求参数列表选项(Option55)、广播标志位(flags)等。

  2. 提供,与客户端同网段的DHCP服务器会接受其发出的DHCP DISCOVER报文,然后DHCP服务器会从地址池(全局/接口,看具体配置)中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给客户端。

    补充:关于租期,DHCP服务器会拿客户端期望租期与指定租期作比较,选较小的作为实际租期。

  3. 选择,通常客户端只接受第一个DHCP OFFER报文,然后广播发送DHCP REQUEST报文,报文中包含了DHCP服务器标识符(Option54)、客户端IP地址(Option50)

  4. 确认,DHCP服务器收到客户端发送的DHCP REQUEST报文,会回复一个携带相关配置信息的DHCP ACK报文给客户端。

在有DHCP中继的情况下,DHCP的广播报文会被转换成多个单播报文发送给相应的设备,因为三层网络隔离广播域。

3.2 重用旧地址

image-20210629235743556

  1. 选择,客户端发送DHCP REQUEST,报文中的Option50字段填入曾使用过的地址。
  2. 确认,如果DHCP服务器在MAC地址表中查找到租约记录,则发送DHCP ACK告知可继续使用该IP地址,否则沉默,直至客户端再发送DHCP DISCOVER报文请求新的IP地址。

3.3 更新租约期

image-20210630001006101

  1. 租约期到达50%时,单播DHCP REQUEST报文,请求续约,若得到响应则成功续约。
  2. 租约期到达87.5%时,仍未得到回应,则广播DHCP REQUEST报文,请求新的地址。
posted @ 2021-06-30 00:16  SkyBiuBiu  阅读(716)  评论(0编辑  收藏  举报