一、802.1x是什么
IEEE 802.1X ,全称为基于端口的网络访问控制(Port-Based Network Access Control) ,是 IEEE 制定的、工作在 数据链路层(二层) 的网络接入认证标准。
该协议最初由 IEEE 802 LAN/MAN 委员会提出,用于解决无线局域网 的接入安全问题;后续被扩展应用于以太网,成为通用的局域网端口接入控制机制,核心是在端口层面拦截未授权设备,仅允许通过身份认证的终端访问网络,以此解决以太网环境下的接入认证与安全管控问题。
1. C/S架构
802.1x认证系统采用经典的Client/Server(客户端/服务器)结构 : 客户端 + 接入设备 + 认证服务器
- 客户端(Supplicant):需接入网络的终端设备(PC、手机、IoT),需安装支持 802.1X 的客户端软件,携带身份凭证(账号 / 密码 / 证书)主动发起认证请求。
- 接入设备(Authenticator):支持 802.1X 的网络设备,如以太网交换机(有线)或无线 AP。作为客户端与认证服务器之间的中继,在认证通过前限制端口权限,仅放行认证流量。
- 认证服务器(Authentication Server) :通常为 RADIUS 服务器,负责存储用户身份信息、验证凭证合法性,并返回授权结果(允许 / 拒绝、动态 VLAN、ACL 等)。

2. 基于端口的访问控制
802.1x的核心思想是 "基于端口的网络接入控制" 。作为数据链路层协议,它无需依赖三层 IP 即可工作,本质是在物理链路上实现一个可授权的逻辑开关,对终端接入进行细粒度管控。
(1)两种逻辑端口 :一个物理端口接入终端后,802.1X 会在逻辑上划分为两个端口,分别负责认证与业务传输:
- 非受控端口(UnControlled Port):专用认证通道,始终双向开放,仅用于传输 EAPoL 认证报文,保障认证流程正常进行。
- 受控端口(Controlled Port):用于传输用户业务流量,连通状态由认证结果控制,未认证时禁止业务流量通过。
(2)受控端口的两种状态:仅作用于受控端口,由授权状态决定是否放行业务:
- 授权(Authorized)状态:终端认证通过,受控端口开放,业务流量可正常双向转发。
- 非授权(Unauthorized)状态:终端未认证或认证失败,受控端口关闭,业务流量被阻断。
(3)受控方向:仅在受控端口处于非授权状态时生效,分为两种控制模式:
- 单向受控:禁止终端向网络发送业务流量,但允许网络向终端下发广播、DHCP 等报文,是主流设备默认实现。
- 双向受控:完全阻断终端与网络之间的双向业务流量,仅用于高安全特殊场景,日常组网较少使用。

一个物理端口接入终端后,在 802.1X 逻辑上划分为两个端口:
- 非受控端口:专用认证通道,始终开放,仅用于 EAPoL 认证报文交互
- 受控端口 :用于业务流量,根据认证结果处于授权 或非授权状态。
受控端口的授权状态:
- 授权状态:受控端口开放,业务流量双向正常转发。
- 非授权状态:受控端口关闭,业务流量被阻断。
二、802.1X协议基础:EAP
802.1X 系统通过 EAP(可扩展认证协议) 实现客户端、接入设备与认证服务器之间的认证信息交互。EAP 是一种典型的 C/S 模式认证框架,支持多种灵活的认证方法,包括 MD5-Challenge、EAP-TLS、PEAP 等。在客户端与接入设备之间,EAP 报文以 EAPoL(局域网 EAP 封装) 格式封装在二层数据帧中进行传输。
1. 什么是EAP协议?
EAP(Extensible Authentication Protocol) ,即可扩展认证协议 ,最初定义于RFC 2284,后由RFC 3748 取代并完善。它的核心设计理念是**"框架性"**:
- 不绑定具体算法:EAP本身不规定具体的认证方式(如密码、证书),而是提供一个标准的封装格式。
- 支持多种方法 :具体的认证逻辑由**EAP方法(EAP Methods)**实现,如EAP-MD5、EAP-TLS、EAP-PEAP等。
- 跨层运行:EAP可以直接运行在数据链路层(如PPP、LAN),也可以运行在UDP/TCP之上(如EAP over RADIUS)。
2. EAP 报文格式
一个标准的EAP报文由 Code(代码) 、Identifier(标识符) 、Length(长度) 和 Data(数据) 四个字段组成。

