33-MACSec配置
本章節下載: 33-MACSec配置 (327.52 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可以是用戶配置的預共享密鑰(PSK,Pre-Shared Key)。
目前,MACsec主要應用在點對點組網的環境中,所以主要使用成對CAK。
SA(Security Association,安全聯盟)是CA參與者之間用於建立安全通道的安全參數集合,包括對數據進行加密算法套件、進行完整性檢查的密鑰等。
一個安全通道中可包含多個SA,每一個SA擁有一個不同的密鑰,這個密鑰稱為SAK。SAK由CAK根據算法推導產生,用於加密安全通道間傳輸的數據。
MKA對每一個SAK可加密的報文數有所限製。當使用某SAK加密的報文超過限定的數目後,該SAK會被刷新。例如,在10Gbps的鏈路上,SAK最快300秒刷新一次。
開啟了MACsec功能且啟動了MACsec保護的端口發送數據幀時,需要對它進行加密;開啟了MACsec功能的端口收到經過MACsec封裝的數據幀時,需要對它進行解密。加解密所使用的密鑰是通過MKA協議協商而來的。
MACsec封裝的數據幀會使用CAK推導出的密鑰進行ICV(完整性校驗值,Integrity Check Value)計算,並附加在MACsec報文的尾部。設備收到MACsec報文時,同樣使用MKA協商出的密鑰進行完整性檢驗值計算,然後將計算結果與報文中攜帶的ICV進行比較。如果比較結果相同,則表示報文合法;如果比較結果不相同,將依據配置的校驗模式,決定是否丟棄報文。
MACsec有如下幾種校驗模式:
· check:檢查模式,表示隻作校驗,但不丟棄非法數據幀。
· disabled:不對接收數據幀進行MACsec校驗。
· strict:嚴格校驗模式,表示校驗接收數據幀,並丟棄非法數據幀。
MACsec封裝的數據幀在網絡中傳輸時,可能出現報文順序的重排。MACsec重播保護機製允許數據幀有一定的亂序,這些亂序的報文序號在用戶指定的窗口範圍內可以被合法接收,超出窗口的報文會被丟棄。
目前,MACsec的典型組網模式為麵向設備的MACsec模式。
如圖1-1所示,麵向設備模式用於保護設備之間的數據幀。
該模式下,互連的兩台設備直接使用通過命令行配置的預共享密鑰進行MACsec密鑰協商和報文加密功能。
如圖1-2所示,設備之間使用配置的預共享密鑰開始協商會話,會話協商結束後開始安全通信。MACsec協議的交互過程主要分為三個階段:會話協商、安全通信和會話終止。
圖1-2 麵向設備模式的MACsec協議交互過程
(1) 會話協商
設備之間使用配置的預共享密鑰(PSK,Pre-Shared Key)作為CAK,通過EAPOL-MKA報文開始協商會話。設備間優先級較高的端口將被選舉為密鑰服務器(Key Server),負責生成和分發SAK,設備之間通過MKA協議向對方通告自身能力和建立會話所需的各種參數(如優先級、是否期望加密會話等)。
(2) 安全通信
會話協商完成後,各設備有了可用的SAK,並使用SAK加密數據報文,開始加密通信。
(3) 會話終止
當設備收到對方的下線請求消息後,立即清除該用戶對應的安全會話。
與MACsec相關的協議規範有:
· IEEE 802.1AE-2006:Media Access Control (MAC) Security
本特性的支持情況與設備型號有關,請以設備的實際情況為準。
型號 |
說明 |
MPU-60 |
不支持 |
MPU-100 |
不支持 |
MPU-100-X1 |
不支持 |
MPU-100-G |
支持 |
MACsec配置任務如下:
(1) 開啟MACsec協議
(2) 配置MACsec保護
(3) 配置MACsec使用的加密套件
(4) 配置預共享密鑰
(5) (可選)配置MKA密鑰服務器的優先級
(6) (可選)配置MKA會話超時時間
(7) (可選)配置MACsec屬性參數
請選擇以下一項任務進行配置:
(8) (可選)配置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。
H3C設備GCM-AES-256加密套件和標準的開源加密套件實現不一致。當對端設備使用GCM-AES-256的開源加密套件時,H3C設備上使用同樣的加密套件時必須指定standard參數,否則無法與對端設備成功建立MKA會話。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置MACsec使用的加密套件。
macsec cipher-suite { gcm-aes-128 | gcm-aes-256 [ standard ] }
缺省情況下,MACsec使用的加密套件為GCM-AES-128。
在麵向設備模式中,兩端設備協商MKA會話使用的CAK通過預共享密鑰直接配置。為了保證設備間的MKA會話可以正常建立,必須保證兩端設備的接口上配置的預共享密鑰一致。
本端設備和對端設備建立MACsec連接時,請保證隻有建立連接的兩個端口上配置相同的CKN,兩端設備的其它端口上都不能配置與此相同的CKN,以免一個端口學習到多個鄰居而導致MACsec功能不能正常建立。
MACsec使用不同的加密算法套件時,CKN、CAK的取值長度有所不同,具體要求如下:
· GCM-AES-128加密套件要求所使用的CKN、CAK的長度都必須為32個字符。在運行GCM-AES-128加密套件時,對於長度不足32個字符的CKN、CAK,係統會自動在其後補零,使其滿足32個字符;對於長度大於32個字符的CKN、CAK,係統隻獲取其前32個字符。
· GCM-AES-256加密套件要求使用的CKN、CAK的長度都必須為64個字符。在運行GCM-AES-256 加密套件時,對於長度不足64個字符的CKN、CAK,係統會自動在其後補零,使其滿足64個字符。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置預共享密鑰。
mka psk ckn name cak { cipher | simple } string
缺省情況下,接口不存在MKA預共享密鑰。
當前係統支持的加密算法套件要求使用的CKN、CAK的長度必須為32個字符。如果長度不足32個字符,係統會自動在其後補零;如果長度大於32個字符,係統隻取前32個字符。
配置MKA密鑰服務器的優先級時,請遵循以下配置限製和指導:
· 在麵向設備模式中,MKA密鑰服務器優先級較高(值較小)的設備端口將被選舉為密鑰服務器。如果設備端口的優先級相同,則比較設備端口的SCI(MAC地址+端口的ID),SCI值較小的端口將被選舉為密鑰服務器。
· 優先級為255的設備端口不能被選舉為密鑰服務器。相互連接的端口不能都配置優先級為255,否則MKA會話選舉不出密鑰服務器。
(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策略,則後執行的配置參數生效。
(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策略。
(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策略。
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 A和Device B相連,要求兩台設備之間的數據通信進行MACsec保護,具體要求如下:
· MACsec加密偏移量為30字節。
· 開啟MACsec重播保護功能,重播保護窗口大小為100。
· 開啟嚴格的MACsec校驗。
· 兩台設備使用的CAK均為靜態配置,CKN為E9AC,CAK為09DB3EF1。
· 由Device A作為密鑰服務器。
圖1-3 麵向設備模式MACsec配置組網圖
(1) 配置Device A
<DeviceA> system-view
# 在接口GigabitEthernet1/0/1上配置期望進行MACsec保護。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] macsec desire
# 配置MKA密鑰服務器的優先級為5。(本例中,Device A作為密鑰服務器,所以配置的Device A的優先級要比Device B的優先級高)
[DeviceA-GigabitEthernet1/0/1] mka priority 5
# 配置預共享密鑰的名稱為E9AC,預共享密鑰為明文09DB3EF1。
[DeviceA-GigabitEthernet1/0/1] mka psk ckn E9AC cak simple 09DB3EF1
# 配置MACsec加密偏移量為30。
[DeviceA-GigabitEthernet1/0/1] macsec confidentiality-offset 30
# 開啟MACsec重播保護功能。
[DeviceA-GigabitEthernet1/0/1] macsec replay-protection enable
# 配置MACsec重播保護窗口大小為100。
[DeviceA-GigabitEthernet1/0/1] macsec replay-protection window-size 100
# 配置嚴格的MACsec校驗模式。
[DeviceA-GigabitEthernet1/0/1] macsec validation mode strict
# 開啟MKA協議。
[DeviceA-GigabitEthernet1/0/1] mka enable
[DeviceA-GigabitEthernet1/0/1] quit
(2) 配置Device B
<DeviceB> system-view
# 進入GigabitEthernet1/0/1接口視圖。
[DeviceB] interface gigabitethernet 1/0/1
# 配置期望進行MACsec保護。
[DeviceB-GigabitEthernet1/0/1] macsec desire
# 配置MKA密鑰服務器的優先級為10。
[DeviceB-GigabitEthernet1/0/1] mka priority 10
# 配置預共享密鑰的名稱為E9AC,預共享密鑰為明文09DB3EF1。
[DeviceB-GigabitEthernet1/0/1] mka psk ckn E9AC cak simple 09DB3EF1
# 配置MACsec加密偏移量為30。
[DeviceB-GigabitEthernet1/0/1] macsec confidentiality-offset 30
# 開啟MACsec重播保護功能。
[DeviceB-GigabitEthernet1/0/1] macsec replay-protection enable
# 配置MACsec重播保護窗口大小為100。
[DeviceB-GigabitEthernet1/0/1] macsec replay-protection window-size 100
# 配置嚴格的MACsec校驗模式。
[DeviceB-GigabitEthernet1/0/1] macsec validation mode strict
# 開啟MKA協議。
[DeviceB-GigabitEthernet1/0/1] mka enable
[DeviceB-GigabitEthernet1/0/1] quit
配置完成後,用戶可以使用display命令查看設備上MACsec的運行情況。
# 查看DeviceA的MACsec運行信息。
[DeviceA] display macsec interface gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/0/1
Protect frames : Yes
Replay protection : Enabled
Replay window size : 100 frames
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 gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/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
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 Priority Capability Rx-SCI
12A1677D59DD211AE86A0128 182 10 3 00E0020000000106
# 查看DeviceB上的MACsec運行信息。
[DeviceB]display macsec interface gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/0/1
Protect frames : Yes
Replay protection : Enabled
Replay window size : 100 frames
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 gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/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
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 Priority Capability Rx-SCI
85E004AF49934720AC5131D3 1216 5 3 00E00100000A0006
在鏈路狀態正常且鏈路兩端設備都支持MACsec功能,MACsec安全會話未建立。
可能的原因有:
· 接口未開啟MKA協議。
· 如果接口使用預共享密鑰,接口的預共享密鑰未配置或配置不一致。
· 進入接口視圖下,使用display this命令查看MKA是否開啟,如果未開啟,請使用mka enable命令開啟MKA協議。
· 進入接口視圖下,使用display this命令查看是否配置預共享密鑰,如果未配置,請使用mka psk命令配置;否則,請檢查已有配置的密鑰是否一致,不一致,則重新配置一致。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!