DHCP服务管理

目录

DHCP协议

DHCP的优势

DHCP的分配方式

应用场景

注意

工作流程

何时更新租约

当客户端重启后

客户端类型

DCHP安装与配置

网络规划:

配置 DHCP 作用域

启动 DHCP 服务

配置路由器

 配置路由器网卡 IP

开启 IP 转发(确保跨网段通信)

配置内部客户机

配置外部客户机

启用dhcrelay转发

验证


DHCP协议

Dynamic Host Configuration Protocol ,动态主机配置协议

作用:动态的进行IP地址分配

服务端的监听端口 67/udp

客户端监听端口 68/udp

网络架构 C/S:client/server

DHCP的优势

  • 提高配置效率

  • 减少配置错误

DHCP的分配方式

  • 手动分配:固定不变,工程师进行地址绑定

  • 自动分配:但是不进行地址回收

  • 动态分配:进行地址回收

应用场景

  • 更加准确的配置网络参数的情况下

  • 网络环境较大时

注意

同一个网络环境下不允许存在多个DHCP服务器

工作流程

1、当客户端配置为自动获得IP地址时,客户端发送discover广播包(发现),用来寻找网络中的DHCP服务器

2、假如网络存在DHCP服务器,此时服务器给出回应,向客户端发送Offer广播包(邀约),携带了IP地址的信息,询问客户端是否使用该IP地址

3、假如客户端使用上述IP地址,向服务端发送Request广播包(请求),并将请求信息写入到该包内。

4、服务端向客户端发送Ack广播包(确认),并确定IP地址的租约期。

何时更新租约

当租约期达到50%时

当客户端重启后

客户端直接发送Request包:

A、IP地址空闲 服务端直接回应Ack

B、IP地址被占用 服务端回应noAck 客户端需要将上述“工作流程”完整执行一遍

客户端类型

Linux DHCP服务器不存在,没有IP

Windows DHCP不存在,会启用备用IP地址 169.254.0.0/16 ~ 168.254.255.255/16

DCHP安装与配置

以实战为例:

1. DHCP服务器能够为两个网络分别分配IP地址。
2. 内部客户机设置为固定获得某一个IP地址。

为了防止误操作,使用虚拟机进行模拟:

网络规划:

DHCP 服务器                VMnet1(仅主机) + VMnet2(仅主机)        双网卡,连接两个网段

内部客户机                    VMnet1(仅主机)                                           需固定 IP 

路由器                           VMnet1(仅主机) + VMnet2(仅主机)        双网卡,运行 dhcrelay

外部客户机                    VMnet2(仅主机)                                           动态获取 IP

以VMnet1为内网 VMnet2为外网

首先配置DHCP服务器:

下载DHCP服务

 dnf install -y dhcp-server
配置 DHCP 作用域
[root@localhost dhcp]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example ./dhcpd.conf
[root@localhost dhcp]# vim dhcpd.conf
# A slightly different configuration for an internal subnet.
subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.2 192.168.100.253;option domain-name-servers 192.168.100.1;#option domain-name "internal.example.org";option routers 192.168.100.254;option broadcast-address 192.168.100.255;default-lease-time 600;max-lease-time 7200;
}
subnet 192.168.200.0 netmask 255.255.255.0 {range 192.168.200.2 192.168.200.253;option domain-name-servers 192.168.200.1;#option domain-name "internal.example.org";option routers 192.168.200.254;option broadcast-address 192.168.200.255;default-lease-time 600;max-lease-time 7200;
}
host ens33 {hardware ethernet 00:0c:29:b3:a1:21;fixed-address 192.168.100.100;
}

保证以上内容正确

启动 DHCP 服务
[root@localhost dhcp]# systemctl enable --now dhcpd

配置路由器

安装 dhcrelay

dnf install -y dhcp-relay

启动dhcrely

 systemctl enable --now dhcrelay
 配置路由器网卡 IP
[root@localhost network-scripts]# cat ifcfg-ens34
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens34
UUID=13cc887b-cb4c-4dbe-b69a-5b06054401f0
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.200.254
PREFIX=24
开启 IP 转发(确保跨网段通信)
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

配置内部客户机

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens33
UUID=13cc887b-cb4c-4dbe-b69a-5b06054401f0
DEVICE=ens33
ONBOOT=yes

配置外部客户机

[root@localhost dhcp]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens33
DEVICE=ens33
ONBOOT=yes

启用dhcrelay转发

[root@localhost network-scripts]# dhcrelay 192.168.100.1

验证

