02-DHCP原理与配置

news2024/7/6 18:18:07

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中继转发配置:

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

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

相关文章

单片机多个中断源时的设计思路,(51为例)工作寄存器R0-R7

51单片机中四组工作寄存器(R0-R7) 参考 可以看出每个工作寄存器区有8个字节即为R0-R7,当不指定使用哪个工作寄存器区的时候默认0区。其他工作区作为普通的RAM使用。特殊功能寄存器中有可以位寻址和不能位寻址的区域 下面文字引用 通过修改…

ABB机器人修改IO信号的具体方法介绍

ABB机器人修改IO信号的具体方法介绍 具体步骤可从参考以下内容: 导出IO配置文件 打开【控制面板】-【配置】-【I/O System】-【文件】-【‘EIO’另存为】,就可以保存IO配置文件【EIO.cfg】用RobotStudio软件打开EIO.cfg文件在软件界面,鼠标右击,选择【I/O信号数据编辑器】选…

嵌入式八股文

C/C基础 C和C有什么区别 C是⾯向对象的语⾔,⽽C是⾯向过程的语⾔; C引⼊ new/delete 运算符,取代了C中的 malloc/free 库函数; C引⼊引⽤的概念,⽽C中没有; C引⼊类的概念,⽽C中没有&#xff…

2024年,计算机相关专业还值得选择吗? 又该如何判断自己是否适合这类专业呢?

文章目录 一、2024年,计算机相关专业还值得选择吗?二、判断自己是否适合这类专业呢?三、哪所大学的计算机专业最好?四、计算机专业是否仍具有长远的发展潜力和就业前景呢? 一、2024年,计算机相关专业还值得选择吗? 在2024年选择大学专业时&#xff0…

人工智能ChatGPT的多种应用:提示词工程

简介 ChatGPT 的主要优点之一是它能够理解和响应自然语言输入。在日常生活中,沟通本来就是很重要的一门课程,沟通的过程中表达的越清晰,给到的信息越多,那么沟通就越顺畅。 和 ChatGPT 沟通也是同样的道理,如果想要 …

WWDC24Swift 6 崭新亮相,迁移至新 GitHub 组织

WWDC24 上的 Swift:Swift 6 崭新亮相,迁移至新 GitHub 组织 在今年的 WWDC24 大会上,苹果隆重推出了备受期待的 Swift 6 版本,并宣布将其迁移至全新的 GitHub 组织,同时庆祝 Swift 诞生十周年。 Swift 6&#xff1a…

DVWA-DC-6

靶机IP:192.168.20.140 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 nmap扫描靶机端口及版本信息 dirsearch扫目录 发现是个wordpress建站 我们去访问前端界面 存在重定向,修改hosts文件,加入192.168…

性能测试------LoadRunner 详解

性能测试------LoadRunner的使用 一、什么是LoadRunner LoadRunner是一款由Micro Focus(以前是Hewlett-Packard或HP公司)开发的性能测试工具。它用于测试和分析系统在负载下的行为和性能。具体来说,LoadRunner可以模拟数千名用户同时访问应…

大众点评全国爱车店铺POI采集177万家-2024年5月底

大众点评全国爱车店铺POI采集177万家-2024年5月底 店铺POI点位示例: 店铺id H69Y6l1Ixs2jLGg2 店铺名称 HEEJOO豪爵足道(伍家店) 十分制服务评分 7.7 十分制环境评分 7.7 十分制划算评分 7.7 人均价格 134 评价数量 2982 店铺地址 桔城路2号盛景商业广场1-3…

命令模式:灯开灯关

文章目录 UML类图Command接口Invoker.javaLight.javaOnLightCommand.javaTest.java运行结果位置 UML类图 Command接口 这个你会,只有一个方法,并且接口里面是抽象方法 package mlms; /*- 这个你会,只有一个方法,并且接口里面是抽…

MMdeploy在cuda+tensorrt下的配置和编译

MMdeploy在cudatensorrt下的配置和编译 Python安装配置MMdeploy配置openmmlab系列从工程安装mmdeploy MMdeploy_runtime以及demo编译安装量化编译runtime和demo Python安装配置MMdeploy 配置openmmlab系列 pip install -U openmim如果mim命令遭遇故障,或者安装失败…

联想电脑电池只能充到80%,就不在充电了,猛一看以为坏了,只是设置了养护模式。

现在电池管理模式有三种: 1)常规 2)养护 3)快充 好久没有用联想的电脑了,猛一看,咱充到了80%不充了,难道电池是坏的?我们要如何设置才可以让其充电到100%呢? 右下角…

Tessy学习系列(四):组件测试——官方例程interior_light

一、新建工程 (1)新建工程 注意:路径不能包含空格与中文 (2)新建测试集 (3)新建组件测试模块 (4)设置测试模块为组件测试模块 二、导入源码 (1&#xff09…

DC入门篇——read和analyzeelaborate的区别

引言 DC读入设计文件有两种方式,一是read指令,二是 analyze&elaborate 的组合。下文将介绍两者的异同。 read 具体为 read -format verilog[db,vhdl...] file #dcsh model read_db file.db #tcl model read_verilog fil…

5.4 安全策略和控制 方法实现探讨

安全策略概述: 定义 安全策略是一组规则和措施,旨在保护组织的信息和资产免受潜在的威胁和攻击。它的制定和实施需要考虑组织的特定需求和风险,并采取适当的措施来减少潜在的安全漏洞。安全策略的定义包括以下几个方面: 1. 目标和范围&…

【Vue】Vuex概述

文章目录 一、使用场景二、优势三、注意 官网:https://vuex.vuejs.org/zh/ Vuex 是一个 Vue 的 状态管理工具,状态就是数据。 工具可以直接理解成插件 大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)…

信息学奥赛初赛天天练-26-CSP-J2023基础题攻略,组合数学、高精度算法、计算机存储奥秘与操作系统实践

PDF文档公众号回复关键字:20240611 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 6 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希…

NOSQL -- ES

第三个我们比较常用的NOSQL类型的数据库 --- ES 介绍: ES的全称(Elasticsearch) ES是一个分布式全文搜索的引擎 也就是我们平常在购物, 搜索东西的时候常用的, 就是一个ES的类型, 分布式全文搜索引擎 查询原理: 1>分词: 在查询之前, 其会将一些数据拆分开, 按照词进行拆分…

linux pxe和无人值守

一 PXE和无人值守 pxe c/s模式 允许客户端通过网络从远程服务器(服务端)下载引导镜像 加载安装文件 实现自动化安装操作系统 无人值守 就是安装选项不需要认为干预 可以自动化实现 pxe的优点 1 规模化 同时装配多台服务器 20多 30台 2 自动化 …

Mysql查询分析工具Explain的使用

一、前言 作为一名合格的开发人员,与数据库打交道是必不可少的,尤其是在业务规模和数据体量大规模增长的条件下,应用系统大部分请求读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的&…