|------------|---------|------------------------------------------|
| 字段名称 | 长度 (字节) | 含义与作用 |
| Code | 1 | 报文类型。决定报文的性质(请求、响应、成功、失败)。 |
| Identifier | 1 | 匹配标识ID。用于匹配Request和Response报文,防止重放攻击或乱序。 |
| Length | 2 | 总长度。包含Code、ID、Length和Data的总字节数。 |
| Data | 变长 | 有效载荷。格式由Code和Type字段共同决定。 |
Code字段决定了EAP对话的基本流向:
- 1 - Request(请求):由认证者(服务器/设备)发给客户端,请求信息。
- 2 - Response(响应):由客户端发给认证者,回应请求。
- 3 - Success(成功):认证通过,允许接入。
- 4 - Failure(失败):认证失败,拒绝接入。
当Code为 1 或 2 也就是请求和响应时,Data字段内部会包含一个关键的 Type(类型) 字段,定义了具体的认证方法。常见的Type值如下:
|-------|----------------|------------------------|
| Type值 | 类型名称 | 说明 |
| 1 | Identity | 请求/响应身份标识(通常是用户名)。 |
| 3 | NAK | 客户端回复"不支持该方法",并建议其他方法。 |
| 4 | MD5-Challenge | 基于MD5的质询握手,类似CHAP。 |
| 13 | EAP-TLS | 基于数字证书的双向认证。 |
| 21 | EAP-TTLS | 隧道传输的TLS,安全性高。 |
| 25 | EAP-PEAP | 受保护的可扩展认证协议,微软常用。 |
| 254 | Expanded Types | 扩展类型,支持厂商自定义的类型。 |
当Code取值为3 或者 4也就是成功和失败时,EAP为Success和Failure报文,Data 长度为 0,也就是没有Data字段。
因此EAP报文格式如下:

3. EAP标准交互
关键 :EAP 流程由服务端(认证方)主动发起,通过发送 EAP-Request 启动认证会话。
- 认证启动 。认证方发送
Request/Identity,询问客户端身份标识,这是 EAP 会话的标准起始报文。报文关键字段:Code=1表示请求(Request),Identifier=X是报文匹配序号(并非身份,一般简称ID,仅用于配对请求与响应),Length=5为固定报文长度,Type=1表示身份标识 (Identity)。 - 身份响应 。客户端回复
Response/Identity,携带用户名或标识信息。报文关键字段:Code=2表示响应(Response),Identifier=X必须与请求中的序号保持一致,Length≥5,Type=1,身份信息位于 Data 域中。 - 认证方法协商 。认证方发送指定认证方法(如 MD5、TLS)。若客户端不支持,回复
Nak并告知支持类型。 - 多轮认证交互 。依据选定的认证算法,进行多轮
EAP-Request/EAP-Response交互,完成凭证校验。 - 认证结束 。认证方最终发送
Success或Failure结束会话。

4. EAP-MD5 交互流程
EAP-MD5(EAP-MD5-Challenge, Type 4) 是 RFC 3748(原 RFC 2284) 定义的最基础、最早标准化 的 EAP 认证方法,基于 挑战 - 应答(Challenge-Response) 模式,用 MD5 哈希做单向客户端认证。
- 认证启动
EAP-Request。 - 身份响应
EAP-Response。 - 挑战下发 。认证方发送
Request/MD5-Challenge(Code=1, Id=Y, Type=4),携带 16 字节随机挑战值EAP-MD5 Value。 - 挑战回复 。客户端使用 Identifier(EAP 报文 ID 号)、用户密码、随机 Challenge 进行 MD5 运算,生成 16 字节的应答哈希值 ,填入
Response中的EAP-MD5 Value字段,回复Response/MD5-Challenge(Code=2, Id=Y, Type=4)。EAP-MD5 Extra Data属于可选扩展字段,不参与 MD5 哈希计算 ,仅用于兼容扩展,通常用于携带用户名等身份信息。 - 认证方 用本地密码执行相同运算,对比哈希结果完成校验,返回
Success。

