DHCP

DHCP协议

DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,是一个用于局域网的网络协议,位于OSI模型的应用层,使用UDP协议工作。
DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。
主要有两个用途:
用于内部网或网络服务供应商自动分配IP地址给用户。
用于内部网管理员对所有电脑作中央管理。
DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用67/udp,客户端使用68/udp。

DHCP报文类型


DISCOVER:DHCP客户端初次接入网络时,会发送DHCP发现报文( DHCP Discover),用于查找和定位DHCP服务器。

OFFER:DHCP服务器在收到DHCP发现报文后,发送DHCP提供报文( DHCP Offer ),此报文中包含IP地址等配置信息

REQUEST:在DHCP客户端收到服务器发送的DHCP提供报文后,会发送DHCP请求报文( DHCP Request).
另外在DHCP客户端获取IP地址并重启动后,同样也会发送DHCP请求报文,用于确认分配的IP地址等配置信息。它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此,客户端会发送一个DHCP REQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给该客户的租约。然后它们把曾经给该客户保留的那个地址重新放回到可用地址池中这样,它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求,但是每一个客户网卡只能接受一个租约提供。
DHCP客户端获取的IP地址租期快要到期时,也发送DHCP请求报文向服务器申请延长IP地址租期。

ACK:收到DHCP客户端发送的DHCP请求报文后,DHCP服务器会回复DHCP确认报文(DHCP ACK)。客户端收到DHCP确认报文后,会将获取的IP地址等信息进行配置和使用。

NAK:如果DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法分配合适IP地址。

Relcase:DHCP客户端通过发送DHCP释放报文 (DHCP Relcase) 来释放P地址。收到DHCP释成报文后,DHCP服务器可以把该IP地址分配给其他DHCP客户端。

DHCP工作过程


为了获取『地址等配置信息,DHCP客户端需要和DHCP服务器进行报文交互。

首先,DHCP客户端发送DHCP发现报文来发现DHCP服务器。
DHCP服务器会选取一个末分配的IP地址,向DHCP客户端发送DHCP提供报文。此报文中包含分配给客户端的IP地址和其他配置信息。如果存在多个DHCP服务器,每个DHCP服务器都会响应。

如果有多个DHCP服务器向DHCP客户端发送DHCP提供报文,DHCP客户端将会选择收到的第一个DHCP提供报文,然后发送DHCP请求报文 ,报文中包含请求的IP地址。

收到DHCP请求报文后,提供该IP地址的DHCP服务器会向DHCP客户端发送个DHCP确认报文,包含提供的IP地址和其他配費信息。

DHCP客户端收到DHCP确认报支后,会发送免费ARP报文检查网络中是否有其他主机使用分配的IP地址。如果指定时间内没有收到ARP应答,DHCP客户常会使用这个IP地址。如果有主机使用该I地址,DHCP客户端会向DHCP服务器发送DHCP拒绝报文 ,通知服务器该P地址已被占用。然后DHCP客广端会向服务器重新申请一个Tp地址。

DHCP租期更新


申请到IP地址后,DHCP客户端中会保存三个定时器,分别用来控制租期更新,租期重绑定和租期失效。DHCP服务器为DHCP客户端分配I地址时会指定三个定时器的值。如果DHCP服务器没有指定定时器的值,DHCP客户端会使用缺省值,缺省租期为1天。默认情况下,还剩下50%的租期时,DHCP客户端开始租约更新过程,DHCP客户端向分配P地址的服务器发送DHCP请求很文来申请延长IP地址的租期。DHCP服务器向客户端发送DHCP确认报文,给子DHCP客户端一个新的租期。

DHCP重绑定


DHCP客户端发送DHCP请求报文续租时,如果DHCP客户端没有收到DHCP服务器的DHCP应答报文。默认情况下 ,重绑定定时器在租期剩余12.5%的时候超时,超时后,DHCP客户端会认为原DHCP服务器不可用,开始重新发送DHCP请求报文。网络上任何一台DHCP服务器都可以应答DHCP确认或DHCP非确认报文。

如果收到DHCP确认报文,DHCP客户端重新进入绑定状态 ,复位租期更新定时器和重绑定定时器。如果收到DHCP非确认报文,DHCP客户端进入初始化状态。此时,DHCP客户端必须立刻停止使用现有IP地址重新申请IP地址。

IP地址释放


