-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
锐捷插件认证流程的问题 #35
Comments
主程序现有的二次认证逻辑直接要求发 START 包,不太好控制因为 DHCP 太慢导致无法上报 IP 信息的情况,所以是在锐捷插件里等到 DHCP 完成时才转入认证流程。 如果二次认证只在锐捷里用得到(我确实没发现其他地方用到的),或许可以考虑一下让插件完全接管二次认证,主程序中对二次认证的处理仅限于“收到指定次数的成功报文才执行认证成功的逻辑”和“通知插件可以开始第二次认证”,不再主动转换状态。这样似乎也可以满足你的需求? |
我目前简单修改了一下,把锐捷插件中的 switch_to_state 去掉了。然后再配置文件里设置成两次认证,似乎没有什么问题。
至于 DHCP,应该不会影响吧?因为是先执行完了 DHCP 脚本,再进行下一次认证的。 |
补充说明一些题外话: 我这里在 DHCP 未成功的情况下,第一次认证就会失败,也许要在两次认证前都执行一下 DHCP 脚本? |
|
|
这类环境还真是没听说过…… 我尝试一下做这样的修改吧。 |
@updateing 再反馈一下与环境有关的奇怪现象: minieap/packet_plugin/rjv3/packet_plugin_rjv3_priv.c Lines 335 to 338 in bf4f1b4
所以怀疑后台改设置了?IP 地址为空也能成功认证?第二次认证发送过去的 IP 地址会被忽略? |
这样一说的话,我校的环境(在我毕业前)确实与你那边不一样。我们是要求第一次认证必须不带地址的,不然会提示“请将 IP 地址改为自动获取形式”blahblah,所以才有的二次认证这个功能。我们那时管理后台也只显示第二次认证中带的 IP 地址。可能服务端是接受深度定制的吧…… |
@updateing 是我搞错了……现在情况更复杂了…… |
@updateing 之前使用的旧版本是这个 https://github.com/GZHU-Dress/minieap |
@updateing 确认了,把 rjv3_should_fill_dhcp_prop 改成 minieap/packet_plugin/rjv3/packet_plugin_rjv3_priv.c Lines 335 to 338 in bf4f1b4
|
那就真的奇怪了,为什么设置认证前DHCP会失败呢…… 讲道理认证前和二次认证的唯一区别就是发送IP地址的时机,没理由二次能用而认证前完全不能通过。可以麻烦再确认一下吗? |
@updateing 你是指把 dhcp_type 改成 DHCP_BEFORE_AUTH 吗?这似乎是服务器的限制。稍后我用新版本确认一下吧。 |
@updateing 大概是破案了。配置文件里面写 |
目前锐捷插件进行第二次认证是主动把状态设为
EAP_STATE_START_SENT
。minieap/packet_plugin/rjv3/packet_plugin_rjv3_priv.c
Lines 517 to 520 in 7124083
但是代码中是有实现多次认证的功能的,是否应该改成由程序本身来开始第二次认证?
minieap/eap_state_machine.c
Lines 188 to 192 in 7124083
问这个问题是因为我打算把 minieap 配合 OpenWrt 的 proto 来使用,就像 DHCP 那样。这样的话网线断开的话系统会自动处理重连。其他程序或脚本也能直接通过接口状态得知是否认证成功,以及直接控制重新认证。
其中需要实现认证成功后执行一个脚本,但是按照目前的认证流程,会触发两次认证成功。
The text was updated successfully, but these errors were encountered: