DHCP原理与配置(Linux)

目录

DHCP概念

使用DHCP的好处

DHCP的分配方式

DHCP租约过程

租约过程分4个步骤(全过程广播)

1. 客户机请求IP(Discover:发现;客户端广播 发送一个数据包,其他主机也能接收到,如果是没有安装DHCP服务的主机,只接收,不处理)

2. 服务器响应(Offer:提供)

3. 客户机选择IP(Request:请求; 优先选择收到第一个offer并广播给别的DHCP设备收回地址)

4. 服务器确定租约(ACK; 客户端得到地址)

重新登录

更新租约

DHCP动态配置主机地址

DHCP服务

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

DHCP动态分配实验步骤

1.1

1.2

1.3

DHCP自动分配实验步骤

1.1

1.2


 

DHCP概念

DHCP(Dynamic Host Configuration Protocol;动态主机配置协议)

  • 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
  • 由Internet(IETF)工作任务小组设计开发

使用DHCP的好处

  1. 减少管理员的工作量
  2. 避免输入错误的可能
  3. 避免IP冲突
  4. 当更改IP地址段时,不需要重新配置每个用户的IP地址
  5. 提高了IP地址的利用率
  6. 方便客户端的配置

DHCP的分配方式

  • 自动分配
    • 分配一个IP地址后永久使用
    • 将指定IP地址和MAC地址绑定,永久分配
  • 手动分配
    • 由DHCP服务器管理员专门指定IP地址
  • 动态分配
    • 使用完后释放该IP,供其他主机使用

DHCP租约过程

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

租约过程分4个步骤(全过程广播)

1. 客户机请求IP(Discover:发现;客户端广播 发送一个数据包,其他主机也能接收到,如果是没有安装DHCP服务的主机,只接收,不处理)

当一个DHCP客户机启动时,客户机还没有IP地址,所以要通过DHCP获取一个合法的地址

此时DHCP客户机以广播形式向网络中所有主机发送一个DHCP Discover报文来寻找DHCP服务器

48d7d935dd3b4be0916889536c312e90.png

2. 服务器响应(Offer:提供)

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

 

因为客户端还没有IP地址,通信不到,所以DHCP主机响应时还是以广播形式

4c0263c7e09746f79a59633ff0295e39.png

3. 客户机选择IP(Request:请求; 优先选择收到第一个offer并广播给别的DHCP设备收回地址)

客户端在收到 offer报文后,会向选定的DHCP服务器发送 request报文,确认使用服务器提供的IP地址和其他配置信息

如果客户机收到了多个OFFER报文,它会选择其中一个服务器并发送 request报文,再告诉其他DHCP服务器当前客户机已经选择了一个DHCP服务器。所以用广播的形式发送Request

aa7e55c469024a1b8e26c774f9c71192.png

4. 服务器确定租约(ACK; 客户端得到地址)

DHCP服务器接收到DHCP Request报文后,会广播发送DHCP ACK报文的向客户机确认,该报文包含有IP地址的有效租约和其他可配置信息

 

当客户机收到DHCP ACK报文后,配置IP地址,完成TCP/IP的初始化。此时,DHCP租约正式建立,客户端可以使用分配的IP地址和其他配置信息进行网络通信。

 525bff54f9f4413c9a1721e4e217a891.png

重新登录

  • DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover报文,而是直接发送包含前一次所分配IP地址的DHCP Request请求报文
  • 如果该IP地址仍然可用,DHCP服务器会发送ACK报文允许客户机继续使用当前IP地址
  • 如果该IP地址已被分配给其他客户机使用,DHCP服务器会发送NACK否认报文,客户机需要重新发送 Discover报文来重新分配IP地址

 b94af160ce3f4298953883621f16b5f4.png

更新租约

当DHCP服务器向客户机出租的IP地址租期到达50%时,就需要更新租约

  1. 客户机直接向提供租约的服务器发送DHCP Request报文(这个请求是直接发送给DHCP服务器的,而不是广播到整个网络),要求更新现有的地址租约
  2. 如果租约有效且IP地址可用,DHCP服务器会发送一个 DHCP ACK消息给DHCP客户端,该消息包含已分配的IP地址和其他配置信息,并更新租约的时间
  3. 如果DHCP客户端在租约时间达到一半时未能成功更新租约,当租约时间达到租约期限的87.5%时,DHCP客户端会进入重绑定状态。客户端会开始尝试与任何可用的DHCP服务器通信,以更新其租约。客户端会广播 DHCP Discover报文,并等待DHCP服务器的响应
  4. 如果DHCP客户端在租约终止前成功地从DHCP服务器接收到响应,它将更新其租约并继续使用当前的IP地址配置
  5. 如果客户端在租约终止前未能从任何DHCP服务器接收到响应,它将停止使用当前的IP地址,并开始执行初始的DHCP租约过程来重新获取IP地址和其他网络配置信息

