updateing / minieap

可扩展的 802.1x 客户端,带有锐捷 v3 (v4) 算法插件支持
GNU General Public License v3.0
514 stars 93 forks source link

认证失败,提示IPv4 网关获取错误,收到服务器通知“取消连接共享” #48

Closed univic closed 5 years ago

univic commented 5 years ago

Newifi3 d2路由器,使用固件OpenWrt R9.4.6 By Lean By Jay,内核版本4.14.109,网络环境华科宿舍的有线校园网,使用自己编译的minieap 0.92.1拨号时无法认证成功。

执行命令 /home/minieap -u *** -p *** -n eth0.2 -l 1 --module printer --module rjv3 --module printer --if-impl libpcap --fake-dns2 8.8.8.8

执行结果

[2019/9/21 10:07:38][I] MiniEAP 0.92.1已启动 [2019/9/21 10:07:38][I] 正在查找认证服务器 [2019/9/21 10:07:38][I] We send one! 18 1512 [2019/9/21 10:07:38][E] IPv4 网关获取错误 [2019/9/21 10:07:38][I] We send one! 521 1512 [2019/9/21 10:07:38][I] We got one! 64 64 [2019/9/21 10:07:38][I] We got one! 64 64 [2019/9/21 10:07:38][I] 正在回应用户名请求 [2019/9/21 10:07:38][I] We send one! 33 1512 [2019/9/21 10:07:38][E] IPv4 网关获取错误 [2019/9/21 10:07:38][I] We send one! 536 1512 [2019/9/21 10:07:38][I] We got one! 66 66 [2019/9/21 10:07:38][I] We got one! 66 66 [2019/9/21 10:07:38][I] 正在回应密码请求 [2019/9/21 10:07:38][I] We send one! 50 1512 [2019/9/21 10:07:38][E] IPv4 网关获取错误 [2019/9/21 10:07:38][I] We send one! 569 1512 [2019/9/21 10:07:38][I] We got one! 132 132 [2019/9/21 10:07:38][I] 服务器通知: [2019/9/21 10:07:38][I] 请将网卡IP和DNS配置成自动获取形式,并将网卡“属性-共享”中的“Internet连接共享”取消!并卸载WiFi共享软件q [2019/9/21 10:07:38][I] We got one! 132 132 [2019/9/21 10:07:38][E] 认证失败 1 次,已达到指定次数,正在退出…… [2019/9/21 10:07:38][I] MiniEAP 已退出

eth0.2接口确实设置为DHCP,并且在认证前已经拿到了一个ip地址,但认证无法通过,求解

updateing commented 5 years ago

指定DHCP方式为认证后试一下?

univic commented 5 years ago

指定DHCP方式为认证后试一下?

-d参数各种情况都试过了,报同样错误,重新编译了一个输出debug信息的版本,得到如下输出

[2019/9/22 10:39:54][I](trans_to_preparing) MiniEAP 0.92.1已启动
[2019/9/22 10:39:54][D](unschedule_alarm) Removed event id = 1
[2019/9/22 10:39:54][D](print_list) List print end.
[2019/9/22 10:39:54][D](schedule_alarm) New alarm event added
[2019/9/22 10:39:54][D](print_list) List print: node at 0x479fb0
[2019/9/22 10:39:54][D](print_list)     next at 0
[2019/9/22 10:39:54][D](print_list)     content at 0x479f90
[2019/9/22 10:39:54][D](print_list)     remain 5
[2019/9/22 10:39:54][D](print_list)     id 2
[2019/9/22 10:39:54][D](print_list)     marked delete 0
[2019/9/22 10:39:54][D](print_list)     func 0x41d2d4
[2019/9/22 10:39:54][D](print_list)     user 0
[2019/9/22 10:39:54][D](print_list) List print end.
[2019/9/22 10:39:54][I](trans_to_start_sent) 正在查找认证服务器
[2019/9/22 10:39:54][I](printer_prepare_frame) We send one! 18 1512
[2019/9/22 10:39:54][D](retrive_if_gateway) 00000000 FE4F0E0A wlan0
[2019/9/22 10:39:54][D](retrive_if_gateway) 004C0E0A 00000000 wlan0
[2019/9/22 10:39:54][D](retrive_if_gateway) 0062A8C0 00000000 eth0.1
[2019/9/22 10:39:54][D](retrive_if_gateway) 00DEC5DA 00000000 eth0.2
[2019/9/22 10:39:54][E](rjv3_get_dhcp_info) IPv4 网关获取错误

在参数里已经指定了使用网络界面eth0.2,为什么retrive_if_gateway还涉及到所有4个网络界面呢?是否是由于这个导致IPv4 网关获取错误?

univic commented 5 years ago

目前已经认证成功,推测存在两个关键点:

  1. OpenWrt中,eth0.2的网络-接口-高级设置部分,“使用默认网关”没有勾选,导致Minieap遍历各个网络界面的信息也获取不到网关。勾选后不再返回"IPv4 网关获取错误",但仍然返回"请将网卡IP和DNS配置成自动获取形式,并将网卡“属性-共享”中的“Internet连接共享”取消!并卸载WiFi共享软件q"。
  2. 在拨号时指定-d 1,即DHCP方式为“二次认证”,则认证成功。

其它情况正在进一步观察

updateing commented 5 years ago

这个错误提示的原因是,首次认证时头部第一个 IPv4 信息的字段(就是唯一一个被编码了的字段)不是全零(抓包看全 FF)。正常情况下“二次认证”的第一次 以及 “认证后” 发包时这个字段是强制设为空的。如果“认证后”没有设为空,就是存在 bug 了。

至于 retreive_if_gateway 会显示所有 net device 是正常的,因为那是在遍历路由表……