内部机:

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:b3:a1:21 brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.100.100/24 brd 192.168.100.255 scope global dynamic noprefixroute ens33valid_lft 598sec preferred_lft 598secinet6 fe80::20c:29ff:feb3:a121/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:41:0d:78 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever

外部机:

[root@localhost network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:c4:f5:3c brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.200.2/24 brd 192.168.200.255 scope global dynamic noprefixroute ens33valid_lft 391sec preferred_lft 391secinet6 fe80::20c:29ff:fec4:f53c/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:41:0d:78 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever

内部机ping外部机

[root@localhost ~]# ping 192.168.200.2
PING 192.168.200.2 (192.168.200.2) 56(84) bytes of data.
64 bytes from 192.168.200.2: icmp_seq=1 ttl=63 time=0.563 ms
64 bytes from 192.168.200.2: icmp_seq=2 ttl=63 time=0.418 ms
^C
--- 192.168.200.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.418/0.490/0.563/0.075 ms

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

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

相关文章

12.UDP客户端

准备工作 硬件准备&#xff1a;确保你的STM32板子已经正确连接了DP83848网络芯片。 软件设置&#xff1a; 安装好STM32CubeMX用于配置工程。 选择合适的STM32 HAL库版本。 如果可能的话&#xff0c;安装LwIP库支持TCP/IP协议栈。 步骤 1. 使用STM32CubeMX配置项目 打开…

希尔脚本简介及常用命令代码整理

一、Shell 脚本简介 1. 定义 Shell 是用户与操作系统内核交互的桥梁&#xff0c;常见类型有 Bash、Zsh、PowerShell 等。Shell 脚本则是一系列 Shell 命令的集合&#xff0c;通常保存为后缀为.sh 的文本文件。 2. 作用 类别描述自动化重复性任务例如定期备份数据、执行定时…

【人工智能下的智算网络】广域网优化

一、广域网络多路径I/O写的并行路径优化方案 1.1、数学建模 网络拓扑优化​ 1. ​拓扑抽象与路径发现​ ​邻接矩阵建模​&#xff1a; 将网络节点抽象为图顶点 G (V, E)&#xff0c;链路带宽与延迟定义为边权 w(e)。构造邻接矩阵 A&#xff0c;其中元素 A_{ij} 表示节点 …

AI测试开发工程师如何用大模型调用工具:从入门到实践

在软件测试领域&#xff0c;测试工程师常常面临测试用例设计复杂、数据生成繁琐、结果验证耗时等挑战。随着大语言模型&#xff08;LLM&#xff09;的迅速发展&#xff0c;Chat类大模型&#xff08;如GPT、LangChain支持的模型&#xff09;为测试开发提供了一种全新思路——工具…

迁移学习基础

知识的“跨界复用” 你是一位经验丰富的厨师&#xff08;源模型&#xff09;&#xff0c;尤其擅长做意大利菜&#xff08;源任务/源域&#xff09;。现在&#xff0c;老板让你去新开的一家融合餐厅工作&#xff0c;需要你做亚洲菜&#xff08;目标任务/目标域&#xff09;。你…

AI医生24小时在线:你的健康新‘算法监护人

2025年仲夏&#xff0c;中国医疗AI领域迎来爆发式突破&#xff1a;罗湖医院集团率先部署"DeepSeek-腾讯混元"双AI诊疗系统&#xff0c;实现患者15分钟极速就诊闭环&#xff1b;复旦大学研发的微量血液检测技术取得重大突破&#xff0c;仅需数滴血样即可筛查上千种疾病…

Java 中 DataSource-数据源 的基础介绍

Java 中 DataSource-数据源 的基础介绍 一、核心概念解析1.1 数据源&#xff08;Data Source&#xff09;1.2 数据库连接池&#xff08;Connection Pool&#xff09;1.3 二者关系1.4 DataSource 接口 二、DataSource 解决的问题与优势2.1 DataSource 的作用2.2 传统方式的局限性…

Vue + Vite 项目部署 Docker 全攻略:原理、路由机制、问题排查与开发代理解析

Vue Vite 项目部署 Docker 全攻略&#xff1a;原理、路由机制、问题排查与开发代理解析 本文面向希望将 Vue 3 Vite 项目部署到生产环境&#xff08;Docker NGINX&#xff09;并深入理解路由行为、构建机制与常见问题排查的开发者。 &#x1f4e6; 一、项目准备 以 Vue 3 …

Vue3 + TypeScript 使用 v-bind() 在 <style scoped> 中动态设置 CSS 样式值

使用要求&#xff1a; Vue 3.3 <style scoped>&#xff0c;Vue 的 v-bind() 在 CSS 中只支持在 scoped style 或 CSS Modules 中使用v-bind("cssVar") 双引号包裹响应式变量&#xff0c;变量 cssVar 必须是 Vue 的响应式数据&#xff08;如 ref 或 reactive&…

php列表头部增加批量操作按钮,多选订单数据批量微信退款(含微信支付SDK)

index_search.html data-table-id:表格id data-rule:需要传输的列表字段 data-action:控制器方法 <a class="layui-btn layui-btn-primary layui-btn-sm" style=

小程序还没有上线就提示小程序违规,支付失败

如果出现这种情况&#xff0c;一般情况下不是真正的违规&#xff0c;是因为在小程序后台&#xff0c;没有设置订单详情页面的path地址的原因 1.首先看一下&#xff0c;在站内信中是否有相关订单的通知&#xff1a;站内信&#xff08;小程序通知中心&#xff09;查看是否看到 关…

展开说说Android之Glide详解_源码解析

基于上一篇介绍了Glide的使用篇本文分析一下Glide的源码实现&#xff0c;看看我们简单几步就实现的图片展示功能在源码中是怎样完成的。 一、Glide中的核心文件 先逐个介绍一下个人以为的几个核心类&#xff1a;‌ 1、Glide Glide是必经的入口&#xff0c;通过Glide.get(con…

商品中心—6.商品考核系统的技术文档二

大纲 1.基于大数据系统的商品考核数据指标 2.基于商品考核数据指标的商品考核流程 3.商品考核失败后的处理 考核流程的设计 4.商品考核系统数据库模型设计 5.商品考核系统核心接口 6.商品生命周期系统的定时考核任务 6.商品生命周期系统的定时考核任务 (1)定时任务处理…

鸿蒙组件通用事件开发全攻略:从基础交互到工程实践

一、引言&#xff1a;事件系统 —— 构建交互体验的核心枢纽 在鸿蒙应用开发体系中&#xff0c;组件事件系统是连接用户操作与应用逻辑的关键桥梁。从基础的点击交互到复杂的多触点手势&#xff0c;通用事件覆盖了全场景设备的交互需求。本文将系统解构鸿蒙事件体系的核心机制…

老项目重构难题破解:飞算 JavaAI 如何实现技术升级突围

在企业数字化转型进程中&#xff0c;大量 Java 老项目因长期迭代积累的技术债务&#xff0c;陷入 "重构必要性与实施难度并存" 的困境。这些遗留系统普遍存在代码体系老化、架构模式滞后、维护成本高企等问题&#xff0c;成为企业技术升级的绊脚石。 传统 Java 老项…

idea使用技巧分享

写在前面 分享一些常用的idea使用技巧&#xff0c;进来看看有没有你不知道的。 设置项目默认配置 TODO设置 位置 方式一&#xff1a;setting -> editor -> TODO 方式二&#xff1a; 定义Patterns过滤模式 正则中“\b”是元字符代表着单词的开头或结尾&#xff0c;也就…

【Dify精讲】第8章:Agent能力实现原理【知识卡片】

第8章&#xff1a;Agent能力实现原理http://www.airinto.com/share/e7b7e27f 一、Agent架构设计 二、工具调用机制 三、ReAct框架实现 四、自定义Agent开发 五、性能优化与监控 六、总结与实战建议

【软件】安装Miniconda

安装 根据搜索结果&#xff0c;以下是使用Homebrew在macOS上安装Miniconda的详细步骤&#xff1a; 1.安装Homebrew&#xff08;如果尚未安装&#xff09; 打开终端&#xff08;Terminal&#xff09;&#xff0c;运行以下命令安装Homebrew&#xff1a; /bin/bash -c "$(…

FastAPI:(6)错误处理

FastAPI&#xff1a;(6)错误处理 由于CSDN无法展示「渐构」的「#d&#xff0c;#e&#xff0c;#t&#xff0c;#c&#xff0c;#v&#xff0c;#a」标签&#xff0c;推荐访问我个人网站进行阅读&#xff1a;Hkini 「渐构展示」如下&#xff1a; #c 概述 文章概念关系 graph TDA…

408第一季 - 数据结构 - 排序

排序的概念 外部排序很难&#xff0c;后面都是内部排序 插入排序 直接插入排序 理解 这个排序第一轮是从第二个元素开始的 然后是从后往前一个一个比的 然后我们看i5的情况&#xff0c;会出现比较次数和移动次数的概念&#xff0c;这里97动了 然后i8时&#xff0c;49最好…