DHCP动态配置主机地址

DHCP服务

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

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

  1. 网卡的IP地址、子网掩码
  2. 对应的网络地址、广播信息
  3. 默认网关地址
  4. DNS服务器地址

DHCP动态分配实验步骤

1.1

安装软件包

abcedc45bcaa495a8d77df7aa8f17cdd.png

查看配置文件信息

ad6db0c366254d44a3ed0d2340e80abb.png

将配置文件替换为示例文件,修改其中的一些参数直接使用

02af4d1fc78a4a099c684b7aa8c8d1ae.png

1.2

修改dhcp配置文件

17542758aa64445d856b190b6e4ef8fc.png

↓该部分为该配置文件的全局配置参数

全局配置参数针对所有subnet,如果subnet写了相应参数,和全局参数不一致,优先按subnet的执行

659190d9ea874890b39ce5230676f484.png

配置subnet

4a6c0d84aea64db6a4244ebc737744ce.png

保存并退出vim编辑器

1.3

在另一台同一网段的虚拟机上,修改网卡配置文件

2e559d05c6ff47c6b42336592a568124.png

将BOOTPROTO选项改为dhcp,保存并退出

f2b20be5002f4da39e431a9a6bb81373.png

重启网络服务前后的对比

4a1e5556e325407bb506fa87d2457ead.png

通过/var/lib/dhcpd/dhcpd.leases文件查看dhcp的IP分配信息

04e221a69a044950949eb75e10c3a15d.png

DHCP自动分配实验步骤

1.1

修改dhcp配置文件

2d51615fef204d0f9e7c63a1bafbd4ab.png

在配置文件中找到一个host示例修改参数实现自动分配,这里的MAC地址使用另一个虚拟机,绑定的IP地址设置为地址池范围(100 ~ 200)之外的205

73b97097474945f69d144efd232e4771.png

重启相关服务

210fb1b985864961b882aeaeffade68d.png

1.2

来到另一台虚拟机

重启网络服务,查看网卡IP。已经变成了205

c7af571af6914423995d15392a0d1624.png

也可以使用dhclient命令来释放并获取地址

04dc4a47fda441688e4185ded9fc0f3b.png

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

StarRocks vs. Trino: 高并发性能背后的技术优势是什么?

Trino(之前称 PrestoSQL)项目最初由 Meta 开发,旨在让数据分析师能够在广泛的 Apache Hadoop 数据仓库上执行交互式查询。其高效处理大型数据集和复杂查询的能力,以及多数据源连接的灵活性,使其迅速成为大规模组织的首…

bugku题目(带WP)

CTF题型,带WP。根据给出的题目,找到flag。 1、眼见非实 下载实验文件是一个file .zip 解压这个file.zip压缩包,得到眼见为实.docx文件 双击打开这个文件,不能读取。 修改眼见为实.docx的后缀为眼见为实.zip,再进行解压…

蚁群算法的优化计算——旅行商问题(TSP)优化matlab

微♥关注“电击小子程高兴的MATLAB小屋”获得资料 一,理论基础 生物学家研究发现,蚂蚁在寻找食物时,会在其经过的路径上释放一种信息素,并能够感知其他蚂蚁释放的信息素。信息素浓度的大小表示路径的远近,浓度越高&a…

拼房、行程变更、跨月退改?复杂场景对账结算怎么办?

在实际商业场景中,销售渠道多样化、数据关联多方、场景多元化、业务逻辑多变性等都让对账成为一门“技术活”,也成为财务人员面前的“拦路虎”。尤其当面临多成本中心、跨项目和跨月退改的出差费用时。手动拆分费用、协调沟通、以及处理费用归属等问题&a…

多视图变换矩阵与SLAM位姿估计中的地图点投影的几何约束

