使用DHCP动态管理主机地址

news2024/9/22 0:28:18

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、动态主机地址管理协议

动态主机配置协议(DHCP)是一种基于UDP协议且仅限于在局域网内部使用的网络协议,主要用于大型的局域网环境或者存在较多移动办公设备的局域网环境中,用途是为局域网内部的设备或网络供应商自动分配IP地址等参数,提供网络配置的“全家桶”服务。

简单来说,DHCP协议就是让局域网中的主机自动获得网络参数的服务。借助于DHCP协议,不仅可以为主机自动分配网络参数,还可以确保主机使用的IP地址是唯一的,更重要的是,还能为特定主机分配固定的IP地址。

DHCP常见术语:

  • 作用域:一个完整的IP地址段,DHCP协议根据作用域来管理网络的分布、分配IP地址及其他配置参数。
  • 超级作用域:用于管理处于同一个物理网络中的多个逻辑子网段,包含了可以统一管理的作用域列表。
  • 排除范围:把作用域中的某些IP地址排除,确保这些IP地址不会分配给DHCP客户端。
  • 地址池:在定义了DHCP的作用域并应用了排除范围后,剩余的用来动态分配给客户端的IP地址范围。
  • 租约:DHCP客户端能够使用动态分配的IP地址的时间。
  • 预约:保证网络中的特定设备总是获取到相同的IP地址

二、部署dhcpd服务程序

dhcpd是Linux系统中用于提供DHCP协议的服务程序;其软件包名称为dhcp-server:

 [root@Linux ~]# yum install -y dhcp-server

查看dhcpd服务程序的配置文件内容:

 [root@Linux ~]# cat /etc/dhcp/dhcpd.conf
 #
 # DHCP Server Configuration file.
 #   see /usr/share/doc/dhcp-server/dhcpd.conf.example
 #   see dhcpd.conf(5) man page
 #

全是注释,意味我们需要自行编写这个文件,示例:

 [root@Linux ~]# vim /etc/dhcp/dhcpd.conf
 ddns-update-style interim;      # 全局配置参数
 ignore client-updates;
 subnet 192.168.10.0 netmask 255.255.255.0 {  # 子网网段声明
     ...;
     option routers      192.168.10.1;       # 地址配置选项
     option subnet-mask  255.255.255.0;
     ...;
     default-lease-time 21600;       # 地址配置参数
     max-lease-time 43200;
     ...;
 }

一个标准的配置文件应该包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数。其中,全局配置参数用于定义dhcpd服务程序的整体运行参数;子网网段声明用于配置整个子网段的地址属性。常用参数:

参数作用
ddns-update-style 类型定义DNS服务动态更新的类型,类型包括:none(不支持动态更新)interim(互动更新模式)与ad-hoc(特殊更新模式)
allow/ignore client-updates允许/忽略客户端更新DNS记录
default-lease-time 21600默认超时时间
max-lease-time 43200最大超时时间
option domain-name-servers 8.8.8.8定义NDS服务器地址
option domain-name "domain.org定义DNS域名
range定义用于分配的IP地址池
option subnet-mask定义客户端的子网掩码
option routers定义客户端的网关地址
broadcast-address广播地址定义客户端的广播地址
ntp-serverlP地址定义客户端的网络时间服务器(NTP)
nis-servers lP地址定义客户端的NIS域服务器的地址
hardware 硬件类型 MAC地址指定网卡接口的类型与MAC地址
server-name 主机名向DHCP客户端通知DHCP服务器的主机名
fixed-address lP地址将某个固定的IP地址分配给指定主机
time-offset 偏移差指定客户端与格林尼治时间的偏移差

三、自动管理IP地址

DHCP协议的设计初衷是为了更高效地集中管理局域网内的IP地址资源

DHCP服务器会自动把IP地址、子网掩码、网关、DNS地址等网络信息分配给有需要的客户端,而且当客户端的租约时间到期后还可以自动回收所分配的IP地址,以便交给新加入的客户端。

模拟示例:机房所用网络地址及参数信息:

参数作用
默认租约时间21600秒
最大租约时间43200秒
IP地址范围192.168.10.50~192.168.10.150
子网掩码255.255.255.0
网关地址192.168.10.1
DNS服务器地址192.168.10.1
搜索域linuxprobe.com

按照下面进行配置DHCP服务端以及客户端

主机类型操作系统IP地址
DHCP服务器RHEL 8192.168.10.1
DHCP客户端Windows 10DHCP自动获取地址

作业域是一个完整的IP地址段,而地址池的IP地址才是真正供客户端使用的,因此地址池应该小于或等于作用域的IP地址范。由于VM虚拟机自带DHCP服务,将其关闭

DHCP客户端与服务器需要处于同一种网络模式—仅主机模式(Hostonly),否则会产生物理隔离;