三、802.1X协议:EAPoL
EAP 是一种通用的认证框架 ,EAP-MD5 是具体的认证方法,要在以太网、Wi-Fi 里承载 EAP 报文,就需要 EAPoL(EAP Over LAN) ,它是 802.1X 认证体系的封装协议。
1. 什么是 EAPoL
EAPoL = EAP over LAN
- 定义标准:IEEE 802.1X
- 作用:把 EAP 报文封装在以太网帧里传输
- 位置:数据链路层(二层协议)
- 典型以太类型:0x888E
- 组播地址:01-80-C2-00-00-03,802.1X 标准组播地址
一句话理解:EAP 是认证内容,EAPoL 是快递包裹,802.1X 是整个快递制度。
2. EAPoL报文格式

- PAE Ethernet Type:2字节,表示协议类型,值为0x888E。标识该以太网帧为 802.1X EAPoL 报文,交换机 / 终端通过该字段识别 EAPoL 流量。PAE (Port Access Entity):端口访问实体,是 IEEE 802.1X 认证协议中的核心概念,指设备(客户端或交换机)上执行认证算法与协议操作的实体。
- Protocol Version:1 字节,EAPoL 协议版本,用于协商协议版本确保两端实现兼容,常见取值:
0x01:802.1X-2001 ;0x02:802.1X-2004;0x03:802.1X-2010.
-
Type:1 字节,表示EAPoL数据帧类型:
-
0x00:EAPoL-Packet,承载 EAP 认证报文; -
0x01:EAPoL-Start,客户端主动发起认证; -
0x02:EAPoL-Logoff,客户端主动发起下线; -
0x03:EAPoL-Key,无线场景下用于分发加密密钥; -
0x04:EAPoL-Encapsulated-ASF-Alert,用于封装告警信息。 -
Length :2 字节,表示后续
Packet Body数据域的总字节数。 -
Packet Body:可变长度,根据 Type 不同承载不同内容:
-
Type=0x00:承载完整 EAP 报文(如 EAP-MD5、EAP-TLS); -
Type=0x01 / 0x02:数据域为空; -
Type=0x03:承载 802.11 密钥信息; -
Type=0x04:承载 ASF 告警数据。
3. EAPoL报文示例

四、802.1X认证流程
1. 802.1X认证触发
802.1X认证有以下触发方式:
- 客户端发送EAPoL-Start报文触发认证。
- 客户端发送DHCP/ARP/DHCPv6/ND或任意报文触发认证。
- 设备发送EAP-Request/Identity报文触发认证。
- 网络厂商可能支持:链路 UP 触发 (端口 link up 即启动认证)、组播 EAP 探测(设备周期性发组播 Identity 请求)
2. 802.1X认证流程
根据 EAP 报文的处理位置不同,802.1X 分为 EAP 中继/透传(Relay) 和 EAP 终结(Termination) 两种流程模式。
- EAP 中继指接入设备不解析EAP内容,只做透传,EAP报文最终在认证服务器终结。
- EAP 终结 指EAP 协议在 交换机 / AP 本地 处理、终结。
- RADIUS 协议为了支持 EAP,专门扩展了两个属性:EAP-Message (用于承载 EAP 报文) 和 Message-Authenticator (用于防篡改)。这能解释为什么老旧的 RADIUS 服务器可能不支持 EAP 中继。

