记一次DHCP排错

本文深入探讨了在网络中遭遇流氓DHCP服务器时的解决方案,介绍了DHCPSnooping信任功能如何保障客户端从合法服务器获取IP地址,并讨论了动态绑定表的上限问题及使用ACL限制非法DHCP服务器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拓扑

阶段1,遇到流氓DHCP

如拓扑,某业务整个网络划分在一个vlan之下,入网的终端设备要接收来自DHCP服务器的IP指派,业务正常,客户开心,一切都显得祥和安静;

忽然有一天,用户的一个动作打破了一切。。。他把终端的网线无情的插入到了路由的lan口,如此,路由器本身的DHCP发挥作用,混进了这个vlan。自此,这个vlan下广播域之内便有了两台DHCP服务器,灾难发生了。。。

入网设备发送DHCP Discovery 的报文是在域内广播的,所以两台DHCP都会收到报文,设备将获取最先提供报文的数据,这样终端设备有很大几率获取到流氓DHCP服务器的IP指派,设备便无法和真正的业务地址进行通讯。

怎么办???

怎么办!!!

阶段2,你知道DHCP Snooping trust吗

是偶然还是必然?

盒子里传来了一个声音:用DHCP Snooping trust吧,它将解决一切你目前面临的问题。

DHCP Snooping信任功能
DHCP Snooping的信任功能,能够保证客户端从合法的服务器获取IPInternet Protocol)地址。

如图1所示,网络中如果存在私自架设的DHCP Server仿冒者,则可能导致DHCP客户端获取错误的IP地址和网络配置参数,无法正常通信。DHCP Snooping信任功能可以控制DHCP服务器应答报文的来源,以防止网络中可能存在的DHCP Server仿冒者为DHCP客户端分配IP地址及其他配置信息。

DHCP Snooping信任功能将接口分为信任接口和非信任接口:
信任接口正常接收DHCP服务器响应的DHCP ACKDHCP NAKDHCP Offer报文。另外,设备只会将DHCP客户端的DHCP请求报文通过信任接口发送给合法的DHCP服务器。
非信任接口在接收到DHCP服务器响应的DHCP ACKDHCP NAKDHCP Offer报文后,丢弃该报文。

于是,我打开了它,暴风结束了

但,

有谁又能想到,这个盒子的名字叫做潘多拉。。。

阶段3,再遇滑铁卢

上午还岁月静好,

下午却是狂风暴雨。

这一天,还是来了

中端机型sw2和3下新接入的设备没有办法再获取到IP了,怎么等都不来。

重启了交换机能好两三天,随后涛声依旧,

貌似是到达了一定数量,就无法再接入新设备。但sw1下的设备却是没受到影响。

这又是为什么。

偶然间,我发现了一个数字:

DHCP Dynamic Bind-table Total count:1024

直觉告诉我,这个必定个异数。

于是,

这一天,我才知道,DHCPS nooping 是有动态绑定表的,而且上限是1024

一旦设备接入数量超过预设的数值,就无法在获取到IP了

但为什么sw1下的设备却没事?

查了下,原来这个机型要高端些,上限是3万+

技术客服说:到达这个上限,只能更换更高级别的设备。

只能说,如果是个销售,他是合格的。

阶段4 ACL是希望吗?

思考了很多方案,

从端口隔离

到MAC匹配

都有一丝不尽人意。

但似乎,ACL有我想要的一切

ACLAccess Control List。是由若干permitdeny语句组成的一系列规则的列表,可以作为基础配置被应用模块引用。ACL主要应用在QoS、路由过滤、用户接入等领域。

限制网络数据流以提高网络性能。例如,公司网络中配置ACL限制传输视频数据流,可以显著降低网络负载并提高网络性能。

提供流量控制。例如,如果网络状况允许,用ACL限制路由更新的传输,可以节约带宽。

提供基本的网络访问安全。例如,只允许特定用户访问人力资源网络。

抓包,分析特征…..

两个网段不冲突……

业务数据网段:b.b.0.0

流氓DHCP通用网段:c.c.0.0

分析特征字段…

DHCPUDP报文

数据生成…

acl name Block_fake_dhcpserver 3000
rule deny udp source c.c.0.0 0.0.255.255
q
traffic-filter vlan xx inbound acl name Block_fake_dhcpserver

配置命令…

久违的美好…

or

To Be Continued…?

知识点:

DCHP原理

ACL(扩展)

DCHP Snooping trust

华为设备中DHCP故障的排查方法主要包括以下几个方面: 1. **查看DHCP客户端状态**:通过使用`display dhcp client`命令可以查看开启DHCP/BOOTP客户端功能的接口的状态信息,这有助于了解客户端是否正常工作[^2]。 2. **统计DHCP客户端报文**:执行`display dhcp client statistics`命令可获取DHCP/BOOTP客户端报文的统计信息,帮助识别是否存在异常流量或通信问题[^2]。 3. **启用DHCP客户端调试信息**:通过`debugging dhcp client all`命令开启DHCP客户端模块的调试信息,可以更详细地检查客户端与服务器之间的交互过程,从而发现潜在的问题[^2]。 4. **检查DHCP服务器配置**:确保DHCP服务器正确配置了地址池、默认网关、DNS服务器等必要参数,并且地址池中有足够的可用IP地址供分配。如果地址池耗尽,需要对DHCP服务器的地址池进行扩容[^3]。 5. **验证网络连通性**:确认终端设备能够与DHCP服务器通信。如果有中间设备如交换机,则需检查这些设备上的配置是否正确,以保证终端和服务器间的通信畅通无阻。 6. **启用DHCP Snooping功能**:为了防止DHCP饿死攻击和仿冒DHCP服务器攻击,应启用DHCP Snooping功能。设置交换机端口的信任状态,限制接入的最大用户数量,并且对DHCP请求报文中的CHADDR字段与源MAC地址进行一致性校验[^3]。 7. **处理IP地址冲突**:对于终端获取的IP地址与网络中静态配置的IP地址冲突的情况,可以在DHCP服务器上将冲突的IP地址排除出地址池,避免再次分配给其他设备。 8. **分析DHCP绑定表**:利用DHCP Snooping形成的绑定表来监控和控制网络访问,只有匹配绑定表信息的报文才能被接收和转发,以此来防范中间人攻击。 以上步骤提供了基本的指导方针,但在实际操作过程中还需要根据具体的网络环境和问题表现灵活应用。此外,维护人员应当熟悉华为设备CLI命令集,并能够解读相关的日志和诊断信息,以便快速定位并解决DHCP相关的故障。 ```python # 示例代码 - 模拟一个简单的函数,用于生成DHCP故障排查建议 def generate_dhcp_troubleshooting_guidance(): # 这里仅提供一个简化的示例,实际应用会更复杂 return [ "检查物理连接和网络可达性。", "使用display dhcp client命令查看客户端状态。", "运行display dhcp client statistics获取报文统计。", "考虑执行debugging dhcp client all启用调试输出。", "确保DHCP服务器配置正确且地址池未耗尽。", "在交换机上启用DHCP Snooping以增强安全性。", "排除已知冲突的IP地址,防止重复分配。" ] # 调用函数并打印结果 troubleshooting_steps = generate_dhcp_troubleshooting_guidance() for step in troubleshooting_steps: print(step) ``` 通过上述方法,可以系统地对华为设备中的DHCP相关问题进行排查和解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值