S5700交换机MAC旁路认证延迟大问题分析

发布时间:  2016-12-22 浏览次数:  436 下载次数:  0
问题描述

客户反馈在Linux终端接入S5700交换机,通过MAC旁路认证上线,但是上线延迟时间长达90秒。

交换机接口配置如下:

#
interface GigabitEthernet0/0/1
port link-type hybrid
port hybrid pvid vlan 100
undo port hybrid vlan 1
port hybrid untagged vlan 100
stp edged-port enable
dot1x mac-bypass mac-auth-first
dot1x mac-bypass

dot1x max-user 1
dot1x reauthenticate
dot1x authentication-method eap 
#

处理过程

1、在使用802.1x认证的接口可以针对无法安装和使用802.1x客户端软件的终端,通过MAC旁路认证方式进行认证,默认情况下802.1x认证优先,但从接口配置可以确认使能了MAC认证优先。

2、在没有其他思路的情况下,我们通过在S5700上的debug信息来分析终端的上线过程。从下面的debug信息可以看到,连接在GigabitEthernet0/0/1端口的终端发送DHCP报文并触发了802.1x认证,由于该终端不支持802.1x认证,30秒后认证超时。随后系统再重复了2次相同的802.1x认证过程,最终超时退出。802.1x认证失败后,系统立即启动了MAC认证并认证通过。

#

Jul 20 2016 13:12:44.120.3 Switch DOT1X/7/DEBUG:[EAPOL-stack] [EAPOL Check Dhcp Packet]IfIndex=5,IF name:GigabitEthernet0/0/1,MAC:xxxx-xxxx-546b,vlan:100,DstIp=255.255.255.255,PktType:2,ValidFlag:0.

Jul 20 2016 13:12:44.160.5 Switch DOT1X/7/DEBUG: [EAPOL-info] Begin to dot1x trigger.(mac=xxxx-xxxx-546b,portindex=0,VLAN=100,L2Type=1)

Jul 20 2016 13:13:14.160.1 Switch DOT1X/7/DEBUG: [EAPOL-timer] User response timeout.(Index:51)

#

Jul 20 2016 13:13:14.160.3 Switch DOT1X/7/DEBUG:[EAPOL-packet] Send EAP packet to user successfully. (type:1, packet length:27, output interface:GigabitEthernet0/0/1, VLAN:100, return:0)

Jul 20 2016 13:13:44.160.1 Switch DOT1X/7/DEBUG: [EAPOL-timer] User response timeout.(Index:51)

#

Jul 20 2016 13:13:44.170.2 Switch DOT1X/7/DEBUG:[EAPOL-packet] Send EAP packet to user successfully. (type:1, packet length:27, output interface:GigabitEthernet0/0/1, VLAN:100, return:0)

Jul 20 2016 13:14:14.170.1 Switch DOT1X/7/DEBUG:[EAPOL-timer] User response timeout.(Index:51)

#

Jul 20 2016 13:14:14.170.7 Switch DOT1X/7/DEBUG: [EAPOL-message] Send auto request message to CM module:
user MAC: xxxx-xxxx-546b

Jul 20 2016 13:14:14.900.36 Switch DOT1X/7/DEBUG:[EAPOL-message] Start auth ack process for auto user.(mac=xxxx-xxxx-546b)

#

3、既然接口已经配置了“dot1x mac-bypass mac-auth-first”,为什么终端连接端口后会触发802.1x认证呢?  我们从交换机全局配置中找到了答案。由于全局配置使能了dot1x dhcp-trigger,当交换机收到dhcp报文后会优先触发802.1x认证,该配置优先于接口的mac-auth-first。

#
dot1x enable
dot1x authentication-method eap
dot1x dhcp-trigger
dot1x timer client-timeout 1
mac-authen timer offline-detect 0
#

根因
交换机全局使能了dot1x dhcp-trigger,当交换机收到dhcp报文后会优先触发802.1x认证,该配置优先于接口的mac-auth-first。由于终端不支持802.1x认证,在经过3个802.1x认证(90秒)后超时退出,然后才启动MAC认证并认证通过。
解决方案
全局去使能dot1x dhcp-trigger,交换机即使收到DHCP报文也会优先启动MAC认证。
建议与总结
对于用户上线类问题,可以通过debug信息来分析报文交互,清晰地看到整个认证流程。

END