EAP 中继模式,基于 EAP-MD5 认证流程如下:
- 用户打开 802.1X 客户端发起连接请求,向设备端(交换机 / AP)发送 EAPoL-Start 报文,启动认证过程。
- 设备端收到认证请求后,向客户端发送 EAP-Request/Identity 报文,要求客户端提交用户名。
- 客户端响应设备端请求,通过 EAP-Response/Identity 报文,将用户名信息发送给设备端。
- 设备端不解析 EAP 报文内容,仅将客户端发送的 EAP 报文封装在 RADIUS Access-Request 报文 中,转发至 RADIUS 认证服务器处理。
- RADIUS 服务器收到设备端转发的用户名信息后,将该信息与本地数据库中的用户名列表进行比对,找到该用户名对应的密码信息,并随机生成一个 MD5 挑战值(Challenge):① 用该挑战值对本地存储的用户密码进行加密处理;② 同时将此 MD5 挑战值通过 RADIUS Access-Challenge 报文 发送给设备端。
- 设备端将 RADIUS 服务器发送的 MD5 挑战值直接转发给客户端。
- 客户端收到由设备端传来的 MD5 挑战值后,用该挑战值对自身输入的密码进行加密处理,生成 EAP-Response/MD5-Challenge 报文,并发送给设备端。
- 设备端将此 EAP-Response/MD5-Challenge 报文封装在 RADIUS Access-Request 报文 中,发送给 RADIUS 服务器。
- RADIUS 服务器将收到的客户端加密密码信息,与本地经过相同挑战值加密运算后的密码信息进行比对;若两者一致,则判定该用户为合法用户,并向设备端发送 RADIUS Access-Accept 认证通过报文。
- 设备端收到认证通过报文后,向客户端发送 EAP-Success 认证成功报文,并将客户端接入端口改为授权状态,允许用户通过该端口访问网络。
- 用户在线期间,设备端会通过定期向客户端发送握手报文的方式,对用户的在线情况进行监测。
- 客户端收到握手报文后,向设备端发送应答报文,表明用户仍然在线;缺省情况下,若设备端发送的两次握手请求报文均未得到客户端应答,设备端将判定用户异常下线,终止用户授权。
- 客户端可主动发送 EAPoL-Logoff 报文 给设备端,发起下线请求。
- 设备端收到主动下线请求后,将端口状态从授权状态切换为未授权状态。
特殊情况:静默超时 :如果客户端直接断网(如合上笔记本盖子、断电),无法发送 Logoff 报文。此时接入设备依赖定期握手 或静默定时器来检测用户下线,释放端口授权。
EAP 终结方式与 EAP 中继方式的认证流程核心差异,关键在于 MD5 挑战值的生成主体和认证处理逻辑。
- 相同流程:客户端发送 EAPoL-Start 报文,发起认证。
- 相同流程:设备端向客户端发送 EAP-Request/Identity 报文,请求用户名。
- 相同流程:客户端回复 EAP-Response/Identity 报文,提交用户名。
- 设备端直接生成 MD5 挑战值,向客户端发送
EAP-Request/MD5 Challenge。(EAP 中继是透传给服务器由服务器生成MD5挑战值) - 客户端用收到的挑战值加密密码,生成 EAP-Response/MD5 Challenge 报文,发送给设备端。
- 设备端将客户端的 EAP 应答报文封装为 RADIUS Access-Request(CHAP-Response/MD5 Challenge) 报文,转发给 RADIUS 服务器。
- RADIUS 服务器校验密码一致后,向设备端发送 RADIUS Access-Accept(CHAP-Success) 认证通过报文。
3.EAP中继与EAP终结对比
|---------|---------------------------|--------------------------|
| 特性 | EAP 中继 (Relay) | EAP 终结 (Termination) |
| 处理位置 | 认证服务器 (RADIUS) | 接入设备 (交换机/AP) |
| 设备复杂度 | 低 (仅透传) | 高 (需解析 EAP 报文) |
| 服务器要求 | 必须支持 EAP 属性 | 仅需支持标准 RADIUS (PAP/CHAP) |
| 支持的认证方法 | 丰富 (PEAP, TLS, TTLS, MD5) | 受限 (通常仅 MD5-Challenge) |
| 应用场景 | 现代企业网主流 (安全性高) | 老旧服务器兼容或简单认证 |
五、802.1X认证配置流程
1. 认证服务器
802.1X 认证体系中,认证服务器通常采用 RADIUS 服务器。服务器侧需要完成两项核心配置:
- 添加接入设备(交换机 / AP) 。在 RADIUS 服务器上创建接入设备信息,指定接入设备的 IP 地址,用于识别合法的认证中继设备。
- 配置共享密钥(Shared Key) 。配置与接入设备之间的共享密钥,用于对 RADIUS 报文进行加密和合法性校验。
- 创建用户账号。在服务器上添加认证使用的用户名、密码,并配置对应授权策略(权限、VLAN、ACL 等),或者可以从其他帐号系统上同步用户帐号,比如AD域。
2. 接入设备配置
接入设备一般为以太网交换机 ;无线场景下则为AC 控制器。
(1)配置 RADIUS 服务器模板
指定 RADIUS 服务器地址、认证计费端口、共享密钥(与服务器一致),实现设备与服务器的互通。
radius-server template radius1 // 创建RADIUS模板,名称可自定义 radius-server authentication 10.1.1.100 1812 // 认证服务器IP+端口(1812为RADIUS认证默认端口) radius-server accounting 10.1.1.100 1813 // 计费服务器IP+端口(1813为RADIUS计费默认端口) radius-server shared-key cipher Admin@123 // 共享密钥,需与RADIUS服务器一致 radius-server user-name-format without-domain // 用户名不带域名(避免终端输入域名,简化认证)
(2)配置 AAA 认证方案
创建认证方案并绑定 RADIUS 模板,使设备使用 RADIUS 进行身份校验。
aaa // 进入AAA视图(802.1X认证依赖AAA框架) authentication-scheme auth1 // 创建认证方案,名称可自定义 authentication-mode radius // 认证方式指定为RADIUS,优先使用服务器认证 domain default // 使用设备默认域(终端接入默认归属此域,无需手动创建新域) authentication-scheme auth1 // 给默认域绑定认证方案 radius-server radius1 // 给默认域绑定RADIUS模板,关联服务器信息
若企业有多个用户组,可创建自定义域,分别绑定不同 RADIUS 模板 / 认证策略;默认域可满足大部分基础组网需求。
(3)全局与接口启用 802.1X**
全局开启 802.1X 功能,并在接入用户的接口下启用端口认证。
dot1x enable // 全局启用802.1X功能(必须开启,否则接口认证不生效)interface GigabitEthernet 0/0/1 // 终端接入接口(根据实际接口号修改) dot1x enable // 接口启用802.1X,继承全局配置 dot1x port-control auto // 自动授权模式(默认):认证通过则授权,未认证/认证失败则阻断 dot1x port-method portbased // 基于端口认证(1个端口仅允许1个终端认证通过,适合个人办公终端)
- 接口号需根据实际设备接口修改(如 GE0/0/2、GE1/0/1);
- 若需 1 个端口接入多个终端,可将 "portbased" 改为 "macbased"(基于 MAC 认证,需配合 MAC 绑定)
- 无线 AC 配置逻辑一致,仅接口改为无线 SSID 对应的 VAP 接口
3. 客户端配置
(1)Windows 自带客户端配置
- 启动系统服务:
Wired AutoConfig - 进入以太网网卡属性 → 身份验证
- 勾选启用 IEEE 802.1X 身份验证
- 选择认证方法(如 MD5-Challenge、PEAP)
- 输入 RADIUS 服务器上配置的用户名和密码
(2)安装厂商客户端
通常NAC准入解决方案厂家会提供专用 802.1X 客户端软件,实现自动认证、断线重连、在线检测以及策略下发等增强功能。
4. 哑终端接入
哑终端(如打印机、IP 电话、监控摄像头等)无 802.1X 客户端,无法主动发起认证,因此通常采用 MAC 地址认证(属于 802.1X 扩展认证方式),核心是通过终端 MAC 地址作为身份凭证,无需手动输入账号密码。
(1)RADIUS 服务器配置
- 录入哑终端的 MAC 地址 (格式统一,如
aa-bb-cc-dd-ee-ff或aabbccddeeff,需与终端实际 MAC 一致); - 将 MAC 地址配置为 "用户名 + 密码"(通常用户名和密码相同,均为终端 MAC);
- 配置对应授权策略(如允许接入、绑定固定 VLAN 等),确保哑终端认证通过后可获取对应网络权限。
(2)交换机配置
在哑终端接入的接口上,启用 MAC 认证(可与 802.1X 共存,优先匹配 MAC 认证):
interface GigabitEthernet 0/0/2 // 哑终端接入接口 dot1x enable // 保持全局802.1X启用,兼容MAC认证 dot1x port-control auto dot1x mac-auth enable // 启用MAC地址认证 dot1x mac-auth user-name-format mac-address // 以MAC地址作为用户名格式
六、802.1X的高级认证
1. Guest VLAN
-
未认证、无客户端、认证超时的终端,自动进入访客 VLAN,通常只放通:客户端下载页面,安全软件更新。
-
由接入设备本地控制,无需服务器参与。
interface GigabitEthernet 0/0/1 dot1x guest-vlan 10
2. 动态 VLAN 下发
-
同一个端口,不同用户认证通过后,自动进入不同 VLAN:如不同的部门分配不同的VLAN。
-
使用 RFC 标准 RADIUS 属性,华为、华三、Cisco等大部分厂商通用。① Tunnel-Type = VLAN;② Tunnel-Medium-Type = 802;③ Tunnel-Private-Group-ID = VLAN 编号
interface GigabitEthernet 0/0/1 dot1x vlan-assignment enable port link-type hybrid port hybrid tagged vlan 10 20 30 # 允许下发的VLAN
3. Restrict VLAN
-
认证失败多次的终端,自动加入低权限限制 VLAN。
-
由交换机根据认证失败次数本地控制。
interface GigabitEthernet 0/0/1 dot1x restrict-vlan 20 dot1x quiet-times 3 # 失败3次后进入 Restrict VLAN
4. Critical VLAN
-
服务器逃生 VLAN,RADIUS 服务器不可达时,端口自动加入逃生 VLAN,保障基本网络连通。
-
由交换机本地检测触发,无需服务器配置。
interface GigabitEthernet 1/0/1 dot1x critical-vlan
5. 安全策略
802.1X 仅解决了 "你是谁" 的身份识别问题,而现代企业终端准入安全策略(如华为 NAC、H3C EAD),核心在于实现 "身份认证 + 终端健康检查 + 动态权限管控" 的完整闭环。其架构采用 "双通道" 模式,综合管控策略如下:
- 网络准入认证 :终端接入后,首先通过 标准 802.1X + RADIUS 通道 完成身份认证。此时,交换机仅授予终端最小通行权限(如仅允许访问补丁服务器或隔离区 VLAN)。
- 私有安全通道 :身份认证通过后,客户端利用获取的 IP 地址,与服务器建立一条独立的加密通信链路 (通常为 HTTPS/TCP 私有通道),专门用于终端安全检查与策略交互,此过程不走 RADIUS 协议。
- 终端安全检查:客户端通过该独立通道执行本地安全检查(操作系统补丁、杀毒软件状态、注册表、进程、违规软件等),并将检查结果上报给服务器。
- 终端策略下发 :服务器通过私有加密通道,直接向客户端下发终端级控制策略,包括:终端防火墙配置、网卡 ACL、必须安装/禁止安装的软件清单、强制补丁更新、病毒库升级等。
- 网络策略下发 :服务器综合 "身份" 与 "终端合规性" 结果,通过 RADIUS 协议(通常通过 CoA 机制 ,服务器向交换机发送包含
vlan id、ACL等授权信息的 CoA-Request 指令)通知交换机调整权限:合规 则下发正式业务 VLAN,不合规则下发隔离 VLAN、重定向 URL 等。
CoA(Change of Authorization,授权变更)机制 :默认使用 UDP 3799 端口,服务器依据 RFC 5176 向交换机主动发送 CoA-Request,携带 VLAN、ACL 等信息,实现终端网络权限的动态切换。
通常 NAC 终端准入解决方案将安全管控划分为两个独立层面:
- RADIUS 标准通道(网络平面 ):负责**"管网络"**。核心动作:802.1X 认证、端口状态控制、动态 VLAN 切换、ACL 下发、带宽限速、强制下线。
- 私有加密通道(终端平面 ):负责**"管终端"**。核心动作:建立 HTTPS 会话、终端环境扫描、合规性上报、软件分发、主机防火墙/ACL 配置、安全加固。
