计算机网络技术(2) --DHCP 协议详解
发布日期:2021-06-28 20:05:54
浏览次数:3
分类:技术文章
本文共 4281 字,大约阅读时间需要 14 分钟。
DHCP 协议详解
前言
此次系列文章,作为计算机网络初级课程分享,其中涉及到的设备基本配置,使用 HUAWEI 、Cisco设备,涉及到华为、思科官方提供的网络实验模拟器–ENSP、GNS3
一、DHCP 是如何工作的?
DHCP(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的网络协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会响应客户端的IP参数要求。
DHCP 的工作过程
客户端取得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参数给客户端,并记录下来。 (3)客户端:决定选择DHCP服务器提供的网络参数租约并向服务器确认。 由于局域网内可能并非仅有一台DHCP服务器,但客户端仅能接收一组网络参数租约,因此客户端只会挑选其中一个DHCP offer(通常是最先抵达的那个)。当决定好使用此服务器的网络参数租约后,客户端便开始使用这组网络参数来配置自己的网络环境。此外,客户端会发送一个dhcp request广播数据包给所有物理网段内的主机,告知已经接受该服务器的租约(此时若有两台以上的DHCP服务器,则这些没有被接受的服务器会收回该IP租约。)。同时,客户端还会向网络发送一个ARP封包,查询网络上面有没有其他机器使用该IP地址;如果发现该IP地址已经被占用,客户端则会送出一个DHCPDECLIENT包给DHCP服务器,拒绝接受其DHCP offer,并重新发送DHCP discover信息。 (4)服务器端:记录该次租约行为后并向客户端发送响应数据包信息以确认客户端的使用。 当服务器端收到客户端的确认选择后,服务器会回送确认的dhcp ack响应数据包,并且告知客户端这个网络参数租约的期限,并且开始租约计时。那么该次租约何时会到期而被解约,有以下几种情况: 客户端脱机:关闭网络接口、重新启动、关机等行为,都算是脱机状态,这个时候server端就会将该IP地址收回,并放到server的备用区中,以便日后使用。 客户端租约到期:dhcp server端发放的IP有使用的期限,客户端使用这个IP到达期限规定的时间,而且没有重新提出DHCP的申请时,server端就会将该IP收回,这个时候就会断线。但用户也可以向DHCP服务器再次要求分配IP。 由于目前的DHCP客户端程序大多数会主动依据租约时间去重新申请IP,所以即使有租约期限,也不需要在某个时间点手动去重新申请IP。一般情况下,假设租约时间是T小时,那么客户端程序在0.5T时会主动向DHCP服务器发出重新要求网络参数的数据包。如果这次数据包请求没有成功,那么在0.85T后还会再次发送数据包一次。正因如此,所以服务器端会启动port67监听客户端请求,而客户端会启动port68主动向服务器请求。
- DHCP 依靠确认、重传机制,保证DHCP数据包的可靠性传输
具体流程
DHCP 数据包的封装二、实验配置
2、HUAWEI 设备
网络拓扑
基础配置
[dhcp-server]dhcp enable[dhcp-server]ip pool dhcp_1[dhcp-server-ip-pool-dhcp_1]network 192.168.1.0 mask 24[dhcp-server-ip-pool-dhcp_1]gateway-list 192.168.1.254[dhcp-server-ip-pool-dhcp_1]dns-list 114.114.114.114 8.8.8.8[dhcp-server-ip-pool-dhcp_1]excluded-ip-address 192.168.1.100 192.168.1.253[dhcp-server-ip-pool-dhcp_1]lease day 0 hour 3[dhcp-server]int g0/0/0[dhcp-server-GigabitEthernet0/0/0]dhcp select global
抓包分析
discover offerrequst
ack查看结果
pc1
pc22、Cisco 设备
网络拓扑
基础配置
#dhcp_serverR1#configure terminal R1(config)#int f0/0R1(config-if)#ip address 172.16.1.1 255.255.0.0R1(config-if)#no shutdown R1(config-if)#exitR1(config)#ip dhcp excluded-address 172.16.1.2 172.16.1.100R1(config)#ip dhcp pool dhcp_1R1(dhcp-config)#network 172.16.1.0 255.255.255.0R1(dhcp-config)#default-router 172.16.1.1R1(dhcp-config)#dns-server 114.114.114.114 8.8.8.8R1(dhcp-config)#lease 3R1(dhcp-config)#exit#R3R3#configure terminal R3(config)#int f0/0R3(config-if)#ip address dhcpR3(config-if)#no shutdown#R2R2#configure terminalR2(config-if)#ip address dhcpR2(config-if)#no shutdown
抓包分析
discover offer requst ack查看结果
#R2R2#show ip*Nov 14 00:20:39.151: %SYS-5-CONFIG_I: Configured from console by consoleR2#show ip int brInterface IP-Address OK? Method Status ProtocolFastEthernet0/0 172.16.1.102 YES DHCP up up FastEthernet1/0 unassigned YES unset administratively down down FastEthernet2/0 unassigned YES unset administratively down down FastEthernet3/0 unassigned YES unset administratively down down FastEthernet4/0 unassigned YES unset administratively down down FastEthernet5/0 unassigned YES unset administratively down down SSLVPN-VIF0 unassigned NO unset up up R3R3#show ip int bInterface IP-Address OK? Method Status ProtocolFastEthernet0/0 172.16.1.101 YES DHCP up up FastEthernet1/0 unassigned YES unset administratively down down FastEthernet2/0 unassigned YES unset administratively down down FastEthernet3/0 unassigned YES unset administratively down down FastEthernet4/0 unassigned YES unset administratively down down FastEthernet5/0 unassigned YES unset administratively down down SSLVPN-VIF0 unassigned NO unset up up
转载地址:https://blog.csdn.net/XY0918ZWQ/article/details/109683047 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月18日 13时56分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python基础语法05
2019-04-29
Linux基础01
2019-04-29
工作总结04-脚本
2019-04-29
01-MYSQL8环境搭建
2019-04-29
02-初始数据库
2019-04-29
原理解析!2021年教你增加拿到BAT等大厂offer几率,offer拿到手软
2019-04-29
原生安卓开发!驱动核心源码详解和Binder超系统学习资源,实战篇
2019-04-29
大牛手把手带你!2021年Android进阶者的新篇章,完整PDF
2019-04-29
太牛了!Android程序员最大的悲哀是什么?面试真题解析
2019-04-29
作为字节跳动面试官,BAT这种大厂履历意味着什么?赶快收藏备战金九银十!
2019-04-29
大牛深入讲解!Android面试中常问的MMAP到底是啥东东?再不刷题就晚了!
2019-04-29
太赞了!你会的还只有初级安卓工程师的技术吗?3面直接拿到offer
2019-04-29
深入解析Android-AutoLayout,全网疯传
2019-04-29
深入解析android核心组件和应用框架,最全Android知识总结
2019-04-29
深入解析android核心组件和应用框架,社招面试心得
2019-04-29
深度解析跳槽从开始到结束完整流程,持续更新中
2019-04-29
深度解析跳槽从开始到结束完整流程,面试真题解析
2019-04-29
hashmap扩容过程,字节大神强推千页PDF学习笔记,经典好文
2019-04-29
kotlin面试题!Android大厂高频面试题解析,薪资翻倍
2019-04-29
kotlin面试题!一口气拿了9家公司的offer,已拿offer入职
2019-04-29