
问题描述
为vlan10新加入了一台PC,该PC第一次通过DHCP获取地址时报错。此时vlan10中的其他PC已正常获取地址。关闭vlan10应用的ACL,新PC成功获取地址。检查ACL配置、接口配置,没发现问题。重新开启此ACL,新PC正常获取地址。



问题解析
由于在有ACL的情况下只有新PC出现问题,排除ACL的问题。
确认接入交换机与新PC的接口已正确加入vlan。
由于DHCP的步骤只能进行到发现DHCP服务器,怀疑是MAC地址表的问题。
为什么会出现这种情况?
1.接入交换机的 MAC 地址表未建立
- 新 PC 刚连上去时,会发
DHCP Discover广播包。 - 接入交换机收到包后,会学习 PC 的 MAC 地址,并把接口和 VLAN10 绑定。
- 但在第一次发包到三层交换机的过程中,如果 MAC 地址表还没完全稳定,就可能出现 “第一次请求被丢弃” 的情况。
2.三层交换机 / ACL 的状态是 “无状态” 的
- 配置的 ACL 是无状态的,只看五元组,不看连接状态。
- 但如果第一次的
Discover广播包,因为交换机转发延迟被丢弃,就会出现Can't find dhcp server。 - 关掉再打开 ACL,相当于 “刷新” 了一次流量,第二次的
Discover包就能正常被转发和匹配了。
就像第一次去一个新地方问路:
- 问 “路怎么走?”,对方没听清 / 没反应过来,所以以为路不通。
- 走开又回来,再问一次,对方这次听清了,就指了路。