配置dhcpd服务程序时,配置文件中的每行参数后面都需要以分号(;)结尾,

 [root@Linux ~]# cat /etc/dhcp/dhcpd.conf 
 ddns-update-style none;     # 设置DNS服务不自动进行动态更新
 ignore client-updates;      # 忽略客户端更新NDS记录
 subnet 192.168.10.0 netmask 255.255.255.0 { # 作用域为192.168.10.0/24网段
     range 192.168.10.50 192.168.10.150; # IP地址池为192.168.10.50-150(100个)
     option subnet-mask 255.255.255.0;   # 定义客户端默认的子网掩码
     option routers 192.168.10.1;        # 定义客户端的网关地址
     option domain-name "linuxprobe.com";    # 定义默认的搜索域
     option domain-name-servers 192.168.10.1;    # 定义客户端的NDS地址
     default-lease-time 21600;   # 定义默认租约时间
     max-lease-time 43200;       # 定义最大预约时间
 }   # 结束
 [root@Linux ~]# systemctl start dhcpd
 [root@Linux ~]# systemctl enable dhcpd
 Created ...

在Windows系统的网卡设置为DHCP模式,稍等片刻即可自动获取都网卡信息;

如果是在生产环境配置的dhcpd服务,有可能会因为DHCP协议没有被防火墙放行而实验失败,则执行下面命令即可

 [root@Linux ~]# firewall-cmd --zone=public --permanent --add-service=dhcp
 success
 [root@Linux ~]# firewall-cmd --reload
 success

DHCP协议的运作会经历四个过程--请求、提供、选择和确认

四、分配固定IP地址

在DHCP协议中有个术语是“预约”,它用来确保局域网中特定的设备总是获取到固定的IP地址

要想把某个IP地址与某台主机进行绑定,就需要用到这台主机的MAC地址。即网卡上面的一串独立的标识符,具备唯一性,因此不会在冲突的情况;Linux系统中:

Windows系统中:

在Linux系统或Windows系统中,都可以通过查看网卡的状态来获知主机的MAC地址。在dhcpd服务程序的配置文件中,按照如下格式将IP地址与MAC地址进行绑定;

 host 主机地址 {
     hardware        ethernet        该主机的MAC地址;
     fixed-address   欲指定的IP地址;
 }

我们首先启动dhcpd服务程序,为老板的主机分配一个!P地址,这样就会在DHCP服务器本地的日志文件中保存这次的IP地址分配记录。然后查看日志文件,就可以获悉主机的MAC地址了(即下面加粗的内容)。

 [root@linuxprobe ~]# tail -f /var/log/messages
 ………省略部分输出信息……
 Mar 22 88:28:54 linuxprobe cupsd[1206]: REQUEST linuxprobe.com-- "POST / HTTP/1.1" 208 183 Renew-Subscription client-error-not-found
 Mar 22 88:29:35 linuxprobe dhcpd[38959]: DHCPREQUEST for 192.168.10.50 from 00:0c:29:dd:f2:22 (DESKTOP-30GV58E)via ens160
 Mar 22 00:29:35 linuxprobe dhcpd[30959]: DHCPACK on 192.168.10.50 to 00:c:29:dd:f2:22 (DESKTOP-30GV5E) via ens160   # 这行中的就是MAC地址

在Windows系统中看到的MAC地址,其格式类似于00-0c-29-dd-f2-22,间隔符为减号(-)。但是在Linux系统中MAC地址的间隔符则变成了冒号(:)

 [root@Linux ~]# vim /etc/dhcp/dhcpd.conf 
 ddns-update-style none;     
 ignore client-updates;  
 subnet 192.168.10.0 netmask 255.255.255.0 {
     range 192.168.10.50 192.168.10.150; 
     option subnet-mask 255.255.255.0;   
     option routers 192.168.10.1;        
     option domain-name "linuxprobe.com";    
     option domain-name-servers 192.168.10.1;    
     default-lease-time 21600;   
     max-lease-time 43200;
     host linuxprobe {
         hardware ethernet 00:0c:29:dd:f2:22;
         fixed-address 192.168.10.88;
         }
 }   
 [root@Linux ~]# systemctl restart dhcpdFV

重启客户端的网络服务;

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

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

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

相关文章

书生大模型第一关-Linux基础知识

1.闯关任务:关任务 完成SSH连接与端口映射并运行hello_world.py 首先SSH 命令连接进行转发 ssh -p 33704 rootssh.intern-ai.org.cn -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyCheckingno在远程服务器上(开发机)运…

操作系统杂项(二)

目录 一、简述GDB常见的调试命令,什么是条件断点,多进程下如何调试 1、GDB调试 2、命令格式 3、条件断点 4、多进程下如何调试 二、简述什么是“大端小端”及如何判断 1、小端模式 2、大端模式 3、如何判断 三、简述进程调度算法有哪些 1、分…

iSCSI 网络存储服务部署

一、介绍 iSCSI (Internet Small Computer System Interface),互联网小型计算机系统接口;iSCSI 是SCSI接口 与以太网技术相结合的新型存储技术,属于ip san的一种,可以用来在网络中传输 SCSI 接口的命令和数…

用户进入网站之后看一眼就跳走,你知道原因吗?

用户进入网站后立即离开的原因可能有很多,以下是一些可能的原因和相应的规避办法: 页面加载速度慢: 如果网站加载速度过慢,用户可能会感到不耐烦并离开。可以通过优化网站的代码和资源,使用浏览器缓存、CDN加速等技术…