租期定时器是地址失效进程中的最后一个定时器,超时时间为IP地址的租期时间。如果DHCP客户端在租期失效定时器超时前没有收到服务器的任何回应,DHCP客户端必须立刻停止使用现有IP地址,发送DHCP Release报文,并进入初始化状态。然后,DHCP客户端重新发送DHCP发现报文 ,申请IP地址。

DHCP服务器的搭建

配置文件

主配置文件: /etc/dhcp/dhcpd.conf
租约文件: /var/lib/dhcpd/dhcpd.lease
编写配置文件的规范:
除了括号后面之外,其他的每一行配置最后都要以“;”结尾。
配置项目的语法形式主要是“参数代号 配置内容”。
某些配置项目必须以option来定义,基本形式为“option 参数代码 配置内容”示例文件:/usr/share/doc/dhcp-server/dhcpd.conf.example
ddns-update-style none; #类型(因为dhcp客户端所取得的IP通常是一直变动的,所以此时DHCP可以通过ddns来更新主机名与IP的对应关系)
ignore client-updates; #(与上一个设置值有关,客户端可通过dhcp服务器来更新DNS相关的信息。设置成ignore为忽略)
default-lease-time 600; #默认的租约时间(用户的计算机也能够要求一段特定长度的租约时间。但若用户没有特别要求租约时间,默认以此为准。时间单位默认为秒)
max-lease-time 7200; #最大租约时间(如果用户要求的租约时间超过该值,则以此值为准)
subnet 192.168.233.0 netmask 255.255.255.0 { #注意大括号以上为全局配置 #subnet 网络地址 netmask 子网掩码地址
option domain-name "internal.example.org"; #域名(如果在/etc/resolv.conf里面设置了一个search xxx.com的话,这表示当你要查找主机名时,DNS系统会主动帮你在所要查找的主机名后加上这个域名后缀)
option routers 192.168.233.2; #路由器地址(设定路由器的IP地址)
option subnet-mask 255.255.255.0;
#range dynamic-bootp 192.168.233.222 192.168.233.233;
range 192.168.233.222 192.168.233.233; #range IP1 IP2指定IP1到IP2的地址范围给客户端
host ns2 { #此命令用于IPZ地址和对应主机MAC地址的固定映射hardware ethernet 00:0c:29:7f:32:10;fixed-address 192.168.40.249;
}

实验一 单网段配置(dhcp服务器需要有地址)

第一步

[root@web ~]# yum install dhcp-server -y #安装需要的软件包

第二步:编写配置文件

ddns-update-style none;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.58.0 netmask 255.255.255.0 {option routers 192.168.58.2;option subnet-mask 255.255.255.0;range  192.168.58.100 192.168.58.120;
}
[root@localhost named]# systemctl restart dhcpd.server # 开启服务
[root@localhost named]# systemctl stop firewalld #关闭防火墙
[root@localhost named]# setenforce 0 #安全上下文置0

第三步 验证结果


查看ens160ip:

实验二:服务端需要有两个网卡处于两个局域网,且需要有ip地址。

第一步:配置文件

没有电脑的网卡按照配置文件先配置网卡ip。
subnet 192.168.68.0 netmask 255.255.255.0 {ddns-update-style none;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.58.0 netmask 255.255.255.0 {option routers 192.168.58.2;option subnet-mask 255.255.255.0;range  192.168.58.100 192.168.58.120;
}
subnet 192.168.68.0 netmask 255.255.255.0 {option routers 192.168.68.2;option subnet-mask 255.255.255.0;range  192.168.68.100 192.168.68.120;
}

实验三:固定IP配置

第一步配置文件

subnet 192.168.68.0 netmask 255.255.255.0 {option routers 192.168.68.2;option subnet-mask 255.255.255.0;range  192.168.68.100 192.168.68.120;
}
host sun{hardware ethernet 00:0c:29:a8:cf:a0;fixed-address 192.168.68.110;
}
[root@localhost named]# systemctl restart dhcpd.server # 开启服务
[root@localhost named]# systemctl stop firewalld #关闭防火墙
[root@localhost named]# setenforce 0 #安全上下文置0

第二步 验证


查看ens224:

Linux-DHCP服务器相关推荐

  1. linux下服务器重定向,linux – DHCP服务器将任何URL重定向到登录页面

    我有一个Linux DHCP服务器,我需要将所有网络流量重定向到一个登陆页面,该登陆页面将提供有关如何在网络上注册计算机的说明. 无论用户输入什么URL,都需要将用户重定向到网页(在DHCP服务器上) ...

  2. Linux DHCP服务器

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...

  3. 【小白向】Kali Linux DHCP服务器的安装,配置及启动

    Kali Linux 安装配置DHCP服务器 DHCP概述 安装DHCP服务 配置DHCP服务 启动DHCP服务 最近在学习DHCP服务器,发现网上已有的教程大部分不全面,安装配置过程中出现了些问题, ...

  4. Linux 配置DHCP服务器

    谢迹陈纷朽简中,文锋未钝老犹争.   宁树琪青资玉润 ,不欲留心在裂缯.  宁简心披纷缯长 雁行布陈众未晓 忆得双文独披掩 帘卷春风琴静好 目录  ​谢迹纷纷朽简中,文锋未钝老犹争.   宁树长青资玉 ...

  5. linux dhcp 服务(转)

    大多数的情况下Linux作为DHCP服务器而windows 95/98作为DHCP客户.Linux也可以作为DHCP客户,即你要安装dhcpcd rpm 软件包 ,Linux作为DHCP服务器,只需要 ...

  6. linux dhcp option43,Linux DHCP通过OPTION43为H3C的AP下发AC地址

    对于DHCP服务,可以在很多平台上进行设置.那么这里我们就主要讲解一下在Linux DHCP服务器上通过option 43实现H3C的AP自动联系AC注册的相关内容.原来的DHCP Server是放在 ...

  7. linux dhcp option43,Linux DHCP通过OPTION43为H3C的AP下发AC地址

    对于DHCP服务,可以在很多平台上进行设置.那么这里我们就主要讲解一下在Linux DHCP服务器上通过option 43实现H3C的AP自动联系AC注册的相关内容.原来的DHCP Server是放在 ...

  8. 鸟哥的Linux私房菜(服务器)- 第十二章、网络参数控管者: DHCP 服务器

    第十二章.网络参数控管者: DHCP 服务器 最近更新日期:2011/07/27 想象两种情况:(1)如果你在工作单位使用的是笔记本电脑,而且常常要带着你的笔记本电脑到处跑, 那么由第四章.连上 In ...

  9. Linux ENSP 搭建DHCP服务器并实现中继和Linux 下搭建DNS服务器(2个实验可跟做)

    文章目录 DHCP服务 了解DHCP服务 使用DHCP的好处 Linux 下搭建DNS服务器 实验环境 实验过程 修改DHCP配置文件 更改dns服务器名称 更改win10的IP地址 Linux &a ...

  10. linux配置服务器心得体会,linux 学习 linux上搭建dhcp服务器

    ①配置前的环境准备 ##确保dhcp服务器有固定ip [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE= ...

最新文章

  1. 数据库设计Step by Step (9)——ER-to-SQL转化
  2. 崔强:如果有知识就做一个内裤外穿飞行的超人
  3. 算法:三角形最小路径和
  4. cmd下常用的一些命令
  5. jmeter 最大时间长_长连接和短连接区别和优缺点
  6. 平移刚体上各点的加速度和速度_大物学习笔记(一)——刚体力学
  7. java restsharp_C# RestSharp应用
  8. 【java】数组异常的处理
  9. idea 包存在提示不存在
  10. java找出两个共有,Java-找出两个单链表的首个公共节点
  11. 修改dell 序列号_怎么将xp的vlk序列改为dell oem序列号工具
  12. 大数据是什么?华为云学院带你探索大数据之旅
  13. r5 5600H 怎么样 相当于什么水平
  14. EXCEL简易的进度条
  15. 反欺诈概念库-信用卡反欺诈管理
  16. read()函数:读文件函数
  17. 求平方根问题 (C++ 实现)
  18. PHP Startup: Unable to load dynamic library 解决办法
  19. duplicate symbol _*** in:
  20. 存储技术现在的困境以及未来的发展

热门文章

  1. 基于电商中台架构-商品系统设计(二):类目设计
  2. Spark安装部署:Standalone模式
  3. 为PDF批量添加书签
  4. C语言中的除法运算符
  5. 数据仓库是如何分层的?
  6. Python中更新pip版本的那些事
  7. yuv420转yuv422(yuyv)
  8. “代码雨”纯HTML源码实现及效果
  9. 2021Java面经:史上最全的《Java面试题及解析》
  10. python随机选人程序_python: 随机选择