DHCP协议
DHCP协议
一、DHCP介绍
DHCP Snooping
1、DHCP Snooping概念:
防止非法DHCP服务器(设置信任接口和非信任接口)
- DHCP Snooping,中文名称为DHCP窥探,可以提供以下两方面的功能:
- 启用DHCP Snooping功能的接入交换机,将端口置为Untrust口,此类型的端口将过滤网络中非法DHCP服务器发出的报文,从而防止非法DHCP服务器提供错误的IP地址和网关;
- 通过对Client和服务器之间的DHCP交互报文进行窥探实现对用户IP地址使用情况的记录和监控,生成DHCP Snooping Binding表项,所有这些表项作为合法用户的信息表,提供给设备的其他安全模块使用,实现进一步的接入安全功能。
2、非法DHCP服务器对网络的影响:
-
组网背景:核心交换机作为园区网用户的网关设备,启用DHCP功能,实现园区网接入用户自动获取IP地址的需求,同时某接入交换机旁挂了一台非法的DHCP服务器。
- 终端发出DHCPDiscover广播包,同时被核心交换机(合法的DHCP服务器)和非法的DHCP服务器收到;
- 核心交换机和非法DHCP服务器都会回应一个Offer报文;
- 终端PC1有可能首先收到了非法DHCP服务器回应的Offer报文,PC1就会给非法的DHCP服务器发送Request报文去请求IP地址;
- 非法DHCP服务器回应ACK报文,并提供了错误的IP地址、DNS和网关等信息,导致终端PC1无法上网。
-
DHCP Snooping是能够解决该问题的一种技术。
3、DHCP snooping技术原理
- 核心交换机作为园区网用户的网关设备,启用DHCP功能,实现园区网接入用户自动获取IP地址的需求,同时某接入交换机旁挂了一台非法的DHCP服务器。
- 核心交换机正常开启DHCP功能并做正确的DHCP配置;接入交换机开启DHCP Snooping功能,默认情况所有接口都是Untrust口;
- 接入交换机连接DHCP服务器的端口设置为DHCP Snooping Trus口;
- 从Untrust接口收到的DHCP offer和ACK报文都将被丢弃。
Ruijie(config)#ip dhcp snooping------>开启DHCP snooping功能
Ruijie(config)#interface gigabitEthernet 0/24
Ruijie(config-GigabitEthernet 0/24)#ip dhcp snooping trust
4、DHCP snooping绑定表的维护
-
核心交换机作为园区网用户的网关设备,启用DHCP功能,实现园区网接入用户自动获取IP地址的需求,同时某接入交换机旁挂了一台非法的DHCP服务器。
-
DHCP Snooping表项的删除方式:
- 记录的租约时间到期(续租成功不会删除)
- 窥探到客户端发送的合法DHCP-RELEASE/DHCP-DECLINE报文
- 接收到来自TRUST口的NAK报文时(意味着offer中的地址不可用)
- 用户使用clear命令主动删除Binding记录时
Ruijie# clear ip dhcp snooping binding [A.B.C.D | H.H.H | interface | vlan| <cr>]
5、DHCP饿死攻击:
攻击者模拟正常用户不断申请地址,使地址申请一空,正常用户再次接入则无法获取地址。
攻击者通过不断修改应用层的申请mac,从而模拟正常用户。
数据链路层mac----发包主机的mac地址
应用层DHCP申请mac---DHCP申请mac
DHCP Snooping开启源mac校验会检查数据链路层的mac和应用层的mac。如果一致则为合法用户可以放行,不一致则丢弃。
6、DHCP snooping其他特性
- DHCP snooping只能窥探非中继的DHCP报文,如果网络中有存在中继的情况,需在配置了DHCP snooping的设备全局模式下做如下配置(giaddr字段在DHCP报文中表示的discover报文经过的第一个中继设备的IP地址):
Ruijie(config)#ip dhcp snooping check-giaddr
- DHCP Snooping生效的端口可以是有线的交换口、2层AP口或者2层封装子接口;
- VRF场景中,不支持DHCP Snooping和DHCP Relay同时部署;
- 开启DHCP Snooping宽松转发功能后,如果DHCP Snooping绑定表项满容量,新用户DHCP报文能继续转发获取到地址,但是DHCP Snooping不会记录新用户的绑定表项。如不开启,则在表项满容量之后无法获取到IP地址。开启命令如下:
Ruijie(config)#ip dhcp snooping loose-forward
IP Source Guard
1、IP Source Guard概述
防止IP欺骗
检查基线:DHCP snooping、手工静态
检查:IP-only、IP-mac
-
局域网IP冲突给网络的运维带来很大困扰,如右图所示网络会存在以下风险:
- PC1放弃DHCP,而使用手工配置IP地址的方式上网,如果配置为172.16.1.254或者172.16.1.200,都将会导致网络异常;
- PC2进行伪造源IP地址的扫描,将导致内网用户大规模的IP地址冲突,无法正常上网。
-
面对风险,IP Source Guard技术应运而生。IP Source Guard功能通过检测报文中的源IP或源IP+源MAC,只放行合法报文。
-
关键:检查基线+过滤规则
2、IP Source Guard源数据-DHCP Snooping表项
- DHCP Snooping表项,记录了mac地址、IP地址、VLAN号和接口信息
- DHCP Snooping表项提供了完美的用于数据包过滤的源数据信息,即检查基线。端口下配置数据包过滤规则:
Ruijie(config)#interface rangegigabitEthernet0/10-11
Ruijie(config-if-range)#ip verify source [ exclude-vlan| port-security |<cr>]
注释:
exclude-vlan,指定例外VLAN,该VLAN接受的报文不受IP Source Guard控制port-security,配置即意味着基于IP+MAC进行检查
<cr>,直接回车意味着检查规则是ip-only,只对IP进行检查
- 私设的IP地址的终端,由于其相关信息不符合DHCP Snooping绑定表,数据包被丢弃。实现了防止IP地址私设的功能需求。
3、IP Source Guard源数据-静态添加
全局手工配置静态绑定条目的方式,添加IP Source Guard源数据
Ruijie(config)#ip source binding 0000.0000.0001 vlan 10 172.16.1.1 interfaceGi0/10----接口+IP添加
Ruijie(config)#ip source binding 0000.0000.0001 vlan 10 172.16.1.1 ip-mac----IP+Mac添加
Ruijie(config)#ip source binding 0000.0000.0001 vlan 10 172.16.1.1 ip-only----仅IP添加
- 接口下开启ipverify source(IP-Only或IP+Mac方式)
- 配置建议:全局绑定的方式和端口过滤的规则保持一致,即全局ip+mac添加源数据,则端口下要基于ip+mac过滤(如不一致,最终生效的规则以全局配置为准)
- 全局和端口下不同组合的生效情况:
全局interface+IP | 全局ip+mac | 全局ip-only | |
---|---|---|---|
接口仅IP | ip | ip+mac | ip |
接口IP+Mac | ip | ip+mac | ip |
4、IP Source Guard查看
- showipsource binding查看IP Source Guard源数据信息
- showipverify source查看配置了IP Source Guard的端口以及对应的检测类型
5、IP Source Guard使用注意事项
- 打开IP Source Guard功能可能会影响IP报文的转发,一般情况下,该功能需要结合DHCP Snooping功能使用,IP Source Guard和DHCP Snooping功能配置的先后顺序不做限制;
- 无法在DHCP Snooping信任端口上配置IP Source Guard功能;
- 无法在全局IP+MAC的例外口配置IP Source Guard功能;纯二层技术
- 有线环境下,只能在交换口、2层AP口、2层封装子接口下配置开启。
DHCP整体配置:
DHCP 命令:
service DHCP / /开启DHCP服务【DHCP服务器和中继都需要】
ip DHCP pool *** //创建一个DHCP的池名字为***
network ip地址 掩码 //设置可分配ip地址范围
lease 天 时 分钟 //设置租约时间*天*时*分钟
default-router 网关ip //设置默认网关
dns-server *,*,*,* //设置DNS服务器
ip dhcp excluded-address ip地址 //设置DHCP不能分配的地址或地址范围
ip help-address DHCP服务器ip //设置帮助到达DHCP服务器【只在中继上配置】
VPC:
ip dhcp //通过DHCP获取地址
ip 10.10.10.10 24 10.10.10.1 //设置VPCip地址为10.10.10.10,掩码:24 ,网关:10.10.10.1
路由器当做PC时:
interface g0/0 //进入接口
ip address dhcp //接口使用DHCP获取地址
DHCP SNOOPING
作用:防止非法DHCP服务器,
开启DHCP snooping 所有接口非信任,开启一般只开一个接口信任口
DHCP snooping表项:【可以和ip source guard 一起使用,防止有用户手工配置IP 地址,不防止可能会产生IP 地址冲突】
DHCP snooping只看非中继的包,
ip dhcp snooping check-giaddr //可以 查看非中继的DHCP 包
[模拟器无法配置宽松转发]
ip dhcp snooping loose-forward //开启DHCP Snooping宽松转发功能
IP source guard
【防止手工配置地址,只能DHCP获取地址才允许通过】
IP source guard 应用配置:
ip verify source [ exclude-vlan | port-security | <cr> ] #加port-security表示检查ip+mac,不加表示只检查ip
exclude-vlan //排除某个vlan,不在进行管理
port-security //配置IP+MAC
<cr> //只配置表项里的IP
配置静态表项:
ip source binding 0000.0000.0001 vlan 1 172.16.1.1 ip-only/ip-mac/interface g0/1 //只匹配ip/匹配IP+MAC,/匹配接口+IP
我永远喜欢莉莉艾!!本文作者:奶油话梅糖,转载请注明原文链接:https://www.cnblogs.com/nyanonCat/p/18635756/dhcp-protocol-z1c6kns
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!