DHCP原理及配置

目录

一、DHCP原理

DHCP介绍

DHCP工作原理

DHCP分配方式

工作原理

DHCP重新登录

DHCP优点

二、DHCP配置


一、DHCP原理

1 DHCP介绍

大家都知道,现在出门很多地方基本上都有WIFI,那么有没有想过这样一个问题,平时在家里都是“固定”的ip地址,那么如果出门连接了公共的WIFI,会怎样获得,获得什么ip地址呢?

其实,这里就涉及到了DHCP动态分配。之前我们配置ens33网卡的时候,通常都是将网络分配方式由原来的 DHCP 改成 static 静态。为什么要这么做呢?如果不改成静态的话,我们这一次远程连接上了虚拟机,下一次开机就可能连不上了。说到这,大家可能隐约意识到,DHCP动态分配是个什么了,没错,就是字面意思,动态分配 ip 地址。

用官方一点的话说,就是动态主机配置协议,专门用于为 TCP/IP网络中的计算机自动分配TCP/IP参数的协议,是一个应用层协议。

DHCP使用67和68端口,用于简化主机地址分配管理。服务端和客户端使用端口不一样。

Server 端:DHCP Server(运行 dhcp 服务)

UDP 服务:监听端口 67(bootps)

Client 端:DHCP Client(运行 dhcp 程序)

UDP 服务:监听端口 68 (bootpc)

2 DHCP工作原理

DHCP分配方式

DHCP有三种分配方式

自动分配:当 DHCP 客户机第一次成功地从 DHCP 服务器获取到一个 IP 地址后, 就永久地使用这个 IP 地址。

手动分配:由 DHCP 服务器管理员专门指定 IP 地址。

动态分配:是当 DHCP 客户机第一次从 DHCP 服务器获取到 IP 地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用

工作原理

说了这么多,DHCP究竟是如何工作的呢?

一开始,当一台机器启动时,它还没有 IP 地址,所以主机要通过 DHCP 获取一个合法的地址。此时主机以广播方式发送 DHCP Discover 信息来寻找 DHCP 服务器,当 DHCP 服务器接收到来自主机请求 IP 地址的信息时,它就在自己的 IP 地址池中查找是否有合法的 IP 地址提供给主机。如果有,DHCP 服务器就将此 IP 地址做上标记, 加入到即将反馈的消息中,然后将该消息广播出去。主机接收到消息后,选择 IP 地址,通常会选择接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的 DHCP 服务器将该地址保留,这样该地址就不能再分配给其他主机。之后主机会向服务器发送 DHCP Request 消息,表示选择该 ip 地址。服务器接收到 DHCP Request 消息后,以 DHCP ACK 消息的形式向主机广播成功确认,该消息包含有 IP 地址的有效租约和其他可配置的信息。当主机收到 DHCP ACK 消息时,它就配置了 IP 地址,完成 TCP/IP 的初始化。

整个过程都是以广播形式转发信息,这个过程被称为四次会话,其实有点类似于计算机网络中的,TCP建立连接的三次握手四次挥手过程。

DHCP重新登录

那么,前面也提到,为什么在家连网的时候,ip地址一直不变呢?不是说好了动态分配吗?其实,确实是动态分配,只不过每一次都是分配的同一个地址,因为一台主机或者是用户连接一个网络时,会有上次连接时的缓存,直接将该缓存信息发给DHCP服务端就可以了,服务端收到该信息就直接将上次分配的地址重新分配给该用户。

3 DHCP优点

说了这么多,DHCP有什么好处呢?为什么要使用这种分配方式?这个问题的答案其实很显然。因为每个人上网的时间都是不确定的,而且使用人员的技术水平也不同,假如我完全不懂什么ip地址什么路由器,我连个WiFi难道要我自己申请什么ip地址?这是不现实的。而且还会造成 IP 地址的浪费,很多会抢占什么66 88 这种数字吉利的地址。然后导致最后连接的人不管输什么都提示被占用,不知道哪个ip地址无人使用。而且也会为 ISP 服务商带来高额的维护成本。

