少于 1 分钟阅读

现象

NUC 上 iwl8265 已经能走到 wpa2=ok,黄字里关联、握手看上去齐了,可是 DHCP 一直 no offer。有时能看到发现包发出去(dat=tx / dtx=0201),收包侧却是一串 rx=mic o,任务栏显示 up,地址还是 0.0.0.0。课网目标很朴素:家里 WPA2 → 拿到地址 → ping 网关。卡在「关联成功、租约不来」。

初始假说

我先怀疑两条常见线:一是组密钥(GTK)没解开,路由器把 Offer 打成组播,我们解不开;二是数据帧队列/速率/QoS 头不对,发现包根本没被固件取走。于是前期大量刀花在 EAPOL、队列、GTK unwrap、CCMP 主机解密和 ADD_STA_KEY 上。

尝试与失败

队列和站类型试过一轮:数据放错队列时 EAPOL 出不去;改到正确队列后终于 wpa2=ok。这否定了「永远发不出管理/数据帧」,但没解决 DHCP。

GTK 路径更磨人:能看到 gtk=ok,组播仍 mic o;装固件密钥后状态字也不干净;强行把 STA RSN 组播改成 CCMP,AP 直接不跟你握手(m1to / wpa2=fail)。这一刀很有用——黄字 assoc=gc=02 证明家里 AP 的 beacon 组播套件是 TKIP。我否定的是「靠改关联套件逼 AP 改组播算法」;也否定了「把 DHCP Offer 赶到组密钥上就能省事」。

还有一刀把 DHCP 发现包的广播位打开,指望 Offer 走已经「看起来解开」的组播路径。结果仍然没有 rx=off,只有更多 mic o / disc。广播位假说被否掉:在这台混合模式 AP 上,组播 DHCP 不是可依赖的交付通道。

转折

转折是承认混合模式的现实:单播已经有 PTK/CCMP,组播 GTK/TKIP 我们课上本来就不做产品级解密。那 DHCP 就不该去赌组播,而该让 Offer 走单播 PTK。对应动作不是再拧无线密钥,而是把 lwIP DHCP 发现包上的广播标志清掉,让服务器用单播回 Offer。

根因

根因可以写成一句:DHCP 清广播位,Offer 走单播 PTK。在 assoc=gc=02(beacon 组播 TKIP)的环境里,置上广播位等于把租约通知推到我们解不干净的组播平面;清掉之后,Offer 落在 PTK/CCMP 单播上,主机侧才能稳定看到 rx=off,接着 ok ip=…,再 ping 网关有 reply。组播上残留的 mic o 可以忽略,它不再挡课路径。

教训

  • 关联成功 ≠ 地址平面成功;要看 rx=off / ok ip=,不要只看 wpa2=ok。
  • 混合模式 AP 上,TKIP 组播和 CCMP 单播要分开记账;强行改 RSN 组播可能直接谈崩。
  • 已经被否的路(广播位骗组播 Offer、强制 CCMP 组播)不要无记录重试。
  • 第三方栈里的 flags 若在 gitignore 树,编/同步前要确认广播位真的清掉了,否则「源码看起来对、镜像仍错」。
  • 无线刀史可以很长;收官标准仍是真机 ping 网关,不是黄字数量。

更新时间: