linux服务之DHCP(centos7.6)
DHCP服务
1. DHCP介绍
- DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),被应用在局域网环境中,主要作用是集中管理、分配IP地址,使网络环境中主机动态的获取IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。由于DHCP是一个UDP协议,所以运行起来更加高效
- DHCP协议采用客户端/服务器模型(C/S模型),服务端可以为客户端提供IP、掩码、网关、主机名、DNS等信息。客户端只需将IP获得方式设置自动获取即可
- 目前可以提供DHCP服务的设备有很多,比如:
- DHCP服务器(windows server、linux)
- 硬件路由器
- 家用宽带路由
- DHCP应用场合
- 公司局域网环境
- 家庭局域网环境
- 公共场合的wifi环境
- 宽带环境网络
2. DHCP工作原理
- 工作原理
Ⅰ 发现阶段:客户端广播发送DHCP DISCOVER报文
Ⅱ 提供阶段:服务器回应DHCP OFFER报文
Ⅲ 选择阶段: 客户端广播发送DHCP REQUEST报文
Ⅳ 确认阶段:服务器回应DHCP ACK报文 - 计算机获得IP的时间点
Ⅰ 计算机开机
Ⅱ 网卡接通网络
Ⅲ 重启网卡服务
Ⅳ IP租约到期无法续订 - 租约更新阶段
Ⅰ 租约完成50%
当租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。
Ⅱ 租约完成87.5%
当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。
Ⅲ 租约到期
如果租期时间到时都没有收到服务器的回应,客户端停止使用此IP地址,重新发送DHCP DISCOVER报文请求新的IP地址。
3. DHCP服务器部署
-
DHCP安装
[root@Lind ~]# yum -y install dhcp
-
DHCP配置文件详解
[root@Lind ~]# PS1=DHCP_SERVER_16# //无具体含义只是用作显示 DHCP_SERVER_16#cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf DHCP_SERVER_16#vim /etc/dhcp/dhcpd.conf # #号代表注释 # dhcpd.conf # DHCP服务配置文件分为全局配置和作用域配置,很好区分:subnet就是作用域 不在subnet里面的就是全局设置 # # Sample configuration file for ISC dhcpd ## DNS全局选项,指定DNS服务器的地址,可以是IP,也可以是域名 # option definitions common to all supported networks... # DNS的域名 option domain-name "example.org"; # 具体的DNS服务器 option domain-name-servers ns1.example.org, ns2.example.org;# 租约设置,默认为600s default-lease-time 600; # 租约设置,最大租约7200s,当客户端未请求明确的租约时间。 max-lease-time 7200;# 动态DNS更新方式(none:默认,不支持;interim:互动更新模式;ad-hoc:特殊更新模式) # Use this to enble / disable dynamic dns updates globally. #ddns-update-style none;# 如果该DHCP服务器是本地官方DHCP就将此选项打开,避免其他DHCP服务器的干扰 # 当一个客户端试图获得一个不是DHCP服务器分配的IP信息,DHCP将发送一个拒绝消息,而不会等待请求超时。 # 当请求被拒绝,客户端会重新向前DHCP发送IP请求获得新地址。 # 保证IP是自己发出去的 # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative;# Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). # 日志级别 log-facility local7;# No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology.# 作用域相关设置指令 # subnet 定义一个作用域 # netmask 定义作用域的掩码 # range 允许发放的IP范围 # option routers 指定网关地址 # option domain-name-servers 指定DNS服务器地址 # option broadcast-address 广播地址 # # #案例:定义一个作用域 网段为10。152.187.0 掩码为255.255.255.0 #此作用域不提供任何服务 subnet 10.152.187.0 netmask 255.255.255.0 { }# This is a very basic subnet declaration.# 案例:定义一个基本的作用域 # 网段10.254.239.0 掩码255.255.255.224 # 分发范围10.254.289.10-20 # 网关为rtr-239-0-1.example.org,rtr-239-0-2.example.org subnet 10.254.239.0 netmask 255.255.255.224 {range 10.254.239.10 10.254.239.20;option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; }# This declaration allows BOOTP clients to get dynamic addresses, # which we don't really recommend.subnet 10.254.239.32 netmask 255.255.255.224 {range dynamic-bootp 10.254.239.40 10.254.239.60;option broadcast-address 10.254.239.31;option routers rtr-239-32-1.example.org; }# A slightly different configuration for an internal subnet. subnet 10.5.5.0 netmask 255.255.255.224 {range 10.5.5.26 10.5.5.30;option domain-name-servers ns1.internal.example.org;option domain-name "internal.example.org";option routers 10.5.5.1;option broadcast-address 10.5.5.31;default-lease-time 600;max-lease-time 7200; }# Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration.host passacaglia {hardware ethernet 0:0:c0:5d:bd:95;filename "vmunix.passacaglia";server-name "toccata.fugue.com"; }# Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. host fantasia {hardware ethernet 08:00:07:26:c0:a5;fixed-address fantasia.fugue.com; }# You can declare a class of clients and then do address allocation # based on that. The example below shows a case where all clients # in a certain class get addresses on the 10.17.224/24 subnet, and all # other clients get addresses on the 10.0.29/24 subnet.class "foo" {match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; }shared-network 224-29 {subnet 10.17.224.0 netmask 255.255.255.0 {option routers rtr-224.example.org;}subnet 10.0.29.0 netmask 255.255.255.0 {option routers rtr-29.example.org;}pool {allow members of "foo";range 10.17.224.10 10.17.224.250;}pool {deny members of "foo";range 10.0.29.10 10.0.29.230;} }
-
DHCP启动
DHCP_SERVER_16#systemctl start dhcpd //打开dhcpd服务,打开前需要在配置文件中有一个作用域是服务器所处网段 DHCP_SERVER_16#systemctl enable dhcpd //开机自启动dhcpd服务
4. DHCP作用域
- 作用域相关指令
subnet //定义一个作用域
netmask //定义作用域的掩码
range //允许发放的IP范围
option routers //指定网关地址
option domain-name-servers //指定DNS服务器地址
option broadcast-address //广播地址
- 案例
配置一个作用域,用于为本地局域网中的计算机发放IP信息。要求:
本地网段:192.168.11.0/24
发放IP地址:192.168.11.153-242
网关:192.168.11.254
DNS1:202.106.0.20
DNS2:114.114.114.114
默认租约为两个小时
最大租约为三个小时
本DHCP服务器为本地权威DHCP,要求可以本地所有计算机获得IP都是由本DHCP发放authoritative //权威DHCP
subnet 192.168.11.0 netmask 255.255.255.0{//作用域配置range 192.168.11.153 192.168.11.252option domain-name-servers 202.106.0.20,114.114.114.114optopn routers 192.168.11.254option broadcast-address 192.168.11.255default-lease-time 7200max-lease-time 10800
}
- dhclient命令测试
dhclient是一个DHCP协议客户端,他使用DHCP协议或者BOOTP协议或在这两个协议都不可用时使用静态地址来配置一个或多个网络接口
-r
:释放当前租约并停止正在运行的DHCP客户端
-d
:强制dhclient作为前台进程运行 - 查看网卡详细信息
[root@Lind ~]# nmcli connection show ens33
- 抓包命令
tcpdump -nn -vv -s 1500 -i ens33 host 192.168.11.10(服务器IP) and udp port 67 or udp port 68
- 租约路径:/var/lib/dhcpd/dhcpd.leases
5. DHCP保留地址
- 介绍
在IP租约到期后,如果无法续订组员,client只能乖乖交出IP地址,重新获得一个其它IP使用。但是在公司有些服务器的IP地址是不能变化的,因为变了用户就无法连接到服务器了,比如公司文件服务器、打印服务器等等。那么在这种环境中我们既想要使用DHCP管理公司IP,又想实现部分及其的IP永久不变,那么怎么实现呢/
DHCP的作者在写DHCP的时候也想到了这个问题,提出了保留IP的概念,就是将默写IP保留,然后服务器来获得IP的时候,根据MAC地址做匹配,将对应的IP分给它们即可
- 配置文件/etc/dhcp/dhcpd.conf中增添
host fanstasia(什么名字都行) {hardware ethernet MAC地址;fixed-address 指定IP;#可选,但要保证/etc/hostname中是空的,重启生效option host-name 自定义主机名;
}
6. DHCP超级作用域
- 介绍
由于公司的发展壮大,公司人员数量越来越多,公司一个网段的IP无法满足日常使用,所以又加了一个网段。但是默认情况下, DHCP服务器只能发放和自己网卡在同一网段的IP地址,目前我们DHCP的网卡IP地址为192.168.11.0段,我们新加的网段为192.168.12.0,那么怎么能让DHCP服务器既能发11网段,又能法12网段呢?
超级作用域:将两个或以上的不同网段的作用域和成一个作用域。
- 基础指令
shared-network NAME{//shared-network:开启一个超级作用域
subnet1 ...subnet2 ...}
- 案例
部署一个超级作用域,作用域是192.168.11.0/24网段,192.168.12.0/24网段
网关:192.168.11/12.254
DNS:8.8.8.8option domain-name-servers 8.8.8.8
default-lease-time 7200
max-lease-time 10800
shared-network test {
subnet 192.168.11.0 netmask 255.255.255.0{//作用域配置range 192.168.11.100 192.168.11.200optopn routers 192.168.11.254
}
subnet 192.168.11.0 netmask 255.255.255.0{//作用域配置range 192.168.12.100 192.168.12.200optopn routers 192.168.12.254
}
}
欢迎大家关注公众号Lind-Learn,在这里会分享各类计算机技术的知识。
相关文章:
linux服务之DHCP(centos7.6)
DHCP服务 1. DHCP介绍 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),被应用在局域网环境中,主要作用是集中管理、分配IP地址,使网络环境中主机动态的获取IP地址、网关地址、DNS服务器地址等信息,并能…...
2024最新的软件测试面试八股文
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 前言 最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升…...
C++ STL transform_reduce 用法
一:功能 计算两个向量的内积,它是 std::inner_product 的泛化版本,支持lambda表达式自定义运算。 二:用法 #include <iostream> #include <vector> #include <numeric> #include <execution>int main()…...
MySQL5.7 排序
一、不分组排序 (1).排序-并列数据随机顺序 select col1, col2, rank : rank 1 as rank from (select A as col1,100 as col2union all select B as col1,130 as col2union all select C as col1,120 as col2union all select D as col1,120 as col2order by col2 desc ) a,…...
【Unity】3D功能开发入门系列(一)
Unity3D功能开发入门系列(一) 一、开发环境(一)安装 Unity(二)创建项目(三)Unity 窗口布局 二、场景与视图(一)场景(二)游戏物体&…...
【Python体验】第五天:目录搜索、数据爬虫(评论区里写作业)
文章目录 目录搜索 os、shutil库数据爬虫 request、re作业:爬取案例的top250电影的关键信息(名称、类型、日期),并保存在表格中 目录搜索 os、shutil库 os 模块提供了非常丰富的方法用来处理文件和目录。 os.listdir(path)&#x…...
elasticsearch性能调优方法原理与实战
❃博主首页 : 「码到三十五」 ,同名公众号 :「码到三十五」,wx号 : 「liwu0213」 ☠博主专栏 : <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 :…...
python print 函数参数:sep 自定义分隔符,end 自定义结尾符
1. 简述 print 函数可以将内容打印到标准输出,如果不指定 end 参数,默认在输出的内容之后加一个 “回车符\n”。 以下是 print 函数常用的参数用法: print(object, …, sepstr, endstr) object, …:要打印的内容,可以…...
git 使用场景
拉取分支 feature 以develop为基础 git checkout -b feature-x develop git checkout demobranch git branch 合并分支 idea 在feature 选 develop 合并到feature...
Ubuntu22.04 Docker更换阿里云镜像
由于运营商网络原因,会导致您拉取Docker Hub镜像变慢,甚至下载失败。那么可以更换阿里云镜像加速器,从而加速官方镜像的下载。 1.获取镜像加速器地址 登录容器镜像服务控制台,在左侧导航栏选择镜像工具 > 镜像加速器…...
Windows下Rust OpenCV环境配置
首发于Enaium的个人博客 安装Chocolatey 首先我们需要安装Chocolatey,Chocolatey是一个Windows的包管理器。 我们点击右上角的Install进入到Installing Chocolatey,选择Individual 复制命令 Set-ExecutionPolicy Bypass -Scope Process -Force; [Sys…...
PostgreSQL(二十三)TOAST技术
目录 一、TOAST简介 二、TOAST的存储方式 1、存储方式概述 2、实验:创建TOAST表 三、TOAST的4种压缩策略 1、策略说明 2、TOAST表额外的三个字段 四、TOAST表的计算方式 1、说明 2、实验:计算表大小 五、TOAST表的特点 1、优点 2、缺点 3、…...
文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《海上风氢系统与沿海电网能量协同优化调度》
本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…...
MySQL update set语句中 逗号与and的区别
语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition; 参数说明: table_name 是你要更新数据的表的名称。column1, column2, ... 是你要更新的列的名称。v…...
C++面试---小米
一、static 关键字的作用,及和const的区别 static关键字作用: 1、在类的成员变量前使用,表示该变量属于类本身,而不是任何类的实例。 2、在类的成员函数前使用,表示该函数不需要对象实例即可调用,且只能访问…...
Java 实现 AVL树
在二叉平衡树中,我们进行插入和删除操作时都需要遍历树,可见树的结构是很影响操作效率的。在最坏的情况下,树成了一个单支树,查找的时间复杂度成了O(N),建树跟没建树一样。那么是不是有什么办法可以建一个树避免这种情…...
CNN卷积网络实现MNIST数据集手写数字识别
步骤一:加载MNIST数据集 train_data MNIST(root./data,trainTrue,downloadFalse,transformtransforms.ToTensor()) train_loader DataLoader(train_data,shuffleTrue,batch_size64) # 测试数据集 test_data MNIST(root./data,trainFalse,downloadFalse,transfor…...
深入理解Java中的时间处理与时区管理
在Java开发中,时间处理和时区管理是常见的需求,特别是在全球化应用中。Java 8引入了新的时间API(java.time包),使时间处理变得更加直观和高效。本文将详细介绍Java中的时间处理与时区管理,通过丰富的代码示…...
虚拟机windows server创建域
目录 准备工作 一、新建域控制器 二、提升为域控制器添加新林 三、新建组织单位(OU),用户 四、将计算机加域 五、在域控中管理计算机 六、在域控中配置组策略 七、域内计算机验证组策略配置 准备工作 安装域前,如果有DNS…...
Java 集合框架:Java 中的 Set 集合(HashSet LinkedHashSet TreeSet)特点与实现解析
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 017 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...
springboot智能健康管理平台-计算机毕业设计源码57256
摘要 在当今社会,人们越来越重视健康饮食和健康管理。借助SpringBoot框架和MySQL数据库的支持,开发智能健康管理平台成为可能。该平台结合了小程序技术的便利性和SpringBoot框架的快速开发能力,为用户提供了便捷的健康管理解决方案。 通过智能…...
LetterBox图像预处理方法
LetterBox图像预处理方法就是要将不同分辨率的图像转换成固定分辨率,比如v8输入网络的固定分辨率为6406403,因此这里分享一下默认情况下对训练集、验证集和测试图片做的letterBox的方法。 1.LetterBox-Train 对于训练集,默认输入网络的图像尺寸为640640,假设有一张7201280…...
C++第五篇 类和对象(下) 初始化列表
目录 1.再探构造函数 2.类型转换 3.static成员 4.友元 friiend 1.再探构造函数 (1).之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式,就是初始化列表,初始化列表的使用方式是以一个冒…...
C#中的通信
上位机应用开发-串口通信1、基于C#的串口通信对象:SerialPort 2、字段属性 PortName:获取或设置通信端口 BaudRate:获取或设置串行波特率-DataBits:获取或设置每个字节的标准数据位长度 Parity:获取或设置奇偶校验检查协仪I-StopBits;获取或设置每个字节的标准停止位数 3、…...
CVE-2022-21663: WordPress <5.8.3 版本对象注入漏洞深入分析
引言 在网络安全领域,技术的研究与讨论是不断进步的动力。本文针对WordPress的一个对象注入漏洞进行分析,旨在分享技术细节并提醒安全的重要性。特别强调:本文内容仅限技术研究,严禁用于非法目的。 漏洞背景 继WordPress CVE-2…...
C语言笔试题(三)
本专栏通过整理各专业方向的面试资料并咨询业界相关人士,整合不同方向的面试资料,希望能为您的面试道路点亮一盏灯! 1 简单题 如何声明一个二维数组? 答案: int arr[3][4];解析: 二维数组可以看作数组的数组。 union和struct…...
minio笔记之windows下安装使用
minio安装使用 去官网下载安装包启动访问管理平台创建桶创建用户、资源授权访问访问策略创建创建用户创建accessKey,用于应用程序开发 去官网下载安装包 直接安装即可 启动 设置密码 set MINIO_ROOT_USERadmin set MINIO_ROOT_PASSWORD12345678 cd到安装目录 mi…...
代码随想录算法训练营day31 | 56. 合并区间、738.单调递增的数字
碎碎念:加油 参考:代码随想录 56. 合并区间 题目链接 56. 合并区间 思想 这道题的核心还是判断重叠区间,本题和之前做过的452. 用最少数量的箭引爆气球、435. 无重叠区间的区别在于判断出重叠区间之后的操作,本题需要做的是合…...
利用 Python 制作图片轮播应用
在这篇博客中,我将向大家展示如何使用 xPython 创建一个图片轮播应用。这个应用能够从指定文件夹中加载图片,定时轮播,并提供按钮来保存当前图片到收藏夹或仅轮播收藏夹中的图片。我们还将实现退出按钮和全屏显示的功能。 C:\pythoncode\new\…...
报表系统之Cube.js
Cube.js 是一个开源的分析框架,专为构建数据应用和分析工具而设计。它的主要目的是简化和加速构建复杂的分析和数据可视化应用。以下是对 Cube.js 的详细介绍: 核心功能和特点 1. 多数据源支持 Cube.js 支持从多个数据源中提取数据,包括 SQ…...
淘宝客领券网站怎么做/百度公司网站推广怎么做
有一个字符串,每次只能从两端取,求取得的字典序最小的子符序列。 每次比较剩余字符串的正向和反向字符串的大小,正向大就在尾取,否则在头取,相当于贪心了吧。 View Code 1 program pku3617(input,output); 2 var 3 …...
郑州的网站建设公司有哪些/今天刚刚发生的新闻
开发者桌面之前写过一篇文章:将Android手机打造成你的python开发者桌面在安卓手机上通过Termux软件,创建一个模拟Linux系统,它的好处就是无需root,即可在手机中编写Python代码。那么,既然Termux下可以玩Python…...
长沙开发网站的公司哪家好/永久8x的最新域名
目录 git remote add——添加远程仓库 git push——推送至远程仓库 git push origin master git push origin :master git push origin git push -u origin master git push --all origin $ git push origin HEAD git push origin HEAD:master git pull——获取最…...
宁波做网站排名的公司有哪些/软文营销广告
P4213 【模板】杜教筛(Sum) solution 杜教筛模板题杜教筛模板题杜教筛模板题 code #include <iostream> #include <cstdio> #include <map>using namespace std;typedef long long ll;const double eps 1e-7; const int MOD 1e9 …...
游戏网站建设流程/拉新推广渠道
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp目录里面有各种新建模板分类: 修改Class.cs的模板 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class 1 #region <…...
wordpress前台页面显示文章图片/百度竞价防软件点击软件
今天:做图书添加的和图书管理的界面 昨天:用户增加 问题:服务器不能连接界面,跳转失败 转载于:https://www.cnblogs.com/xiaojq/p/8093689.html...