所以,使用DHCP动态分配,可以减少管理员的工作量,同时会避免输入错误的情况,避免 IP 地址冲突,提高了 IP 地址的利用率。

二、DHCP配置

在配置之前我们首先要安装相关的服务

yum -y install dhcp

拷贝模板,名字为dhcpd.conf

cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example  /etc/dhcp/dhcpd.conf

然后我们编辑该配置文件

vim /etc/dhcp/dhcpd.conf

我们来为他设置一下行号

我就直接用数字行号来代表这一行的字段了

7:指定客户端使用的DNS域名为 example.org

8:指定 DNS 服务器地址

10和11行分别时默认租约时间和最大租约时间

14:用于指定DHCP服务器是否以及如何进行动态DNS更新

以上为DHCP全局配置,下面我们进行DHCP局部配置,大概在四十多行的位置

47行是声明网段地址,我们直接改成我们所需修改的网段,不要忘了修改后面的子网掩码

48行是dhcp地址池映射范围,我这里随便设置了一个网段内的范围

49行定义DNS服务器

51行默认网关

52行广播地址

53和54依然是默认祖约时间和最大租约时间

这边都配置完成后就可以去客户端进行验证

ipconfig /release

ipconfig /renew

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

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

相关文章

【总结】实际业务场景中锁、事务、异常如何考虑使用?

文章目录 锁处理目的:考虑锁控制思路:生命周期接口并发控制解决方案:测试锁是否生效:模拟多线程并发场景的2种方式: 事务处理目的:考虑事务控制思路:解决方案: 总结 锁处理 目的&am…

利用AI辅助制作ppt封面

如何利用AI辅助制作一个炫酷的PPT封面 标题使用镂空字背景替换为动态视频 标题使用镂空字 1.首先,新建一个空白的ppt页面,插入一张你认为符合主题的图片,占满整个可视页面。 2.其次,插入一个矩形,右键选择设置形状格式…

C++ 入门12:模板(Template)

往期回顾: C 入门09:友元函数和友元类-CSDN博客 C 入门10:继承和派生类-CSDN博客 C 入门11:虚函数和多态-CSDN博客 C 入门12:模板(Template) 一、前言 在前面文章的学习中,我们掌握…

Centos---命令详解 vi 系统服务 网络

目录 一、CentOS vi命令详解 二、CentOS系统服务命令 三、CentOS权限管理命令: 四、CentOS网络管理命令介绍: 一、CentOS vi命令详解 Vi是一款强大的文本编辑器,在CentOS中广泛使用。以下是Vi编辑器的一些常用命令: 1. 打开…

北京交通大学《深度学习》专业课,实验2-前馈神经网络

1. 源代码 见资源“北京交通大学《深度学习》专业课,实验2-前馈神经网络” 2. 实验内容 (1)手动实现前馈神经网络解决上述回归、二分类、多分类任务 分析实验结果并绘制训练集和测试集的loss曲线 (2)利用to…

08-8.3.1 冒泡排序

👋 Hi, I’m Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

keepalive:

keepalive: 调度器的高可用 vip地址在主备之间的切换,主在工作时,vip地址只在主上,主停止工作,vip漂移到备服务器。 在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。 1、配优…

企业网络运维-给华为交换机配置sftp,浏览交换机文件并下载上传

文章目录 需求实验开户stelnet权限已完成stelnet账号下的sftp配置使用xshell-sftp访问 需求 浏览交换机文件并下载上传 实验 开户stelnet权限 参考https://blog.csdn.net/xzzteach/article/details/140419150 已完成stelnet账号下的sftp配置 服务类型all包括stelnet和sf…

过滤器(Filter)和拦截器(Interceptor)的区别

过滤器(Filter)和拦截器(Interceptor)都是用于在请求处理过程中执行额外逻辑的机制,但它们在实现和使用上有一些重要的区别: 过滤器(Filter) 定义和用途: 过滤器主要用于…

强化学习编程实战-5 基于时间差分的方法

