一、802.1x是什么

IEEE 802.1X,全称为基于端口的网络访问控制(Port-Based Network Access Control),是 IEEE 制定的、工作在 数据链路层(二层) 的网络接入认证标准。

该协议最初由 IEEE 802 LAN/MAN 委员会提出,用于解决无线局域网的接入安全问题;后续被扩展应用于以太网,成为通用的局域网端口接入控制机制,核心是在端口层面拦截未授权设备,仅允许通过身份认证的终端访问网络,以此解决以太网环境下的接入认证与安全管控问题。

1. C/S架构

802.1x认证系统采用经典的Client/Server(客户端/服务器)结构: 客户端 + 接入设备 + 认证服务器

  1. 客户端(Supplicant):需接入网络的终端设备(PC、手机、IoT),需安装支持 802.1X 的客户端软件,携带身份凭证(账号 / 密码 / 证书)主动发起认证请求。
  2. 接入设备(Authenticator):支持 802.1X 的网络设备,如以太网交换机(有线)或无线 AP。作为客户端与认证服务器之间的中继,在认证通过前限制端口权限,仅放行认证流量。
  3. 认证服务器(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 启动认证会话。

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

4. EAP-MD5 交互流程

EAP-MD5(EAP-MD5-Challenge, Type 4) 是 RFC 3748(原 RFC 2284) 定义的最基础、最早标准化的 EAP 认证方法,基于 挑战 - 应答(Challenge-Response) 模式,用 MD5 哈希做单向客户端认证。

  1. 认证启动EAP-Request
  2. 身份响应EAP-Response
  3. 挑战下发。认证方发送 Request/MD5-ChallengeCode=1, Id=Y, Type=4),携带 16 字节随机挑战值EAP-MD5 Value
  4. 挑战回复。客户端使用 Identifier(EAP 报文 ID 号)、用户密码、随机 Challenge 进行 MD5 运算,生成 16 字节的应答哈希值,填入 Response 中的 EAP-MD5 Value 字段,回复 Response/MD5-ChallengeCode=2, Id=Y, Type=4)。EAP-MD5 Extra Data 属于可选扩展字段,不参与 MD5 哈希计算,仅用于兼容扩展,通常用于携带用户名等身份信息。
  5. 认证方用本地密码执行相同运算,对比哈希结果完成校验,返回 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 认证流程如下:

  1. 用户打开 802.1X 客户端发起连接请求,向设备端(交换机 / AP)发送 EAPoL-Start 报文,启动认证过程。
  2. 设备端收到认证请求后,向客户端发送 EAP-Request/Identity 报文,要求客户端提交用户名。
  3. 客户端响应设备端请求,通过 EAP-Response/Identity 报文,将用户名信息发送给设备端。
  4. 设备端不解析 EAP 报文内容,仅将客户端发送的 EAP 报文封装在 RADIUS Access-Request 报文 中,转发至 RADIUS 认证服务器处理。
  5. RADIUS 服务器收到设备端转发的用户名信息后,将该信息与本地数据库中的用户名列表进行比对,找到该用户名对应的密码信息,并随机生成一个 MD5 挑战值(Challenge):① 用该挑战值对本地存储的用户密码进行加密处理;② 同时将此 MD5 挑战值通过 RADIUS Access-Challenge 报文 发送给设备端。
  6. 设备端将 RADIUS 服务器发送的 MD5 挑战值直接转发给客户端。
  7. 客户端收到由设备端传来的 MD5 挑战值后,用该挑战值对自身输入的密码进行加密处理,生成 EAP-Response/MD5-Challenge 报文,并发送给设备端。
  8. 设备端将此 EAP-Response/MD5-Challenge 报文封装在 RADIUS Access-Request 报文 中,发送给 RADIUS 服务器。
  9. RADIUS 服务器将收到的客户端加密密码信息,与本地经过相同挑战值加密运算后的密码信息进行比对;若两者一致,则判定该用户为合法用户,并向设备端发送 RADIUS Access-Accept 认证通过报文
  10. 设备端收到认证通过报文后,向客户端发送 EAP-Success 认证成功报文,并将客户端接入端口改为授权状态,允许用户通过该端口访问网络。
  11. 用户在线期间,设备端会通过定期向客户端发送握手报文的方式,对用户的在线情况进行监测。
  12. 客户端收到握手报文后,向设备端发送应答报文,表明用户仍然在线;缺省情况下,若设备端发送的两次握手请求报文均未得到客户端应答,设备端将判定用户异常下线,终止用户授权。
  13. 客户端可主动发送 EAPoL-Logoff 报文 给设备端,发起下线请求。
  14. 设备端收到主动下线请求后,将端口状态从授权状态切换为未授权状态。

特殊情况:静默超时:如果客户端直接断网(如合上笔记本盖子、断电),无法发送 Logoff 报文。此时接入设备依赖定期握手静默定时器来检测用户下线,释放端口授权。