Docker缩小镜像体积与搭建LNMP架构

镜像加速地址 {"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"] } daemon.json 配置文件里面 bip 配置项中可以配置docker 的网段 {"graph": "/data/docker", #数据目录&#xff0…

QTreeWidget

一、基本要点 1、QTreeWidgetItem 是 Qt 开发框架中的一个重要组件,它主要用于表示树形视图中的节点。在 QTreeWidget 这样的控件中,每个节点都是 QTreeWidgetItem 的实例,可以包含文本、图标以及其他数据。 2、connect 是Qt中的一个重要函…

Crackmapexec一键检测网络环境(KALI工具系列四十四)

目录 1、KALI LINUX 简介 2、Crackmapexec工具介绍 3、信息收集 3.1 目标IP 3.2 kali的IP 4、操作步骤 4.1 帮助命令 4.2 扫描网段 4.3 验证访问 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版 ,广泛用于网络安全社区。它…

蓝卓油气行业解决方案

我国是全球最大的能源消费国,保障国家能源安全是我国能源发展的首要任务,油气作为我国能源体系的重要组成部分,是支撑我国工业和经济社会发展的基础和“压舱石,也是必须筑牢的能源安全底线。 蓝卓根据油气田行业发展趋势&#xf…

Linux中六种常见工具

一、软件包管理器yum 1、yum概念 yum是一个软件下载安装管理的客户端,例如手机上的小米一应用商城。 那为什么我们推荐在Linux中用yum下载软件呢? 其实软件的安装有三种方式:源代码安装,rpm包安装,yum安装。 a、源…

STM32 HRTIM生成PWM时遇到无法输出PWM脉冲波形问题

在使用HRTIM生成PWM时,当把周期寄存器更新的设置放到while循环中时,无法输出PWM脉冲波形,即使增加计数延时也无法输出,最终只能放到中断函数中执行后期寄存器值更新才能够生成PWM脉冲波形。

【XSS】

文章目录 0x01 简介0x02 XSS Payload用法XSS攻击平台及调试JavaScript 0x03 XSS构造技巧XSS漏洞防御策略 跨站脚本攻击,Cross Site Script。(重点在于脚本script) 分类 反射型、存储型DOM型 漏洞原理:通过插入script篡改“HTML”…

单片机设计_自行车码表(AT89C51, LCD1602, DS1302,霍尔传感器)

想要更多项目私wo!!! 一、电路设计 系统采用51单片机LCD1602液晶DS1302时钟模块霍尔传感器电机按键模块蜂鸣器报警模块设计而成。 产品自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。 …

下载安装VSCode并添加插件作为仓颉编程入门编辑器

VSCode下载地址:下载 Visual Studio Code - Mac、Linux、Windows 插件下载:GitCode - 全球开发者的开源社区,开源代码托管平台 仓颉社区中下载解压 cangjie.vsix 插件 打开VSCode 按 Ctrl Shift X 弹出下图 按照上图步骤依次点击选中我们下…

网络编程+文件上传操作的理解

前言: 概述:在网络通信协议下,不同计算机上运行的程序,进行数据传输 比如:通信,视频通话,网游,邮件等 只要是计算机之间通过网络进行数据传输,就有网络编程的存在 (下面单纯是在Java基础中了解了一下网络编程,感觉理…

深度学习 | CNN 基本原理

目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细,因为没有介绍卷积操作的具体计算;但是它介绍了 CNN 各层次的功能…

08 模型演化根本 深度学习推荐算法的五大范式

易经》“九三:君于终日乾乾;夕惕若,厉无咎”。九三是指阳爻在卦中处于第三位,已经到达中位,惕龙指这个阶段逐渐理性,德才已经显现,会引人注目;但要反思自己的不足,努力不…

昇思25天学习打卡营|MQ(mindquantum)编程实践

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) 安装 Packages # 安装 mindquantum, networkx !pip install mindquantum -i https://pypi.mirrors.ustc.edu.cn/simple !pip install networkx -i https://pypi.mirrors.ustc.edu.cn/simple 安装…

脸书登录指南:如何在同一台设备登录多个Facebook账号?

海外社媒营销人员和跨境卖家现在越来越依赖社交媒体平台来拓展业务和接触潜在客户,尤其是Facebook。然而,在进行脸书登录时,你可能会问:如何在同一台设备上登录多个Facebook账号,而不违反Facebook的使用条款&#xff1…

指针与数组笔试题解析

文章目录 1.一维数组1.1 整型数组1.2 字符数组 2. 二维数组3.指针笔试题3.1 练习13.2 练习23.3 练习3 数组名的意义: 1.sizeof(数组名),这里的数组表示整个数组,计算的整个数组的大小 2.&数组名,这里的数组名表示整个数组的&a…

【Diffusion学习】【生成式AI】Stable Diffusion、DALL-E、Imagen 背後共同的套路

文章目录 图片生成Framework 需要3个组件:相关论文【Stable Diffusion,DALL-E,Imagen】 具体介绍三个组件1. Text encoder介绍【结论:文字的encoder重要,Diffusion的模型不是很重要!】评估指标:…