一.dhcp工作原理

dhcp(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的 网络协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主 机,若局域网内有 DHCP 服务器时,才会响应客户端的 IP 参数要求。

客户端取得 IP 参数的过程如下:

(1)客户端:利用广播数据包发送搜索 DHCP 服务器的数据包 若客户端网络设置使用 DHCP 协议取得 IP,则当客户端开机或者是重新启动网 卡时,客户端主机会发送出查找 DHCP 服务器的 UDP 数据包(discover)给所 有物理网段内的计算机。因为客户端还不知道自己属于哪一个网络,所以该数 据包的来源地址会为 0.0.0.0,而目的地址则为 255.255.255.255。一般主机接收 到这个数据包之后会直接丢弃,若局域网内有 DHCP 服务器,则会开始后续行 为。

(2)服务器端:提供客户端网络相关的租约以供选择。(dhcp offer) DHCP 服务器在监听到客户端发出的 dhcp discover 广播后,会针对这个客户端的硬件地址( MAC)与本身的设置数据进行下列工作:

到服务器的日志文件中查找该用户之前是否曾经租用过某个 IP,若有且该 IP 目前无人使用,则提供此 IP 给客户端。 若配置文件针对该 MAC 地址提供特定的固定 IP 时,则提供该固定的 IP 给 客户端

若不符合上述两个条件,则随机选取当前没有被使用的 IP 参数给客户端, 并记录下来。

dhcp报文

*DHCP DISCOVER:客户端开始DHCP过程发送的包,是DHCP协议的开始。以广播的方式发送dhcp discover报文 来寻找局域网中的DHCP服务器。源地址为0.0.0.0 目的255.255.255.255, 网络上所有支持TCP/IP的主机都会收到该dhcp discover报文,但是只有dhcp Server会响应该报文

*DHCP OFFER:服务器接收到DHCP DISCOVER之后做出的响应,通过解析报文,查dhcpd.conf配置文件,如果在地址池中 能找到合适的IP地址,DHCP Server会给DHCP Client发送Offer报文。它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符自己其他信息。 如果存在多个DHCP服务器,依然会发送多个DHCP OFFER报文。

*DHCP REQUEST:客户端对于服务器发出的DHCP OFFER所做出的响应,在续约租期的时候同样会使用。 Client根据先收到的Offer报文来决定使用哪个服务器提供的DHCP的地址。(优先先到的offer报文)然后根据这个Offer提供的地址信息,发送Request报文请求。

a.客户端初始化时,发送广播的DHCP Request报文来回应服务器的DHCP Offer报文

​ b.客户端重启初始化后,发送广播的DHCP的DHCP Request报文来确认先前被分配的IP地址           等配置信息。

c.当客户端已知和某个IP地址绑定后,发送单播的DHCP Request报文来延长IP地址租期。

*DHCP ACK:服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给他的IP和其他信息可以被允许使用。服务器接收到request报文以后,确认地址池中的这个地址没有被分配,如果没有被分配就回复ACK报文,如果被​分配了,就会回复DHCP-NAK报文,告诉Client地址已经被分配了。

 *DHCP NAK:DHCP ACK的相反报文,表示服务器拒绝了客户端的请求。

当Client收到服务器分配到的地址后,会向这个广播域内发送一个免费的ARP的请求,如果没有人响应这个请求,Client才正式使用这个IP,如果有人回应的话,会返回一个DHCP-DECLINE报文,要求客户端重新获取IP。

当Client的IP租期到达一半时,会单播发送DHCP-REQUEST报文,请求服务器更新租期,服务器收到以后,如果可以继续使用IP地址的话,会响应Client DHCP-ACK,如果该IP不能继续分配,则响应Client DHCP-NAK。此时Client会在租期的75%再次询问server进行续约,如果该IP地址可用则回复ACK,反则回复NAK。

如果客户端重启后,会自动发送DHCP REQUEST广播给DHCP服务器以便请求继续租用原来使用的IP地址,如果服务器收到这个消息,确认客户端可以使用该地址,则回答一个DHCP ACK确认消息,如果此IP地址已经无法再分配,则返回一个DHCP NAK否认信 息,客户端收到这个信息以后,则必须重新发送DHCP Discover消息获取新的地址。 若没有得到响应,则尝试与网关通信,如果通信正常,这个租期还没到期的话,则可以继续使用,但是不能和网关通信的话,则会获得169.254.0.1~169.254.255.254之间的IP地址,然后每隔5min尝试更新租约。

*DHCP RELEASE:一般出现在客户端关机、下线等情况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址。 当客户端可通过DHCP RELEASE报文主动释放服务器分配给它的地址,当服务器收到此报文后,可将这个IP地址分配给其他客户端。

*DHCP INFORM:客户端发出的服务器请求一些信息的报文。如DNS, 网关。

*DHCP DECLINE: 当客户端发现服务器分配的IP地址无法使用(IP地址冲突),将发出此报文,通知服务器禁止使用该IP地址。

二.arp工作原理

  1. 每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
  2. 主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。
  3. 网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
  4. 某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
  5. 当本网络的所有主机收到该 ARP 数据包时:

             (A)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。

             (B)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。

             (C) 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。

6.源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

当一台主机a向主机b发送一个数据包时,数据帧进入交换机后,交换机将会把主机a的mac地址缓存在本地mac地址表中,然后查询mac地址表中是否存在主机b的mac地址,如果存在,将数据帧直接转发给主机b,若不存在,将会以广播的形式迫使所有接口复制转出(除进入接口的流量外)。收到该数据帧的主机将会检查数据帧中的ip是否为自己的ip,若不是,将会忽略该数据帧,若是,将会回应发送数据帧的主机

实例

搭建网络拓扑,pc1,pc2,pc3,交换机sw1

pc1ip 192.168.1.1/24

pc2ip 192.168.1.2/24

pc3ip 192.168.1.3/24

使用pc1 ping pc3,在pc1,pc2,pc3下抓包验证

使用pc1 ping pc3

Welcome to use PC Simulator!PC>ping 192.168.1.3Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: bytes=32 seq=1 ttl=128 time=62 ms
From 192.168.1.3: bytes=32 seq=2 ttl=128 time=47 ms
From 192.168.1.3: bytes=32 seq=3 ttl=128 time=47 ms
From 192.168.1.3: bytes=32 seq=4 ttl=128 time=31 ms
From 192.168.1.3: bytes=32 seq=5 ttl=128 time=47 ms--- 192.168.1.3 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 31/46/62 msPC>

pc1抓包

当pc1向pc3发送数据帧时,知道pc3的ip地址,不知道pc3的mac地址,流量进入交换机时若没有pc3的mac地址,将会以广播形式迫使pc2,pc3复制转发该数据帧(目标mac为全f)。

pc2抓包

当pc2收到该数据帧进入pc2时,pc2会查询该数据帧中的ip和自己是否相同,若不同将会忽略

pc3抓包

当pc3收到该数据帧,查询到该数据帧的ip与自己的相同,将会以单播形式回应pc1

dhcp服务器1(dhcp原理,arp协议原理)相关推荐

  1. 一文给你讲透 ARP 协议原理!

    我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 公众号连载计算机网络文章如下 ARP,这个隐匿在计网 ...

  2. 第15节 单臂路由上部署DHCP服务器及DHCP中继——基于PacketTracer仿真实验

    1理论知识储备 1.1 VTP协议相关理论知识 概念:VTP(VLAN Trunking Protocol):是VLAN中继协议,也被称为虚拟局域网干道协议.它是思科私有协议. 作用:在企业网络中有多 ...

  3. 确保已在无线网络上启用dhcp服务器,启用dhcp

    属于无线AP的安全措施的是( ) A.隐藏SSID B.启用WEP C.启用DHCP服务 D.启用MAC地址过滤 智慧家庭宽带工程师-> 练习题->智慧家庭工程师技能认证模拟测试题一-&g ...

  4. (五)Cisco dhcp snooping实例3-多交换机环境(DHCP服务器和DHCP客户端位于同VLAN)...

    试验拓扑 环境:dhcp server和dhcp客户端属于同vlan,但是客户端属于不同的交换机,在L2和L3交换机开启dhcp snooping后得出如下结论 L3交换机的配置 ip dhcp po ...

  5. RHEL5.5配置DHCP服务器以及DHCP中继

    19-刘英博 1.在sever2上配置dhcp服务#配置网卡ip地址 #配置eth0的IP为172.17.17.2网关172.17.17.1,网关必须要填写,不然中继会出现问题(vim /etc/sy ...

  6. redhat5中架设DHCP服务器与DHCP中继

    作者:奇异果Wickey Email:hkb178149081@163.com 实验平台:VMvare 系统:RedHat5 软件包:DHCP-3.0.5 模拟需求分析:(暂无) 拓扑图: 1. 配置 ...

  7. 修改dhcp服务器租期,DHCP分配租期问题的重要性

    以前一直都是默认的租期,大家应该也是这样从来没有遇见过有的地方能上网,有的地方不能上网的问题,今天我就遇到了楼下能上网楼上不能上网的问题,下面将事件讲述一下并记录,给大家一个解决问题的思路: 1.问题 ...

  8. 虚拟机dhcp服务器,虚拟机dhcp服务器配置

    虚拟机dhcp服务器配置 内容精选 换一换 虚拟IP地址用于为网卡提供第二个IP地址,本节提供了为裸金属服务器绑定虚拟IP地址的操作指导.虚拟IP也称为"浮动IP",主要用在服务器 ...

  9. ARP协议详解:了解数据包转发与映射机制背后的原理

    数据来源 一.广播与广播域概述 1.广播与广播域         广播:将广播地址做为目标地址的数据帧         广播域:网络中能接收到同一个广播所有节点的集合(广播域越小越好,收到的垃圾广播越 ...

最新文章

  1. 模型树——就是回归树的分段常数预测修改为线性回归 对于非线性回归有较好的预测效果...
  2. scrapy基础知识之 parse()方法的工作机制思考:
  3. linux中配置DHCP基本操作
  4. idea怎么看sql执行打印_SQL查找是否quot;存在quot;,别再count了,很耗费时间的
  5. python 反爬机制_python3爬虫--反爬虫应对机制
  6. ICE专题:实战分布式的Hello Word 【原创】
  7. python打乱列表的方法_python打乱列表
  8. 60天申请软件著作权
  9. 汇编 十六进制转二进制
  10. SOLD2算法之3: 特征点与heatmap结合检测有效线段(CVPR 2021)
  11. AtCoder Beginner Contest 233(A~D)题解
  12. Chapter16/17-项目2:数据可视化
  13. 计算机桌面变蓝屏,电脑进入桌面蓝屏解决方法
  14. 分组交换比起电路交换快速的原因
  15. 前端下载本地excel模板
  16. 论文写作学习之引言章节撰写(学习深度之眼课程笔记,侵删)
  17. 70.JAVA编程思想——Web应用
  18. 我们该如何在网上寻找资源!!!!
  19. 小鸟飞行c语言报告,C/C++编程笔记:飞翔的小鸟(Flappy Bird)——C语言版本
  20. Ipad电容笔买原装还是平替?高性价比的ipad平替电容笔推荐

热门文章

  1. 微服务提倡者Martin Fowler关于微服务的原文翻译<转载>
  2. jmail qq邮箱的服务器,点晴OA发送邮件出现jmail.Message错误8000ffff,提示the message was undeliverable,怎么解决?...
  3. 怎样免费下载收费网站的资料
  4. c语言所有逻辑符号大全,C语言常用逻辑符号.doc
  5. 每一个宽客都应该收藏的量化“利器”
  6. AutoCAD二次开发的好处
  7. 如何添加A记录和cname记录
  8. 2022第七届中国少儿模特明星盛典 周口赛区 初赛圆满落幕
  9. 什么是数字孪生?跟数据可视化的关系又是什么?
  10. 读书笔记——计算机科学导论