Linux的DHCP的工作原理

导读:本篇文章讲解 Linux的DHCP的工作原理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

本章概述

主要讲解DHCP工作原理,如何完成自动分配ip地址,在分配时需要经历哪些步骤,且DHCP服务器分配的ip地址到期怎么办?还有为什么需要使用DHCP服务?以及具体的DHCP动态分配地址详细说明及配置步骤。指定主机名分配ip地址的配置步骤。

一、DHCP的工作原理

本质:

1、物理网卡自身集成了DHCP的功能,为了请求获取合法、可用的IP。

2、DHCP服务端核心功能在于:通过自定义的网段的地址池,来给与新加入的网络环境的设备以租约的方式分配合法IP。

1、什么是DHCP及DHCP的好处

1.1 DHCP是什么?

  • DHCP (Dynamic Host Configuration Protocol):动态主机配置协议,由internet工作任务小组设计开和发 , 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议。 是一个应用层协议,使用UDP的67和68端口。

  • -通俗的讲:就是服务器给客户端分配ip地址。

  • DHCP的前身是BOOTP协议(BootstrapProtocol),BOOTP被创建出来为了连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。

1.2 DHCP好处?

由于上网时间的不确定性以及使用人员的技术水平不同,为每位用户分配一个固定的ip地址,不仅造成了IP地址的浪费,也会成为ISP服务商带来高额的维护成本,而使用DHCP则有以下好处

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免ip地址冲突
  • 当网络更改ip地址段时,不需要再重新配置每个用户的IP地址
  • 提高ip地址的利用率
  • 方便客户端的配置

1.3 为什么要使用DUCP?

DHCP服务避免了因手动设置IP地址所产生的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突,DHCP提供了安全、可靠且简单的TCP/IP网络设置,降低了配置IP地址的负担。

2、DHCP的模式与分配方式

2.1 DHCP模式

在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址,DNS服务器地址):其他主机作为DHCP客户机,将网卡配置为自动获取,即可与DHCP服务器进行通信,完成自动配置过程。

DHCP是C/S模式(Client/Server),DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。

  • server 端:DHCP server(运行dhcp服务)
  • UDP服务:监听端口67(bootps)
  • Client端:DHCP Client(运行dhcp服务)
  • UDP服务:监听端口68(bootpc)

2.2 DHCP分配方式

三种模式:

自动分配: 客户机第一次成功的从DHCP获取到一个IP地址后,就永久的使用这个地址。

①指定主机的方式进行DHCP分配(获取主机的MAC地址,专属分配固定ip)

手动分配: 是由DHCP服务器管理员专门制定IP地址

②手工指定网卡配置—》static

动态分配: 当客户机拿到ip地址,并非永久使用,使用完结束后,客户机会进行释放这个ip。

③DHCP自动分配—》(对应网段的)地址池

3、DHCP工作原理

DHCP工作原理: 广播进行,先到先得,一个网络中只有一个DHCP。

3.1 DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

image-20220606091909701

  • discover : Client 端广播发现DHCP服务器

  • offer : DHCP服务器分配Clinet端一个可用的ip,并询问是否使用

  • Request : Client端回应DHCP服务器,确认使用此IP。

  • ACK: 确认租约。

详细步骤描述

①客户机请求IP地址

  • 当一个DHCP客户机启动时,客户机还有没有IP地址,所以客户机要通过DHCP获取一个合法的地址。
  • 此时DHCP客户机以广播方式发送DHCP Discover 发现信息来寻找DHCP服务器

image-20220606092513347

②服务器响应

  • DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机。
  • 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP offer的消息中,然后单播一则DHCP offer消息。

image-20220606093426789

③客户机选择ip地址

  • DHCP客户机从接收到的第一个DHCP offer消息找那个提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机

image-20220606093651777

④服务器确定租约

  • DHCP服务器接收到DHCP Request 消息后,以DHCP ACK 消息的形式向客户机单播成功确认,该消息包含有IP地址的有效租约和其它可配置的信息
  • 当客户机收到DHCP ACK 消息时,配置IP 地址,完成TCP/IP的初始化

image-20220606094633268

3.2 重新登录

  • DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover 信息,而是直接发送包含前一次所分配的IP地址的DHCP Request 请求信息

