×

【2022争霸赛*干货满满】网络基础之DHCP&DHCP Snooping
  

莫冷 4061

{{ttag.title}}
本帖最后由 莫冷 于 2022-10-21 08:19 编辑

哈喽,大家好,我是纯洁的小莫冷~

       今天咱们来讲讲DHCP,经过前面的文章,大家应该已经对网络有了初步的了解,网络通信是离不开IP地址的,而一般网络里电脑的数量一定不少,而IP地址每台电脑都需要一个,电脑太多了怎么办,一个一个配IP地址太麻烦,而且容易造成IP地址冲突,而IP地址一旦冲突了,那存在冲突的这两台电脑就都无法上网了。

DHCP正好可以解决这一问题,对于网络要求不太严格的区域,完全可以使用DHCP来给网络里的电脑提供IP地址,DHCP叫做动态主机配置协议,是一个局域网的网络协议,指的是由服务器控制一段IP的地址范围,客户机登录时就可以自动获取服务器分配的IP地址和子网掩码。

      DHCP工作在四层,采用UDP 67 68端口,客户端请求服务器时使用的是67端口,服务器返回给客户端则是使用的68端口

DHCP请求过程


1、DHCP Client以广播的方式发出DHCP Discover报文


2、所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文

     DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCPServer会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录

3、DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文

      DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址

4、DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息

5、DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程

6、DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配

      在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址

      在使用租期超过87.5%时刻处,DHCP Client会以广播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址,直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程

      需要说明的是:DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求

      正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址

      如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息

      在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端重新发起地址请求过程。


      DHCP也支持自定义选项,即option选项,此选项是一个可变长的字段,option选项中包含了部分的租约信息、报文类型等,option选项最多可以包含255各option,最少为1各option,其中除了协议指定的option字段,其他的字段厂商都可以自定义,比如我们经常使用的无线场景,如果想要让无线AP自动获取无线控制器的地址的话,厂商一般使用option 43字段或者option 138字段,这两个字段是厂商自定义的,它可以告诉无线AP所在网络的控制器的地址。


      综上所述,DHCP可以大大简化网络配置的复杂度以及运维难度,但是大家有没有想过这样一个问题,就是如果网络里边有两个甚至很多个DHCP服务器呢,比如很多单位都存在私接小路由器的环境,那这样的话他们该怎么获取地址呢,其实上面已经讲过了,DHCP是采用的UDP协议,而UDP协议是非面向性的连接,也就是它的安全性没有办法保障,也就是我发送广播报文之后,任何人获取到了这个广播报文都可以回话,而计算机只认最先到达自身的报文,那这样就存在一个问题了,就是我不能控制计算机使用哪个DHCP服务器分配的IP地址,而这显然是不符合我们的预期的,因为一旦网络中发生了安全事件,我们没有办法溯源,家用小路由一般都是带地址转换功能的,而一旦存在地址转换,那我们看到的小路由下面的IP地址都只显示一个,也就死小路由的WAN口地址,那我们想溯源或者做策略封堵的话只能是针对小路由的WAN口IP进行封堵,因为家用的小路由是不带防火墙、安全事件等功能的,我们在小路由上也看不出是哪台电脑存在安全事件。


      这显然偏离了我们的初衷,我们是想方便管理,而不是让网络充满漏洞,那这种场景该如何解决呢,说到这里我们就需要一种技术了,他就是DHCP snooping,它是DHCP的一种安全特性,主要应用在交换机上,也就是说它的配置不在DHCP服务器上配置,而是交换机,而且需要二层交换机,它的作用就是屏蔽网络中的非法的DHCP服务器,启用了DHCP Snooping的交换机,必须将端口设置为信任状态或者非信任状态,交换机只转发信任口的DHCP OFFER/ACK/NAK报文,对于非信任端口的报文则直接丢弃,从而达到阻断非法DHCP服务器的目的。


      至于信任口要配置哪个端口,我们可以这样理解,对于DHCP服务器直连交换机的场景下,我们可以将信任口设置为服务器直连的那个网口,而对于非直连的情况,比如核心交换机下联汇聚,汇聚下面又接了一堆接入交换机,我们可以将这些交换机级联的网口设置为信任口,这样就不会存在非法DHCP服务器给计算机提供IP地址的情况了。


DHCP配置举例
AF

华为路由器配置DHCP命令

#开启DHCP服务
dhcp enable
#创建DHCP地址池
ip pool 1
#设置网关
gateway-list 192.168.1.1
#设置分配地址段
network 192.168.1.0 mask 255.255.255.0
#设置DNS
dns-list 114.114.114.114
#接口启用dhcp
interfaceEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
dhcp select global

华为交换机配置DHCP Snooping
#开启DHCP服务
dhcp enable
#开启DHCP Snooping
dhcp snoopingenable
#进入VLAN开启DHCP Snooping
vlan 1
dhcp snooping enable

此时我们可以做下测试,因为一旦开启了DHCP Snooping,那默认此VLAN下的所有接口都为非信任口,所以我们可以做下测试看看PC还能不能获取到IP


交换机配置信任口
#
interfaceGigabitEthernet0/0/1
dhcp snooping trusted
这样我们的电脑就可以获取到IP地址啦~

好了,今天的分享就到这里啦,有不足的地方欢迎大家补充哦,感谢大家的观看,记得点赞分享加关注哦~

打赏鼓励作者,期待更多好文!

打赏
15人已打赏

山东_朱文鑫 发表于 2022-10-21 11:47
  
我只向我莫大哥学习!!!!!!!!!!!
339015 发表于 2022-10-22 03:53
  
感谢楼主分享,文章介绍了dhcp snooping相关原理,介绍清晰,期待更多分享
小鱼儿 发表于 2023-4-2 11:01
  

学习一下,感谢楼主分享
飞飞侠 发表于 2023-4-2 11:01
  

学习一下,感谢楼主分享
朱墩2 发表于 2023-4-2 11:01
  

学习一下,感谢楼主分享
唐三平 发表于 2023-4-2 11:01
  

学习一下,感谢楼主分享
小德 发表于 2023-4-2 11:05
  

学习一下,感谢楼主分享
小西北 发表于 2023-4-2 11:07
  

学习一下,感谢楼主分享
梦境人生 发表于 2023-4-2 11:08
  

学习一下,感谢楼主分享
发表新帖
热门标签
全部标签>
安全效果
西北区每日一问
技术盲盒
技术笔记
干货满满
【 社区to talk】
每日一问
信服课堂视频
GIF动图学习
新版本体验
技术咨询
2023技术争霸赛专题
功能体验
产品连连看
自助服务平台操作指引
标准化排查
秒懂零信任
技术晨报
安装部署配置
原创分享
排障笔记本
玩转零信任
排障那些事
SDP百科
技术争霸赛
深信服技术支持平台
通用技术
以战代练
升级&主动服务
社区新周刊
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力

本版版主

12
185
6

发帖

粉丝

关注

121
314
351

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人