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 技术体系来充实自…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
react更新页面数据,操作页面,双向数据绑定
// 路由不是组件的直接跳转use client,useEffect,useRouter,需3个结合, use client表示客户端 use client; import { Button,Card, Space,Tag,Table,message,Input } from antd; import { useEffect,useState } from react; impor…...
