1问题描述PC(笔记本电脑)连接WiFi网络,WiFi网络使用802.1x认证。在PC从一楼移动到二楼的无线漫游过程中,PC的无线网络图标出现感叹号,并且导致无法上网。
2处理过程
第一次上线
1、PC第一次上线的时候,先进行802.11协议的接入协商。
2、在接入协商中,PC发送assoc Req报文,携带无线网卡的参数发送给AP。PC由于是第一次上线,因此无线网卡的参数中不携带认证信息,如下图,PMKID位置为空。
3、此时,AP判定PC需要进行802.1x协商,因此AP会发送EAP request报文,PC发送EAP start,双方开始802.1x认证协商,后续通过一系列EAP报文交互完成协商过程。
4、在802.1x认证协商通过之后,双方会通过EAPOL-Key报文进行密钥协商(如下图红框所示)。
5、密钥协商成功之后,PC的无线网卡数据开始放通,PC此时正式上线成功。
正常漫游时
1、当PC漫游时,仍然需要先进行802.11协议的接入协商。
2、在接入协商中,PC发送reassoc Req报文,携带无线网卡的参数发送给AP。由于PC判定上次上线时已完成802.1x认证,因此PC在本次报文中携带了上一次认证时协商的关键信息PMKID(见下图红框)。
3、AP获取到PC携带的PMKID信息后,通过一系列计算,可以直接验证PC的身份,如果身份验证ok,AP会跳过802.1x认证协商过程,直接跟PC发起密钥协商。如下图,reassoc rsp之后紧跟着就是EAPOL-Key过程。
4、密钥协商成功之后,PC流量可以正常放通,PC此时漫游成功。
漫游时出现叹号
1、PC漫游的时候,同样进行了802.11协议的接入协商。
2、但在接入协商时,PC在reassoc Req报文中携带的认证参数为空。
3、此时,AP无法判断PC的身份,因此发送EAP request报文,要求PC进行802.1x认证。但PC没有任何反应,导致802.1x认证过程始终无法完成。如下图所示,AP连续3次重传EAP Request报文,PC的无线网卡都没有发送任何报文,导致PC上线超时,AP发送deauth踢终端下线。
4、出现问题时持续进行抓包发现,PC由于漫游失败,实际上存在多次反复重新上线过程,但每一次PC既没有携带认证信息,也不重新进行认证过程,导致PC一段时间内持续处于叹号无法上网状态。
3根因
PC的无线网卡漫游过程中既不携带上一次的认证信息,也不重新进行802.1x认证,导致PC的无线网络不通并出现叹号。
4解决方案
通过对PC的无线网卡配置修改,或者对PC的无线网卡进行版本升级,确保PC漫游时,可以正常进行802.1x认证交互:
1、PC正常漫游时携带PMKID信息;
2、PC不携带PMKID信息,发送assoc Req报文重新进行802.1x认证交互。
ENDKubernetes CKA实战培训班推荐:
北京:12月18-20日