EAP 终结方式与 EAP 中继方式的认证流程核心差异,关键在于 MD5 挑战值的生成主体和认证处理逻辑

  1. 相同流程:客户端发送 EAPoL-Start 报文,发起认证。
  2. 相同流程:设备端向客户端发送 EAP-Request/Identity 报文,请求用户名。
  3. 相同流程:客户端回复 EAP-Response/Identity 报文,提交用户名。
  4. 设备端直接生成 MD5 挑战值,向客户端发送 EAP-Request/MD5 Challenge。(EAP 中继是透传给服务器由服务器生成MD5挑战值)
  5. 客户端用收到的挑战值加密密码,生成 EAP-Response/MD5 Challenge 报文,发送给设备端。
  6. 设备端将客户端的 EAP 应答报文封装为 RADIUS Access-Request(CHAP-Response/MD5 Challenge) 报文,转发给 RADIUS 服务器。
  7. 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 服务器。服务器侧需要完成两项核心配置:

  1. 添加接入设备(交换机 / AP)。在 RADIUS 服务器上创建接入设备信息,指定接入设备的 IP 地址,用于识别合法的认证中继设备。
  2. 配置共享密钥(Shared Key)。配置与接入设备之间的共享密钥,用于对 RADIUS 报文进行加密和合法性校验。
  3. 创建用户账号。在服务器上添加认证使用的用户名、密码,并配置对应授权策略(权限、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个终端认证通过,适合个人办公终端)
  1. 接口号需根据实际设备接口修改(如 GE0/0/2、GE1/0/1);
  2. 若需 1 个端口接入多个终端,可将 “portbased” 改为 “macbased”(基于 MAC 认证,需配合 MAC 绑定)
  3. 无线 AC 配置逻辑一致,仅接口改为无线 SSID 对应的 VAP 接口

3. 客户端配置

(1)Windows 自带客户端配置

  1. 启动系统服务:Wired AutoConfig
  2. 进入以太网网卡属性 → 身份验证
  3. 勾选启用 IEEE 802.1X 身份验证
  4. 选择认证方法(如 MD5-Challenge、PEAP)
  5. 输入 RADIUS 服务器上配置的用户名和密码

(2)安装厂商客户端

通常NAC准入解决方案厂家会提供专用 802.1X 客户端软件,实现自动认证、断线重连、在线检测以及策略下发等增强功能。

4. 哑终端接入

哑终端(如打印机、IP 电话、监控摄像头等)无 802.1X 客户端,无法主动发起认证,因此通常采用 MAC 地址认证(属于 802.1X 扩展认证方式),核心是通过终端 MAC 地址作为身份凭证,无需手动输入账号密码。

(1)RADIUS 服务器配置

  1. 录入哑终端的 MAC 地址(格式统一,如 aa-bb-cc-dd-ee-ff 或 aabbccddeeff,需与终端实际 MAC 一致);
  2. 将 MAC 地址配置为 “用户名 + 密码”(通常用户名和密码相同,均为终端 MAC);
  3. 配置对应授权策略(如允许接入、绑定固定 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

  1. 未认证、无客户端、认证超时的终端,自动进入访客 VLAN,通常只放通:客户端下载页面,安全软件更新。
  2. 由接入设备本地控制,无需服务器参与。
interface GigabitEthernet 0/0/1 dot1x guest-vlan 10

2. 动态 VLAN 下发

  1. 同一个端口,不同用户认证通过后,自动进入不同 VLAN:如不同的部门分配不同的VLAN。
  2. 使用 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

  1. 认证失败多次的终端,自动加入低权限限制 VLAN。
  2. 由交换机根据认证失败次数本地控制。
interface GigabitEthernet 0/0/1 dot1x restrict-vlan 20 dot1x quiet-times 3  # 失败3次后进入 Restrict VLAN

4. Critical VLAN

  1. 服务器逃生 VLAN,RADIUS 服务器不可达时,端口自动加入逃生 VLAN,保障基本网络连通。
  2. 由交换机本地检测触发,无需服务器配置。
interface GigabitEthernet 1/0/1 dot1x critical-vlan

5. 安全策略

802.1X 仅解决了 “你是谁” 的身份识别问题,而现代企业终端准入安全策略(如华为 ​​NAC​​、H3C EAD),核心在于实现 “身份认证 + 终端健康检查 + 动态权限管控” 的完整闭环。其架构采用 “双通道” 模式,综合管控策略如下:

  1. 网络准入认证:终端接入后,首先通过 标准 802.1X + RADIUS 通道 完成身份认证。此时,交换机仅授予终端最小通行权限(如仅允许访问补丁服务器或隔离区 VLAN)。
  2. 私有安全通道:身份认证通过后,客户端利用获取的 IP 地址,与服务器建立一条独立的加密通信链路(通常为 HTTPS/TCP 私有通道),专门用于终端安全检查与策略交互,此过程不走 RADIUS 协议
  3. 终端安全检查:客户端通过该独立通道执行本地安全检查(操作系统补丁、杀毒软件状态、注册表、进程、违规软件等),并将检查结果上报给服务器。
  4. 终端策略下发:服务器通过私有加密通道,直接向客户端下发终端级控制策略,包括:终端防火墙配置、网卡 ACL、必须安装/禁止安装的软件清单、强制补丁更新、病毒库升级等。
  5. 网络策略下发:服务器综合 “身份” 与 “终端合规性” 结果,通过 RADIUS 协议(通常通过 CoA 机制,服务器向交换机发送包含 vlan idACL 等授权信息的 CoA-Request 指令)通知交换机调整权限:合规则下发正式业务 VLAN,不合规则下发隔离 VLAN、重定向 URL 等。

CoA(Change of Authorization,授权变更)机制:默认使用 UDP 3799 端口,服务器依据 RFC 5176 向交换机主动发送 CoA-Request,携带 VLAN、ACL 等信息,实现终端网络权限的动态切换。

通常 NAC 终端准入解决方案将安全管控划分为两个独立层面:

  1. RADIUS 标准通道(网络平面):负责“管网络”。核心动作:802.1X 认证、端口状态控制、动态 VLAN 切换、ACL 下发、带宽限速、强制下线。
  2. 私有加密通道(终端平面):负责“管终端”。核心动作:建立 HTTPS 会话、终端环境扫描、合规性上报、软件分发、主机防火墙/ACL 配置、安全加固。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