image-20220606095107494

3.3 更新租约

  • 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约。
  • 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。

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

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

为什么有时候会分配169.154.0.0/16网段的地址?

答:

①一开始,DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DUCPdiscover广播包,请求租用ip地址。

②任何接收到DHCPdiscover广播包并且能够提供DHCP的服务器,都会通过UDP端口68给客户机回应一个DHCPoffer广播包,提供一个ip地址。

③但是DHCP客户机发出的IP租用请求DHCPdiscover广播包,将花费1秒的时间等待DHCP服务器,如果1秒后没有DHCP服务器回应,它会将这一广播包重新广播四次(以2,4,8,16秒为间隔,加上1~1000毫秒之间随机长度时间)

④四次之后,如果未能收到服务器的回应,则运行的DHCP客户机将从169.254.0.0/16这个自动保留的私有ip地址(APIPA)中选用一个IP地址,而运行其他操作的DHCP客户机将无法获得IP地址。

或者

DHCP服务器的ip地址池没有再可分配的ip地址了。

二、使用DHCP动态配置主机地址

1、DHCP服务

DHCP服务

  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本,提高网络配置效率

可分配的地址信息主要包括

  • 网卡的IP地址、子网掩码
  • 对应的网络地址、广播地址
  • 默认的网关地址
  • DNS服务器地址

2、配置动态分配ip地址

实验:动态分配ip地址

image-20220609000212393

在虚拟机上配置

2.1 下载dhcp服务以及复制dhcp参考文档

关闭防火墙

image-20220609101150095

下载dhcp服务

image-20220609000408702

查看dhcp服务的配置文件路径

image-20220609000616758

查看配置文件的内容

image-20220609000815525

查看它让我们去的配置文件路径

image-20220609001006326

复制配置文件

image-20220609001303990

查看文件是否复制成功

image-20220609141300542

2.2 配置虚拟机的网卡

在配置前需要了解网络时如何搭建的,不然下面会看的一脸蒙蔽

image-20220609010833862

在虚拟机中添加VMnet网络适配器

image-20220609165926154

查看windows电脑的网络适配器,更改VMnet2ip地址(要和虚拟机里面对应)

image-20220609005551949

现将虚拟机的连接方式改成仅主机模式

image-20220609004845488

修改虚拟机的ip地址

image-20220609004551749

image-20220609005112196

网路配置文件修改后,需要进行重新加载,不然无效。

image-20220609005306954

2.3 配置ENSP拓扑图的配置

先将三台主机配置成DHCP模式(pc1和pc2和pc3)

image-20220609093437596

cloud 进行配置

image-20220609094728714

配置SW1二层交换机的配置

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW1
[SW1]undo info-center en
hange loop count is 0, and the maximum number of records is 4095.able
Info: Information center is disabled.
[SW1]vlan batch 10 20 100
Info: This operation may take a few seconds. Please wait for a 

[SW1]int e0/0/2    #配置接口vlan 10
[SW1-Ethernet0/0/2]port link-type access
[SW1-Ethernet0/0/2]port default vlan 10
[SW1-Ethernet0/0/2]undo shutdown
Info: Interface Ethernet0/0/2 is not shutdown.

[SW1-Ethernet0/0/2]int e0/0/3    #配置接口vlan20
[SW1-Ethernet0/0/3]port link-type access
[SW1-Ethernet0/0/3]port default vlan 20
[SW1-Ethernet0/0/3]undo shutdown
Info: Interface Ethernet0/0/3 is not shutdown.
 
[SW1-Ethernet0/0/3]int e0/0/5    #配置接口vlan 100
[SW1-Ethernet0/0/5]port link-type access
[SW1-Ethernet0/0/5]port default vlan 100
[SW1-Ethernet0/0/5]undo shutdown
Info: Interface Ethernet0/0/5 is not shutdown.

[SW1-Ethernet0/0/5]int e0/0/4   #配置接口vlan 100
[SW1-Ethernet0/0/4]port link-type access
[SW1-Ethernet0/0/4]port default vlan 100
[SW1-Ethernet0/0/4]undo shutdown
Info: Interface Ethernet0/0/4 is not shutdown.

[SW1-Ethernet0/0/4]int e0/0/1    #配置接口vlan all
[SW1-Ethernet0/0/1]port link-type trunk
[SW1-Ethernet0/0/1]port trunk allow-pass vlan all
[SW1-Ethernet0/0/1]undo shutdown
Info: Interface Ethernet0/0/1 is not shutdown.
[SW1-Ethernet0/0/1]di th
#
interface Ethernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 2 to 4094
#

配置SW2三层交换机设置

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname SW2
[SW2] undo info-center enable
Info: Information center is disabled.

[SW2]vlan batch 10 20 100   #创建vlan 10 20 100
Info: This operation may take a few seconds. Please wait for a moment...done.
                       
[SW2]int vlanif10   #进入vlanif10 (虚拟接口)配置ip地址
[SW2-Vlanif10]ip add 192.168.1.2 24

[SW2-Vlanif10]int vlanif 20    #进入vlanif20(虚拟接口)配置ip地址
[SW2-Vlanif20]ip add 192.168.2.2 24

[SW2-Vlanif20]int vlanif 100     #进入vlanif100 (虚拟接口)配置ip地址
[SW2-Vlanif100]ip add 192.168.100.2 24

[SW2-Vlanif100]q
[SW2]int g0/0/1    #进入接口配置trunk链路
[SW2-GigabitEthernet0/0/1]port link-type trunk
[SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW2-GigabitEthernet0/0/1]undo shutdown
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[SW2-GigabitEthernet0/0/1]q

[SW2]dhcp enable     #开启dhcp服务
Info: The operation may take a few seconds. Please wait for a moment.done.

[SW2]int vlanif 10    #进入vlanif 10 配置dhcp中继
[SW2-Vlanif10]dhcp select relay
[SW2-Vlanif10]dhcp relay server-ip 192.168.100.100

[SW2-Vlanif10]int vlanif 20   #进入vlanif 20 配置dhcp中继
[SW2-Vlanif20]dhcp select relay
[SW2-Vlanif20]dhcp relay server-ip 192.168.100.100

[SW2-Vlanif20]int vlanif 100    #进入vlanif 20 配置dhcp中继
[SW2-Vlanif100]dhcp select relay
[SW2-Vlanif100]dhcp relay server-ip 192.168.100.100

2.4 设置DHCP服务器分配的信息

进入新复制过来的配置文件里面

image-20220609001643162

配置文件内容介绍(这里只是介绍,不需要进行配置)

image-20220609002910342
image-20220609003313265

在文件中进行配置(注意标点符号和括号)

image-20220609135638407

配置完之后出来需要进行开启DHCP服务

image-20220609144037853

如果启动失败,可以进行查看,会有日志显示,下面进行错误演示,修改错误后,重新启动,直到启动dhcp服务后没有任何报错。

image-20220609144241138

2.5 进行验证查看是否分配成功

pc1的查看

image-20220609095324484

pc2的查看

image-20220609101932855

pc3的查看

image-20220609102157015

3、 配置指定主机的ip地址

3.1 在虚拟机上创建一台window主机,

然后设置它的网络

image-20220609112303042

再将网络协议属性设置成自动获取ip地址(DHCP模式)

image-20220609112442475

记住这个mac地址,等下在centos 主机中(centos主机也就是DHCP服务器)需要指定windows主机的mac地址。

image-20220609160720067

3.2 在虚拟机上的另一台centos主机里面设置配置

关闭防火墙

image-20220609112921089

接下来的配置跟上面类似

下载DHCP---->将内容多的配置文件复制到dhcp里面的配置文件--->配置虚拟机的网卡(vmnet2)--->将centos 7 主机的ip地址设置成vmnet2下面的子网网段--->最后进入配置文件进程编辑。

image-20220609120844919
image-20220609120336435
image-20220609134716744

3.3 验证windows 上面ip地址是否分配成分

image-20220609134648265

三、总结

DHCP就是将DHCP客户端向DHCP服务申请ip地址,我们可以自行配置一台DHCP服务器,需要设置它的子网网段,子网掩码,可分配的地址池,以及默认的网关地址,如果需要连接往外网,还需要配置DNS,根据需求而定。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75058.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!