• DHCP基础


    1. DHCP概述

    DHCP基本概念

    DHCP是一种用于集中对用户IP地址进行动态管理和配置的协议。
    DHCP采用C/S(Client/Server,客户端/服务器)通信模式,协议报文基于UDP的方式进行交互,采用67(DHCP服务器)和68(DHCP客户端)两个端口号:
    ①正常工作时由客户端向服务器提出配置申请。
    ②服务器返回为客户端分配的IP地址等相应的配置信息。
    DHCP相对于手工配置有如下优点:
    ①效率高
    ②灵活性强
    ③易于管理

    2. DHCP工作原理

    DHCP客户端首次接入网络的工作原理

    ① 发现阶段,即DHCP客户端发现DHCP服务器的阶段。
    DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器。DHCP DISCOVER报文中携带了客户端的MAC地址、需要请求的参数列表选项、广播标志位等信息。
    ② 提供阶段,即DHCP服务器提供网络配置信息的阶段。
    服务器接收到DHCP DISCOVER报文后,选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。
    ③选择阶段,即DHCP客户端选择IP地址的阶段。
    如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。
    ④确认阶段,即DHCP服务器确认所分配IP地址的阶段。
    DHCP客户端收到DHCP ACK报文,会广播发送免费ARP报文,探测本网段是否有其他终端使用服务器分配的IP地址。在这里插入图片描述

    DHCP报文格式

    字段解释
    Op(op code):表示报文的类型,取值为1或2,含义如下:
    1:客户端请求报。
    2:服务器响应报文。
    Secs(seconds):由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数,缺省值为3600s。
    Flags:客户端请求服务器发送响应报文的形式,只有最高位有意义,其余15位置0。最高位为0时请求发送单播响应,最高位为1时请求发送广播响应。
    Yiaddr(your client ip address):表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段。
    Siaddr(server ip address):DHCP服务器的IP地址。
    Chaddr(client hardware address):客户端的MAC地址。
    Options:DHCP通过此字段包含了服务器分配给终端的配置信息。在这里插入图片描述

    Options预定义选项字段

    DHCP报文中Options字段为可变长度字段,最多为312Byte,此字段包含了DHCP报文类型,服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息。
    Options字段由Type、Length和Value三部分组成。其中Type字段取值范围1~255。
    常见的Option如下:
    在这里插入图片描述

    DHCP消息类型

    DHCP报文通过Options选项中的Type=53来表示DHCP的报文类型。如下图所示,当Type=53,Length=1,Value取值从01到08分别表示不同的DHCP报文类型。在这里插入图片描述

    Options自定义选项字段

    除了标准协议中规定的字段选项外,还有部分选项内容没有统一规定,统称为用户自定义选项,例如Option 82和Option 43。
    ①Option 82称为中继代理信息选项。
    Option 82中可以包含最多255个Sub-Option,若定义了Option 82,至少要定义一个Sub-Option。
    DHCP中继或DHCP Snooping设备接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加Option 82,并转发给DHCP服务器。管理员可以从Option 82中获得DHCP客户端的信息,例如DHCP客户端所连接交换机端口的VLAN ID、二层端口号、中继设备的MAC地址等。
    ②Option 43称为厂商特定信息选项。
    DHCP服务器和DHCP客户端通过Option 43交换厂商特定的信息。当DHCP服务器接收到请求Option 43信息的DHCP请求报文(Option 55中带有Option 43参数)后,将在回复报文中携带Option 43,为DHCP客户端分配厂商指定的信息。
    在WLAN组网中,AP作为DHCP客户端,DHCP服务器可以为AP指定AC的IP地址,以方便AP与AC建立连接。

    Option 43应用

    在WLAN三层组网中,当AP上线时,需要获取AC的IP地址,并与AC之间建立CAPWAP隧道。
    AP的IP地址通过DHCP服务器分配,当AC的IP地址与AP不在同一个广播域,AP无法通过广播的方式获取AC的IP地址,则CAPWAP隧道无法建立成功。
    AP通过DHCP报文中的Option 43选项字段获取AC的IP地址,当AP获取AC的IP地址后,可以进一步完成CAPWAP隧道的建立,从而实现AP上线。在这里插入图片描述

    DHCP地址续租

    ①当租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功。
    ②当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功。
    ③如果租期时间到时都没有收到服务器的回应,客户端停止使用此IP地址,重新发送DHCP DISCOVER报文请求新的IP地址。
    在这里插入图片描述

    DHCP客户端重用曾经使用过的地址

    DHCP客户端非首次接入网络时,可以重用曾经使用过的地址。例如,网络中的主机作为DHCP客户端,在关机再开机的过程中,需要重新获取相关网络参数,则可以请求分配曾经使用过的IP地址。
    ①选择阶段
    客户端广播发送包含前一次分配的IP地址的DHCP REQUEST报文,报文中的Option 50(请求的IP地址选项)字段填入曾经使用过的IP地址。
    ②确认阶段
    DHCP服务器收到DHCP REQUEST报文后,根据DHCP REQUEST报文中携带的MAC地址来查找有没有相应的租约记录。如果有则返回DHCP ACK报文,通知DHCP客户端可以继续使用这个IP地址,如果没有租约记录,则不响应。
    在这里插入图片描述

    DHCP分配IP地址顺序

    DHCP服务器按照如下次序为客户端选择IP地址:
    ①DHCP服务器的数据库中与客户端MAC地址静态绑定的IP地址。
    ②客户端以前曾经使用过的IP地址,即客户端发送的请求报文中请求IP地址选项的地址。
    ③在DHCP地址池中,顺序查找可供分配的空闲IP地址,最先找到的IP地址。
    ④如果在DHCP地址池中未找到可供分配的空闲IP地址,则依次查询超过租期、发生冲突的IP地址,如果找到可用的IP地址,则进行分配,否则报告错误。在这里插入图片描述

    3. DHCP Relay工作原理

    DHCP Relay概述

    DHCP Relay即DHCP中继,它是为解决DHCP服务器和DHCP客户端不在同一个广播域而提出的,提供了对DHCP广播报文的中继转发功能,能够把DHCP客户端的广播报文“透明地”传送到其它广播域的DHCP服务器上,同样也能够把DHCP服务器端的应答报文“透明地”传送到其它广播域的DHCP客户端。

    DHCP Relay报文格式

    DHCP Relay主要负责转发DHCP客户端与DHCP服务器之间的DHCP报文,所以DHCP Relay的报文格式只是把DHCP的报文部分字段做了相应的修改,报文格式没有发生变化;
    字段解释:
    Hops:表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1。
    Giaddr ( gateway ip address ) :表示第一个DHCP中继的IP地址。当客户端发出DHCP请求时,第一个DHCP中继在将DHCP请求报文转发给DHCP服务器时,会把自己的IP地址填入此字段。
    其余字段与DHCP中相同。
    在这里插入图片描述

    DHCP Relay工作原理

    有中继场景时DHCP客户端首次接入网络的工作原理:
    ①发现阶段:DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继。
    ②提供阶段:DHCP服务器根据DHCP DISCOVER报文中的Giaddr字段选择地址池为客户端分配相关网络参数,DHCP中继收到DHCP OFFER报文后,以单播或组播方式发送给DHCP Client。
    ③选择阶段:中继接收到来自客户端的DHCP REQUEST报文的处理过程同“发现阶段”。
    ④确认阶段:中继接收到来自服务器的DHCP ACK报文的处理过程同“提供阶段”。
    在这里插入图片描述

  • 相关阅读:
    Shell基础— 变量定义的规则和分类
    python 将数组元素存入.csv文件中;csv内部实现行列转换;
    等保2.0 测评 linux服务器加固 基本安全配置手册
    管理多个Instagram帐户防关联小技巧大分享
    mysql常用函数
    Java入门第109课——集合的size、clear、isEmpty用法
    (未解决)执行git rebase提示:Current branch xxx is up to date.
    Qt扩展-Advanced-Docking 简介及配置
    【mindspore】【faster_rcnn】pad补齐之后的数据,如何将补齐的0那部分去掉
    电脑系统还原怎么操作?
  • 原文地址:https://blog.csdn.net/qq_61480669/article/details/133914072