02-DHCP原理与配置

1、DHCP的工作原理

当局域网中有大量的主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器地址等网络参数,这显然是一个费力也未必讨好的办法。

而DHCP服务器的应用,正好可以解决这一问题。

1.1 DHCP是什么

DHCP——动态主机配置协议,是专门用于为TCP/IP网络中的计算机自动分配网络参数的协议。

注:适用DHCP服务可以避免因手动设置IP地址所产生的错误,同时也可避免把一个IP地址分配给多台工作站所造成的地址冲突。

DHCP提供了安全、可靠且简单的TCP/IP网络设置,降低了配置IP地址的负担。

DHCP的网络结构如下图:

1.2 DHCP的优点

使用DHCP的好处有:

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免IP地址冲突

注:对于同一个局域网来讲,如果两个主机的IP地址是一样的,就会造成IP地址冲突。IP地址冲突会造成两个主机访问网络异常。

  • 当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
  • 提高了IP地址的利用率

注:谁开机,DHCP就给谁分配IP地址,不开机的话就不给分配IP地址。

  • 方便客户端的配置

1.3 DHCP的分配方式

在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(包括IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址),其他主机作为DHCP的客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程。

DHCP服务器提供了三种IP地址分配方式:自动分配、手动分配和动态分配:

  • 自动分配:当DHCP客户机第一次成功地从DHCP服务器获取到一个IP地址后,就永久地使用这个IP地址
  • 手动分配:由DHCP服务器管理员专门指定IP地址
  • 动态分配:当DHCP客户机第一次从DHCP服务器获取到IP地址后,并非永久地使用该地址,而是在每次使用完后,DHCP客户机就会释放这个IP地址,供其他客户机使用。

1.4 DHCP的租约过程

把客户端从DHCP服务器获取IP地址的过程称之为DHCP的租约过程,此过程主要有四个步骤:

  • 客户端在网络中搜索服务器
  • 服务器向客户端响应服务
  • 客户端向服务器发出服务请求
  • 服务器向客户端提供服务

(1)客户端请求IP地址

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

此时DHCP客户机以广播方式发送DHCP Discover广播消息来寻找可用的DHCP服务器,如下图所示:

注:因为刚开始客户端是没有地址的,所以它的目标地址是一个广播地址(四个255),而它自己是没有地址的,也就是自己的地址未知,所以用4个0来代表它的源地址,4个0代表它没有地址。

在路由技术里,4个0代表所有未知网络,也即是说当我这个节点不知道地址的时候,用4个0来代表它的地址。

所以在整个局域网,所有的主机都可以收到,因为这是广播的类型,只要是在这个局域网里的所有主机都可以收到这个包。

补充:组播地址、广播地址不能做源地址。

(2)、服务器响应

当DHCP服务器接收来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。

如果有,DHCP就将在此IP地址做上标记,加入到DHCP Offer的消息中。然后DHCP服务器就广播一则DHCP Offer消息,如下图所示:

注:offer的报文里面,源地址是服务器自己的IP地址,目标地址还是一个广播地址。

因为此时客户端根本还没有自己的IP地址,所以并不能直接以单播的方式发送给客户端,那就只能以广播的方式发送。

服务器发送客户端的这个DHCP Offer消息里,其中包含有IP地址和其他配置信息。

(3)客户机选择IP地址

DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址(发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机),之后客户端会向第一个给它发送DHCP Offer的服务器发送DHCP Request消息,进行确认。如下图:

注:这个过程也是以广播的方式。这个报文的目标地址也是一个广播地址,因为它不仅要告诉它所选中的DHCP服务器,也要告诉其他的DHCP服务器一声。然而,源地址此时此刻还是4个0。

(4)服务器确定租约

当DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机

广播成功确认(该消息包含有IP地址的有效租约和其他可配置的信息),来确认IP地址的分配。

最后这一步也是广播的类型,因为整个过程当中,它的客户端都是没有地址的,

直到最后收到服务器的确认之后,客户端才有自己的IP地址。所以在第四步的时候,客户端还没有地址的,

所以第四个阶段的源地址还是服务器的地址,目标地址还是4个255.

注:确认租约,客户端获得IP地址之后,当客户机每次重新登录网络(比如关机又开机或把网卡禁用了再启用)时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。

注:对于一个客户机来说,假如你重新登陆了,这个IP地址是重新申请一次新的IP,还是继续使用原来的IP好呢?

