24-MACSec配置
本章节下载: 24-MACSec配置 (499.10 KB)
目 录
MACsec(Media Access Control Security,MAC安全)定义了基于IEEE 802局域网络的数据安全通信的方法。MACsec可为用户提供安全的MAC层数据发送和接收服务,包括用户数据加密、数据帧完整性检查及数据源真实性校验。
CA(Connectivity Association,安全连通集)是两个或两个以上使用相同密钥和密钥算法套件的成员的集合。CA成员称为CA的参与者。CA参与者使用的密钥称为CAK。CAK分为以下两种类型:
· 成对CAK(Pairwise CAK),即由两个成员组成CA,它们所拥有的CAK称为成对CAK。
· 成组CAK(Group CAK),即由三个或三个以上成员组成CA,它们所拥有的CAK称为成组CAK。
CAK可以是802.1X认证过程中生成的CAK,也可以是用户配置的预共享密钥(PSK,Pre-Shared Key)。如两者同时存在,优先使用用户配置的预共享密钥。
目前,MACsec主要应用在点对点组网的环境中,所以主要使用成对CAK。
SA(Security Association,安全联盟)是CA参与者之间用于建立安全通道的安全参数集合,包括对数据进行加密算法套件、进行完整性检查的密钥等。
一个安全通道中可包含多个SA,每一个SA拥有一个不同的密钥,这个密钥称为SAK。SAK由CAK根据算法推导产生,用于加密安全通道间传输的数据。
MKA对每一个SAK可加密的报文数有所限制。当使用某SAK加密的报文超过限定的数目后,该SAK会被刷新。例如,在10Gbps的链路上,SAK最快300秒刷新一次。
MACsec安全通道建立后,两端设备会通过交互MKA协议报文确认连接的存在。
当设备收到对端的MKA协议报文后,启动MKA会话超时定时器。如果设备在该定时器设置的超时时间(缺省为6秒)内未再次收到对端的MKA协议报文,则认为该连接已不安全,清除建立的安全会话。
开启了MACsec功能且启动了MACsec保护的端口发送数据帧时,需要对它进行加密;开启了MACsec功能的端口收到经过MACsec封装的数据帧时,需要对它进行解密。加解密所使用的密钥是通过MKA协议协商而来的。
MACsec封装的数据帧会使用CAK推导出的密钥进行ICV(完整性校验值,Integrity Check Value)计算,并附加在MACsec报文的尾部。设备收到MACsec报文时,同样使用MKA协商出的密钥进行完整性检验值计算,然后将计算结果与报文中携带的ICV进行比较。如果比较结果相同,则表示报文合法;如果比较结果不相同,将依据配置的校验模式,决定是否丢弃报文。
MACsec有如下几种校验模式:
· check:检查模式,表示只作校验,但不丢弃非法数据帧。
· disabled:不对接收数据帧进行MACsec校验。
· strict:严格校验模式,表示校验接收数据帧,并丢弃非法数据帧。
MACsec封装的数据帧在网络中传输时,可能出现报文顺序的重排。MACsec重播保护机制允许数据帧有一定的乱序,这些乱序的报文序号在用户指定的窗口范围内可以被合法接收,超出窗口的报文会被丢弃。
MACsec包括两种典型组网模式:面向客户端模式和面向设备模式。
如图1-1所示,面向客户端模式用于保护客户端和设备之间的数据帧。
该模式包括以下三个组成元素:
· 客户端
客户端可以是请求接入局域网的用户终端,也可以是支持802.1X Client功能的设备,由局域网中的接入设备对其进行认证,并执行MACsec密钥协商和报文加密功能。
· 接入设备
接入设备控制客户端的接入,通过与认证服务器的交互,对所连接的客户端进行802.1X认证,并执行MACsec密钥协商和报文加密功能。
· 认证服务器
认证服务器用于对客户端进行认证、授权和计费,通常为RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)服务器。客户端通过认证后,认证服务器为客户端和接入设备分发密钥。
面向客户端模式中,接入设备上使能MKA协议的端口必须采用基于端口的802.1X认证方式,且必须配置802.1X认证方法为EAP中继方式。
如图1-2所示,面向设备模式用于保护设备之间的数据帧。
该模式下,互连的两台设备直接使用通过命令行配置的预共享密钥进行MACsec密钥协商和报文加密功能。
如图1-3所示,在客户端和接入设备之间建立安全会话前,客户端首先需要在接入设备的端口上进行802.1X认证。通过认证之后,客户端将开始与接入设备进行会话协商、会话的建立和维护过程。MACsec协议的交互过程主要分为四个阶段:身份认证、会话协商、安全通信和会话终止。
图1-3 面向客户端模式的MACsec协议交互过程
(2) 身份认证
在客户端和接入设备之间建立安全会话前,客户端首先需要在接入设备的端口上进行802.1X认证。客户端通过认证后,RADIUS服务器会把生成的CAK分发给客户端和接入设备。
(3) 会话协商
客户端和接入设备有了可用的CAK,使用EAPOL-MKA报文开始协商会话。在协商会话的过程中,客户端和接入设备使用MKA协议向对方通告自身能力和建立会话所需的各种参数(如优先级、是否期望加密会话等)。会话协商时,接入设备会被自动选举为密钥服务器(Key Server)。密钥服务器使用CAK派生出用于加密数据报文的SAK,并把SAK分发给客户端。
(4) 安全通信
会话协商完成后,客户端和接入设备有了可用的SAK,并使用SAK加密数据报文,开始加密通信。
(5) 会话终止
¡ 当接入设备收到802.1X客户端的下线请求消息后,立即清除该用户对应的安全会话,避免一个未认证的客户端使用端口上前一个已认证客户端建立的安全会话接入网络。
¡ MKA会话超时定时器(固定时间6秒)超时后,本端仍然没有收到对端的MKA协议报文,则清除该用户对应的安全会话。
如图1-4所示,设备之间使用配置的预共享密钥开始协商会话,会话协商结束后开始安全通信。MACsec协议的交互过程主要分为三个阶段:会话协商、安全通信和会话终止。
图1-4 面向设备模式的MACsec协议交互过程
(1) 会话协商
设备之间使用配置的预共享密钥(PSK,Pre-Shared Key)作为CAK,通过EAPOL-MKA报文开始协商会话。设备间优先级较高的端口将被选举为密钥服务器(Key Server),负责生成和分发SAK,设备之间通过MKA协议向对方通告自身能力和建立会话所需的各种参数(如优先级、是否期望加密会话等)。
(2) 安全通信
会话协商完成后,各设备有了可用的SAK,并使用SAK加密数据报文,开始加密通信。
(3) 会话终止
¡ 当设备收到对方的下线请求消息后,立即清除该用户对应的安全会话。
¡ MKA会话超时定时器(缺省为6秒,可配置)超时后,本端仍然没有收到对端的MKA协议报文,则清除该用户对应的安全会话。
与MACsec相关的协议规范有:
· IEEE 802.1X-2010:Port-Based Network Access Control
· IEEE 802.1AE-2006:Media Access Control (MAC) Security
· 仅SF系列接口板支持MACsec功能。
· display device verbose命令显示信息中的Switch chip version字段显示为000的SF系列接口板不支持MACsec功能。
MACsec配置任务如下:
(1) 开启MACsec协议
(2) 配置MACsec保护
(3) 配置MACsec使用的加密套件
仅面向设备模式下需要配置加密套件。
(5) 配置预共享密钥
面向设备模式下必须配置预共享密钥,面向客户端模式下不建议配置预共享密钥。
(6) (可选)配置MKA密钥服务器的优先级
(7) (可选)配置MKA会话超时时间
仅面向设备模式下需要配置MKA会话超时时间。
(8) (可选)配置MACsec属性参数
请选择以下一项任务进行配置:
(9) (可选)配置MACsec维护模式
(10) (可选)配置MKA会话的日志信息功能
MKA协议负责接口上MACsec安全通道的建立和管理,以及MACsec所使用密钥的协商。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启MKA协议。
mka enable
缺省情况下,接口上的MKA协议处于关闭状态。
设备期望进行MACsec保护表达了本端对发送的数据帧进行MACsec保护的意愿,但最终本端发送的数据帧是否启用MACsec保护,要由密钥服务器来决策。决策策略是:密钥服务器和它的对端都支持MACsec特性,且至少有一端期望进行MACsec保护。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MACsec保护。
macsec desire
缺省情况下,接口上不需要对发送的数据帧进行MACsec保护。
MACsec使用的加密套件是一组用来加密、校验和恢复被保护数据帧的算法,目前支持的加密套件为GCM-AES-128、GCM-AES-256、GCM-AES-XPN-128和GCM-AES-XPN-256。
仅面向设备模式下需要配置MACsec加密套件,且配置该功能的端口上不能开启802.1X功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MACsec使用的加密套件。
macsec cipher-suite { gcm-aes-128 | gcm-aes-256 | gcm-aes-xpn-128 | gcm-aes-xpn-256 }
缺省情况下,MACsec使用的加密套件为GCM-AES-128。
SCI(Secure Channel Identifier,安全通道标识)由端口MAC地址和端口ID组成,用来标识报文来源。
由于MACsec功能实现可能存在差异,当互连的两台不同款型的设备进行MACsec功能配置时,如果一端MACsec数据帧的SecTAG里携带SCI,另一端MACsec数据帧的SecTAG里不携带SCI,那么将导致两设备间的数据流量不通。通过配置本功能,确保建立MACsec会话的两端设备关于是否携带SCI的配置保持一致。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MACsec加密数据帧头包含SCI。
macsec include-sci
缺省情况下,加密数据帧的Sec TAG里面携带SCI。
在面向设备模式中,两端设备协商MKA会话使用的CAK通过预共享密钥直接配置。为了保证设备间的MKA会话可以正常建立,必须保证两端设备的接口上配置的预共享密钥一致。
本端设备和对端设备建立MACsec连接时,请保证只有建立连接的两个端口上配置相同的CKN,两端设备的其它端口上都不能配置与此相同的CKN,以免一个端口学习到多个邻居而导致MACsec功能不能正常建立。
在面向客户端模式中,客户端和接入设备的端口使用的CAK由802.1X认证过程中生成,且其优先级低于端口配置的预共享密钥。如果在接入设备的端口配置了预共享密钥,则802.1X认证过程生成的CAK将会被弃用,导致MKA会话建立失败,因此不能在该模式下配置预共享密钥。
MACsec使用不同的加密算法套件时,CKN、CAK的取值长度有所不同,具体要求如下:
· GCM-AES-128或者GCM-AES-XPN-128加密套件要求所使用的CKN、CAK的长度都必须为32个字符。在运行GCM-AES-128或者GCM-AES-XPN-128加密套件时,对于长度不足32个字符的CKN、CAK,系统会自动在其后补零,使其满足32个字符;对于长度大于32个字符的CKN、CAK,系统只获取其前32个字符。
· GCM-AES-256或者GCM-AES-XPN-256加密套件要求使用的CKN、CAK的长度都必须为64个字符。在运行GCM-AES-256或者GCM-AES-XPN-256加密套件时,对于长度不足64个字符的CKN、CAK,系统会自动在其后补零,使其满足64个字符。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置预共享密钥。
mka psk ckn name cak { cipher | simple } string
缺省情况下,接口不存在MKA预共享密钥。
配置MKA密钥服务器的优先级时,请遵循以下配置限制和指导:
· 在面向客户端模式中,接入设备的端口被自动选举为密钥服务器,不需要配置MKA密钥服务器的优先级。
· 在面向设备模式中,MKA密钥服务器优先级较高(值较小)的设备端口将被选举为密钥服务器。如果设备端口的优先级相同,则比较设备端口的SCI(MAC地址+端口的ID),SCI值较小的端口将被选举为密钥服务器。
· 优先级为255的设备端口不能被选举为密钥服务器。相互连接的端口不能都配置优先级为255,否则MKA会话选举不出密钥服务器。
· 支持MACsec功能的SF系列接口板仅支持作为密钥服务器,不支持作为密钥客户端。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MKA密钥服务器的优先级。
mka priority priority-value
缺省情况下,MKA密钥服务器的优先级为0。
仅面向设备模式下需要配置本功能,且两端设备上配置的会话超时时间必须相同。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MKA会话超时时间。
mka timer mka-life seconds
缺省情况下,MKA会话超时时间为6秒。
MACsec有如下属性参数:
· MACsec加密偏移量:从用户数据帧帧头开始偏移多少字节后开始加密,协议提供0、30、50三个偏移量供用户使用。
· MACsec重播保护功能:可以防止本端收到乱序或重复的数据帧。
· MACsec校验:接口收到报文后,计算报文的ICV,与报文尾部的ICV比较,并根据校验模式,决定报文是否丢弃。
MACsec属性参数既可以在接口上配置,也可以通过MKA策略配置。当需要在多个接口上配置同样的属性参数,则可以采用配置和应用MKA策略实现。
如果既在接口上直接配置MACsec属性参数,又在接口上应用了MKA策略,则后执行的配置参数生效。
当MACsec使用的加密套件为GCM-AES-XPN-128或GCM-AES-XPN-256时,加密偏移量始终为0。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口上的MACsec加密偏移量。
macsec confidentiality-offset offset-value
缺省情况下,接口上的MACsec加密偏移量为0,表示整个数据帧都要加密。
如果本端不是密钥服务器,则应用密钥服务器发布的加密偏移量;如果本端是密钥服务器,则应用本端配置的加密偏移量,并将该值发布给对端。
(4) 为接口接收到的数据帧配置MACsec重播保护功能。
macsec replay-protection enable
缺省情况下,接口上的MACsec重播保护功能处于开启状态。
b. 配置接口上的MACsec重播保护窗口大小。
macsec replay-protection window-size size-value
缺省情况下,接口上的MACsec重播保护窗口大小为0个数据帧,表示不允许接收乱序或重复的数据帧。
配置的重播保护窗口大小仅在重播保护功能开启的情况下有效。
macsec validation mode { check | disabled | strict }
缺省情况下,接口上的MACsec校验模式是check。
在网络中部署支持MACsec的设备时,为避免两端因密钥协商不一致而造成流量丢失,建议两端均先配置为check模式,在密钥协商成功后,再配置为strict模式。
参数 |
说明 |
check |
检查模式,表示只作校验,但不丢弃非法数据帧 |
disabled |
不对接收数据帧进行MACsec校验 |
strict |
严格校验模式,表示校验接收数据帧,并丢弃非法数据帧 |
一个MKA策略可应用于一个或多个接口。在接口上应用了MKA策略时,需要注意的是:
· 接口上应用的MKA策略中配置的MACsec属性参数(加密偏移、校验模式、重播保护功能和重播保护窗口大小)会覆盖接口上配置的对应的MACsec属性参数。
· 当修改应用到接口上的MKA策略配置时,接口上的相应的配置也会改变。
· 取消接口上应用的指定MKA策略时,接口上的加密偏移、校验模式、重播保护功能和重播保护窗口大小都恢复为缺省情况。
· 当接口应用了一个不存在的MKA策略时,该接口会自动应用缺省MKA策略default-policy。之后,如果该策略被创建,则接口会自动使用配置的MKA策略。
· 当MACsec使用的加密套件为GCM-AES-XPN-128或GCM-AES-XPN-256时,加密偏移量始终为0。
(1) 进入系统视图。
system-view
(2) 创建一个MKA策略,并进入MKA策略视图。
mka policy policy-name
缺省情况下,存在一个缺省的MKA策略,名称为default-policy ,参数取值均为接口上对应的缺省值,且该策略不能被删除和修改。
系统中可配置多个MKA策略。
(3) 配置MACsec加密偏移量。
confidentiality-offset offset-value
缺省情况下,加密偏移为0,表示整个数据帧都要加密。
如果本端不是密钥服务器,则应用密钥服务器发布的加密偏移量;如果本端是密钥服务器,则应用本端配置的加密偏移量,并将该值发布给对端。
a. 开启MACsec重播保护功能。
replay-protection enable
缺省情况下,接口上的MACsec重播保护功能处于开启状态。
b. 配置MACsec重播保护窗口大小。
replay-protection window-size size-value
缺省情况下,接口上的MACsec重播保护窗口大小为0个数据帧,表示不允许接收乱序或重复的数据帧。
(5) 配置MACsec校验模式。
validation mode { check | disabled | strict }
缺省情况下,MACsec校验模式是check。
参数 |
说明 |
check |
检查模式,表示只作校验,但不丢弃非法数据帧 |
disabled |
不对接收数据帧进行MACsec校验 |
strict |
严格校验模式,表示校验接收数据帧,并丢弃非法数据帧 |
a. 退回系统视图。
quit
b. 进入接口视图
interface interface-type interface-number
c. 在接口上应用MKA策略。
mka apply policy policy-name
缺省情况下,接口上没有应用MKA策略。
当设备接口配置MACsec功能后,与对端未建立MKA会话前,为保证数据的安全性,接口将暂时处于block状态,此时数据流量不通,但仍可以交互MKA协议报文。
在由控制器自动下发配置的组网环境中,当控制器下串联两台设备且两台设备间需要建立MKA会话时,如果两台设备相连的接口上先配置了MACsec功能,则接口将暂时处于block状态,导致控制器无法给远端设备下发配置。此时会选择在配置了MACsec功能的接口上开启本功能,确保无论是否已经建立了MKA会话,接口均处于unblock状态,两端设备间流量通畅,远端设备能正常接收控制器下发的配置。
当接口上收到来自相同SCI(MAC地址+端口ID)的攻击报文时,本功能不会生效,接口仍然保持block状态。
开启本功能后,只有收到对端的MKA协议报文后本端才会下发自身的SCI信息。
在开启或关闭本功能之前,均需要先确保该接口上的MKA协议处于关闭状态。
开启本功能后,接口在极短时间内会发生震荡,接口状态可能会被标识为Down,导致MKA协议报文无法交互。因此开启本功能前,需要通过link-delay down命令推迟将接口Down状态上报CPU。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启MACsec维护模式。
macsec maintenance-mode enable
缺省情况下,MACsec维护模式处于关闭状态。
在未建立MKA会话前开启本功能,将降低数据报文的安全性,请谨慎操作。
MKA会话的日志信息是为了满足网络管理员维护的需要,对用户的接入信息(如对端老化、SAK更新)进行记录。设备生成的MKA会话的日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
为了防止设备输出过多的MKA会话的日志信息,一般情况下建议关闭此功能。
(1) 进入系统视图。
system-view
(2) 开启MKA会话的日志信息功能。
macsec mka-session log enable
缺省情况下,MKA会话的日志信息功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后MACsec的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重建会话和清除统计信息。
表1-1 MACsec显示和维护
操作 |
命令 |
显示接口上的MACsec运行信息 |
display macsec [ interface interface-type interface-number ] [ verbose ] |
显示MKA策略相关信息 |
display mka { default-policy | policy [ name policy-name ] } |
显示MKA会话信息 |
display mka session [ interface interface-type interface-number | local-sci sci-id ] [ verbose ] |
显示接口上的MKA统计信息 |
display mka statistics [ interface interface-type interface-number ] |
重建接口上的MKA会话 |
reset mka session [ interface interface-type interface-number ] |
清除接口上的MKA统计信息 |
reset mka statistics [ interface interface-type interface-number ] |
用户通过Device的端口Ten-GigabitEthernet3/0/1接入网络,认证服务器为RADIUS服务器。设备对该端口接入的用户进行802.1X认证以控制其访问外网,为保证数据帧传输的安全性,有以下具体要求:
· 要求用户和Device之间的数据通信进行MACsec保护,且加密报文的密钥通过MKA协议协商获得。
· MACsec加密偏移量为30字节。
· 开启MACsec重播保护功能,配置重播保护窗口大小为100。
· 配置严格的MACsec校验。
图1-5 面向客户端模式MACsec配置组网图(主机作为客户端)
下述配置步骤中包含了若干AAA/RADIUS协议的配置命令,关于这些命令的详细介绍请参见“安全命令参考”中的“AAA”。
(1) 配置各接口的IP地址。(略)
(2) 完成RADIUS服务器的配置,添加用户账户,保证用户的认证/授权/计费功能正常运行。(略)
(3) 配置AAA
<Device> system-view
# 配置RADIUS方案radius1。具体参数取值请以服务器上的实际情况为准,此处仅为示例。
[Device] radius scheme radius1
[Device-radius-radius1] primary authentication 10.1.1.1
[Device-radius-radius1] primary accounting 10.1.1.1
[Device-radius-radius1] key authentication simple name
[Device-radius-radius1] key accounting simple name
[Device-radius-radius1] user-name-format without-domain
[Device-radius-radius1] quit
# 配置802.1X用户使用认证域bbb。
[Device] domain bbb
[Device-isp-bbb] authentication lan-access radius-scheme radius1
[Device-isp-bbb] authorization lan-access radius-scheme radius1
[Device-isp-bbb] accounting lan-access radius-scheme radius1
[Device-isp-bbb] quit
(4) 配置802.1X
# 开启端口Ten-GigabitEthernet3/0/1的802.1X。
[Device] interface ten-gigabitethernet 3/0/1
[Device-Ten-GigabitEthernet3/0/1] dot1x
# 配置端口的802.1X接入控制方式为portbased。
[Device-Ten-GigabitEthernet3/0/1] dot1x port-method portbased
# 指定端口上接入的802.1X用户使用强制认证域bbb。
[Device-Ten-GigabitEthernet3/0/1] dot1x mandatory-domain bbb
[Device-Ten-GigabitEthernet3/0/1] quit
# 开启全局802.1X,启用EAP中继的认证方法。
[Device] dot1x
[Device] dot1x authentication-method eap
(5) 配置MACsec
# 创建一个名称为pls的MKA策略。
[Device] mka policy pls
# 配置MACsec加密偏移量为30。
[Device-mka-policy-pls] confidentiality-offset 30
# 开启MACsec重播保护功能。
[Device-mka-policy-pls] replay-protection enable
# 配置MACsec重播保护窗口大小为100。
[Device-mka-policy-pls] replay-protection window-size 100
# 配置严格的MACsec校验模式。
[Device-mka-policy-pls] validation mode strict
[Device-mka-policy-pls] quit
# 在端口Ten-GigabitEthernet3/0/1上应用MKA策略。
[Device] interface ten-gigabitethernet 3/0/1
[Device-Ten-GigabitEthernet3/0/1] mka apply policy pls
# 在端口Ten-GigabitEthernet3/0/1上配置期望进行MACsec保护及开启MKA协议。
[Device-Ten-GigabitEthernet3/0/1] macsec desire
[Device-Ten-GigabitEthernet3/0/1] mka enable
[Device-Ten-GigabitEthernet3/0/1] quit
配置完成后,用户可以使用display命令查看设备上MACsec的运行情况。
# 查看Device上的MACsec运行信息。
[Device] display macsec interface ten-gigabitethernet 3/0/1 verbose
Interface Ten-GigabitEthernet3/0/1
Protect frames : Yes
Active MKA policy : pls
Replay protection : Enabled
Config reply window size : 100 frames
Active replay window size : 100 frames
Config confidentiality offset : 30 bytes
Active confidentinlity offset : 30 bytes
Validation mode : Strict
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
MKA life time : 6 seconds
Transmit secure channel:
SCI : 00E00100000A0006
Elapsed time: 00h:02m:07s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : 00E0020000000106
Elapsed time: 00h:02m:03s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 用户上线之后,查看Device上的MKA会话信息。
[Device] display mka session interface ten-gigabitethernet 3/0/1 verbose
Interface Ten-GigabitEthernet3/0/1
Tx-SCI : 00E00100000A0006
Priority : 0
Capability: 3
CKN for participant: 1234
Key server : Yes
MI (MN) : A1E0D2897596817209CD2307 (2509)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 30 bytes
Tx-SSCI : N/A
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : A1E0D2897596817209CD230700000002 (2)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Prio Cap Rx-SCI Rx-SSCI
B2CAF896C9BFE2ABFB135E63 2512 0 3 00E0020000000106 N/A
Switch的下行口与终端设备相连,上行通过Trunk端口Ten-GigabitEthernet3/0/2和Ten-GigabitEthernet3/0/3与Device的对应端口相连,认证服务器为RADIUS服务器。Switch作为802.1X Client,Device作为接入设备,采用面向主机模式的MACsec机制对Switch进行802.1X认证,为保证数据帧传输的安全性,有以下具体要求:
· 端口Ten-GigabitEthernet3/0/2上允许VLAN1和VLAN2的报文通过,端口Ten-GigabitEthernet3/0/3上允许VLAN1和VLAN3的报文通过。
· Device上无法通过命令行配置预共享密钥进行MACsec密钥协商和报文加密,需在802.1X认证过程生成CAK。
· Switch上不同端口与Device之间的数据通信均需进行MACsec保护,且加密报文的密钥通过MKA协议协商获得。
图1-6 面向主机模式MACsec配置组网图(设备作为客户端)
不同厂商Device上的配置有所差异,具体请参见对应的产品手册。下述配置步骤中仅包括Switch上的配置,其中关于802.1X Client的配置命令的详细介绍请参见“安全命令参考”中的“802.1X Client”。
(1) 配置各接口的IP地址,保证Switch、Device和服务器之间的路由可达(略)
(2) 完成RADIUS服务器的配置,添加用户账户,保证用户的认证/授权/计费功能正常运行(略)
(3) 配置Switch上的端口Ten-GigabitEthernet3/0/2
# 创建VLAN 2
<Switch> system-view
[Switch] vlan 2
[Switch-vlan2] quit
# 将Ten-GigabitEthernet3/0/2的链路类型配置为Trunk,并允许VLAN 2的报文通过。
[Switch] interface ten-gigabitethernet 3/0/2
[Switch-Ten-GigabitEthernet3/0/2] port link-type trunk
[Switch-Ten-GigabitEthernet3/0/2] port trunk permit vlan 2
# 在端口Ten-GigabitEthernet3/0/2上配置802.1X认证用户名为aaaa,认证密码为明文123456。
[Switch-Ten-GigabitEthernet3/0/2] dot1x supplicant username aaaa
[Switch-Ten-GigabitEthernet3/0/2] dot1x supplicant password simple 123456
# 配置802.1X Client采用的认证方法为TTLS-GTC。
[Switch-Ten-GigabitEthernet3/0/2] dot1x supplicant eap-method ttls-gtc
# 配置802.1X Client认证使用的MAC地址为1-1-1。
[Switch-Ten-GigabitEthernet3/0/2] dot1x supplicant mac-address 1-1-1
# 在端口Ten-GigabitEthernet3/0/2开启802.1X Client功能。
[Switch-Ten-GigabitEthernet3/0/2] dot1x supplicant enable
# 在端口Ten-GigabitEthernet3/0/2上配置期望进行MACsec保护及使能MKA协议。
[Switch-Ten-GigabitEthernet3/0/2] macsec desire
[Switch-Ten-GigabitEthernet3/0/2] mka enable
[Switch-Ten-GigabitEthernet3/0/2] quit
(4) 配置Switch上的端口Ten-GigabitEthernet3/0/3
# 创建VLAN 3。
[Switch] vlan 3
[Switch-vlan3] quit
# 将Ten-GigabitEthernet3/0/3的链路类型配置为Trunk,并允许VLAN 3的报文通过。
[Switch] interface ten-gigabitethernet 3/0/3
[Switch-Ten-GigabitEthernet3/0/3] port link-type trunk
[Switch-Ten-GigabitEthernet3/0/3] port trunk permit vlan 3
# 在端口Ten-GigabitEthernet3/0/3上配置802.1X认证用户名为bbbb,认证密码为明文654321。
[Switch-Ten-GigabitEthernet3/0/3] dot1x supplicant username bbbb
[Switch-Ten-GigabitEthernet3/0/3] dot1x supplicant password simple 654321
# 配置802.1X Client采用的认证方法为TTLS-GTC。
[Switch-Ten-GigabitEthernet3/0/3] dot1x supplicant eap-method ttls-gtc
# 配置802.1X Client认证使用的MAC地址为1-1-2。
[Switch-Ten-GigabitEthernet3/0/3] dot1x supplicant mac-address 1-1-2
# 在端口Ten-GigabitEthernet3/0/2开启802.1X Client功能。
[Switch-Ten-GigabitEthernet3/0/3] dot1x supplicant enable
# 在端口Ten-GigabitEthernet3/0/3上配置期望进行MACsec保护及使能MKA协议。
[Switch-Ten-GigabitEthernet3/0/3] macsec desire
[Switch-Ten-GigabitEthernet3/0/3] mka enable
配置完成后,用户可以使用display命令查看Switch上MACsec的运行情况。
# 显示接口Ten-GigabitEthernet3/0/2上的MACsec运行的详细信息。
[Switch] display macsec interface ten-gigabitethernet 3/0/2 verbose
Interface Ten-GigabitEthernet3/0/2
Protect frames : Yes
Active MKA policy : pls
Replay protection : Enabled
Config replay window size : 100 frames
Active replay window size : 100 frames
Config confidentiality offset : 30 bytes
Active confidentiality offset : 30 bytes
Validation mode : Strict
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
MKA life time : 6 seconds
Transmit secure channel:
SCI : 00E00100000A0006
Elapsed time: 00h:02m:07s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : 00E0020000000106
Elapsed time: 00h:02m:03s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 显示接口Ten-GigabitEthernet3/0/3上的MACsec运行的详细信息。
[Switch] display macsec interface ten-gigabitethernet 3/0/3 verbose
Interface Ten-GigabitEthernet3/0/3
Protect frames : Yes
Replay protection : Enabled
Config replay window size : 100 frames
Active replay window size : 100 frames
Config confidentiality offset : 30 bytes
Active confidentiality offset : 30 bytes
Validation mode : Check
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
MKA life time : 6 seconds
Transmit secure channel:
SCI : A087100801000103
Elapsed time: 00h:00m:55s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : A0872B3602000003
Elapsed time: 00h:00m:52s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 802.1X Client上线之后,在Switch上可查看接口Ten-GigabitEthernet3/0/2上的MKA会话详细信息。
[Switch] display mka session interface ten-gigabitethernet 3/0/2 verbose
Interface Ten-GigabitEthernet3/0/2
Tx-SCI : 00E00100000A0006
Priority : 0
Capability: 3
CKN for participant: 1234
Key server : Yes
MI (MN) : A1E0D2897596817209CD2307 (2509)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 30 bytes
Tx-SSCI : N/A
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : A1E0D2897596817209CD230700000002 (2)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Prio Cap Rx-SCI Rx-SSCI
B2CAF896C9BFE2ABFB135E63 2512 0 3 00E0020000000106 N/A
# 802.1X Client上线之后,在Switch上可查看接口Ten-GigabitEthernet3/0/3上的MKA会话详细信息。
[Switch] display mka session interface ten-gigabitethernet 3/0/3 verbose
Interface Ten-GigabitEthernet3/0/3
Tx-SCI : A087100801000103
Priority : 0
Capability: 3
CKN for participant: 7B8784F16F85ED8F9D0130AA9B93D0F0
Key server : No
MI (MN) : D3F6D374598C8FD1F1819D6C (78)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 0 bytes
Tx-SSCI : N/A
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : FCA71854FCAE51398EC2DA7900000001 (1)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Prio Cap Rx-SCI Rx-SSCI
FCA71854FCAE51398EC2DA79 71 0 3 A0872B3602000003 N/A
Device A和Device B相连,要求两台设备之间的数据通信进行MACsec保护,具体要求如下:
· MACsec加密偏移量为30字节。
· 开启MACsec重播保护功能,重播保护窗口大小为100。
· 开启严格的MACsec校验。
· 两台设备使用的CAK均为静态配置,CKN为E9AC,CAK为09DB3EF1。
· 由Device A作为密钥服务器。
图1-7 面向设备模式MACsec配置组网图
(1) 配置Device A
<DeviceA> system-view
# 在接口Ten-GigabitEthernet3/0/1上配置期望进行MACsec保护。
[DeviceA] interface ten-gigabitethernet 3/0/1
[DeviceA-Ten-GigabitEthernet3/0/1] macsec desire
# 配置MKA密钥服务器的优先级为5。(本例中,Device A作为密钥服务器,所以配置的Device A的优先级要比Device B的优先级高)
[DeviceA-Ten-GigabitEthernet3/0/1] mka priority 5
# 配置预共享密钥的名称为E9AC,预共享密钥为明文09DB3EF1。
[DeviceA-Ten-GigabitEthernet3/0/1] mka psk ckn E9AC cak simple 09DB3EF1
# 配置MACsec加密偏移量为30。
[DeviceA-Ten-GigabitEthernet3/0/1] macsec confidentiality-offset 30
# 开启MACsec重播保护功能。
[DeviceA-Ten-GigabitEthernet3/0/1] macsec replay-protection enable
# 配置MACsec重播保护窗口大小为100。
[DeviceA-Ten-GigabitEthernet3/0/1] macsec replay-protection window-size 100
# 配置严格的MACsec校验模式。
[DeviceA-Ten-GigabitEthernet3/0/1] macsec validation mode strict
# 开启MKA协议。
[DeviceA-Ten-GigabitEthernet3/0/1] mka enable
[DeviceA-Ten-GigabitEthernet3/0/1] quit
(2) 配置Device B
<DeviceB> system-view
# 进入Ten-GigabitEthernet3/0/1接口视图。
[DeviceB] interface ten-gigabitethernet 3/0/1
# 配置期望进行MACsec保护。
[DeviceB-Ten-GigabitEthernet3/0/1] macsec desire
# 配置MKA密钥服务器的优先级为10。
[DeviceB-Ten-GigabitEthernet3/0/1] mka priority 10
# 配置预共享密钥的名称为E9AC,预共享密钥为明文09DB3EF1。
[DeviceB-Ten-GigabitEthernet3/0/1] mka psk ckn E9AC cak simple 09DB3EF1
# 配置MACsec加密偏移量为30。
[DeviceB-Ten-GigabitEthernet3/0/1] macsec confidentiality-offset 30
# 开启MACsec重播保护功能。
[DeviceB-Ten-GigabitEthernet3/0/1] macsec replay-protection enable
# 配置MACsec重播保护窗口大小为100。
[DeviceB-Ten-GigabitEthernet3/0/1] macsec replay-protection window-size 100
# 配置严格的MACsec校验模式。
[DeviceB-Ten-GigabitEthernet3/0/1] macsec validation mode strict
# 开启MKA协议。
[DeviceB-Ten-GigabitEthernet3/0/1] mka enable
[DeviceB-Ten-GigabitEthernet3/0/1] quit
配置完成后,用户可以使用display命令查看设备上MACsec的运行情况。
# 查看DeviceA的MACsec运行信息。
[DeviceA] display macsec interface ten-gigabitethernet 3/0/1 verbose
Interface Ten-GigabitEthernet3/0/1
Protect frames : Yes
Replay protection : Enabled
Config replay window size : 100 frames
Active replay window size : 100 frames
Config confidentiality offset : 30 bytes
Active confidentiality offset : 30 bytes
Validation mode : Strict
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
MKA life time : 6 seconds
Transmit secure channel:
SCI : 00E00100000A0006
Elapsed time: 00h:05m:00s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : 00E0020000000106
Elapsed time: 00h:03m:18s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 查看DeviceA上的MKA会话信息。
[DeviceA] display mka session interface ten-gigabitethernet 3/0/1 verbose
Interface Ten-GigabitEthernet3/0/1
Tx-SCI : 00E00100000A0006
Priority : 5
Capability: 3
CKN for participant: E9AC
Key server : Yes
MI (MN) : 85E004AF49934720AC5131D3 (182)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 30 bytes
Tx-SSCI : N/A
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : 85E004AF49934720AC5131D300000003 (3)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Prio Cap Rx-SCI Rx-SSCI
12A1677D59DD211AE86A0128 182 10 3 00E0020000000106 N/A
# 查看DeviceB上的MACsec运行信息。
[DeviceB]display macsec interface ten-gigabitethernet 3/0/1 verbose
Interface Ten-GigabitEthernet3/0/1
Protect frames : Yes
Replay protection : Enabled
Config replay window size : 100 frames
Active replay window size : 100 frames
Config confidentiality offset : 30 bytes
Active confidentiality offset : 30 bytes
Validation mode : Strict
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
MKA life time : 6 seconds
Transmit secure channel:
SCI : 00E0020000000106
Elapsed time: 00h:05m:36s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : 00E00100000A0006
Elapsed time: 00h:03m:21s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 查看DeviceB上的MKA会话信息。
[DeviceB] display mka session interface ten-gigabitethernet 3/0/1 verbose
Interface Ten-GigabitEthernet3/0/1
Tx-SCI : 00E0020000000106
Priority : 10
Capability: 3
CKN for participant: E9AC
Key server : No
MI (MN) : 12A1677D59DD211AE86A0128 (1219)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 30 bytes
Tx-SSCI : N/A
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : 85E004AF49934720AC5131D300000003 (3)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Prio Cap Rx-SCI Rx-SSCI
85E004AF49934720AC5131D3 1216 5 3 00E00100000A0006 N/A
在链路状态正常且链路两端设备都支持MACsec功能,MACsec安全会话未建立。
可能的原因有:
· 接口未开启MKA协议。
· 如果接口使用预共享密钥,接口的预共享密钥未配置或配置不一致。
· 进入接口视图下,使用display this命令查看MKA是否开启,如果未开启,请使用mka enable命令开启MKA协议。
· 进入接口视图下,使用display this命令查看是否配置预共享密钥,如果未配置,请使用mka psk命令配置;否则,请检查已有配置的密钥是否一致,不一致,则重新配置一致。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!