第4章中,当模型未知时,由于状态转移概率P未知,动态规划中值函数的评估方法不再适用,用蒙特卡洛的方法聘雇值函数。 在蒙特卡洛方法评估值函数时,需要采样一整条轨迹,即需要从初始状态s0到终止状态的整个序列…

[C++ 入门基础 - 函数重载]

在C编程中,函数重载(Function Overloading)是一种强大的特性,它允许我们定义多个同名函数,但这些函数具有不同的参数列表。通过函数重载,我们可以根据不同的参数类型或数量来实现类似但功能不同的函数&…

探索“搭旅万物皆可搭”小程序——构建旅行搭伴平台的创新实践

摘要 随着旅游市场的不断发展和个性化需求的日益增长,旅行搭伴平台逐渐成为连接志同道合旅者的桥梁。本文旨在介绍“搭旅万物皆可搭”小程序的设计理念、核心功能及其背后的技术实现,探讨如何通过算法优化、安全保障、社交互动等手段,打造一…

GUI界面开发之tkinter(一)

Tkinter是一个内置的Python库,用于创建图形用户界面(GUI)。它提供了一组工具和小部件,用于创建窗口、对话框、按钮、菜单和其他GUI元素。 在本篇文章中,主要介绍了窗口等知识点。 大家好!我是码银&#x1…

《昇思25天学习打卡营第22天|onereal》

文本解码原理--以MindNLP为例 回顾:自回归语言模型 根据前文预测下一个单词 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积 𝑊_0:初始上下文单词序列𝑇: 时间步当生成EOS标签时,停止生成。 MindNLP/huggi…

人工智能时代的伦理挑战与隐私保护

随着人工智能技术的迅猛发展,我们不得不正视其带来的伦理挑战和隐私保护问题。人工智能的应用已经深入到社会的方方面面,从医疗健康到金融服务,从教育到娱乐,无所不在。然而,与其广泛应用相伴随的是数据隐私泄露、算法…

MySQL 时区问题:设置了 my.ini 并重启了服务,依旧是 0 时区

1、问题再现 在撰写 飞书 API 2-5 时,需要新建一些数据表,以便实施从数据库到多维表的数据同步。我建了2个测试数据表,连表查询之后,将时间戳转为时间格式返回,结果发现少了 8 小时。 具体逻辑抽象为以下&#xff0c…

【Vue3组件】封装全局路由切换loading效果

把大象装进冰箱需要几步 1.写一个全局loading的样式组件&#xff0c;我这里使用了LottieAnimation 实现更优雅的切换动画&#xff0c;详情可以参考主页上一篇文章 <template><div v-if"isLoading" class"loading-overlay"><LottieAnimatio…

S7-1200PLC 2轴直线插补(详细方案对比)

1、V90速度轴应用 速度轴V90PN总线伺服梯形加减速速度控制(标准报文1应用)_v90伺服加减速时间怎么调整-CSDN博客文章浏览阅读288次。SMART PLC斜坡函数SMART PLC斜坡函数功能块(梯形图代码)_RXXW_Dor的博客-CSDN博客斜坡函数Ramp的具体应用可以参看下面的文章链接:PID优化系…

【Linux/Vim】Vim使用教程及速查手册

目录 一.Vim介绍 1.Vim是什么 2.Vim的安装 (1)Vim默认安装的系统 (2)Vim的安装方法 (3)检查Vim是否安装成功 3.Vim,Vi,gvim的区别 4./.vimrc配置文件介绍及使用方法 (1).vimrc 的介绍 (2).vimrc 的使用方法 二.Vim使用方法 1.Vim的模式 (1)Vim一般命令模式常用操作…

【技术】JS的ES6有哪些知识点

1.let-const块级作用域的补充 const names["abc","cba","nba"];for(let i0;i<names.length;i){ //* 这个数组的元素有三个&#xff0c;所以会形成3个块级作用域console.log(names[i]); }以上for遍历内部的实现是以下这样的&#xff1a; 因…