继续使用原来的IP比较好。对于一个主机来说,如果你让它频繁的去切换它的IP的话,对于这个主机来讲并不好,频繁更换IP地址对它的通信肯定会造成影响的,所以能用之前的地址就尽量用之前的地址。

因此,如果客户端重新登录了,并不会让它从头重新去走一遍DHCP Discover的流程,而是从中间的请求(DHCP Request)这一步直接开始,跳过前两步而从第三步开始去走一遍流程(重新去请求一下DHCP服务器,我原来的IP地址还要继续用,服务器是否允许呢?)

如果服务器允许,就会回复一个DHCP ACK信息;如果服务器不允许或已经把这个IP地址分给别人了,就会回应一个DHCP NACK的否认信息。如果说客户端收到了这样一个DHCP NACK的否认信息,那客户端就会直接返回到第一个步骤,先来一个DHCP Discover,然后重新4个流程再走一遍流程。

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

这时候客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。

假如说一个IP地址被获取到了,但那并不是说这个IP地址我就可以永久使用了,它是有一个租约期限(就是给你一个IP地址,允许你用多长时间)的,

管理员是可以设置DHCP的这个租约期限的,如果不设置的话,windows里面默认是8天的租约期限。

2、使用DHCP动态配置主机地址

DHCP服务可分配的地址信息主要有:

网卡的IP地址、子网掩码、对应的网络地址、广播地址、默认网关地址、DNS服务器地址等。

2.1 在Linux系统中配置DHCP服务器

(1)安装DHCP服务器软件

先执行rpm -q dhcp命令来查看系统中是否已经安装dhcp软件包,如果没有安装,则要挂载Centos系统光盘,安装其中的软件包。

如下图,先查看系统中是否安装了dhcp软件包,然后用df命令查看一下光盘挂载情况(发现挂载到了/media/cdrom下)然后直接安装dhcp软件包即可(使用yum命令):

(2)建立主配置文件dhcpd.conf

dhcp服务的主配置文件是/etc/dhcp/dhcpd.conf(该文件中默认不包含任何有效配置,需要管理员手动建立)

注:管理员可以根据文件中的提示,参考配置文件的范本建立新的dhcp.conf文件。

用vim编辑器打开dhcp的这个配置文件dhcp.conf,如下图:

退出vim编辑器之后,在命令行用cp命令把这个dhcp模板文件拷贝到/etc/dhcp/dhcpd.conf这个dhcp的配置文件下:

补充:/etc/dhcp/dhcpd.conf文件的配置构成是:

2.2 dhcp配置文件的内容说明

  • 声明:用来描述dhcp服务器的对网络布局的划分,是网络设置的逻辑范围。

较常见的声明是subnet——用来约束一个网段、host——用来约束一台特定的主机,

(1)subnet网段声明

一台DHCP服务器可以为多个不同网段提供服务,因此subnet网段声明必须有而且可以有多个。

例如,若要让DHCP服务器为192.168.4.0/24网段提供服务,用于自动分配的IP地址范围192.168.4.128~192.168.4.254,

为客户机指定默认网关地址为192.168.4.1,则可以修改dhcpd.conf配置文件,可参考下图内容调整subnet网段的声明:

(2)host主机声明

host主机声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址)

注:这些主机的特点是要求每次获取的IP地址相同,以确保服务的稳定性。

使用hardware ethernet参数——来指定该主机的MAC地址;

使用fixed-address参数——指定保留给主机的IP地址;

例如,要为打印机prtsr分配固定的IP地址192.168.4.100,可以修改dhcpd.conf配置文件,如下图:

  • 参数:由配置关键字和对应的值组成,总是以;分号结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)

  • 选项:由option引导,后面跟具体的配置关键字和对应的值,也是以;分号结束。

用于指定分配给客户机的各种地址参数(如默认网关、子网掩码、DNS服务器地址等)

2.3 启动dhcpd服务

在启动dhcpd服务之前,应确认至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则将无法正常启动dhcpd服务。

注:dhcpd服务的全局配置:

为了使配置文件的结构更加清晰,全局配置通常会放在配置文件dhcpd.conf的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数如下:

  • ddns-update-style——用来设置与DHCP服务相关联的DNS数据动态更新模式。

