DHCP 配置

​ 最近发现,自己使用虚拟机建立的集群,在断电关机或者关机一段时间后,集群之间的链接散了,并且节点自身的 IP 也发生了变化,发现是 DHCP 的问题,这里记录一下。

DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种用于自动分配IP地址网关DNS服务器等网络参数的协议,使得设备可以在网络中无需手动配置即可获得正确的网络设置。

DHCP的工作流程

DHCP采用客户端-服务器架构

  1. **DHCP Discover(发现)
    设备(客户端)加入网络后,发送广播请求 (DHCPDISCOVER) 询问是否有可用的IP地址。
  2. **DHCP Offer(提供)
    DHCP服务器收到请求后,提供一个可用的IP地址 (DHCPOFFER) 并发送给客户端。
  3. **DHCP Request(请求)
    客户端收到多个服务器的DHCPOFFER时,会选择一个并发送DHCPREQUEST请求,表明自己想要这个IP。
  4. **DHCP Acknowledge(确认)
    DHCP服务器最终确认分配 (DHCPACK),并将IP地址、子网掩码、网关、DNS等信息发送给客户端,配置完成。

DHCP的常见配置

  • DHCP服务器:管理IP地址分配,一般由路由器、Windows/Linux服务器等设备提供
  • DHCP客户端:请求并获取IP地址
  • DHCP中继(Relay):用于跨网段转发DHCP请求,使得不同子网的客户端也能获取IP地址

​ 在 DHCP(动态主机配置协议)中,IP 地址的租期(Lease Time)决定了客户端何时需要重新请求 DHCP 服务器分配 IP

DHCP 命令

使用 dhclient 查看 DHCP 租期信息

使用 dhclient
sudo dhclient -v -d

如果想查看当前租约信息,可以检查 lease 文件

cat /var/lib/dhcp/dhclient.leases

image-20250318140851892

手动释放 IP 后重新申请

使用 DHCP 更改 IP

sudo dhclient -r ens18  # 释放当前 DHCP IP
sudo dhclient -v ens18  # 重新申请 DHCP IP

但是,这种方法更换的 IP 取决于 DHCP 的分配策略,更改后的 IP 也是随机的,如果想要指定更换 IP (前提是 IP 没有冲突,申请的 IP 并没有被分配给其他的节点)

修改 dhclient.conf 申请特定 IP

通过配置文件申请,修改 dhclient.conf 发送 dhcp-requested-address

sudo dhclient -v -r ens18  # 释放当前租约
sudo dhclient -v ens18 -sf /bin/true

更改 /etc/dhcp/dhclient.conf文件,添加如下配置

interface "ens18" {send dhcp-requested-address 172.100.0.120
}

然后向 DHCP 发送请求

sudo dhclient -v ens18

注意,这里只是请求,请求分配我们想要的指定的 IP,但是如果申请的 IP 出现冲突,则 DHCP 服务器不会给予分配

下面是正常情况下的执行情况

image-20250318133002697

image-20250318133025838

如果有权限,可以在 DHCP 服务器上绑定 MAC 地址,这样每次 DHCP 分配给节点的 IP 都是固定的

设置静态IP

但是呢,使用 DHCP 为节点设置指定 IP,在遇到下一次断电或者长时间未重启还是会变化 IP ,所以我们可以设置静态 IP

DHCP 服务器上设置静态 IP

这里最推荐的是,有DHCP管理权限的话,登录DHCP服务器,将 IP 绑定指定节点 MAC 地址

使用命令获取客户端的 MAC 地址 bc:24:11:ea:14:01

ip link show ens18
ifconfig ens18 | grep ether

image-20250318144334257

在 DHCP 服务器上,编辑 /etc/dhcp/dhcpd.conf

sudo nano /etc/dhcp/dhcpd.conf

subnet 配置块中,添加以下内容

host my-static-device {hardware ethernet bc:24:11:6f:82:13;   # 客户端的 MAC 地址fixed-address 172.100.0.109;           # 希望分配的静态 IP
}

确保 subnet 也包含这个 IP 段

