1、初始化

当交换机检测到有新的请求者时,端口被启用,切状态是未授权。这种状态下,只允许802.1X的流量,其他流量(如TCP/UDP)将被丢弃。

2、启动

为了启动认证,交换机将周期性的发送EAP-Request Identity帧到本地LAN中的特殊mac地址01:80:C2:00:00:03
请求者将侦听这个地址,并且在收到EAP-Request Identity时,使用包含请求者标识符(如用户ID)EAP-Response Identity帧进行响应。
交换机作为认证者,将此身份响应封装到Radius Access-Request数据包中,并转发到认证服务器。
另外,请求者也可以通过向认证者发送EAPOL-Start帧来启动或重新启动认证,认证者使用EAP-Request Identity进行回复。

3、EAP协商

身份认证服务器给交换机发送一个RADIUS Access-Challenge的回复报文,报文中包含了一个EAP Request,指定了EAP方法(认证服务器希望请求者使用的基于EAP的认证类型)。
认证者将这个EAP Request封装到EAPOL帧中,转发给请求者。
此时,请求者可以开始使用这个请求的EAP方法,或者执行NAK否认消息并响应一个自己希望执行的EAP方法。

4、认证

如果请求和认证服务器同意之前的EAP方法,那么他们将会发送EAP Request和Responses给对方,通过认证者转发,直到认证服务器响应一个封装在RADIUS Access-Accept报文中的EAP-Success,或者封装在RADIUS Access-Reject报文中的EAP-Failure。
如果认证成功,那么交换机端口将变为”授权”状态,允许所有正常流量。
如果认证失败,交换机端口保持”未授权”状态。
当申请者注销的时候,它会发送一个EAPOL-logoff信息给认证者,认证者改变端口状态到”未授权”,并阻止非EAP流量通过

封装过程:
802.1x
请求者 -- 交换机 -- 认证服务器 之间跑EAP协议
请求者 -- 交换机 之间EAPOL,底层采用802.1x封装(二层封装)
交换机 -- 认证服务器 之间EAPOR,采用radius封装(radius是udp)

EAP的加密有很多种,常用的两种:
EAP-TLS:需要自建CA
EAP-PEAP:类似HTTPS

原文:IEEE 802.1X - 维基百科