注:在实际的DHCP应用中很少用到该参数,将值设为none即可。

  • default-lease-time——默认租约时间,单位是秒。表示客户端可以从DHCP服务器租用某个IP地址的默认时间
  • max-lease-time——最大租约时间,单位是秒。表示允许DHCP客户端请求的最大租约时间(当客户端未请求明确的租约时间时,服务器将采用默认租约时间)
  • option domain-name——默认搜素区域。为客户端指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf配置文件中,如search benet.com
  • option domain-name-servers——DNS服务器地址,为客户机指定解析域名时使用的DNS服务器地址,

该配置选项同样体现在客户姐的/etc/resolv.conf配置文件中。需要设置多个DNS服务器地址时,以逗号进行分隔。

3 DHCP中继

3.1 DHCP中继原理

当企业内部网络规模比较大时,通常通过VLAN将网络划分为多个不同的子网。但是在这种情况下,一台DHCP服务器无法为不同网段的客户机同时提供服务,因为DHCP协议使用广播,而VLAN能隔离广播。

例如,DHCP服务器在VLAN100中,就只有VLAN100内的客户机能从DHCP服务器那里获取IP地址。如果是VLAN2或VLAN3的客户机就无法通过这台DHCP服务器来获取IP地址。

于是,针对以上这种情况,我们就有两种方案:

(1)为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费并不利于管理;
(2)在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器那里获取IP地址。如下图所示:

3.2 DHCP中继配置

在三层交换机上配置DHCP中继转发:首先需要保证交换机上各VLAN之间网络通信正常,然后依次在不包含DHCP服务器的VLAN上进行DHCP中继配置。

例如,执行下图中的命令可以在VLAN2中进行DHCP中继转发配置:

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

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

相关文章

[2024-06]-[大模型]-[Ollama] 0-相关命令

常用的ollama命令[持续更新中] ollama更新: curl https://ollama.ai/install.sh |sh带着flash attention启动: OLLAMA_FLASH_ATTENTION1 ollama serve停止ollama服务: sudo systemctl stop ollama note:目前遇到sudo systemctl …

驱动开发之 input 子系统

1.input 子系统介绍 input 就是输入的意思,input 子系统就是管理输入的子系统,和 pinctrl、gpio 子系统 一样,都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等 等这些都属于输入设备,不同的输入…

一文教你如何实现并发请求的失败自动重试及重试次数限制

需求 在并发接口请求的时候,能够自动对失败的请求进行重发尝试(超过指定重试次数则不再重试),并将最终的结果返回(包含每个请求是否成功、返回结果) 核心思路 代码实现 使用案例 为了演示我们代码的最终实现效果&a…

使用 python 将 Markdown 文件转换为 ppt演示文稿

在这篇博客中,我们将展示如何使用 wxPython 创建一个简单的图形用户界面 (GUI),以将 Markdown 文件转换为 PowerPoint 演示文稿。我们将利用 markdown2 模块将 Markdown 转换为 HTML,并使用 python-pptx 模块将 HTML 内容转换为 PowerPoint 幻…

HarmonyOS未来五年的市场展望

一、引言 随着科技的不断进步和消费者对于智能化设备需求的日益增长,操作系统作为连接硬件与软件的核心平台,其重要性愈发凸显。HarmonyOS(鸿蒙系统),作为华为自主研发的分布式操作系统,自诞生以来便备受瞩…

6月11号作业

思维导图 #include <iostream> using namespace std; class Animal { private:string name; public:Animal(){}Animal(string name):name(name){//cout << "Animal&#xff1b;有参" << endl;}virtual void perform(){cout << "讲解员的…

UE4_后期_ben_模糊和锐化滤镜

学习笔记&#xff0c;不喜勿喷&#xff0c;侵权立删&#xff0c;祝愿生活越来越好&#xff01; 本篇教程主要介绍后期处理的简单模糊和锐化滤镜效果&#xff0c;学习之前首先要回顾下上节课介绍的屏幕扭曲效果&#xff1a; 这是全屏效果&#xff0c;然后又介绍了几种蒙版&#…

【PX4-AutoPilot教程-TIPS】PX4加速度计陀螺仪滤波器参数设置

PX4加速度计陀螺仪滤波器参数设置 前期准备滤波前FFT图滤波后FFT图 环境&#xff1a; 日志分析软件 : Flight Review PX4 &#xff1a;1.13.0 前期准备 进行滤波器参数设置的前提是飞机简单调试过PID已经可以稳定起飞&#xff0c;开源飞控的很多默认参数是可以让飞机平稳起…

springSecurity学习笔记(一)

