如下命令不同平台有差异,具体参照产品命令手册,有线802.1x认证解释如下:
在802.1x认证的组网中,用户认证成功后交换机主动与客户端保持EAP心跳,这个心跳由交换机主动发起,每隔一段时间(一般10几秒)发一次,如果连接一定次数收不到客户端的心跳回应,则交换机认为客户端已经不在线,交换机清空关于该用户的在线表,之后通知3A服务器该用户下线,下线原因为lost carrier.
从 lost carrier下线的原理来看,造成lost carrier下线的原因常见有如下几种:
1. 终端与认证交换机非直连,终端直接拔掉网线或待机
由于终端与认证交换机非直连,上述情况认证交换机连接该终端的端口还是up的,认证交换机会正常发送eap心跳报文,而终端已经拔掉网络或待机(比如直接合上笔记本),这时iNode回应不了eap的心跳报文,交换机经过心跳超时后将该用户lost carrier下线。
2. 交换机与iNode客户端之前的二层网络质量不好
常见比如起802.1x交换机与iNode客户端之间还隔着一层或几层二层交换机,导致eap报文被中间的交换机丢掉。
客户的网络中存在较多的ARP攻击,病毒等报文,导致EAP报文被丢弃。
终端PC网卡兼容性较差(多见于比较旧的PC),导致eap报文被丢弃。
终端PC的性能较差或者正在做占用大量CPU的工作导致iNode无法获取到CPU资源处理eap报文。
上述问题的最终解决方案还是优化组网,提高硬件性能。此外,还有一个比较好的规避解决方案:
交换机默认的心跳超时往往比较短,比如h3c较新型号的交换机往往默认15秒钟发送一次心跳,连接2次收不到就让终端用户lost carrier下线。此时可以通过调整心跳发送的间隔及超时次数来增加eap心跳的健壮性。具体的命令如下:
[全局]dot1x timer handshake-period xx --默认为15S,建议调整为60S或更高,注意请调整为15S的整数
[全局]dot1x timer retry xx --默认为2次超时,建议调整为6次或更高。
暂无评论