Linux网络的DHCP配置

文章目录

DHCP配置

DHCP:动态主机配置协议

服务端和客户端

  • 服务端:server,提供某种特定的服务

  • 客户端:client,使用服务端提供的服务

  • c/s架构 :client / server :客户端和服务端,应用程序之间,通过端口实现通信。

  • b/s架构 :browser / server :浏览器和服务端,页面展示。

DHCP流程简述

服务器配置好了地址池:如:192.168.233.10 - 192.168.233.20

客户端从地址池当中随机获取一个IP地址,IP地址会发生变化,使用服务器提供的IP地址,有时间限制,重启之后也会更换。

DHCP优点

  1. 降低了配置和部署的时间
  2. 降低了发生配置错误的可能性
  3. IP地址可以进行集中化管理
  4. 提高了IP地址的利用率

DHCP的分配方式

  • 自动分配 :分配到一个IP地址后永久使用
  • 手动分配:由DHCP服务器管理员专门指定IP地址,脱裤子放屁
  • 动态分配:使用完后释放该IP地址,供其他客户机使用

DHCP的租约过程

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

DHCP 租约过程包括四个主要阶段:发现(Discover)、提供(Offer)、请求(Request)和确认(Acknowledge)。下面是这些阶段的详细解释:

  1. 发现(Discover):当一个设备加入一个网络时,它会广播一个 DHCP Discover 消息,以寻找可用的 DHCP 服务器。这个消息包含了设备的 MAC 地址等信息。
  2. 提供(Offer) :DHCP 服务器接收到 Discover 消息后,会向网络广播一个 DHCP Offer 消息,其中包含一个可用的 IP 地址、子网掩码、默认网关等网络配置信息。这些配置信息被 DHCP 服务器从其 IP 地址池中分配。如果是华为设备,发送的Offer 报文是单播,只发给发出请求的客户端。
  3. 请求(Request):设备接收到一个或多个 DHCP Offer 后,会选择其中一个 Offer,并向 DHCP 服务器发送一个 DHCP Request 消息,请求使用该服务器提供的网络配置。
  4. 确认(Acknowledge):DHCP 服务器收到设备发送的 Request 消息后,将选定的IP地址标记为"已用",设定租期,并向设备发送一个 DHCP Acknowledgement(ACK)消息,确认分配给设备的 IP 地址和其他网络配置信息。此时,设备完成了 DHCP 租约过程,并开始使用分配的 IP 地址和其他配置。

在租约过程中,还包括租期的管理、租约更新等功能,以确保网络资源的有效分配和管理。DHCP 租约通常是有限期的,在租约到期之前,设备可以选择续约租约,以保持网络连接。

租约到期后,如果不续约,DHCP会重启,客户端重新从服务端获取IP地址。客户端发送一个renew request,服务端收到请求,从地址池当中获取一个IP,标记为已用,设置租约,发送ACK消息,客户端获取并使用IP地址。

问:如果地址池当中可分配IP用尽,此时收到新的请求会怎么样?

答:等待新的可用IP。或者手动扩展地址池。

DHCP配置实验

实验1

要求:

test1:服务端,DHCP服务,IP:20.0.0.10,地址池:20.0.0.100-20.0.0.110

test2:客户端,修改获取IP地址的方式,通过dhcp服务获取IP地址。

注:DHCP服务端的端口是67,客户端的端口是68

实现:

首先,test1test2关闭防火墙和守护进程

bash 复制代码
systemctl stop firewalld
setenforce 0

test1:安装dhcp服务

bash 复制代码
yum -y install dhcp

安装dhcp后,把样板文件/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example复制到/etc/dhcp/目录并覆盖文件/etc/dhcp/dhcpd.conf

bash 复制代码
cd /usr/share/doc/dhcp-4.2.5/
cp dhcpd.conf.example /etc/dhcp/dhcpd.conf

修改配置文件/etc/dhcp/dhcpd.conf前,先备份:

bash 复制代码
cp dhcpd.conf dhcpd.conf.bak.20240604

vim /etc/dhcp/dhcpd.conf对dhcp配置文件进行修改

保存退出后,重启dhcp服务

bash 复制代码
systemctl restart dhcpd

test2:配置网卡ens33,使用dhcp服务自动获取IP地址

编辑网卡配置文件

bash 复制代码
vim /etc/sysconfig/network-scripts/ifcfg-ens33

保存退出,重启网卡 systemctl restart network

查看IP地址

查看租约

bash 复制代码
less /var/lib/dhcpd/dhcpd.leases
实验2

要求:

test1通过dhcp为test2分配固定的IP地址

实现:

分配固定IP地址通过test2网卡的MAC地址进行分配。

先获取test2网卡ens33MAC地址:

test1:配置dhcp服务

修改配置文件/etc/dhcp/dhcpd.conf前,先备份:

bash 复制代码
cp dhcpd.conf dhcpd.conf.bak.20240604

vim /etc/dhcp/dhcpd.conf对dhcp配置文件进行修改

给单机分配固定的 IP 地址格式:

bash 复制代码
#host主机声明(给单机分配固定的 IP 地址)
host hostname {					#指定需要分配固定 IP地址的客户机名称
  hardware ethernet 00:c0:c3:22:46:81;		#指定该主机的 MAC地址
  fixed-address 20.0.0.110;				#指定保留给该主机的 IP地址
}

保存退出,重启dhcp服务

bash 复制代码
systemctl restart dhcpd

test2:重启网络后,查看IP地址

IP地址变为指定的IP地址。

相关推荐
意疏14 分钟前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu21 分钟前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
我的K84092 小时前
Flink整合Hudi及使用
linux·服务器·flink
1900432 小时前
linux6:常见命令介绍
linux·运维·服务器
Camellia-Echo2 小时前
【Linux从青铜到王者】Linux进程间通信(一)——待完善
linux·运维·服务器
Linux运维日记2 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
我是唐青枫2 小时前
Linux dnf 包管理工具使用教程
linux·运维·服务器
编程修仙3 小时前
Collections工具类
linux·windows·python
芝麻团坚果4 小时前
对subprocess启动的子进程使用VSCode python debugger
linux·ide·python·subprocess·vscode debugger
写点什么啦4 小时前
[debug]不同的window连接ubuntu的vscode后无法正常加载kernel
linux·vscode·ubuntu·debug