S6506 交换机实验指导
实验14 802.1x及AAA
Configure: Transmit Period 000030 s, Commit Period 000015 s
Quiet Period 000060 s, Value of Quiet Period Timer is enabled
Supp Timeout 000030 s, Value of Server Timeout 000100 s
The maximal retransmitting times 000003
Total maximum on-line user number is 4096 Total current on-line user number is 1
Ethernet2/0/1 is link-up 802.1X protocol is enabled Proxy trap checker is disabled Proxy logoff checker is disabled The port is a(n) authenticator Authenticate Mode is auto Port Control Type is Port-based Max on-line user number is 1024
Authenticate Success: 8, Failed: 99 EAPOL Packet: Tx 447, Rx 416
Send EAP Request/Identity Packet : 255 EAP Request/Challenge Packet: 54 Received EAPOL Start Packet : 87 EAPOL LogOff Packet: 52
EAP Response/Identity Packet : 254 EAP Response/Challenge Packet: 54 Error Packet: 0
1. Authenticated user : MAC address: 00c0-df05-c559
Controlled User(s) amount to 1
以上部分明确给出了有关当前接入用户的有关信息。
S6506 交换机实验指导
实验14 802.1x及AAA
1 现在让我们更加仔细的分析pc和Sw1之间的交互过程。
Pc和Sw1之间运行的是封装在以太网之上的EAP协议,即EAPOL协议。为便于读者参考,我们先将EAPOL协议的报文封装格式列在这里:
1-2345-67-NType:88-8EVersion:1Packet TypePacket Body LengthPacket Body Packet Type值和报文类型的对照关系为:
Type=0 EAP-Packet Type=1 EAPOL-Start Type=2 EAPOL-Logoff Type=3 EAPOL-Key
Type=4 EAPOL-Encapsulated-ASF-Alert
EAPOL Type=0时其中包含EAP数据包,EAP数据包封装格式为:
001CodeData8Identifier1624Length EAP Code值和报文类型的对应关系为:
Code=1 Request Code=2 Response Code=3 Success Code=4 Failure
EAP Request/Response消息中的Data域由Type和Type-data两个域构成。目前已经定义的Request/Response Type值为:
Type=1 Identity Type=2 Notification
Type=3 Nak (Response only) Type=4 MD5-Challenge
Type=5 One-Time Password (OTP) Type=6 Generic Token Card
现在让我们通过逐个分析pc和S6506之间EAPOL报文的方式来观察EAPOL协议的工作机制。现在请在pc上打开“开始->程序->管理工具->
S6506 交换机实验指导
实验14 802.1x及AAA
网络监视器”,并开始监听网络。在pc上运行并输入用户名(pc)和密码(pc)登录网络,此时在网络监视器上会有一系列S6506和Pc之间的交互报文。这里提请大家知晓,我们这里的pc的MAC地址是:00.10.a4.a0.03.00; Sw1的Interface Vlan 1的MAC地址是:00.e0.fc.07.70.8a。现在我们来一一分析他们:
pc发给Sw1的第1个报文
对照EAPOL协议报文格式,这个报文是Type=1(即第一行最后一个字节)的EAPOL-Start报文,观察上面的报文格式可知这个EAPOL报文是pc(00 10 a4 a0 03 00)发往组播Mac地址(01 80 c2 00 00 03 )的要求验证开始的消息。当Sw1收到这个报文以后,就会开始主动发起验证。下面是Sw1发给pc的消息:
Sw1发给pc的第1个报文
这个报文的type=0指示它是一个封装了EAP协议报文的EAPOL报文,从第二行第三个字节开始就是EAPOL报文的Packet Body部分,也就是EAP报文。对照EAP报文格式,可知这个EAP报文特征是:code=1(EAP Request)、Identifier=1、Length=5,最后的一个字节1表示Identity即表示请求对端的用户名。于是,以下由pc发给Sw1的消息就很自然了:
pc发给Sw1的第2个报文
对照EAP报文格式,这个EAP Code=02、Identifier=01的EAP Response报文正是用于回应刚才由Sw1发给pc的EAP Response报文,这里的EAP Response Data值70 63是pc的Identity(data type=01)即我们输入的用户名pc。下面让我们来观察Sw1收到这个报文以后的反应:
Sw1发给pc的第2个报文
这个报文依然包含一个EAP Request报文(EAPOL type=0、EAP Type=1),不过这里的EAP Identifier是02而不是刚才的01了。这里的EAP Request Data Type=04表示随后的0x11(17)个字节是一个MD5 Challenge(这个Challenge的第一个字节0x10表示其长度为16,随后为一个16字节的随机报文)。可以想见,pc收到这个Challenge以后会
S6506 交换机实验指导
实验14 802.1x及AAA
利用MD5算法并以这个随机报文和密钥pc为输入得出一个Response再发送给Sw1:
pc发给Sw1的第3个报文
从EAP Identifier=02来看,上面这个EAPOL报文所包含的EAP Response(EAP type=02)正是pc回应Sw1刚才向他发的EAP Request(EAP Identifier=2),不过这里的EAP Response data结构上有点改变:Challenge长度0x10以后的16字节是密码和Request中的16位Challenge经MD5算法作用后的结果,最后两个字节70 63正是pc的用户名pc。当Sw1接收到这个EAP Response以后,将利用报文中提供的用户名pc查找本地(我们配置使用本地用户数据库而非Radius服务器)用户名数据库,得到和pc用户相关的密码(pc),然后再以这个密码和它曾经发给对端的和收到的这个EAP消息具备相同Identifier的EAP Request中的MD5 Challenge作为MD5算法的输入,并将结果和这里的16个字节作比较,如果相同认证就通过,否则就不通过。在我们的情形下,Sw1发给pc的数据包是:
Sw1发给pc的第3个报文
一望便知,这个EAPOL报文中包含的EAP报文是Type=03的EAP Success报文。这说明Sw1通知pc验证已经通过。当然,同时Sw1会打开对于端口E2/0/24的锁定,从而从pc上就可以ping通Sw1的三层接口了。
对于退出登录的过程分析是类似的,我们把这个作为练习留给读者。 当然通过如下调试命令:
*0.5003175 S6505 8021X/8/PACKET:Slot=0;Port:96,Transmited a packet.
---Verbose information of the packet--- Destination Mac Address: 00c0-df05-c559 Source Mac Address: 00e0-fc0a-5090 Mac Frame Type: 888e. Protocol Version ID: 1. Packet Type: 0.
S6506 交换机实验指导
实验14 802.1x及AAA
Packet Length: 5. -----Packet Body----- Code: 1. Identifier: 26. Length: 5.
*0.5003534 S6505 8021X/8/PACKET:Slot=0;Port:96,Received a EAPOL packet.
*0.5003614 S6505 8021X/8/PACKET:Slot=0;Port:96,NOT a Eapol-start.
*0.5003694
8021X/8/PACKET:Slot=0;Port:96,Auth:55,PacketType: EAPOL-PACKET.
*0.5003794 S6505 8021X/8/PACKET:Slot=0;Port:96,Auth:55,EAP Type: Response. *0.5003894 S6505 8021X/8/PACKET:Slot=0;Port:96,Auth:55,Code Type: Identity. *0.5003994 S6505 8021X/8/PACKET:Slot=0;Port:96,End processing the packet receive
d.
---Verbose information of the packet--- Destination Mac Address: 0180-c200-0003 Source Mac Address: 00c0-df05-c559 Mac Frame Type: 888e. Protocol Version ID: 1. Packet Type: 0. Packet Length: 7. -----Packet Body----- Code: 2. Identifier: 26. Length: 7.
*0.5018175 S6505 8021X/8/PACKET:Slot=0;Port:96,Transmited a packet.
---Verbose information of the packet--- Destination Mac Address: 00c0-df05-c559 Source Mac Address: 00e0-fc0a-5090 Mac Frame Type: 888e. Protocol Version ID: 1.
S6505