DHCP 原理以及IP获取过程
DHCP 原理以及IP获取过程
文章目录
- DHCP 原理以及IP获取过程
- 一、概述
- DHCP 基本定义
- DHCP 分配方式
- DHCP 优点
- 二、DHCP 获取IP的过程
- 首次连接网络
- 再次登录
一、概述
DHCP 基本定义
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)。是一个局域网的网络协议,使用UDP协议工作。 DHCP主要有两个用途:
- 给内部网络或网络服务供应商自动分配IP地址
- 给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DHCP有3个端口,其中UDP67
和UDP68
为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546
号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
下面来看一个DHCP DIscover包:
DHCP 分配方式
- 自动分配方式(Automatic Allocation)
DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
- 动态分配方式(Dynamic Allocation)
DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
DHCP 优点
- 减少管理员的工作量
- 避免输入错误的可能
- 避免ip地址冲突
- 当网络更改ip地址段时,不需要再重新配置每一个用户的ip地址
- 提高了ip地址的利用率
- 方便客户端的配置
二、DHCP 获取IP的过程
首次连接网络
第一步寻找DHCP服务器
当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover
发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。第一阶段为dhcp发现阶段,主要意思即为寻找局域网内的dhcp服务器。第二步分配IP地址
在网络中接收到DHCP discover
发现信息的DHCP服务器就会做出响应,它从尚未分配的IP地址池中挑选一个分配给DHCP客户机,并向DHCP客户机发送一个包含分配的IP地址,分配的DHCP offer
报文中还包含了一些其他的字段,如dns地址,网关,掩码等第三步接受IP地址
DHCP客户端接受到DHCP offer
提供信息之后,选择第一个接收到的提供信息(存在多个DHCP服务器回应的话,先来的优先),然后以广播的方式回答一个DHCP request
请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。第四步IP地址分配确认
当DHCP服务器收到DHCP客户端回答的DHCP request
请求信息之后,确认地址池中的这个地址没有被分配,如果没有被分配便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack
确认信息,告诉DHCP客户端可以使用它提供的IP地址。如果被分配了 ,就会回复DHCP-NAK
报文,告诉CLient 地址已经被分配了。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。获取到IP后广播ARP
当CLient收到服务器分配的地址后,会向这个广播域内发送一个免费ARP的请求,如果没有人响应这个请求,CLient才正式使用这个地址,如果有人回应的话,会返回一个DHCP-Decline
报文,要求服务器重新获取地址。广播ARP实现的原理是:当机子重启或者设置了IP地址的时候,这个主机会通过免费ARP来询问这个局域网中是否有相同的IP存在(这个ARP询问的就是自己本身的IP地址,看是否有人回应),如果有人回复这个ARP的请求(因为ARP询问是广播的,所以局域网内所有的主机都可以收到),那么就会得到一个错误的消息“以太网地址 aa:bb:cc:dd:ee:ff发送来重复的IP地址”,通常情况下,是没人回应的,因为没有冲突存在,如果有人回应了这个ARP的请求,那么说明该IP地址已经被使用了,对方回应了这个ARP的响应,它会通过操作系统显示提示出来,说该IP地址存在冲突问题。在现在的DHCP服务器中,已经也引入了这个机制了,它会在分配给客户端这个IP地址之前,会先发送一个Ping,或者ARP等机制来查看该局域网中是否已经有该IP地址存在了,如果有得话,那么DHCP会分配其他IP给请求的客户端,如果没有人回应,那么则把该IP地址让客户端使用,所以很多情况下,看到设备上面,没有做地址排除的时候,而且有些IP地址已经在使用了,但是服务器能够很好的分配不冲突的地址给客户端,不造成地址冲突。
续租IP
当CLient的IP租期到达一半
的时候,DHCP client会单播发送DHCP-Request
报文,请求服务器更新租期,服务器收到以后,如果Client可以继续使用该IP地址的话,会响应CLientDHCP-ACK
,如果该IP不能继续分配,则响应CLientDHCP-NAK
。此时Client会在租期的75%再次询问server 进行续约,如果该IP地址可用则回复ACK,否则回复NAK。
再次登录
如果客户端重启后,会自动发送
DHCPREQUEST
广播给DHCP服务器以便请求继续租用原来使用的IP地址,如果服务器收到这个消息,确认客户端可以使用该地址,则回答一个DHCP ACK
确认消息,如果此IP地址已经无法再分配,则返回一个DHCP NCK
否认信息,客户端收到这个信息以后,则必须重新发送DHCP Discovery
消息获取新的地址(启动首次登录的流程)。 若没有得到响应,则尝试与网关通信,如果通信正常,这个租期还没到期的话,则可以继续使用,但是不能和网关通信的话,则会获得169.254.0.1~169.254.255.254之间的IP地址,然后每隔5min尝试更新租约。当客户端已经获得了IP地址,发送
DHCP INFORM
报文来获取其他一些网络配置信息,比如网关、DNS服务器当客户端可通过
DHCP RELEASE
报文主动释放服务器分配给它的地址,当服务器收到此报文后,可将这个IP地址分配给其他客户端。
DHCP 原理以及IP获取过程相关推荐
- 计算机网络-DHCP的工作原理,IP地址如何获取
我们计算机的IP地址如何来的 DHCP的工作原理 DHCP的一些疑惑解答 我们计算机的IP地址如何来的 看了前面交换机.路由器.网络包传输的文章,那么就知道要连上网络,就需要IP地址,那么IP地址是如 ...
- DHCP原理及服务器搭建详解(固定IP地址,DHCP中继服务)
DHCP原理及服务器搭建详解 一.引子: DHCP在网络中的作用非常重要,简单来说就像给每台服务器配身份证的机构,你有合格的身份才能做合格的事情,要不然连火车都坐不了.服务器只有被DHCP服务配置了I ...
- DHCP的工作原理 公网IP与私网IP 网络通信的流程与数据包发送 网卡的工作原理 网卡丢包问题
网络通信的四个要素 本机的IP地址 子网掩码 网关的IP地址 DNS服务器的IP地址 获取以上配置,有两种方式 : 静态获取==>手动配置 动态获取==>dhcp自动获取 DHCP的作用 ...
- centeros7网络服务无法启动_Linux网络服务02——DHCP原理与配置
Linux网络服务02--DHCP原理与配置 一.DHCP服务概述 1.DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 DHCP是由Internet ...
- 【鬼网络】之DHCP原理与配置
序言 DHCP 序言 一.DHCP工作原理 1. 什么是DHCP 2.DHCP的分配方式 3.DHCP的租约过程 二.DHCP服务器的配置 DHCP客户端的使用 DHCP中继原理与配置 1.主配置文件 ...
- dhcp 如何每次请求固定地址_无线覆盖:dhcp原理及其实现流程
一.什么是DHCP? DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client).DH ...
- DHCP自动分配IP
一.了解DHCP服务 1.1 DHCP的由来 DHCP (Dynamic Host,Configuration Protocol,动态主机配置协议)由Internet工作小组设计开发专门用于为 TCP ...
- 利用kali进行DOS/DDOS攻击(局域网内)(DHCP原理 ARP原理)
1.什么是DOS/DDOS攻击? DOS:拒绝服务攻击(Deny Of Service) DDOS:DDOS攻击(Distributed denial of service attack) 一般来说D ...
- Linux中DHCP原理与配置
Linux中DHCP原理与配置 DHCP服务 DHCP服务 使用DHCP的好处 DHCP分配方式 DHCP的IP地址自动获取工作原理 DHCP的租约过程 1.客户端在网络中搜索服务器 2.服务器向客户 ...
最新文章
- 低调!中国北斗核心卫星部署完成,开启“全球时代”!超越GPS指日可待
- POJ2446 二分匹配
- i3、i5、i7有什么区别?
- 支付宝APP支付(基于Java实现支付宝APP支付)
- SpringCloud工作笔记088---SpringBoot启动报错:启动后的端口是8080但是明明配置文件中是8000_Request execution error_ java.net.Conn
- asp.net三层架构制作新闻管理_为什么使用PHP制作网站?
- python response重头开始_用 Python 抓取公号文章保存成 PDF
- 一文详解3D相机面临的困难问题和解决方案
- 用计算机里可以加50度电,一台电脑一天用多少度电 节电节能的建议和措施
- Python爬虫网页元素定位术,就在这篇博客中
- [bzoj3197][SDOI2013]assassin
- AtCoder Beginner Contest 164 E Two Currencies【最短路】
- H5 授权微信第三方登录
- java实训意义_java实习心得体会
- Microsoft KMS Client Setup Keys ( Windows + Office )
- 【Linux】创建新用户 sudo配置,添加信任
- GIF录制编辑工具(GifCam)
- FPGA实现二值神经网络
- pytorch-lightning踩坑记录
- 基于AT89C52的超声波测距仪