定义 Homography & projective transform M ( 3 4 ) [ f s x c ′ 0 a f y c ′ 0 0 1 ] [ 1 0 0 0 0 1 0 0 0 0 1 0 ] [ R 3 3 0 3 1 0 1 3 1 ] [ I 3 3 T 3 1 0 1 3 1 ] \underset{(3 \times 4)}{\mathbf{M}}\left[\begin{array}{ccc} f & s & x_c^{\pr…

Servlet基础(续集2)

HttpServletResponse web服务器接收到客户端的http的请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse 如果要获取客户端请求过来的参数:找HttpServletRequest如果要给客户端…

MySQL之高级特性(一)

高级特性 外键约束 InnoDB是目前MySQL中唯一支持外键的内置存储引擎,所以如果需要外键支持那选择就不多了。使用外键是有成本的。比如外键通常都要求每次在修改数据时都要在另一张表中多执行一次查找操作。虽然InnoDB强制外键使用索引,但还是无法消除这…

UML精简概述

UML精简概述 UML精简概述 UML精简概述UML的定义常见的关系 在学习设计模式之前,需要掌握一些预备知识,主要包括UML类图和面向对象设计原则,它们是“基础内功”,将为后续的“深入修行”奠定基础。UML类图可用于描述每一个设计模式的…

视频点播系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,客服聊天管理,基础数据管理,论坛管理,公告管理 前台账户功能包括:系统首页,个人中心,论坛,视…

在群晖上通过Docker部署DB-GPT

最近一直有网友在后台私信,发的内容高度统一,只有后面 8 位数字不一样,都是 #22232 xxxxxxxx,有谁知道是什么意思吗?在我印象中,这是第二次这么大规模的发类似的字符串了 什么是 DB-GPT ? DB-G…

C++入门 string常用接口(下)

目录 string类的常用接口说明 string类对象的修改操作(修饰符) operator & append & push_back assign & insert erase & replace swap & pop_back string类对象的非成员函数 operator relational operators(关系…

如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?

前言 昨天分享了在 .NET Core Console 项目中应用 NLog 写日志的详细例子,有几位小伙伴私信说 ASP.NET Core Web Api 项目中无法使用,其实在 ASP.NET Core Web Api 项目中应用 NLog 写日志,跟 .NET Core Console 项目是有些不一样的&#xf…

TLS指纹跟踪网络安全实践(C/C++代码实现)

TLS指纹识别是网络安全领域的重要技术,它涉及通过分析TLS握手过程中的信息来识别和验证通信实体的技术手段。TLS(传输层安全)协议是用于保护网络数据传输的一种加密协议,而TLS指纹则是该协议在实际应用中产生的独特标识&#xff0…

1.0 Android中Activity的基础知识

一:Activity的定义 Activity是一个应用组件,它提供了一个用户界面,允许用户执行一个单一的、明确的操作,用户看的见的操作都是在activity中执行的。Activity的实现需要在manifest中进行定义,不让会造成程序报错。 1.…

第一百零四节 Java面向对象设计 - Java内部类成员

Java面向对象设计 - Java内部类成员 内部类可以访问其所有实例成员,实例字段和其封闭类的实例方法。 class Outer {private int value 2014;public class Inner {public void printValue() {System.out.println("Inner: Value " value);}} // Inner …

SAP PP学习笔记17 - MTS(Make-to-Stock) 按库存生产 的策略70,策略59

上几章讲了几种策略,策略10,11,30,40。 SAP PP学习笔记14 - MTS(Make-to-Stock) 按库存生产(策略10),以及生产计划的概要-CSDN博客 SAP PP学习笔记15 - MTS(Make-to-St…

linux用户态操作GPIO首先需要export导出

在使用系统调用来实现 GPIO(通用输入输出端口)的输入输出操作时,同样需要先通过 export 属性文件来导出 GPIO,这是因为 Linux 内核对 GPIO 的管理和访问机制决定了这一点。 以下是具体原因: 内核设备模型&#xff1a…

Linux C语言:输入输出(printf scanf)

一、数据输出 1、C语言I/O操作由函数实现 #include <stdio.h> 2、字符输出函数 格式: int putchar( int c ) 参数: c为字符常量、变量或表达式 功能&#xff1a;把字符c输出到显示器上 返值&#xff1a;putchar函数的返回值是参数的ASCLL码值&#xff1b; #inclu…

【CTF-Events】R3CTF/YUANHENGCTF 2024 两道密码题记录一下

R3CTF2024 WP 文章目录 R3CTF2024 WPCryptoR0System考点&#xff1a;代码审计 ECDH R1System考点&#xff1a;代码审计 ECDH Crypto R0System 考点&#xff1a;代码审计 ECDH 打开代码后有两个小系统&#xff0c;看一下功能 然后再看一下登录之后有哪些功能 其实到这里就可以…

干货分享!2024年Instagram营销必备插件

Instagram是营销人员常用的社交媒体平台&#xff0c;通过提升品牌知名度来推动业务增长。今天给大家分享一些超实用的Instagram营销插件&#xff0c;无论是下载图片视频&#xff0c;还是预先发布帖子&#xff0c;这些工具都可以是你的得力助手&#xff0c;让你的INS运营效率蹭蹭…