subnet 172.100.0.0 netmask 255.255.0.0 {range 172.100.0.100 172.100.0.200;option routers 172.100.0.1;option domain-name-servers 8.8.8.8;
}

重启 DHCP 服务器

sudo systemctl restart isc-dhcp-server

或者:

sudo service isc-dhcp-server restart

在客户端重新获取 IP

sudo dhclient -r ens18  # 释放当前 IP
sudo dhclient -v ens18  # 重新获取 IP

如果一切配置正确,客户端应该会获取 172.100.0.120

客户端手动配置静态 IP

如果没有 DHCP 管理权限或者无法操作 DHCP 服务器

那么也可以在客户端设置静态IP

编辑设置 /etc/netplan 下的 /etc/netplan/00-installer-config.yaml

修改之前,建议先备份当前 Netplan 配置

sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak

image-20250318133543844

image-20250318134349446

获取 默认网关

ip route | grep default
route -n

image-20250318134014723

DNS 服务器

cat /etc/resolv.conf

image-20250318134051464

image-20250318134454224

network:ethernets:ens18:dhcp4: noaddresses:- 172.110.0.120/24routes:- to: defaultvia: 172.110.0.1 # 默认网关nameservers:  # DNS 服务器addresses:- 127.0.0.53 - 10.96.0.10version: 2

应用配置

sudo netplan apply

则设置成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/73005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

股指期货合约的命名规则是怎样的?

股指期货合约的命名规则其实很简单,主要由两部分组成:合约代码和到期月份。 股指期货合约4个字母数字背后的秘密 股指期货合约一般来说都是由字母和数字来组合的,包含了品种代码和到期的时间,下面我们具体来看看。 咱们以“IF23…

OSPF 协议详解:从概念原理到配置实践的全网互通实现

