0

    一文了解如何使用DHCP自动分配IP地址?

    2023.08.02 | admin | 121次围观

    前言

    大家好,我是薛哥。动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于集中对用户IP地址进行动态管理和配置的技术。即使规模较小的网络,通过DHCP也可以使后续增加网络设备变得简单快捷。

    01

    正文

    DHCP允许计算机动态地获取IP地址,而不是静态为每台主机指定地址。

    DHCP能够分配其他配置参数,例如客户端的启动配置文件,使客户端仅用一个消息就获取它所需要的所有配置信息。

    动态分配机制:通过DHCP为主机分配一个有使用期限(这个使用期限通常叫做租期)的IP地址。这种分配机制适用于主机需要临时接入网络或者空闲地址数小于网络主机总数且主机不需要永久连接网络的场景。

    静态分配机制:网络管理员通过DHCP为指定的主机分配固定的IP地址。相比手工静态配置IP地址,通过DHCP方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理。

    降低客户端的配置和维护成本。DHCP易配置部署,对于非技术用户,DHCP能够将客户端与配置相关的操作降至最低,并能够降低远程部署和维护成本。

    集中管理。DHCP服务器可以管理多个网段的配置信息,当某个网段的配置发生变化时,管理员只需要更新DHCP服务器上的相关配置即可。

    典型组网

    DHCP组网中,包括以下三种角色:

    •DHCP服务器

    DHCP服务器负责从地址池中选择IP地址分配至DHCP客户端,还可以为DHCP客户端提供其他网络参数自动分配ip地址不能用,如默认网关地址、DNS服务器地址和WINS服务器地址。DHCP服务器可以接收处理来自本网段或跨网段由DHCP中继转发的DHCP请求报文

    •DHCP客户端

    DHCP客户端发送DHCP请求报文、通过BOOTP或DHCP协议请求获取IP地址等网络参数的设备。例如,IP电话、PC、手机、无盘工作站等。

    •DHCP中继

    DHCP中继负责转发DHCP服务器和DHCP客户端之间的DHCP报文,协助DHCP服务器向DHCP客户端动态分配网络参数的设备。

    DHCP客户端广播发送请求报文(即目的IP地址为255.255.255.255),位于同一网段内的DHCP服务器能够接收请求报文。如果DHCP客户端和DHCP服务器不在同一个网段,DHCP服务器无法接收来自客户端的请求报文,此时,需要通过DHCP中继来转发DHCP报文。不同于传统的IP报文转发,DHCP中继接收到DHCP请求或应答报文后,会重新修改报文格式并生成一个新的DHCP报文再进行转发。

    DHCP原理描述

    ◆DHCP服务器给首次接入网络的客户端分配IP1、无中继场景

    在没有部署DHCP中继的场景下,首次接入网络DHCP客户端与DHCP服务器的报文交互过程,该过程称为DHCP报文四步交互。

    第一步:发现阶段

    首次接入网络的DHCP客户端不知道DHCP服务器的IP地址,为了学习到DHCP服务器的IP地址,DHCP客户端以广播方式发送DHCP DISCOVER报文(目的IP地址为255.255.255.255)给同一网段内的所有设备(包括DHCP服务器或中继)。

    第二步:提供阶段

    与DHCP客户端位于同一网段的DHCP服务器都会接收到DHCP DISCOVER报文,DHCP服务器选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。

    第三步:选择阶段

    如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文,它将选择某个DHCP服务器提供的IP地址,其他DHCP服务器可以重新将曾经分配给客户端的IP地址分配给其他客户端。

    第四步:确认阶段

    当DHCP服务器收到DHCP客户端发送的DHCP REQUEST报文后,DHCP服务器回应DHCP ACK报文,表示DHCP REQUEST报文中请求的IP地址分配给客户端使用。

    2、有中继场景

    有DHCP中继的场景中,首次接入网络的DHCP客户端和DHCP服务器的工作原理与无中继场景时DHCP客户端首次接入网络的工作原理相同。主要差异是DHCP中继在DHCP服务器和DHCP客户端之间转发DHCP报文,以保证DHCP服务器和DHCP客户端可以正常交互。如下图:

    ◆DHCP客户端重用曾经使用过的地址的工作原理

    DHCP客户端非首次接入网络时,可以重用曾经使用过的地址。如图所示,DHCP客户端与DHCP服务器交互DHCP报文,以重新获取之前使用的IP地址等网络参数,该过程称为两步交互。

    第一步:选择阶段

    客户端广播发送包含前一次分配的IP地址的DHCP REQUEST报文,请求的IP地址选项字段填入曾经使用过的IP地址。

    第二步:确认阶段

    DHCP服务器收到DHCP REQUEST报文后,根据DHCP REQUEST报文中携带的MAC地址来查找有没有相应的租约记录,如果有则返回DHCP ACK报文,通知DHCP客户端可以继续使用这个IP地址。否则,保持沉默,等待客户端重新发送DHCP DISCOVER报文请求新的IP地址。

    ◆DHCP客户端更新租期的工作原理

    DHCP服务器采用动态分配机制给客户端分配IP地址时,分配出去的IP地址有租期限制。

    DHCP客户端向服务器申请地址时可以携带期望租期,服务器在分配租期时把客户端期望租期和地址池中租期配置比较,分配其中一个较短的租期给客户端。租期到期或者客户端下线释放地址后,服务器会收回该IP地址,收回的IP地址可以继续分配给其他客户端使用。

    这种机制可以提高IP地址的利用率,避免客户端下线后IP地址继续被占用。如果DHCP客户端希望继续使用该地址,需要更新IP地址的租期(如延长IP地址租期)。

    1.当租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。

    2.当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。

    3.如果租期时间到时都没有收到服务器的回应,客户端停止使用此IP地址,重新发送DHCP DISCOVER报文请求新的IP地址。

    DHCP配置举例

    ◆配置设备作为DHCP服务器示例(基于接口地址池)1、组网需求

    如图所示,某企业为办公终端规划了两个网段,网段10.1.1.0/24内PC为员工固定办公终端,网段10.1.2.0/24供企业出差人员临时接入网络。为方便管理员统一管理自动分配ip地址不能用,希望企业终端能够自动获取IP地址和DNS服务器IP地址(当用户希望以域名方式访问时需要配置域名解析的DNS服务器)。其中,企业管理者的办公PC(Client_1)由于业务需要,希望使用固定IP地址为10.1.1.100/24。

    2、配置思路

    基于接口地址池的DHCP服务器的配置思路如下:

    通过在Router上配置DHCP服务器,实现为企业的两个网段内终端动态分配IP地址和DNS服务器地址。其中,网段10.1.1.0/24内PC为员工固定办公终端,IP地址租期配置为30天,并通过DHCP静态方式为DHCP Client_1分配固定IP地址(10.1.1.100/24);网段10.1.2.0/24供企业出差人员临时接入网络,IP地址租期配置为2天。

    3、操作步骤

    (1)使能DHCP服务

    system-view

    [Huawei] sysname Router

    [Router] dhcp enable

    (2)配置接口加入VLAN

    # 配置Eth2/0/0接口加入VLAN10。

    [Router] vlan batch 10 to 11

    [Router] interface ethernet 2/0/0

    [Router-Ethernet2/0/0] port link-type access

    [Router-Ethernet2/0/0] port default vlan 10

    [Router-Ethernet2/0/0] quit

    # 配置Eth2/0/1加接口入VLAN11。

    [Router] interface ethernet 2/0/1

    [Router-Ethernet2/0/1] port link-type access

    [Router-Ethernet2/0/1] port default vlan 11

    [Router-Ethernet2/0/1] quit

    (3)配置VLANIF接口IP地址

    # 配置VLANIF10接口地址。

    [Router] interface vlanif 10

    [Router-Vlanif10] ip address 10.1.1.1 24

    [Router-Vlanif10] quit

    # 配置VLANIF11接口地址。

    [Router] interface vlanif 11

    [Router-Vlanif11] ip address 10.1.2.1 24

    [Router-Vlanif11] quit

    (4)配置接口地址池

    # 配置VLANIF10接口下的客户端从接口地址池中获取IP地址和相关网络参数。

    [Router] interface vlanif 10

    [Router-Vlanif10] dhcp select interface

    [Router-Vlanif10] dhcp server lease day 30

    [Router-Vlanif10] dhcp server domain-name huawei.com

    [Router-Vlanif10] dhcp server dns-list 10.1.1.2

    [Router-Vlanif10] dhcp server excluded-ip-address 10.1.1.2

    [Router-Vlanif10] dhcp server static-bind ip-address 10.1.1.100 mac-address 286e-d488-b684

    [Router-Vlanif10] quit

    # 配置VLANIF11接口下的客户端从接口地址池中获取IP地址和相关网络参数。

    [Router] interface vlanif 11

    [Router-Vlanif11] dhcp select interface

    [Router-Vlanif11] dhcp server lease day 2

    [Router-Vlanif11] dhcp server domain-name huawei.com

    [Router-Vlanif11] dhcp server dns-list 10.1.1.2

    [Router-Vlanif11] quit

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论