简介 Spring Security是一个Java框架&#xff0c;用于保护应用程序的安全性。它提供了一套全面的安全解决方案&#xff0c;包括身份验证、授权、防止攻击等功能。Spring Security基于过滤器链的概念&#xff0c;可以轻松地集成到任何基于Spring的应用程序中。它支持多种身份验…

记一次华为2288H V5更换主板的辛酸

1、开机提示找不到设备&#xff0c;通过带外检查硬盘raid是否正常&#xff0c;如果正常就不是硬件问题&#xff0c;也不会是线没接好 2、网络不通&#xff0c;服务重启啥的都正常不会报错&#xff0c;就是ping不通网关&#xff0c;后来通过带外发现是网卡漂移了。 核对mac地址发…

Docker 国内镜像源更换

实现 替换docker 镜像源 前提要求 安装 docker docker-compose 参考创建一键更换docker国内镜像源 Docker 镜像代理DaoCloud 镜像站百度云 https://mirror.baidubce.com南京大学镜像站

若依RuoYi-Vue分离版—增加通知公告预览及缩放功能

若依RuoYi-Vue分离版—增加通知公告预览及缩放功能 前言开发通知公告 前言 若依分离版的通知公告没有预览功能&#xff0c;想开发通知公告功能 开发通知公告 效果如下 具体开发内容 修改若依notice代码如下。 <template><div class"app-container"&g…

16. 《C语言》——【牛客网BC124 —— BC130题目讲解】

亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&#xff0c;成为一名优…

orbslam2代码解读(4):loopclosing回环检测线程

书接上回&#xff0c;介绍完了局部建图线程&#xff0c;局部建图线程在进行局部BA之后&#xff0c;也会将新的关键帧mpLoopCloser放进回环线程的mlpLoopKeyFrameQueue容器中。所以这时候回环检测线程就根据这个新的关键帧来进行回环检测的操作。 回环检测的主要程序 // 线程主…

websocket php workerman 服务器nginx配置wss协议

首先 Nginx的版本要高&#xff0c;尽量用当前最新稳定版本。 其次 WSS协议&#xff0c;是在HTTPS协议的基础上&#xff0c;进行协议升级&#xff0c;进行通讯的&#xff0c;所以先要保证你有一个 HTTPS正常的WEB站点。 所以&#xff0c;通过Nginx -V 请保证 一定有 --with-ht…

Spring-Security(二)OAuth2认证详解(持续更新)

Spring Security & Oauth2系列&#xff1a; Spring Security&#xff08;一&#xff09; 源码分析及认证流程 Spring Security&#xff08;二&#xff09;OAuth2认证详解及自定义异常处理 文章目录 1、OAuth2.0 简介1.1 OAuth2.0 相关名词解释1.2 四种授权模式 1.3 、OAu…

2023 hnust 湖科大 嵌入式 实验报告+代码及复习资料等

2023 hnust 湖科大 嵌入式 实验报告代码及复习资料等 目录 流水灯 1 8位数码管动态扫描 3 按键输入 5 温度与关照 7 看门狗 9 内容 报告 代码 下载链接 https://pan.baidu.com/s/1LIN8rm42yrukXliI3XyZ1g?pwd1111

Java高阶数据结构-----并查集(详解)

目录 &#x1f9d0;一.并查集的基本概念&实例&#xff1a; &#x1f92a;二.并查集代码&#xff1a; &#x1f602;三&#xff1a;并查集的一些习题&#xff1a; A.省份数量 B.等式方程的可满足性 &#x1f9d0;一.并查集的基本概念&实例&#xff1a; 并查集概念&…

vue操作蓝牙教程

项目背景 想在VUE中使用蓝牙功能&#xff0c;百度了好久也尝试了好多都没法实现。 概念讲价 如果要在浏览器中使用蓝牙&#xff0c;去搜索关键字【navigator.bluetooth】&#xff0c;搜索后发现这根本不是想要的结果。 解决方法 去搜索关键字【uniappbluetoothvue】&#x…

Web前端三大主流框架简介与优缺点对比分析

随着互联网的快速发展&#xff0c;Web前端开发技术不断进步&#xff0c;各种前端框架应运而生&#xff0c;极大地提高了开发效率和用户体验。在众多框架中&#xff0c;React、Vue.js 和 Angular 是目前最受欢迎的三大主流框架。本文将对它们进行详细介绍&#xff0c;并对它们的…