什么是OSPF OSPF(开放最短路径优先)是由IETF开发的基于链路状态的自治系统内部路由协议,用来代替存在一些问题的RIP协议。与距离矢量协议不同,链路状态路由协议关心网络中链路活接口的状态(包括UP、DOWN、IP地址、掩码…

深入探究 JVM 堆的垃圾回收机制(二)— 回收

GC Roots 枚举需要遍历整个应用程序的上下文,而在进行可达性分析或者垃圾回收时,如果我们还是进行全堆扫描及收集,那么会非常耗时。JVM 将堆分为新生代及老生代,它们的回收频率及算法不一样。 1 回收算法 在进行可达性分析时&am…

蓝桥杯 之 数论

文章目录 习题质数找素数 数论,就是一些数学问题,蓝桥杯十分喜欢考察,常见的数论的问题有:取模,同余,大整数分解,素数,质因数,最大公约数,最小公倍数等等 素…

Unity Shader编程】之渲染流程之深度及pass详解

关于透明物体的渲染,首先需要了解以下部分 深度缓冲区深度写入深度测试pass渲染和深度测试的过程深度测试和颜色混合过程 ** 一,深度缓冲区 ** 深度即物体距离相机的距离,深度写入即是把物体的距离相机信息记录下来,写入一个名…

csv文件格式和excel数据格式有什么区别

CSV(Comma-Separated Values)和Excel(XLS/XLSX)数据格式的主要区别如下: 1. 文件格式 CSV:纯文本格式,每一行表示一条记录,字段之间用逗号(,)或其他分隔符&…

Beans模块之工厂模块注解模块@Qualifier

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

C# HTTP 文件上传、下载服务器

程序需要管理员权限,vs需要管理员打开 首次运行需要执行以下命令注册URL(管理员命令行) netsh advfirewall firewall add rule name"FileShare" dirin actionallow protocolTCP localport8000 ipconfig | findstr "IPv4&quo…

基于 TRIZ 理论的筏式养殖吊笼清洗装备设计研究

基于 TRIZ 理论的筏式养殖吊笼清洗装备设计研究 一、引言 筏式养殖在水产养殖业中占据重要地位,吊笼作为养殖贝类、藻类等生物的关键器具,其清洁程度直接影响养殖生物的健康与产量。传统的吊笼清洗方式多依赖人工,效率低下、劳动强度大且清洗…

QA:备份产品的存储架构采用集中式和分布式的优劣?

分布式和集中式各有优劣,且这两者下面的存储类型也都不尽相同,从备份与恢复的数据层面来看,这两者存储相结合才是优解。 众所周知,备份数据只存一份还只放在一个存储里是不现实的。假设把备份数据访问频率、生命周期等参数分为三个…

FPGA中串行执行方式之计数器控制

FPGA中串行执行方式之计数器控制 使用计数器控制的方式实现状态机是一种简单且直观的方法。它通过计数器的值来控制状态的变化,从而实现顺序逻辑。计数器的方式特别适合状态较少且状态转移是固定的场景。 基本原理 计数器控制的状态机 ​例程1:简单的顺序状态机 以下是一个…

纯vue手写流程组件

前言 网上有很多的vue的流程组件,但是本人不喜欢很多冗余的代码,喜欢动手敲代码;刚开始写的时候,确实没法下笔,最后一层一层剥离,总算实现了;大家可以参考我写的代码,可以拿过去定制…

数字化转型驱动卫生用品安全革新

当315晚会上晃动的暗访镜头揭露卫生巾生产车间里漂浮的异物、纸尿裤原料仓中霉变的碎屑时,这一触目惊心的场景无情地撕开了“贴身安全”的遮羞布,暴露的不仅是部分企业的道德缺失,更凸显了当前检测与监管体系的漏洞,为整个行业敲响…

【C++】:异常

目录 C语言处理错误的方式 C异常的概念 C异常的使用 异常的抛出与捕获匹配原则 函数调用链中的栈展开 异常重新抛出 异常安全 异常规范 标准库异常体系 自定义异常体系 异常的优缺点 C语言处理错误的方式 返回值检查:函数返回特定错误码或值标识失败&am…

SZU软件工程大学生涯 2022~2026

用于个人面试前自我介绍,防止忘记或谈吐不流利。 面试官您好,我是来自深圳大学计算机与软件学院的软件工程专业的王雅贤。在校期间,我修读了程序设计基础、面向对象程序设计、数据结构、算法分析与设计、操作系统等核心课程,系统…

【JavaWeb学习Day27】

Tlias前端 员工管理 条件分页查询&#xff1a; 页面布局 搜索栏&#xff1a; <!-- 搜索栏 --><div class"container"><el-form :inline"true" :model"searchEmp" class"demo-form-inline"><el-form-item label…

Linux 系统运行 Android 应用的几种方案

这几年&#xff0c;国产操作系统替代正在有条不紊地进行中。但生态是绕不过去的一道坎&#xff0c;指望应用厂商一下子完成国产系统适配也不现实。之前介绍过使用 Wine 运行 Windows 应用的方案&#xff0c;减少了国产系统应用偏少的难题。比如我在办公室使用最多的企业微信&am…

Python进阶教程丨lambda函数

1. lambda函数是什么&#xff1f; 在 Python 里&#xff0c;lambda 函数是一种特殊类型的函数&#xff0c;也被叫做匿名函数。匿名”意味着它不需要像常规函数那样使用 def 来进行命名。lambda lambda 函数本质上是简洁的临时函数 &#xff0c;它适用于只需要简单逻辑的场景&a…

TK矩阵系统:高效管理与智能化操作平台

随着TikTok等社交媒体平台的快速发展&#xff0c;短视频创作和内容运营逐渐成为互联网行业的重要组成部分。为了帮助内容创作者、品牌运营商以及数据分析人员更高效地管理多个TikTok账号并优化运营策略&#xff0c;TK矩阵系统提供了一种全新的解决方案&#xff0c;结合了先进的…

Spring Boot整合Apache BookKeeper教程

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Spring Boot整合Apache BookKeeper教程 1. 简介 Apache BookKeeper 是一个高性能、持久化的分布式日志存储系统&#xff0c;适用于需要强一致性和高吞吐量的…