04-IPsec配置
本章節下載: 04-IPsec配置 (904.75 KB)
目 錄
1.3.1 配置IPsec隧道保護匹配ACL的報文的配置任務簡介
1.4.1 配置IPsec隧道保護IPv6路由協議配置任務簡介
1.16.1 采用手工方式建立保護IPv4報文的IPsec隧道
1.16.2 采用IKE方式建立保護IPv4報文的IPsec隧道
1.16.3 采用IKE方式建立保護IPv6報文的IPsec隧道
1.16.6 基於IPsec隧道接口建立保護IPv4報文的IPsec隧道
IPsec(IP Security,IP安全)是IETF製定的三層隧道加密協議,它為互聯網上傳輸的數據提供了高質量的、基於密碼學的安全保證,是一種傳統的實現三層VPN(Virtual Private Network,虛擬專用網絡)的安全技術。IPsec通過在特定通信方之間(例如兩個安全網關之間)建立“通道”,來保護通信方之間傳輸的用戶數據,該通道通常稱為IPsec隧道。
IPsec協議不是一個單獨的協議,它為IP層上的網絡數據安全提供了一整套安全體係結構,包括安全協議AH(Authentication Header,認證頭)和ESP(Encapsulating Security Payload,封裝安全載荷)、IKE(Internet Key Exchange,互聯網密鑰交換)以及用於網絡認證及加密的一些算法等。其中,AH協議和ESP協議用於提供安全服務,IKE協議用於密鑰交換。關於IKE的詳細介紹請參見“IP隧道及安全VPN配置指導”中的“IKE”,本節不做介紹。
IPsec提供了兩大安全機製:認證和加密。認證機製使IP通信的數據接收方能夠確認數據發送方的真實身份以及數據在傳輸過程中是否遭篡改。加密機製通過對數據進行加密運算來保證數據的機密性,以防數據在傳輸過程中被竊聽。
IPsec為IP層的數據報文提供的安全服務具體包括以下幾種:
· 數據機密性(Confidentiality):發送方通過網絡傳輸用戶報文前,IPsec對報文進行加密。
· 數據完整性(Data Integrity):接收方對發送方發送來的IPsec報文進行認證,以確保數據在傳輸過程中沒有被篡改。
· 數據來源認證(Data Origin Authentication):接收方認證發送IPsec報文的發送端是否合法。
· 抗重放(Anti-Replay):接收方可檢測並拒絕接收過時或重複的IPsec報文。
IPsec可為IP層上的數據提供安全保護,其優點包括如下幾個方麵:
· 支持IKE(Internet Key Exchange,互聯網密鑰交換),可實現密鑰的自動協商功能,減少了密鑰協商的開銷。可以通過IKE建立和維護SA(Security Association,安全聯盟),簡化了IPsec的使用和管理。
· 所有使用IP協議進行數據傳輸的應用係統和服務都可以使用IPsec,而不必對這些應用係統和服務本身做任何修改。
· 對數據的加密是以數據包為單位的,而不是以整個數據流為單位,這不僅靈活而且有助於進一步提高IP數據包的安全性,可以有效防範網絡攻擊。
IPsec包括AH和ESP兩種安全協議,它們定義了對IP報文的封裝格式以及可提供的安全服務。
· AH協議(IP協議號為51)定義了AH頭在IP報文中的封裝格式,如圖1-3所示。AH可提供數據來源認證、數據完整性校驗和抗重放功能,它能保護報文免受篡改,但不能防止報文被竊聽,適合用於傳輸非機密數據。AH使用的認證算法有HMAC-MD5和HMAC-SHA1等。
· ESP協議(IP協議號為50)定義了ESP頭和ESP尾在IP報文中的封裝格式,如圖1-3所示。ESP可提供數據加密、數據來源認證、數據完整性校驗和抗重放功能。與AH不同的是,ESP將需要保護的用戶數據進行加密後再封裝到IP包中,以保證數據的機密性。ESP使用的加密算法有DES、3DES、AES等。同時,作為可選項,ESP還可以提供認證服務,使用的認證算法有HMAC-MD5和HMAC-SHA1等。雖然AH和ESP都可以提供認證服務,但是AH提供的認證服務要強於ESP。
在實際使用過程中,可以根據具體的安全需求同時使用這兩種協議或僅使用其中的一種。設備支持的AH和ESP聯合使用的方式為:先對報文進行ESP封裝,再對報文進行AH封裝。
IPsec支持兩種封裝模式:傳輸模式和隧道模式。
該模式下的安全協議主要用於保護上層協議報文,僅傳輸層數據被用來計算安全協議頭,生成的安全協議頭以及加密的用戶數據(僅針對ESP封裝)被放置在原IP頭後麵。若要求端到端的安全保障,即數據包進行安全傳輸的起點和終點為數據包的實際起點和終點時,才能使用傳輸模式。如圖1-1所示,通常傳輸模式用於保護兩台主機之間的數據。
該模式下的安全協議用於保護整個IP數據包,用戶的整個IP數據包都被用來計算安全協議頭,生成的安全協議頭以及加密的用戶數據(僅針對ESP封裝)被封裝在一個新的IP數據包中。這種模式下,封裝後的IP數據包有內外兩個IP頭,其中的內部IP頭為原有的IP頭,外部IP頭由提供安全服務的設備添加。在安全保護由設備提供的情況下,數據包進行安全傳輸的起點或終點不為數據包的實際起點和終點時(例如安全網關後的主機),則必須使用隧道模式。如圖1-2所示,通常隧道模式用於保護兩個安全網關之間的數據。
不同的安全協議及組合在隧道和傳輸模式下的數據封裝形式如圖1-3所示。
SA(Security Association,安全聯盟)是IPsec的基礎,也是IPsec的本質。IPsec在兩個端點之間提供安全通信,這類端點被稱為IPsec對等體。SA是IPsec對等體間對某些要素的約定,例如,使用的安全協議(AH、ESP或兩者結合使用)、協議報文的封裝模式(傳輸模式或隧道模式)、認證算法(HMAC-MD5、HMAC-SHA1或SM3)、加密算法(DES、3DES、AES或SM)、特定流中保護數據的共享密鑰以及密鑰的生存時間等。
SA是單向的,在兩個對等體之間的雙向通信,最少需要兩個SA來分別對兩個方向的數據流進行安全保護。同時,如果兩個對等體希望同時使用AH和ESP來進行安全通信,則每個對等體都會針對每一種協議來構建一個獨立的SA。
SA由一個三元組來唯一標識,這個三元組包括SPI(Security Parameter Index,安全參數索引)、目的IP地址和安全協議號。其中,SPI是用於標識SA的一個32比特的數值,它在AH和ESP頭中傳輸。
SA有手工配置和IKE自動協商兩種生成方式:
· 手工方式:通過命令行配置SA的所有信息。該方式的配置比較複雜,而且不支持一些高級特性(例如定時更新密鑰),優點是可以不依賴IKE而單獨實現IPsec功能。該方式主要用於需要安全通信的對等體數量較少,或小型靜態的組網環境中。
· IKE自動協商方式:對等體之間通過IKE協議自動協商生成SA,並由IKE協議維護該SA。該方式的配置相對比較簡單,擴展能力強。在中、大型的動態網絡環境中,推薦使用IKE自動協商建立SA。
手工方式建立的SA永不老化。通過IKE協商建立的SA具有生存時間,當生存時間到達時,舊的SA會被刪除。
IKE協商建立的SA在生存時間到達前會提前協商一個新的SA來替換舊的SA。從SA建立到啟動新SA協商的這段時間是軟超時時間。缺省情況下,係統會基於SA的生存時間使用默認算法計算一個軟超時時間。係統允許配置一個軟超時緩衝來控製軟超時時間,計算公式為:軟超時時間=生存時間-軟超時緩衝。
IKE協商建立的SA有兩種形式的生存時間:
· 基於時間的生存時間,定義了一個SA從建立到刪除的時間;
· 基於流量的生存時間,定義了一個SA允許處理的最大流量。
可同時存在基於時間和基於流量兩種方式的SA生存時間,隻要其中一種到達,就會刪除舊的SA。
IPsec使用的認證算法主要是通過雜湊函數實現的。雜湊函數是一種能夠接受任意長度的消息輸入,並產生固定長度輸出的算法,該算法的輸出稱為消息摘要。IPsec對等體雙方都會計算一個摘要,接收方將發送方的摘要與本地的摘要進行比較,如果二者相同,則表示收到的IPsec報文是完整未經篡改的,以及發送方身份合法。目前,IPsec使用基於HMAC(Hash-based Message Authentication Code,基於散列的消息鑒別碼)的認證算法和SM3認證算法。HMAC認證算法包括HMAC-MD5和HMAC-SHA。其中,HMAC-MD5算法的計算速度快,而HMAC-SHA算法的安全強度高。
IPsec使用的加密算法屬於對稱密鑰係統,這類算法使用相同的密鑰對數據進行加密和解密。目前設備的IPsec使用的加密算法包括:
· DES:使用56比特的密鑰對一個64比特的明文塊進行加密。
· 3DES:使用三個56比特(共168比特)的密鑰對明文塊進行加密。
· AES:使用128比特、192比特或256比特的密鑰對明文塊進行加密。
· SM:使用128比特的密鑰對明文塊進行加密。
這些加密算法的安全性由高到低依次是:AES/SM、3DES、DES,安全性高的加密算法實現機製複雜,運算速度慢。
IPsec的認證和加/解密處理在設備上既可以通過軟件實現,也可以通過硬件加密引擎實現。通過軟件實現的IPsec,由於複雜的加密/解密、認證算法會占用大量的CPU資源,將會影響設備整體處理效率;通過硬件加密引擎實現的IPsec,由於複雜的算法處理由硬件完成,因此可以提高設備的處理效率。
若設備支持通過硬件加密引擎進行認證和加/解密處理,則設備會首先將需要處理的數據發送給硬件加密引擎,由硬件加密引擎對數據進行處理之後再發送回設備,最後由設備進行轉發。
關於加密引擎的詳細介紹請參見“安全配置指導”中的“加密引擎”。
IPsec隧道可以保護匹配ACL(Access Control List,訪問控製列表)的報文和IPv6路由協議報文。要實現建立IPsec隧道為兩個IPsec對等體之間的數據提供安全保護,首先要配置和應用相應的安全策略,這裏的安全策略包括IPsec安全策略和IPsec安全框架。有關IPsec安全策略和IPsec安全框架的詳細介紹請參見“IPsec安全策略和IPsec安全框架”。
當IPsec對等體根據IPsec安全策略和IPsec安全框架識別出要保護的報文時,就建立一個相應的IPsec隧道並將其通過該隧道發送給對端。此處的IPsec隧道可以是提前手工配置或者由報文觸發IKE協商建立。這些IPsec隧道實際上就是兩個IPsec對等體之間建立的IPsec SA。由於IPsec SA是單向的,因此出方向的報文由出方向的SA保護,入方向的報文由入方向的SA來保護。對端接收到報文後,首先對報文進行分析、識別,然後根據預先設定的安全策略對報文進行不同的處理(丟棄,解封裝,或直接轉發)。
將引用了ACL的IPsec安全策略應用到接口上後,該接口上匹配ACL的報文將會受到IPsec保護。這裏的接口包括以太網接口等實際物理接口,以及Tunnel、Virtual Template等虛接口。
具體的保護機製如下:
· 隻要接口發送的報文與該接口上應用的IPsec安全策略中的ACL的permit規則匹配,就會受到出方向IPsec SA的保護並進行封裝處理。
· 接口接收到目的地址是本機的IPsec報文時,首先根據報文頭裏攜帶的SPI查找本地的入方向IPsec SA,由對應的入方向IPsec SA進行解封裝處理。解封裝後的IP報文若能與ACL的permit規則匹配上則采取後續處理,否則被丟棄。
目前,設備支持的數據流的保護方式包括以下三種:
· 標準方式:一條IPsec隧道保護一條數據流。ACL中的每一個規則對應的數據流分別由一條單獨創建的IPsec隧道來保護。缺省采用該方式。
· 聚合方式:一條IPsec隧道保護ACL中定義的所有數據流。ACL中的所有規則對應的數據流隻會由一條創建的IPsec隧道來保護。該方式僅用於和老版本的設備互通。
· 主機方式:一條IPsec隧道保護一條主機到主機的數據流。ACL中的每一個規則對應的不同主機之間的數據流分別由一條單獨創建的IPsec隧道來保護。這種方式下,受保護的網段之間存在多條數據流的情況下,將會消耗更多的係統資源。
在隧道接口上應用IPsec安全框架後,路由到該隧道接口的報文都會受到IPsec的保護,除非用戶指定該報文不需要被IPsec保護。此方式建立的IPsec的封裝模式必須為隧道模式。該類應用通常也被稱為在VTI(Virtual Tunnel Interface)上應用IPsec。
相比於保護匹配ACL的報文,保護隧道接口上報文的IPsec有以下優勢:
· 支持保護組播報文。
· 支持動態路由協議在IPsec隧道兩端的傳播。
· 簡化配置。不需要通過ACL規則對流量進行篩選,路由表會將流量引導到隧道口上。
隧道接口對報文的封裝/解封裝發生在隧道接口上。進入設備的報文被路由到應用了IPsec安全框架的隧道接口後,此隧道接口會對這些報文進行封裝/解封裝處理。如圖1-4所示,隧道接口對報文進行封裝的過程如下:
(1) Device將從入接口接收到的IP明文送到轉發模塊進行路由處理;
(2) 轉發模塊依據路由查詢結果,將IP明文發送到隧道接口進行封裝:原始IP報文加密後被封裝在一個新的IP報文中,新IP頭中的源地址和目的地址分別為隧道接口的源端地址和目的端地址。
(3) 隧道接口完成對IP明文的封裝處理後,將IP密文再次送到轉發模塊進行路由處理;
(4) 轉發模塊根據新IP頭中的目的IP地址進行第二次路由查詢後,將IP密文通過隧道接口的實際物理出接口轉發出去。
如圖1-5所示,隧道接口對報文進行解封裝的過程如下:
(1) Device將從入接口接收到的IP密文送到轉發模塊進行路由處理;
(2) 轉發模塊識別到此IP密文的目的IP地址為本設備隧道接口源端地址且IP協議號為AH或ESP時,會將IP密文送到相應的隧道接口進行解封裝:將IP密文的外層IP頭去掉,對內層IP報文進行解密處理。
(3) 隧道接口完成對IP密文的解封裝處理之後,將IP明文重新送回轉發模塊進行路由處理;
(4) 轉發模塊根據IP明文的目的IP地址進行第二次路由查詢後,將IP明文從隧道的實際物理出接口轉發出去。
將IPsec安全框架應用到某一IPv6路由協議(目前支持保護OSPFv3、IPv6 BGP、RIPng路由協議)後,設備產生的需要IPsec保護的某一IPv6路由協議的所有報文都要進行封裝處理,而設備接收到的不受IPsec保護的以及解封裝失敗的業務協議報文都要被丟棄。
由於IPsec的密鑰交換機製僅適用於兩點之間的通信保護,在廣播網絡一對多的情形下,IPsec無法實現自動交換密鑰,同樣,由於廣播網絡一對多的特性,要求各設備對於接收、發送的報文均使用相同的SA參數(相同的SPI及密鑰),因此該方式下必須手工配置用來保護IPv6路由協議報文的IPsec SA。
SDWAN(Software Defined Wide Area Network,軟件定義廣域網)是將SDN技術應用到廣域網的一種VPN技術。控製平麵通過標準的MP-BGP通告TTE(Transport Tunnel Endpoint,傳輸隧道端點)信息和EVPN路由信息,實現不同站點之間的MAC地址、IP地址的學習和發布;數據平麵采用UDP封裝轉發數據報文且能保障數據快速安全傳輸,為分散在廣闊地理範圍內的企業網絡、數據中心等提供安全可靠的互聯服務。有關SDWAN的詳細介紹,請參見“SDWAN配置指導”中的“SDWAN”。
圖1-6 SDWAN網絡模型示意圖
如圖1-6所示,SDWAN網絡由控製通道和數據通道組成。CPE各自生成IPsec SA,並通過與RR的控製通道傳遞給其他CPE。當CPE之間的數據通道有數據需要傳輸時,CPE將使用IPsec SA對CPE之間傳輸的數據進行IPsec加密保護。
例如,當CPE1向CPE2發送報文時,CPE1將使用CPE2的IPsec SA對報文進行加密後,發送給CPE2,CPE2收到報文後,使用自己的IPsec SA進行解密,並對未加密的報文進行丟棄。反之,CPE2向CPE1發送報文時,CPE2將使用CPE1的IPsec SA進行加密後,發送給CPE1,CPE1收到報文後,使用自己的IPsec SA進行解密,並對未加密的報文進行丟棄。
由於IPsec SA是單向的,設備加密和解密采用不同的IPsec SA。通常情況下,本端IPsec SA僅用於解密,對端IPsec SA僅用於加密。
IPsec安全策略和IPsec安全框架用於在兩個對等體之間建立IPsec隧道,保護兩個對等體之間需要被安全防護的報文。
一個IPsec安全策略是若幹具有相同名字、不同順序號的IPsec安全策略表項的集合,IPsec安全策略被應用在接口上,用於控製對等體之間建立IPsec隧道,由ACL定義要保護的數據範圍。IPsec安全策略主要定義了以下內容:
· 要保護的數據流的範圍:由ACL定義。
· 對數據流實施何種保護:由IPsec安全提議定義。
· IPsec SA的生成方式:手工方式、IKE協商方式。
· 保護路徑的起點或終點:即對等體的IP地址。
在同一個IPsec安全策略中,順序號越小的IPsec安全策略表項優先級越高。當從一個接口發送數據時,接口將按照順序號從小到大的順序逐一匹配引用的IPsec安全策略中的每一條安全策略表項。如果數據匹配上了某一條安全策略表項引用的ACL,則停止匹配,並對其使用當前這條安全策略表項進行處理,即根據已經建立的IPsec SA或者觸發IKE協商生成的IPsec SA對報文進行封裝處理;如果數據與所有安全策略表項引用的ACL都不匹配,則直接被正常轉發,IPsec不對數據加以保護。
應用了IPsec安全策略的接口收到數據報文時,對於目的地址是本機的IPsec報文,根據報文頭裏攜帶的SPI查找本地的IPsec SA,並根據匹配的IPsec SA對報文進行解封裝處理;解封裝後的IP報文若能與ACL的permit規則匹配上則采取後續處理,否則被丟棄。
IPsec安全策略除了可以應用到以太網接口等實際物理接口上之外,還能夠應用到Tunnel、Virtual Template等虛接口上,對GRE、L2TP等流量進行保護。
IPsec安全框架(IPsec Profile)與IPsec安全策略類似,但不需要使用ACL指定要保護的數據流的範圍。一個IPsec安全框架由名字唯一確定。IPsec安全框架定義了對數據流進行IPsec保護所使用的安全提議,以及SA參數,應用於IPv6路由協議中。
RRI(Reverse Route Injection,反向路由注入)功能是一種自動添加到達IPsec VPN私網靜態路由的機製,可以實現為受IPsec保護的流量自動添加靜態路由的功能。在大規模組網中,這種自動添加靜態路由的機製可以簡化用戶配置,減少在企業總部網關設備上配置靜態路由的工作量,並且可以根據IPsec SA的創建和刪除進行靜態路由的動態增加和刪除,增強了IPsec VPN的可擴展性。
如圖1-7所示,某企業在企業分支與企業總部之間的所有流量通過IPsec進行保護,企業總部網關上需要配置靜態路由,將總部發往分支的數據引到應用IPsec安全策略的接口上來。如果未配置RRI,當企業分支眾多或者內部網絡規劃發生變化時,就需要同時增加或調整總部網關上的靜態路由配置,該項工作量大且容易出現配置錯誤。
企業總部側網關設備GW上配置RRI功能後,每一個IPsec隧道建立之後,GW都會自動為其添加一條相應的靜態路由。通過RRI創建的路由表項可以在路由表中查詢到,其目的地址為受保護的對端網絡,下一跳地址為IPsec隧道的對端地址或指定的地址,它使得發往對端的流量被強製通過IPsec保護並轉發。
RRI創建的靜態路由和手工配置的靜態路由一樣,可以向內網設備進行廣播,允許內網設備選擇合適的路由對IPsec VPN流量進行轉發。也可以為RRI創建的靜態路由配置優先級,從而更靈活地應用路由管理策略。例如:當設備上還有其他方式配置到達相同目的地的路由時,如果為它們指定相同的優先級,則可實現負載分擔,如果指定不同的優先級,則可實現路由備份。同時,還可以通過修改靜態路由的Tag值,使得設備能夠在路由策略中根據Tag值對這些RRI生成的靜態路由進行靈活的控製。
圖1-7 IPsec VPN總部-分支組網圖
與IPsec相關的協議規範有:
· RFC 2401:Security Architecture for the Internet Protocol
· RFC 2402:IP Authentication Header
· RFC 2406:IP Encapsulating Security Payload
· RFC 4552:Authentication/Confidentiality for OSPFv3
通常情況下,由於IKE協議采用UDP的500端口進行通信,IPsec的AH和ESP協議分別使用51或50號協議來工作,因此為保障IKE和IPsec的正常運行,需要確保應用了IKE和IPsec配置的接口上沒有禁止掉屬於以上端口和協議的流量。
設備通過ACL來識別由IPsec隧道保護的流量時,受保護的流量隻能是源地址或目的地址為本機的報文。例如:可配置IPsec隧道對設備發送給日誌服務器的日誌信息進行保護。ACL中定義的匹配轉發流量的規則不生效,IPsec不會對設備轉發的任何數據流和語音流進行保護。
IPsec隧道保護匹配ACL的報文配置任務如下:
(1) 配置ACL
(2) 配置IPsec安全提議
(3) 配置IPsec安全策略
請選擇以下一項任務進行配置:
(4) 在接口上應用IPsec安全策略
(5) (可選)配置IPsec隧道保護匹配ACL的報文的輔助功能
(6) (可選)配置IPsec日誌和告警功能
IPsec通過配置ACL來定義需要保護的數據流。在IPsec應用中,ACL規則中的permit關鍵字表示與之匹配的流量需要被IPsec保護,而deny關鍵字則表示與之匹配的流量不需要保護。一個ACL中可以配置多條規則,首個與數據流匹配上的規則決定了對該數據流的處理方式。
在IPsec安全策略中定義的ACL既可用於過濾接口入方向數據流,也可用於過濾接口出方向數據流。
· 設備出入方向的數據流都使用IPsec安全策略中定義的ACL規則來做匹配依據。具體是,出方向的數據流正向匹配ACL規則,入方向的數據流反向匹配ACL規則。例如,對於應用於IPsec安全策略中的某ACL規則:rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255,設備使用其正向過濾出方向上從1.1.1.0/24網段發往2.2.2.0/24網段的數據流,反向過濾入方向上從2.2.2.0/24網段發往1.1.1.0/24網段的數據流。
· 在出方向上,與ACL的permit規則匹配的報文將被IPsec保護,未匹配上任何規則或與deny規則匹配上的報文將不被IPsec保護。
· 在入方向上,與ACL的permit規則匹配上的未被IPsec保護的報文將被丟棄;目的地址為本機的被IPsec保護的報文將被進行解封裝處理。缺省情況下解封裝後的IP報文若能與ACL的permit規則匹配上則采取後續處理,否則被丟棄。若解封裝後IPsec報文的ACL檢查功能處於關閉狀態,則解封裝後的IP報文不與ACL匹配,直接進行後續處理。
需要注意的是:
· 僅對確實需要IPsec保護的數據流配置permit規則,避免盲目地使用關鍵字any。這是因為,在一個permit規則中使用any關鍵字就代表所有指定範圍上出方向的流量都需要被IPsec保護,所有對應入方向上被IPsec保護的報文將被接收並處理,入方向上未被IPsec保護的報文都將被丟棄。這種情況下,一旦入方向收到的某流量是未被IPsec保護的,那麼該流量就會被丟棄,這會造成一些本不需要IPsec處理的流量丟失,影響正常的業務傳輸。
· 當一個安全策略下有多條優先級不同的安全策略表項時,合理使用deny規則。避免本應該與優先級較低的安全策略表項的ACL permit規則匹配而被IPsec保護的出方向報文,因為先與優先級較高的安全策略表項的ACL deny規則匹配上,而沒有被IPsec保護,繼而在接收端被丟棄。
下麵是一個deny規則的錯誤配置示例。Device A和Device B上分別配置如下所示的IPsec安全策略,當Device A連接的1.1.2.0/24網段用戶訪問Device B連接的3.3.3.0/24網段時,報文在Device A的應用了IPsec安全策略testa的出接口上優先與順序號為1的安全策略表項匹配,並匹配上了IPv4 ACL 3000的rule 1,因此Device A認為它不需要IPsec保護,而未進行IPsec封裝。該報文到達Device B後,在應用了IPsec安全策略testb的入接口上與IPv4 ACL 3001的rule 0匹配,並被判斷為應該受IPsec保護但未被保護的報文而丟棄。
Device A上的關鍵配置如下:
acl advanced 3000
rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255
rule 1 deny ip
acl advanced 3001
rule 0 permit ip source 1.1.2.0 0.0.0.255 destination 3.3.3.0 0.0.0.255
rule 1 deny ip
#
ipsec policy testa 1 isakmp <---優先級高的安全策略表項
security acl 3000
ike-profile aa
transform-set 1
#
ipsec policy testa 2 isakmp <---優先級低的安全策略表項
security acl 3001
ike-profile bb
transform-set 1
Device B上的關鍵配置如下:
acl advanced 3001
rule 0 permit ip source 3.3.3.0 0.0.0.255 destination 1.1.2.0 0.0.0.255
rule 1 deny ip
#
ipsec policy testb 1 isakmp
security acl 3001
ike-profile aa
transform-set 1
為保證Device A連接的1.1.2.0/24網段用戶訪問Device B連接的3.3.3.0/24網段的報文可被正確處理,建議將Device A上的IPv4 ACL 3000中的deny規則刪除。
為保證IPsec對等體上能夠成功建立SA,建議兩端設備上用於IPsec的ACL配置為鏡像對稱,即保證兩端定義的要保護的數據流範圍的源和目的盡量對稱。例如,圖1-8中Device A和Device B上的ACL配置都是完全鏡像對稱的,因此用於保護主機Host A與主機Host C之間、子網Network 1與子網Network 2之間流量的SA均可成功建立。
若IPsec對等體上的ACL配置非鏡像,那麼隻有在一端的ACL規則定義的範圍是另外一端的子集時,SA協商可以成功。如圖1-9所示,Device A上的ACL規則允許的範圍(Host A->Host C)是Device B上ACL規則允許的範圍(Network 2->Network 1)的子集。
需要注意的是,在這種ACL配置下,並不是任何一端發起的SA協商都可以成功,僅當保護範圍小(細粒度)的一端向保護範圍大(粗粒度)的一端發起的協商才能成功,反之則SA協商失敗。這是因為,協商響應方要求協商發起方發送過來的數據必須在響應方可以接受的範圍之內。其結果就是,從細粒度一端向粗粒度一端發送報文時,細粒度側設備發起的SA協商可以成功,例如Host A->Host C;從粗粒度一方向細粒度一方發送報文時,粗粒度側設備發起的SA協商不能成功,例如Host C->Host A、Host C->Host B、Host D->Host A等。
為滿足MPLS L3VPN中的用戶流量能夠通過IPsec隧道來保護,需要保證連接VPN用戶流量的設備上定義的要保護的數據流範圍中明確指定了數據流所屬的VPN實例。
圖1-10 MPLS L3VPN組網
以上組網環境中,Device A設備上的ACL配置如下:
#
acl advanced 3400
rule 0 permit ip vpn-instance vpn1 source 1.1.1.0 0.0.0.255 destination 3.3.3.0 0.0.0.255
#
同時,還必須在IKE profile視圖中配置內部VPN實例為vpn1。
#
ike profile vpn1
keychain vpn1
match remote identity address 8.8.8.1 255.255.255.255
inside-vpn vpn-instance vpn1
#
IPsec安全提議是IPsec安全策略的一個組成部分,它用於定義IPsec需要使用的安全協議、加密/認證算法以及封裝模式,為IPsec協商SA提供各種安全參數。
· 可對IPsec安全提議進行修改,但對已協商成功的IPsec SA,新修改的安全提議並不起作用,即仍然使用原來的安全提議,隻有新協商的SA使用新的安全提議。若要使修改對已協商成功的IPsec SA生效,則需要執行reset ipsec sa命令。
· 傳輸模式必須應用於數據流的源地址和目的地址與IPsec隧道兩端地址相同的情況下;若要配置應用於IPv6路由協議的手工方式的安全框架,則該安全框架引用的安全提議僅支持傳輸模式的封裝模式。
· IKEv1協商時發起方的PFS強度必須大於或等於響應方的PFS強度,否則協商會失敗。IKEv2不受該限製。不配置PFS特性的一端,按照對端的PFS特性要求進行IKE協商。
· 可以使用命令為一個安全協議指定多個認證或者加密算法,算法優先級以配置順序為準。
· 若要配置應用於IPsec over IPv4隧道和IPsec over IPv6隧道接口上的IPsec安全框架或IPsec安全策略,則該IPsec安全框架或IPsec安全策略引用的安全提議僅支持隧道模式的封裝。即使安全提議下配置的封裝模式為傳輸模式,仍然使用隧道模式封裝,傳輸模式的配置命令不生效。
· 以下這些算法隻適用於IKEv2協商:
表1-1 IKEv2協商適用的算法
參數 |
取值 |
加密算法 |
aes-ctr-128/aes-ctr-192/aes-ctr-256 camellia-cbc-128/camellia-cbc-192/camellia-cbc-256 gmac-128/gmac-192/gmac-256/ gcm-128/gcm-192/gcm-256 |
認證算法 |
aes-xcbc-mac |
PFS(Perfect Forward Secrecy,完善的前向安全性)算法 |
dh-group19 dh-group20 |
(1) 進入係統視圖。
system-view
(2) 創建IPsec安全提議,並進入IPsec安全提議視圖。
ipsec transform-set transform-set-name
(3) 配置IPsec安全提議采用的安全協議。
protocol { ah | ah-esp | esp }
缺省情況下,采用ESP安全協議。
(4) 配置協議(esp或ah-esp)采用的加密算法。
esp encryption-algorithm { 3des-cbc | aes-cbc-128 | aes-cbc-192 | aes-cbc-256 | aes-ctr-128 | aes-ctr-192 | aes-ctr-256 | camellia-cbc-128 | camellia-cbc-192 | camellia-cbc-256 | des-cbc | gmac-128 | gmac-192 | gmac-256 | gcm-128 | gcm-192 | gcm-256 | null | sm1-cbc-128 | sm4-cbc } *
缺省情況下,ESP協議沒有采用任何加密算法。
非ESP協議,請忽略本步驟。
(5) 配置協議(esp或ah-esp)采用的認證算法。
esp authentication-algorithm { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 | sm3 } *
缺省情況下,ESP協議沒有采用任何認證算法。
非ESP協議,請忽略本步驟。
aes-xcbc-mac認證算法僅適用於IKEv2協商。
(6) 配置協議(ah或ah-esp)采用的認證算法。
ah authentication-algorithm { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 | sm3 } *
缺省情況下,AH協議沒有采用任何認證算法。
采用ESP協議時,請忽略本步驟。
aes-xcbc-mac認證算法僅適用於IKEv2協商。
(7) 配置安全協議對IP報文的封裝模式。
encapsulation-mode { transport | tunnel }
缺省情況下,安全協議采用隧道模式對IP報文進行封裝。
(8) (可選)配置使用IPsec安全策略發起協商時使用PFS特性。
pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 | dh-group24 | dh-group19 | dh-group20 }
缺省情況下,使用IPsec安全策略發起協商時不使用PFS特性。
有關PFS(Perfect Forward Secrecy,完善的前向安全性)功能的詳細介紹請參見“IP隧道及安全VPN配置指導”中的“IKE”。
為保證SA能夠成功生成,IPsec隧道兩端的配置必須符合以下要求:
· IPsec安全策略引用的IPsec安全提議應采用相同的安全協議、加密/認證算法和報文封裝模式。
· 當前端點的IPv4對端地址應與對端應用IPsec安全策略的接口的主IPv4地址保持一致;當前端點的IPv6對端地址應與對端應用IPsec安全策略的接口的第一個IPv6地址保持一致。
· 應分別設置inbound和outbound兩個方向的IPsec SA參數,且保證每一個方向上的IPsec SA的唯一性:對於出方向IPsec SA,必須保證三元組(對端IP地址、安全協議、SPI)唯一;對於入方向IPsec SA,必須保證SPI唯一。
· 本端和對端IPsec SA的SPI及密鑰必須是完全匹配的。即,本端的入方向IPsec SA的SPI及密鑰必須和對端的出方向IPsec SA的SPI及密鑰相同;本端的出方向IPsec SA的SPI及密鑰必須和對端的入方向IPsec SA的SPI及密鑰相同。
· 兩端IPsec SA使用的密鑰應當以相同的方式輸入,即如果一端以字符串方式輸入密鑰,另一端必須也以字符串方式輸入密鑰。如果先後以不同的方式輸入了密鑰,則最後設定的密鑰有效。
· 對於ESP協議,以字符串方式輸入密鑰時,係統會自動地同時生成認證算法的密鑰和加密算法的密鑰。
(1) 進入係統視圖。
system-view
(2) 創建一條手工方式的IPsec安全策略,並進入IPsec安全策略視圖。
ipsec { ipv6-policy | policy } policy-name seq-number manual
(3) (可選)配置IPsec安全策略的描述信息。
description text
缺省情況下,無描述信息。
(4) 指定IPsec安全策略引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name }
缺省情況下,IPsec安全策略沒有引用ACL。
一條安全策略隻能引用一個ACL。
(5) 指定IPsec安全策略所引用的安全提議。
transform-set transform-set-name
缺省情況下,IPsec安全策略沒有引用IPsec安全提議。
一條手工方式的IPsec安全策略隻能引用一個安全提議。
(6) 指定IPsec隧道的對端IP地址。
remote-address { ipv4-address | ipv6 ipv6-address }
缺省情況下,未指定IPsec隧道的對端地址。
(7) 配置IPsec SA的入方向SPI。
sa spi inbound { ah | esp } spi-number
缺省情況下,不存在IPsec SA的入方向SPI。
(8) 配置IPsec SA的出方向SPI。
sa spi outbound { ah | esp } spi-number
缺省情況下,不存在IPsec SA的出方向SPI。
(9) 配置IPsec SA使用的密鑰。
¡ 配置AH協議的認證密鑰(以十六進製方式輸入)。
sa hex-key authentication { inbound | outbound } ah { cipher | simple } string
¡ 配置AH協議的認證密鑰(以字符串方式輸入)。
sa string-key { inbound | outbound } ah { cipher | simple } string
¡ 配置ESP協議的認證密鑰和加密密鑰(以字符串方式輸入)。
sa string-key { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP協議的認證密鑰(以十六進製方式輸入)。
sa hex-key authentication { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP協議的加密密鑰(以十六進製方式輸入)。
sa hex-key encryption { inbound | outbound } esp { cipher | simple } string
缺省情況下,未配置IPsec SA使用的密鑰。
根據本安全策略引用的安全提議中指定的安全協議,配置AH協議或ESP協議的密鑰,或者兩者都配置。
IKE協商方式的IPsec安全策略有以下兩種配置方式:
· 直接配置IPsec安全策略:在安全策略視圖中定義需要協商的各參數;
· 引用IPsec安全策略模板配置IPsec安全策略:首先在IPsec安全策略模板中定義需要協商的各參數,然後通過引用IPsec安全策略模板創建一條IPsec安全策略。應用了該類IPsec安全策略的接口不能發起協商,僅可以響應遠端設備的協商請求。由於IPsec安全策略模板中未定義的可選參數由發起方來決定,而響應方會接受發起方的建議,因此這種方式適用於通信對端(例如對端的IP地址)未知的情況下,允許這些對端設備向本端設備主動發起協商。
IPsec安全策略模板與直接配置的IKE協商方式的IPsec安全策略中可配置的參數類似,但是配置較為簡單,除了IPsec安全提議和IKE profile之外的其它參數均為可選。應用了引用IPsec安全策略模板配置的IPsec安全策略的接口不能發起協商,僅可以響應遠端設備的協商請求。IPsec安全策略模板中未定義的可選參數由發起方來決定,而響應方會接受發起方的建議,例如IPsec安全策略模板下的用於定義保護對象範圍的ACL是可選的,該參數在未配置的情況下,相當於支持最大範圍的保護,即完全接受協商發起端的ACL設置。
IPsec隧道兩端的配置必須符合以下要求:
· IPsec安全策略引用的IPsec安全提議中應包含相同的安全協議、認證/加密算法和報文封裝模式。
· IPsec安全策略引用的IKE profile參數相匹配。
· 一條IKE協商方式的IPsec安全策略中最多可以引用六個IPsec安全提議。IKE協商過程中,IKE將會在隧道兩端配置的IPsec安全策略中查找能夠完全匹配的IPsec安全提議。如果IKE在兩端找不到完全匹配的IPsec安全提議,則SA不能協商成功,需要被保護的報文將被丟棄。
· IKE協商的發起方必須配置IPsec隧道的對端地址,響應方可選配,且當前端點的對端地址與對端的本端地址應保持一致。
對於IKE協商建立的IPsec SA,遵循以下原則:
· 采用隧道兩端設置的IPsec SA生存時間中較小者。
· 可同時存在基於時間和基於流量兩種方式的IPsec SA生存時間,隻要到達指定的時間或指定的流量,IPsec SA就會老化。
· 一條IPsec安全策略隻能引用一個IKEv1 profile或者一個IKEv2 profile。同時引用時IKEv2 profile的優先級高於IKEv1 profile的優先級。
IKEv1 profile的相關配置請參見“IP隧道及安全VPN配置指導”中的“IKE”。
IKEv2 profile的相關配置請參見“IP隧道及安全VPN配置指導”中的“IKEv2”。
(1) 進入係統視圖。
system-view
(2) 創建一條IKE協商方式的IPsec安全策略,並進入IPsec安全策略視圖。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
(3) (可選)配置IPsec安全策略的描述信息。
description text
缺省情況下,無描述信息。
(4) (可選)配置觸發建立IPsec SA的模式。
sa trigger-mode { auto | traffic-based }
缺省情況下,觸發建立IPSec SA的模式為流量觸發。
(5) 指定IPsec安全策略引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name } [ aggregation | per-host ]
缺省情況下,IPsec安全策略沒有指定ACL。
一條IPsec安全策略隻能引用一個ACL。
(6) 指定IPsec安全策略引用的IPsec安全提議。
transform-set transform-set-name&<1-6>
缺省情況下,IPsec安全策略沒有引用IPsec安全提議。
(7) 指定IPsec安全策略引用的IKE profile或者IKEv2 profile。
¡ 指定IPsec安全策略引用的IKE profile。
ike-profile profile-name
缺省情況下,IPsec安全策略沒有引用IKE profile。
¡ 指定IPsec安全策略引用的IKEv2 profile。
ikev2-profile profile-name
缺省情況下,IPsec安全策略沒有引用IKEv2 profile。
(8) 指定IPsec隧道的本端IP地址。
local-address { ipv4-address | ipv6 ipv6-address }
缺省情況下,IPsec隧道的本端IPv4地址為應用IPsec安全策略的接口的主IPv4地址,本端IPv6地址為應用IPsec安全策略的接口的第一個IPv6地址。
此處指定的IPsec隧道本端IP地址必須與IKE使用的標識本端身份的IP地址一致。在VRRP組網環境中,IPsec隧道本端IP地址為應用IPsec安全策略接口所在備份組的虛擬IP地址。
(9) 指定IPsec隧道的對端IP地址。
remote-address { [ ipv6 ] host-name | ipv4-address | ipv6 ipv6-address }
缺省情況下,未指定IPsec隧道的對端IP地址。
(10) (可選)配置IPsec SA的生存時間或空閑超時時間。
¡ 配置IPsec SA的生存時間。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情況下,IPsec安全策略下的IPsec SA生存時間為當前全局的IPsec SA生存時間。
¡ 配置IPsec SA的軟超時緩衝參數。
sa soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情況下,未配置軟超時緩衝參數。
¡ 配置IPsec SA的空閑超時時間。
sa idle-time seconds
缺省情況下,IPsec安全策略下的IPsec SA空閑超時時間為當前全局的IPsec SA空閑超時時間。
(11) (可選)開啟TFC(Traffic Flow Confidentiality)填充功能。
tfc enable
缺省情況下,TFC填充功能處於關閉狀態。
本功能僅適用於IKEv2協商的IPsec SA。
(12) 啟用IPsec安全策略表項。
policy enable
缺省情況下,IPsec安全策略表項處於啟用狀態。
(1) 進入係統視圖。
system-view
(2) 創建一個IPsec安全策略模板,並進入IPsec安全策略模板視圖。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) (可選)配置IPsec安全策略模板的描述信息。
description text
缺省情況下,無描述信息。
(4) (可選)指定IPsec安全策略模板引用的ACL。
security acl [ ipv6 ] { acl-number | name acl-name } [ aggregation | per-host ]
缺省情況下,IPsec安全策略模板沒有指定ACL。
一條IPsec安全策略模板隻能引用一個ACL。
(5) 指定IPsec安全策略模板引用的安全提議。
transform-set transform-set-name&<1-6>
缺省情況下IPsec安全策略模板沒有引用IPsec安全提議。
(6) 指定IPsec安全策略模板引用的IKE profile或者IKEv2 profile。
¡ 指定IPsec安全策略模板引用的IKE profile。
ike-profile profile-name
缺省情況下,IPsec安全策略模板沒有引用IKE profile。
不能引用已經被其它IPsec安全策略或IPsec安全策略模板引用的IKE profile。
¡ 指定IPsec安全策略模板引用的IKEv2 profile。
ikev2-profile profile-name
缺省情況下,IPsec安全策略模板沒有引用IKEv2 profile。
(7) 指定IPsec隧道的本端IP地址和對端IP地址。
¡ 指定IPsec隧道的本端IP地址。
local-address { ipv4-address | ipv6 ipv6-address }
缺省情況下,IPsec隧道的本端IPv4地址為應用IPsec安全策略的接口的主IPv4地址,本端IPv6地址為應用IPsec安全策略的接口的第一個IPv6地址。
IPsec隧道本端IP地址必須與IKE對等體使用的標識本端身份的IP地址一致。VRRP組網環境中, IPsec隧道本端IP地址為應用IPsec安全策略的接口所在備份組的虛擬IP地址。
¡ 指定IPsec隧道的對端IP地址。
remote-address { [ ipv6 ] host-name | ipv4-address | ipv6 ipv6-address }
缺省情況下,未指定IPsec隧道的對端IP地址。
(8) (可選)配置IPsec SA的生存時間或者空閑超時時間。
¡ 配置IPsec SA的生存時間。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情況下,IPsec安全策略模板下的IPsec SA生存時間為當前全局的IPsec SA生存時間。
¡ 配置IPsec SA的空閑超時時間。
sa idle-time seconds
缺省情況下,IPsec安全策略模板下的IPsec SA空閑超時時間為當前全局的IPsec SA空閑超時時間。
(9) (可選)開啟TFC(Traffic Flow Confidentiality)填充功能。
tfc enable
缺省情況下,TFC填充功能處於關閉狀態。
本功能僅適用於IKEv2協商的IPsec SA。
(10) 啟用IPsec安全策略模板表項。
policy enable
缺省情況下,IPsec安全策略模板表項處於啟用狀態。
(11) 退回係統視圖。
quit
(12) 引用安全策略模板創建一條IKE協商方式的安全策略。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp template template-name
為使定義的IPsec SA生效,應在每個要加密的數據流和要解密的數據流所在接口上應用一個IPsec安全策略,以對數據進行保護。當取消IPsec安全策略在接口上的應用後,此接口便不再具有IPsec的安全保護功能。
在將IKE方式的IPsec安全策略應用到多個接口上時,請使用共享源接口的IPsec安全策略;手工方式的IPsec安全策略隻能應用到一個接口上。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 應用IPsec安全策略。
ipsec apply { ipv6-policy | policy } policy-name
缺省情況下,接口上沒有應用IPsec安全策略。
一個接口下最多隻能應用一個IPv4/IPv6類型的IPsec安全策略,但可以同時應用一個IPv4類型的IPsec安全策略和一個IPv6類型的IPsec安全策略。
在隧道模式下,接口入方向上解封裝的IPsec報文的內部IP頭有可能不在當前IPsec安全策略引用的ACL的保護範圍內,如網絡中一些惡意偽造的攻擊報文就可能有此問題,所以設備需要重新檢查解封裝後的報文的IP頭是否在ACL保護範圍內。開啟該功能後可以保證ACL檢查不通過的報文被丟棄,從而提高網絡安全性。
(1) 進入係統視圖。
system-view
(2) 開啟解封裝後IPsec報文的ACL檢查功能。
ipsec decrypt-check enable
缺省情況下,解封裝後IPsec報文的ACL檢查功能處於開啟狀態。
在一個接口上同時配置了IPsec與NAT的情況下,對於出方向報文,設備先進行NAT轉換,再進行IPsec處理。若接口上需要進行NAT轉換的流量與需要進行IPsec處理的流量未能通過配置準確的區分,將會導致接口上的報文不能按照預期進行IPsec處理。而準確的區分可能導致配置複雜,難以維護。
開啟本功能後,當前接口上需要進行IPsec處理的流量將不會進行NAT轉換,減輕劃分NAT與IPsec流量的工作量,進而降低接口上IPsec與NAT共存時配置的複雜度。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 在當前接口上開啟IPsec流量不進行NAT轉換功能。
ipsec no-nat-process enable
缺省情況下,IPsec流量不進行NAT轉換功能處於關閉狀態。
該功能會影響NAT業務的處理流程,請謹慎使用。
重放報文,通常是指設備再次接收到的已經被IPsec處理過的報文。IPsec通過滑動窗口(抗重放窗口)機製檢測重放報文。AH和ESP協議報文中帶有序列號,如果收到的報文的序列號與已經解封裝過的報文序列號相同,或收到的報文的序列號出現得較早,即已經超過了抗重放窗口的範圍,則認為該報文為重放報文。
對重放報文的解封裝無意義,並且解封裝過程涉及密碼學運算,會消耗設備大量的資源,導致業務可用性下降,造成了拒絕服務攻擊。通過開啟IPsec抗重放檢測功能,將檢測到的重放報文在解封裝處理之前丟棄,可以降低設備資源的消耗。
在某些特定環境下,業務數據報文的接收順序可能與正常的順序差別較大,雖然並非有意的重放攻擊,但會被抗重放檢測認為是重放報文,導致業務數據報文被丟棄,影響業務的正常運行。因此,這種情況下就可以通過關閉IPsec抗重放檢測功能來避免業務數據報文的錯誤丟棄,也可以通過適當地增大抗重放窗口的寬度,來適應業務正常運行的需要。
· 隻有IKE協商的IPsec SA才能夠支持抗重放檢測,手工方式生成的IPsec SA不支持抗重放檢測。因此該功能開啟與否對手工方式生成的IPsec SA沒有影響。
· 使用較大的抗重放窗口寬度會引起係統開銷增大,導致係統性能下降,與抗重放檢測用於降低係統在接收重放報文時的開銷的初衷不符,因此建議在能夠滿足業務運行需要的情況下,使用較小的抗重放窗口寬度。
· 一般情況下,分布式設備直接在接收報文的單板上進行業務處理。但IPsec抗重放功能檢測要求同一個全局虛擬接口上發送和接收的流量必須在同一個單板上處理,此時需要在該接口上通過sevice命令指定轉發當前接口流量的單板。
· IPsec抗重放檢測功能缺省是開啟的,是否關閉該功能請根據實際需求慎重使用。
(1) 進入係統視圖。
system-view
(2) 開啟IPsec抗重放檢測功能。
ipsec anti-replay check
缺省情況下,IPsec抗重放檢測功能處於開啟狀態。
(3) 配置IPsec抗重放窗口寬度。
ipsec anti-replay window width
缺省情況下,IPsec抗重放窗口寬度為64。
為了提高網絡的可靠性,通常核心設備到ISP(Internet Service Provider,互聯網服務提供商)都會有兩條出口鏈路,它們互為備份或者為負載分擔的關係。由於在不同的接口上應用安全策略時,各個接口將分別協商生成IPsec SA。因此,則在主備鏈路切換時,接口狀態的變化會觸發重新進行IKE協商,從而導致數據流的暫時中斷。這種情況下,兩個接口上的IPsec SA就需要能夠平滑切換。
通過將一個IPsec安全策略與一個源接口綁定,使之成為共享源接口IPsec安全策略,可以實現主備鏈路切換時受IPsec保護的業務流量不中斷。具體機製為:應用相同IPsec安全策略的多個物理接口共同使用一個指定的源接口(稱為共享源接口)協商IPsec SA,當這些物理接口對應的鏈路切換時,如果該源接口的狀態不變化,就不會刪除該接口協商出的IPsec SA,也不需要重新觸發IKE協商,各物理接口繼續使用已有的IPsec SA保護業務流量。
· 隻有IKE協商方式的IPsec安全策略才能配置為IPsec共享源接口安全策略。
· 一個IPsec安全策略隻能與一個源接口綁定。
· 一個源接口可以同時與多個IPsec安全策略綁定。
· 刪除與共享源接口IPsec安全策略綁定的共享源接口時,將使得該共享源接口IPsec安全策略恢複為普通IPsec安全策略。
· 若一個IPsec安全策略為共享源接口IPsec安全策略,但該IPsec安全策略中未指定隧道本端地址,則IKE將使用共享源接口地址作為IPsec隧道的本端地址進行IKE協商;如果共享源接口IPsec安全策略中指定了隧道本端地址,則將使用指定的隧道本端地址進行IKE協商。
(1) 進入係統視圖。
system-view
(2) 配置IPsec安全策略為IPsec共享源接口安全策略。
ipsec { ipv6-policy | policy } policy-name local-address interface-type interface-number
缺省情況下,IPsec安全策略不是共享源接口IPsec安全策略,即未將IPsec安全策略與任何源接口綁定。
當在接口上同時應用了IPsec安全策略與QoS策略時,缺省情況下,QoS使用封裝後報文的外層IP頭信息來對報文進行分類。但如果希望QoS基於被封裝報文的原始IP頭信息對報文進行分類,則需要配置QoS預分類功能來實現。
· 若在接口上同時配置IPsec和QoS,同一個IPsec SA保護的數據流如果被QoS分類進入不同隊列,會導致部分報文發送亂序。由於IPsec具有抗重放功能,IPsec入方向上對於抗重放窗口之外的報文會進行丟棄,從而導致丟包現象。因此當IPsec與QoS配合使用時,必須保證IPsec分類與QoS分類規則配置保持一致。
· IPsec的分類規則完全由引用的ACL規則確定,QoS策略及QoS分類的相關介紹請參見“ACL和QoS配置指導”中的“QoS”。
(1) 進入係統視圖。
system-view
(2) 進入IPsec安全策略視圖或者IPsec安全策略模板視圖。
¡ 進入IPsec安全策略視圖。
ipsec { ipv6-policy | policy } policy-name seq-number [ isakmp | manual ]
¡ 進入IPsec安全策略模板視圖。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) 開啟QoS預分類功能。
qos pre-classify
缺省情況下,QoS預分類功能處於關閉狀態。
開啟RRI功能時,會刪除相應IPsec安全策略協商出的所有IPsec SA。當有新的流量觸發生成IPsec SA時,根據新協商的IPsec生成路由信息。
關閉RRI功能時,會刪除相應IPsec安全策略協商出的所有IPsec SA。
RRI生成的靜態路由隨IPsec SA的創建而創建,隨IPsec SA的刪除而刪除。
RRI功能在隧道模式和傳輸模式下都支持。
若修改了RRI生成的靜態路由的優先級或Tag屬性,則會刪除由相應IPsec安全策略建立的IPsec SA和已添加的靜態路由,修改後的屬性值在下次生成IPsec SA且添加靜態路由時生效。
在RRI功能開啟的情況下,對於與未指定目的IP地址的ACL規則相匹配的報文流觸發協商出的IPsec SA,設備並不會為其自動生成一條靜態路由。因此,如果IPsec安全策略/IPsec安全策略模板引用了此類型的ACL規則,則需要通過手工配置一條到達對端受保護網絡的靜態路由。
在MPLS L3VPN組網環境中,配置了RRI功能的網關設備能夠依據應用IPsec安全策略的接口所綁定的VPN實例,在相應VPN實例的IP路由表中自動添加靜態路由。
(1) 進入係統視圖。
system-view
(2) 進入IPsec安全策略視圖或者IPsec安全策略模板視圖。
¡ 進入IPsec安全策略視圖。
ipsec { policy | ipv6-policy } policy-name seq-number isakmp
¡ 進入IPsec安全策略模板視圖。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
(3) 開啟IPsec反向路由注入功能。
reverse-route [ next-hop [ ipv6 ] ip-address ] dynamic
缺省情況下,IPsec反向路由注入功能處於關閉狀態。
(4) (可選)配置IPsec反向路由功能生成的靜態路由的優先級。
reverse-route preference number
缺省情況下,IPsec反向路由注入功能生成的靜態路由的優先級為60。
(5) (可選)配置IPsec反向路由功能生成的靜態路由的Tag值。
reverse-route tag tag-value
缺省情況下,IPsec反向路由注入功能生成的靜態路由的tag值為0。
IPsec隧道保護IPv6路由協議配置任務如下:
(1) 配置IPsec安全提議
(2) 配置手工方式的IPsec安全框架
(4) (可選)配置IPsec抗重放窗口和序號的同步功能
(5) (可選)配置IPsec分片功能
(6) (可選)配置本端允許建立IPsec隧道的最大數
(7) (可選)配置IPsec報文日誌信息記錄功能
(8) (可選)配置IPsec協商事件日誌功能
(9) (可選)配置IPsec告警功能
手工方式的IPsec安全框架定義了對數據流進行IPsec保護所使用的安全提議,以及SA的SPI、SA使用的密鑰。
IPsec隧道兩端的配置必須符合以下要求:
· IPsec安全框架引用的IPsec安全提議應采用相同的安全協議、加密/認證算法和報文封裝模式。
· 本端出方向IPsec SA的SPI和密鑰必須和本端入方向IPsec SA的SPI和密鑰保持一致。
· 同一個範圍內的、所有設備上的IPsec SA的SPI和密鑰均要保持一致。該範圍與協議相關:對於OSPFv3,是OSPFv3鄰居之間或鄰居所在的區域;對於RIPng,是RIPng直連鄰居之間或鄰居所在的進程;對於BGP,是BGP鄰居之間或鄰居所在的一個組。
· 兩端IPsec SA使用的密鑰應當以相同的方式輸入,即如果一端以字符串方式輸入密鑰,另一端必須也以字符串方式輸入密鑰。如果先後以不同的方式輸入了密鑰,則最後設定的密鑰有效。
· 對於ESP協議,以字符串方式輸入密鑰時,係統會自動地同時生成認證算法的密鑰和加密算法的密鑰。
(1) 進入係統視圖。
system-view
(2) 創建一個手工方式的IPsec安全框架,並進入IPsec安全框架視圖。
ipsec profile profile-name manual
進入已創建的IPsec安全框架時,可以不指定協商方式manual。
(3) (可選)配置IPsec安全框架的描述信息。
description text
缺省情況下,無描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提議。
transform-set transform-set-name
缺省情況下,IPsec安全框架沒有引用IPsec安全提議。
要引用的IPsec安全提議所采用的封裝模式必須為傳輸模式。
(5) 配置IPsec SA的SPI。
sa spi { inbound | outbound } { ah | esp } spi-number
缺省情況下,未配置IPsec SA的SPI。
(6) 配置IPsec SA使用的密鑰。
¡ 配置AH協議的認證密鑰(以十六進製方式輸入)。
sa hex-key authentication { inbound | outbound } ah { cipher | simple } string
¡ 配置AH協議的認證密鑰(以字符串方式輸入)。
sa string-key { inbound | outbound } ah { cipher | simple } string
¡ 配置ESP協議的認證密鑰和加密密鑰(以字符串方式輸入)。
sa string-key { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP協議的認證密鑰(以十六進製方式輸入)。
sa hex-key authentication { inbound | outbound } esp { cipher | simple } string
¡ 配置ESP協議的加密密鑰(以十六進製方式輸入)。
sa hex-key encryption { inbound | outbound } esp { cipher | simple } string
缺省情況下,未配置IPsec SA使用的密鑰。
根據本安全框架引用的安全提議中指定的安全協議,配置AH協議或ESP協議的密鑰,或者兩者都配置。
有關在IPv6路由協議上應用IPsec安全框架的相關配置,請分別參見“三層技術-IP路由配置指導”中的“IPv6 BGP”、“OSPFv3”和“RIPng”。
IPsec隧道保護隧道接口上的報文配置任務如下:
(1) 配置IPsec安全提議
(4) (可選)配置IPsec抗重放窗口和序號的同步功能
(5) (可選)配置全局IPsec SA生存時間和空閑超時功能
(6) (可選)配置IPsec分片功能
(7) (可選)設置IPsec隧道模式下封裝後外層IP頭的DF位
(8) (可選)配置本端允許建立IPsec隧道的最大數
(9) (可選)配置IPsec報文日誌信息記錄功能
(10) (可選)配置IPsec協商事件日誌功能
(11) (可選)配置IPsec告警功能
IKE協商方式的IPsec安全框架定義了對數據流進行IPsec保護所使用的安全提議,以及IKE profile。
IPsec隧道兩端的配置必須符合以下要求:
· IPsec安全框架引用的IPsec安全提議中應包含具有相同的安全協議、認證/加密算法和報文封裝模式的IPsec安全提議。
· IPsec安全框架引用的IKE profile參數相匹配。
· 一條IKE協商方式的IPsec安全框架中最多可以引用六個IPsec安全提議。IKE協商過程中,IKE將會在隧道兩端配置的IPsec安全框架中查找能夠完全匹配的IPsec安全提議。如果IKE在兩端找不到完全匹配的IPsec安全提議,則SA不能協商成功,需要被保護的報文將被丟棄。
對於IKE協商建立的IPsec SA,遵循以下原則:
· 采用隧道兩端設置的IPsec SA生存時間中較小者。
· 可同時存在基於時間和基於流量兩種方式的IPsec SA生存時間,隻要到達指定的時間或指定的流量,IPsec SA就會老化。
(1) 進入係統視圖。
system-view
(2) 創建一個IKE協商方式的IPsec安全框架,並進入IPsec安全框架視圖。
ipsec profile profile-name isakmp
進入已創建的IPsec安全框架時,可以不指定協商方式isakmp。
(3) (可選)配置IPsec安全框架的描述信息。
description text
缺省情況下,無描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提議。
transform-set transform-set-name&<1-6>
缺省情況下,IPsec安全框架沒有引用IPsec安全提議。
要引用的IPsec安全提議所采用的封裝模式必須為隧道模式。
(5) 指定IPsec安全框架引用的IKE profile。
ike-profile profile-name
缺省情況下,IPsec安全框架沒有引用IKE profile。若係統視圖下配置了IKE profile,則使用係統視圖下配置的IKE profile進行性協商,否則使用全局的IKE參數進行協商。
隻能引用一個IKE profile,IKE profile的相關配置請參見“IP隧道及安全VPN配置指導”中的“IKE”。
(6) (可選)指定IPsec安全框架引用的IKEv2 profile。
ikev2-profile profile-name
缺省情況下,IPsec安全框架沒有引用IKEv2 profile。若同時引用IKE profile和IKEv2 profile,優先使用IKEv2 profile進行協商。
隻能引用一個IKEv2 profile,IKE profile的相關配置請參見“IP隧道及安全VPN配置指導”中的“IKEv2”。
(7) (可選)配置IPsec SA的生存時間。
sa duration { time-based seconds | traffic-based kilobytes }
缺省情況下,IPsec安全框架下的IPsec SA生存時間為當前全局的IPsec SA生存時間。
(8) (可選)配置IPsec SA的軟超時緩衝參數。
sa soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情況下,未配置軟超時緩衝參數。
(9) (可選)配置IPsec SA的空閑超時時間。
sa idle-time seconds
缺省情況下,IPsec安全框架下的IPsec SA空閑超時時間為當前全局的IPsec SA空閑超時時間。
在隧道接口上應用IPsec安全框架後,隧道兩端會通過IKE協商建立IPsec隧道對隧道接口上傳輸的數據流進行IPsec保護。隻有兩端IKE協商成功後IPsec隧道接口才會up。
應用IPsec安全框架的時候,還可以通過ACL規則來對路由到隧道接口的報文進行進一步的過濾,隻有匹配ACL permit規則的報文才會受到IPsec的保護。
(1) 進入係統視圖。
system-view
(2) 創建一個Tunnel接口,指定隧道模式,並進入該Tunnel接口視圖。
interface tunnel number mode { advpn { gre | udp } [ ipv6 ] | ipsec [ ipv6 ] | mgre }
(3) 在隧道接口上應用IPsec安全框架。
tunnel protection ipsec profile profile-name [ acl [ ipv6 ] { acl-number | name acl-name } ]
缺省情況下,隧道接口下未應用IPsec安全框架。
在SDWAN網絡中為了實現IPsec保護SDWAN隧道接口上的報文,需要在通信兩端的CPE設備上執行如下配置任務:
(1) 配置IPsec安全提議
(4) (可選)配置IPsec抗重放窗口和序號的同步功能
(5) (可選)配置全局IPsec SA生存時間和空閑超時功能
(6) (可選)配置本端允許建立IPsec隧道的最大數
(7) (可選)配置IPsec報文日誌信息記錄功能
(8) (可選)配置IPsec協商事件日誌功能
SDWAN方式的IPsec安全框架,用於在SDWAN設備上生成IPsec SA。該類型的IPsec安全框架不限製對端IP地址,不需要進行ACL配置,即所有路由到SDWAN隧道接口的流量都會被IPsec保護,配置簡單,易於維護。
IPsec通信雙方的IPsec安全框架所引用的IPsec安全提議中的安全協議、認證/加密算法可以不一致。
(1) 進入係統視圖。
system-view
(2) 創建一個SDWAN方式的IPsec安全框架,並進入IPsec安全框架視圖。
ipsec profile profile-name sdwan
進入已創建的IPsec安全框架時,可以不指定協商方式sdwan。
(3) (可選)配置IPsec安全框架的描述信息。
description text
缺省情況下,無描述信息。
(4) 指定IPsec安全框架引用的IPsec安全提議。
transform-set transform-set-name&<1-6>
缺省情況下,IPsec安全框架沒有引用IPsec安全提議。
引用的IPsec安全提議所采用的封裝模式必須為傳輸模式。
(5) (可選)配置IPsec SA的生存時間。
sa duration time-based seconds
缺省情況下,IPsec安全框架下的IPsec SA生存時間為當前全局的IPsec SA生存時間。
(6) (可選)配置IPsec安全框架的別名。
profile alias alias-name
缺省情況下,IPsec安全框架的別名為profile-安全框架名稱。
在SDWAN隧道接口上應用SDWAN方式的IPsec安全框架後,SDWAN設備將創建IPsec SA,用於對路由到SDWAN隧道接口的流量進行IPsec保護。
(1) 進入係統視圖。
system-view
(2) 創建一個Tunnel接口,指定隧道模式為SDWAN類型,並進入該Tunnel接口視圖。
interface tunnel number mode sdwan udp
(3) 在隧道接口上應用IPsec安全框架。
tunnel protection ipsec profile profile-name
缺省情況下,隧道接口下未應用IPsec安全框架。
(4) 配置在指定slot上處理當前接口的流量。
service slot slot-number
缺省情況下,未指定處理當前接口流量的slot,業務處理在接收報文的slot上進行。
IPsec抗重放窗口和序號的同步功能是指,以指定的報文間隔將接口上IPsec入方向抗重放窗口的左側值和出方向IPsec報文的抗重放序號進行備份。當配置了防重放窗口和序號的同步間隔的IPsec安全策略/IPsec安全框架被應用到接口/IPv6路由協議上時,若IPsec冗餘備份功能處於開啟狀態,則可以保證主備切換時IPsec流量不間斷和抗重放保護不間斷。
(1) 進入係統視圖。
system-view
(2) 開啟IPsec冗餘備份功能。
ipsec redundancy enable
缺省情況下,IPsec冗餘備份功能處於關閉狀態。
(3) 進入IPsec安全策略視圖/IPsec安全策略模板視圖/IPsec安全框架視圖。
¡ 進入IPsec安全策略視圖。
ipsec { ipv6-policy | policy } policy-name seq-number [ gdoi | isakmp | manual ]
¡ 進入IPsec安全策略模板視圖。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 進入IPsec安全框架視圖。
ipsec profile profile-name [ isakmp | manual ]
(4) 配置防重放窗口和序號的同步間隔。
redundancy replay-interval inbound inbound-interval outbound outbound-interval
缺省情況下,同步入方向防重放窗口的報文間隔為1000個報文,同步出方向IPsec SA防重放序號的報文間隔為100000個報文。
此功能用來配置IPsec SA生存時間和空閑超時功能。對於IKE協商建立的IPsec SA,遵循以下原則:
· 采用隧道兩端設置的IPsec SA生存時間中較小者。
· 可同時存在基於時間和基於流量兩種方式的IPsec SA生存時間,隻要到達指定的時間或指定的流量,IPsec SA就會老化。
(1) 進入係統視圖。
system-view
(2) 配置IPsec SA生存時間或者IPsec SA空閑超時時間。
¡ 配置IPsec SA生存時間。
ipsec sa global-duration { time-based seconds | traffic-based kilobytes }
缺省情況下,IPsec SA基於時間的生存時間為3600秒,基於流量的生存時間為1843200千字節。
¡ 配置IPsec SA的全局軟超時緩衝參數。
ipsec sa global-soft-duration buffer { time-based seconds | traffic-based kilobytes }
缺省情況下,未配置全局軟超時緩衝參數。
¡ 開啟IPsec SA空閑超時功能,並配置IPsec SA空閑超時時間。
ipsec sa idle-time seconds
缺省情況下, IPsec SA空閑超時功能處於關閉狀態。
通過配置IPsec分片功能,可以選擇在報文進行IPsec封裝之前是否進行分片:
· IPsec封裝前分片功能處於開啟狀態時,設備會先判斷報文在經過IPsec封裝之後大小是否會超過發送接口的MTU值,如果封裝後的大小超過發送接口的MTU值,那麼會先對其分片再封裝。
· IPsec封裝後分片功能處於開啟狀態時,無論報文封裝後大小是否超過發送接口的MTU值,設備會直接對其先進行IPsec封裝處理,再由後續業務對其進行分片。
該功能僅對需要進行IPsec封裝的IPv4報文有效。
(1) 進入係統視圖。
system-view
(2) 配置IPsec分片功能。
ipsec fragmentation { after-encryption | before-encryption }
缺省情況下,IPsec封裝前分片功能處於開啟狀態。
IP報文頭中的DF(Don’t Fragment,不分片)位用於控製報文是否允許被分片。在隧道模式下,IPsec會在原始報文外封裝一個新的IP頭,稱為外層IP頭。IPsec的DF位設置功能允許用戶設置IPsec封裝後的報文外層IP頭的DF位,並支持以下三種設置方式:
· clear:表示清除外層IP頭的DF位,IPsec封裝後的報文可被分片。
· set:表示設置外層IP頭的DF位,IPsec封裝後的報文不能被分片。
· copy:表示外層IP頭的DF位從原始報文IP頭中拷貝。
封裝後外層IP頭的DF位可以在IPsec安全策略視圖/IPsec安全策略模板視圖/IPsec安全框架視圖、接口視圖和係統視圖下分別配置,IPsec安全策略/IPsec安全策略模板/IPsec安全框架下的配置優先級最高。如果IPsec安全策略/IPsec安全策略模板/IPsec安全框架下未配置IPsec DF位,將使用接口下配置的IPsec DF位;如果接口下也未配置IPsec DF位,將使用係統視圖下配置的全局IPsec DF位。
· 該功能僅在IPsec的封裝模式為隧道模式時有效,僅用於設置IPsec隧道模式封裝後的外層IP頭的DF位,原始報文IP頭的DF位不會被修改。
· 隻有IKE協商方式的IPsec才能夠支持本功能。
· 如果有多個接口應用了共享源接口安全策略,則這些接口上必須使用相同的DF位設置。
· 轉發報文時對報文進行分片、重組,可能會導致報文的轉發延時較大。若設置了封裝後IPsec報文的DF位,則不允許對IPsec報文進行分片,可以避免引入分片延時。這種情況下,要求IPsec報文轉發路徑上各個接口的MTU大於IPsec報文長度,否則,會導致IPsec報文被丟棄。如果無法保證轉發路徑上各個接口的MTU大於IPsec報文長度,則建議清除DF位。
(1) 進入係統視圖。
system-view
(2) 進入IPsec安全策略視圖/IPsec安全策略模板視圖/IPsec安全框架視圖。
¡ 進入IPsec安全策略視圖。
ipsec { ipv6-policy | policy } policy-name seq-number isakmp
¡ 進入IPsec安全策略模板視圖。
ipsec { ipv6-policy-template | policy-template } template-name seq-number
¡ 進入IPsec安全框架視圖。
ipsec profile profile-name isakmp
(3) 為IPsec安全策略/IPsec安全策略模板/IPsec安全框架設置IPsec封裝後外層IP頭的DF位。
sa df-bit { clear | copy | set }
缺省情況下,未設置IPsec封裝後外層IP頭的DF位,采用接口或全局設置的DF位。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 為當前接口設置IPsec封裝後外層IP頭的DF位。
ipsec df-bit { clear | copy | set }
缺省情況下,接口下未設置IPsec封裝後外層IP頭的DF位,采用全局設置的DF位。
(1) 進入係統視圖。
system-view
(2) 為全局設置IPsec封裝後外層IP頭的DF位。
ipsec global-df-bit { clear | copy | set }
缺省情況下,IPsec封裝後外層IP頭的DF位從原始報文IP頭中拷貝。
此功能用來配置對本端IPsec隧道數目的限製。本端允許建立IPsec隧道的最大數與內存資源有關。內存充足時可以設置較大的數值,提高IPsec的並發性能;內存不足時可以設置較小的數值,降低IPsec占用內存的資源。
(1) 進入係統視圖。
system-view
(2) 配置本端允許建立IPsec隧道的最大數。
ipsec limit max-tunnel tunnel-limit
缺省情況下,本端允許建立IPsec隧道的最大數為4294967295。
開啟IPsec報文日誌記錄功能後,設備會在丟棄IPsec報文的情況下,例如入方向找不到對應的IPsec SA、AH/ESP認證失敗、ESP加密失敗等時,輸出相應的日誌信息,該日誌信息內容主要包括報文的源和目的IP地址、報文的SPI值、報文的序列號信息,以及設備丟包的原因。
(1) 進入係統視圖。
system-view
(2) 開啟IPsec報文日誌記錄功能。
ipsec logging packet enable
開啟IPsec協商事件日誌記錄功能後,設備會輸出IPsec協商過程中的相關日誌。
(1) 進入係統視圖。
system-view
(2) 開啟IPsec協商事件日誌功能。
ipsec logging negotiation enable
缺省情況下,IPsec協商事件日誌功能處於關閉狀態。
開啟IPsec的Trap功能後,IPsec會生成告警信息,用於向網管軟件報告該模塊的重要事件。生成的告警信息將被發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
如果希望生成並輸出某種類型的IPsec告警信息,則需要保證IPsec的全局告警功能以及相應類型的告警功能均處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 開啟IPsec的全局告警功能。
snmp-agent trap enable ipsec global
缺省情況下,IPsec的全局告警功能處於關閉狀態。
(3) 開啟IPsec的指定告警功能。
snmp-agent trap enable ipsec [ auth-failure | connection-start | connection-stop | decrypt-failure | encrypt-failure | invalid-sa-failure | no-sa-failure | policy-add | policy-attach | policy-delete | policy-detach | tunnel-start | tunnel-stop ] *
缺省情況下,IPsec的所有告警功能均處於關閉狀態。
可在任意視圖下執行以下命令:
display ipsec { ipv6-policy | policy } [ policy-name [ seq-number ] ]
· 顯示IPsec安全策略模板的信息。
display ipsec { ipv6-policy-template | policy-template } [ template-name [ seq-number ] ]
· 顯示IPsec安全框架的信息。
display ipsec profile [ profile-name ]
· 顯示IPsec SA的相關信息。
display ipsec sa [ brief | count | interface interface-type interface-number | { ipv6-policy | policy } policy-name [ seq-number ] | profile profile-name | remote [ ipv6 ] ip-address ]
· 顯示本端SDWAN模式的IPsec SA的相關信息
display ipsec sdwan-sa local [ brief | count | interface tunnel tunnel-number | spi spi-number ]
· 顯示對端SDWAN模式的IPsec SA的相關信息
display ipsec sdwan-sa remote [ brief | count ]
· 顯示SDWAN模式的IPsec隧道的報文統計信息
display ipsec sdwan-statistics [ tunnel-id tunnel-id ]
· 顯示SDWAN模式的IPsec隧道信息
display ipsec sdwan-tunnel [ brief | count | tunnel-id tunnel-id ]
· 顯示IPsec處理報文的統計信息。
display ipsec statistics [ tunnel-id tunnel-id ]
· 顯示IPsec安全提議的信息。
display ipsec transform-set [ transform-set-name ]
· 顯示IPsec隧道的信息。
display ipsec tunnel { brief | count | tunnel-id tunnel-id }
請在用戶視圖下執行以下命令
· 清除已經建立的IPsec SA。
reset ipsec sa [ { ipv6-policy | policy } policy-name [ seq-number ] | profile policy-name | remote { ipv4-address | ipv6 ipv6-address } | spi { ipv4-address | ipv6 ipv6-address } { ah | esp } spi-num ]
· 清除SDWAN模式的IPsec SA
reset ipsec sdwan-sa [ local [ interface tunnel tunnel-number ] | remote ]
· 清除SDWAN模式的IPsec隧道的報文統計信息
reset ipsec sdwan-statistics [ tunnel-id tunnel-id ]
· 清除SDWAN模式的IPsec隧道信息
reset ipsec sdwan-tunnel [ tunnel-id tunnel-id ]
· 清除IPsec的報文統計信息。
reset ipsec statistics [ tunnel-id tunnel-id ]
在Router A和Router B之間建立一條IPsec隧道,對Host A所在的子網(10.1.1.0/24)與Host B所在的子網(10.1.2.0/24)之間的數據流進行安全保護。具體要求如下:
· 封裝形式為隧道模式。
· 安全協議采用ESP協議。
· 加密算法采用128比特的AES,認證算法采用HMAC-SHA1。
· 手工方式建立IPsec SA。
圖1-11 保護IPv4報文的IPsec配置組網圖
(1) 配置Router A
# 配置各接口的IP地址,具體略。
# 配置一個IPv4高級ACL,定義要保護由子網10.1.1.0/24去往子網10.1.2.0/24的數據流。
<RouterA> system-view
[RouterA] acl advanced 3101
[RouterA-acl-ipv4-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[RouterA-acl-ipv4-adv-3101] quit
# 配置到達Host B所在子網的靜態路由。2.2.2.3為本例中的直連下一跳地址,實際使用中請以具體組網情況為準。
[RouterA] ip route-static 10.1.2.0 255.255.255.0 gigabitethernet 0/0/2 2.2.2.3
# 創建IPsec安全提議tran1。
[RouterA] ipsec transform-set tran1
# 配置安全協議對IP報文的封裝形式為隧道模式。
[RouterA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全協議為ESP。
[RouterA-ipsec-transform-set-tran1] protocol esp
# 配置ESP協議采用的加密算法為采用128比特的AES,認證算法為HMAC-SHA1。
[RouterA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-tran1] quit
# 創建一條手工方式的IPsec安全策略,名稱為map1,序列號為10。
[RouterA] ipsec policy map1 10 manual
# 指定引用ACL 3101。
[RouterA-ipsec-policy-manual-map1-10] security acl 3101
# 指定引用的IPsec安全提議為tran1。
[RouterA-ipsec-policy-manual-map1-10] transform-set tran1
# 指定IPsec隧道對端IP地址為2.2.3.1。
[RouterA-ipsec-policy-manual-map1-10] remote-address 2.2.3.1
# 配置ESP協議的出方向SPI為12345,入方向SPI為54321。
[RouterA-ipsec-policy-manual-map1-10] sa spi outbound esp 12345
[RouterA-ipsec-policy-manual-map1-10] sa spi inbound esp 54321
# 配置ESP協議的出方向SA的密鑰為明文字符串abcdefg,入方向SA的密鑰為明文字符串gfedcba。
[RouterA-ipsec-policy-manual-map1-10] sa string-key outbound esp simple abcdefg
[RouterA-ipsec-policy-manual-map1-10] sa string-key inbound esp simple gfedcba
[RouterA-ipsec-policy-manual-map1-10] quit
# 在接口GigabitEthernet0/0/2上應用IPsec安全策略map1。
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] ip address 2.2.2.1 255.255.255.0
[RouterA-GigabitEthernet0/0/2] ipsec apply policy map1
[RouterA-GigabitEthernet0/0/2] quit
(2) 配置Router B
# 配置各接口的IP地址,具體略。
# 配置一個IPv4高級ACL,定義要保護由子網10.1.2.0/24去往子網10.1.1.0/24的數據流。
<RouterB> system-view
[RouterB] acl advanced 3101
[RouterB-acl-ipv4-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[RouterB-acl-ipv4-adv-3101] quit
# 配置到達Host A所在子網的靜態路由。2.2.3.3為本例中的直連下一跳地址,實際使用中請以具體組網情況為準。
[RouterB] ip route-static 10.1.1.0 255.255.255.0 gigabitethernet 0/0/2 2.2.3.3
# 創建IPsec安全提議tran1。
[RouterB] ipsec transform-set tran1
# 配置安全協議對IP報文的封裝形式為隧道模式。
[RouterB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全協議為ESP。
[RouterB-ipsec-transform-set-tran1] protocol esp
# 配置ESP協議采用的加密算法為128比特的AES,認證算法為HMAC-SHA1。
[RouterB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran1] quit
# 創建一條手工方式的IPsec安全策略,名稱為use1,序列號為10。
[RouterB] ipsec policy use1 10 manual
# 指定引用ACL 3101。
[RouterB-ipsec-policy-manual-use1-10] security acl 3101
# 指定引用的IPsec安全提議為tran1。
[RouterB-ipsec-policy-manual-use1-10] transform-set tran1
# 指定IPsec隧道對端IP地址為2.2.2.1。
[RouterB-ipsec-policy-manual-use1-10] remote-address 2.2.2.1
# 配置ESP協議的出方向SPI為54321,入方向SPI為12345。
[RouterB-ipsec-policy-manual-use1-10] sa spi outbound esp 54321
[RouterB-ipsec-policy-manual-use1-10] sa spi inbound esp 12345
# 配置ESP協議的出方向SA的密鑰為明文字符串gfedcba,入方向SA的密鑰為明文字符串abcdefg。
[RouterB-ipsec-policy-manual-use1-10] sa string-key outbound esp simple gfedcba
[RouterB-ipsec-policy-manual-use1-10] sa string-key inbound esp simple abcdefg
[RouterB-ipsec-policy-manual-use1-10] quit
# 在接口GigabitEthernet0/0/2上應用IPsec安全策略use1。
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] ip address 2.2.3.1 255.255.255.0
[RouterB-GigabitEthernet0/0/2] ipsec apply policy use1
[RouterB-GigabitEthernet0/0/2] quit
以上配置完成後,Router A和Router B之間的IPsec隧道就建立好了,子網10.1.1.0/24與子網10.1.2.0/24之間數據流的傳輸將受到生成的IPsec SA的保護。可通過以下顯示查看Router A上手工創建的IPsec SA。
[RouterA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/2
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: Manual
-----------------------------
Tunnel id: 549
Encapsulation mode: tunnel
Path MTU: 1443
Tunnel:
local address: 2.2.2.1
remote address: 2.2.3.1
Flow:
as defined in ACL 3101
[Inbound ESP SA]
SPI: 54321 (0x0000d431)
Connection ID: 90194313219
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
[Outbound ESP SA]
SPI: 12345 (0x00003039)
Connection ID: 64424509441
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
Router B上也會產生相應的IPsec SA來保護IPv4報文,查看方式與Router A同,此處略。
在Router A和Router B之間建立一條IPsec隧道,對Host A所在的子網(10.1.1.0/24)與Host B所在的子網(10.1.2.0/24)之間的數據流進行安全保護。具體要求如下:
· 封裝形式為隧道模式。
· 安全協議采用ESP協議。
· 加密算法采用128比特的AES,認證算法采用HMAC-SHA1。
· IKE協商方式建立IPsec SA。
圖1-12 保護IPv4報文的IPsec配置組網圖
(1) 配置Router A
# 配置各接口的IP地址,具體略。
# 配置一個IPv4高級ACL,定義要保護由子網10.1.1.0/24去往子網10.1.2.0/24的數據流。
<RouterA> system-view
[RouterA] acl advanced 3101
[RouterA-acl-ipv4-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[RouterA-acl-ipv4-adv-3101] quit
# 配置到達Host B所在子網的靜態路由。2.2.2.3為本例中的直連下一跳地址,實際使用中請以具體組網情況為準。
[RouterA] ip route-static 10.1.2.0 255.255.255.0 gigabitethernet 0/0/2 2.2.2.3
# 創建IPsec安全提議tran1。
[RouterA] ipsec transform-set tran1
# 配置安全協議對IP報文的封裝形式為隧道模式。
[RouterA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全協議為ESP。
[RouterA-ipsec-transform-set-tran1] protocol esp
# 配置ESP協議采用的加密算法為128比特的AES,認證算法為HMAC-SHA1。
[RouterA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-tran1] quit
# 創建並配置IKE keychain,名稱為keychain1。
[RouterA] ike keychain keychain1
# 配置與IP地址為2.2.3.1的對端使用的預共享密鑰為明文123456TESTplat&!。
[RouterA-ike-keychain-keychain1] pre-shared-key address 2.2.3.1 255.255.255.0 key simple 123456TESTplat&!
[RouterA-ike-keychain-keychain1] quit
# 創建並配置IKE profile,名稱為profile1。
[RouterA] ike profile profile1
[RouterA-ike-profile-profile1] keychain keychain1
[RouterA-ike-profile-profile1] match remote identity address 2.2.3.1 255.255.255.0
[RouterA-ike-profile-profile1] quit
# 創建一條IKE協商方式的IPsec安全策略,名稱為map1,序列號為10。
[RouterA] ipsec policy map1 10 isakmp
# 指定引用ACL 3101。
[RouterA-ipsec-policy-isakmp-map1-10] security acl 3101
# 指定引用的安全提議為tran1。
[RouterA-ipsec-policy-isakmp-map1-10] transform-set tran1
# 指定IPsec隧道的本端IP地址為2.2.2.1,對端IP地址為2.2.3.1。
[RouterA-ipsec-policy-isakmp-map1-10] local-address 2.2.2.1
[RouterA-ipsec-policy-isakmp-map1-10] remote-address 2.2.3.1
# 指定引用的IKE profile為profile1。
[RouterA-ipsec-policy-isakmp-map1-10] ike-profile profile1
[RouterA-ipsec-policy-isakmp-map1-10] quit
# 在接口GigabitEthernet0/0/2上應用安全策略map1。
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] ip address 2.2.2.1 255.255.255.0
[RouterA-GigabitEthernet0/0/2] ipsec apply policy map1
[RouterA-GigabitEthernet0/0/2] quit
(2) 配置Router B
# 配置各接口的IP地址,具體略。
# 配置一個IPv4高級ACL,定義要保護由子網10.1.2.0/24去往子網10.1.1.0/24的數據流。
<RouterB> system-view
[RouterB] acl advanced 3101
[RouterB-acl-ipv4-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[RouterB-acl-ipv4-adv-3101] quit
# 配置到達Host A所在子網的靜態路由。2.2.3.3為本例中的直連下一跳地址,實際使用中請以具體組網情況為準。
[RouterB] ip route-static 10.1.1.0 255.255.255.0 gigabitethernet 0/0/2 2.2.3.3
# 創建IPsec安全提議tran1。
[RouterB] ipsec transform-set tran1
# 配置安全協議對IP報文的封裝形式為隧道模式。
[RouterB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全協議為ESP。
[RouterB-ipsec-transform-set-tran1] protocol esp
# 配置ESP協議采用的加密算法為128比特的AES,認證算法為HMAC-SHA1。
[RouterB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran1] quit
# 創建並配置IKE keychain,名稱為keychain1。
[RouterB] ike keychain keychain1
[RouterB-ike-keychain-keychain1] pre-shared-key address 2.2.2.1 255.255.255.0 key simple 123456TESTplat&!
[RouterB-ike-keychain-keychain1] quit
# 創建並配置IKE profile,名稱為profile1。
[RouterB] ike profile profile1
[RouterB-ike-profile-profile1] keychain keychain1
[RouterB-ike-profile-profile1] match remote identity address 2.2.2.1 255.255.255.0
[RouterB-ike-profile-profile1] quit
# 創建一條IKE協商方式的安全策略,名稱為use1,序列號為10。
[RouterB] ipsec policy use1 10 isakmp
# 指定引用ACL 3101。
[RouterB-ipsec-policy-isakmp-use1-10] security acl 3101
# 指定引用的IPsec安全提議為tran1。
[RouterB-ipsec-policy-isakmp-use1-10] transform-set tran1
# 指定IPsec隧道的本端IP地址為2.2.3.1,對端IP地址為2.2.2.1。
[RouterB-ipsec-policy-isakmp-use1-10] local-address 2.2.3.1
[RouterB-ipsec-policy-isakmp-use1-10] remote-address 2.2.2.1
# 指定引用的IKE對等體為profile1。
[RouterB-ipsec-policy-isakmp-use1-10] ike-profile profile1
[RouterB-ipsec-policy-isakmp-use1-10] quit
# 在接口GigabitEthernet0/0/2上應用IPsec安全策略use1。
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] ip address 2.2.3.1 255.255.255.0
[RouterB-GigabitEthernet0/0/2] ipsec apply policy use1
[RouterB-GigabitEthernet0/0/2] quit
以上配置完成後,Router A和Router B之間如果有子網10.1.1.0/24與子網10.1.2.0/24之間的報文通過,將觸發IKE進行IPsec SA的協商。IKE成功協商出IPsec SA後,子網10.1.1.0/24與子網10.1.2.0/24之間數據流的傳輸將受到IPsec SA的保護。可通過以下顯示查看到協商生成的IPsec SA。
[RouterA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/2
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1443
Tunnel:
local address: 2.2.3.1
remote address: 2.2.2.1
Flow:
sour addr: 10.1.1.0/255.255.255.0 port: 0 protocol: ip
dest addr: 10.1.2.0/255.255.255.0 port: 0 protocol: ip
[Inbound ESP SAs]
SPI: 3769702703 (0xe0b1192f)
Connection ID: 90194313219
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2300/797
Max received sequence-number: 1
Anti-replay check enable: N
Anti-replay window size:
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 3840956402 (0xe4f057f2)
Connection ID: 64424509441
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2312/797
Max sent sequence-number: 1
UDP encapsulation used for NAT traversal: N
Status: Active
Router B上也會產生相應的IPsec SA來保護IPv4報文,查看方式與Router A同,此處略。
在Router A和Router B之間建立一條IPsec隧道,對Host A所在的子網(333::/64)與Host B所在的子網(555::/64)之間的數據流進行安全保護。具體要求如下:
· 封裝形式為隧道模式。
· 安全協議采用ESP協議。
· 加密算法采用128比特的AES,認證算法采用HMAC-SHA1。
· IKE協商方式建立IPsec SA。
圖1-13 保護IPv6報文的IPsec配置組網圖
(1) 配置Router A
# 配置各接口的IPv6地址,具體略。
# 配置一個IPv6高級ACL,定義要保護由子網333::/64去往子網555::/64的數據流。
<RouterA> system-view
[RouterA] acl ipv6 advanced 3101
[RouterA-acl-ipv6-adv-3101] rule permit ipv6 source 333::0 64 destination 555::0 64
[RouterA-acl-ipv6-adv-3101] quit
# 配置到達Host B所在子網的靜態路由。111::2為本例中的直連下一跳地址,實際使用中請以具體組網情況為準。
[RouterA] ipv6 route-static 555::0 64 111::2
# 創建IPsec安全提議tran1。
[RouterA] ipsec transform-set tran1
# 配置安全協議對IP報文的封裝形式為隧道模式。
[RouterA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全協議為ESP。
[RouterA-ipsec-transform-set-tran1] protocol esp
# 配置ESP協議采用的加密算法為128比特的AES,認證算法為HMAC-SHA1。
[RouterA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-tran1] quit
# 創建並配置IKE keychain,名稱為keychain1。
[RouterA] ike keychain keychain1
[RouterA-ike-keychain-keychain1] pre-shared-key address ipv6 222::1 64 key simple 123456TESTplat&!
[RouterA-ike-keychain-keychain1] quit
# 創建並配置IKE profile,名稱為profile1。
[RouterA] ike profile profile1
[RouterA-ike-profile-profile1] keychain keychain1
[RouterA-ike-profile-profile1] match remote identity address ipv6 222::1 64
[RouterA-ike-profile-profile1] quit
# 創建一條IKE協商方式的IPsec安全策略,名稱為map1,序列號為10。
[RouterA] ipsec ipv6-policy map1 10 isakmp
# 指定引用IPv6 ACL 3101。
[RouterA-ipsec-ipv6-policy-isakmp-map1-10] security acl ipv6 3101
# 指定引用的IPsec安全提議為tran1。
[RouterA-ipsec-ipv6-policy-isakmp-map1-10] transform-set tran1
# 指定IPsec隧道本端IPv6地址為111::1,對端IPv6地址為222::1。
[RouterA-ipsec-ipv6-policy-isakmp-map1-10] local-address ipv6 111::1
[RouterA-ipsec-ipv6-policy-isakmp-map1-10] remote-address ipv6 222::1
# 指定引用的IKE對等體為profile1。
[RouterA-ipsec-ipv6-policy-isakmp-map1-10] ike-profile profile1
[RouterA-ipsec-ipv6-policy-isakmp-map1-10] quit
# 在接口GigabitEthernet0/0/2上應用IPsec安全策略map1。
[RouterA] interface gigabitethernet 0/0/2
[RouterA-GigabitEthernet0/0/2] ipv6 address 111::1/64
[RouterA-GigabitEthernet0/0/2] ipsec apply ipv6-policy map1
[RouterA-GigabitEthernet0/0/2] quit
(2) 配置Router B
# 配置各接口的IPv6地址,具體略。
# 配置一個IPv6高級ACL,定義要保護由子網555::/64去往子網333::/64的數據流。
<RouterB> system-view
[RouterB] acl ipv6 advanced 3101
[RouterB-acl-ipv6-adv-3101] rule permit ipv6 source 555::/64 destination 333::/64
[RouterB-acl-ipv6-adv-3101] quit
# 配置到達Host A所在子網的靜態路由。222::2為本例中的直連下一跳地址,實際使用中請以具體組網情況為準。
[RouterB] ipv6 route-static 333::0 64 222::2
# 創建IPsec安全提議tran1。
[RouterB] ipsec transform-set tran1
# 配置安全協議對IP報文的封裝形式為隧道模式。
[RouterB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全協議為ESP。
[RouterB-ipsec-transform-set-tran1] protocol esp
# 配置ESP協議采用的加密算法為128比特的AES,認證算法為HMAC-SHA1。
[RouterB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran1] quit
# 創建並配置IKE keychain,名稱為keychain1。
[RouterB] ike keychain keychain1
[RouterB-ike-keychain-keychain1] pre-shared-key address ipv6 111::1 64 key simple 123456TESTplat&!
[RouterB-ike-keychain-keychain1] quit
# 創建並配置IKE profile,名稱為profile1。
[RouterB] ike profile profile1
[RouterB-ike-profile-profile1] keychain keychain1
[RouterB-ike-profile-profile1] match remote identity address ipv6 111::1 64
[RouterB-ike-profile-profile1] quit
# 創建一條IKE協商方式的IPsec安全策略,名稱為use1,序列號為10。
[RouterB] ipsec ipv6-policy use1 10 isakmp
# 指定引用ACL 3101。
[RouterB-ipsec-ipv6-policy-isakmp-use1-10] security acl ipv6 3101
# 指定引用的安全提議為tran1。
[RouterB-ipsec-ipv6-policy-isakmp-use1-10] transform-set tran1
# 指定IPsec隧道本端IPv6地址為222::1,對端IPv6地址為111::1。
[RouterB-ipsec-ipv6-policy-isakmp-use1-10] local-address ipv6 222::1
[RouterB-ipsec-ipv6-policy-isakmp-use1-10] remote-address ipv6 111::1
# 指定引用的IKE對等體為profile1。
[RouterB-ipsec-ipv6-policy-isakmp-use1-10] ike-profile profile1
[RouterB-ipsec-ipv6-policy-isakmp-use1-10] quit
# 在接口GigabitEthernet0/0/2上應用IPsec安全策略use1。
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] ipv6 address 222::1/64
[RouterB-GigabitEthernet0/0/2] ipsec apply ipv6-policy use1
[RouterB-GigabitEthernet0/0/2] quit
以上配置完成後,當Router A和Router B之間有子網333::/64與子網555::/64之間的報文通過時,將觸發IKE進行IPsec SA的協商。IKE成功協商出IPsec SA後,子網333::/64與子網555::/64之間數據流的傳輸將受到IPsec SA的保護。可通過以下顯示查看到協商生成的IPsec SA。
[RouterA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/2
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1423
Tunnel:
local address: 111::1
remote address: 222::1
Flow:
sour addr: 111::1/0 port: 0 protocol: ipv6
dest addr: 222::1/0 port: 0 protocol: ipv6
[Inbound ESP SAs]
SPI: 3769702703 (0xe0b1192f)
Connection ID: 1
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2300/797
Max received sequence-number: 1
Anti-replay check enable: N
Anti-replay window size:
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 3840956402 (0xe4f057f2)
Connection ID: 2
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 3000/28800
SA remaining duration (kilobytes/sec): 2312/797
Max sent sequence-number: 1
UDP encapsulation used for NAT traversal: N
Status: Active
Router B上也會產生相應的IPsec SA來保護IPv6報文,查看方式與Router A同,此處略。
如圖1-14所示,Router A、Router B和Router C相連,並通過RIPng來學習網絡中的IPv6路由信息。在各設備之間建立IPsec隧道,對它們收發的RIPng報文進行安全保護。具體要求如下:
· 安全協議采用ESP協議;
· 加密算法采用128比特的AES;
· 認證算法采用HMAC-SHA1。
圖1-14 配置IPsec保護RIPng報文組網圖
(1) 配置RIPng的基本功能
RIPng配置的詳細介紹請參見“三層技術-IP路由配置指導”中的“RIPng”。
(2) 配置IPsec安全框架
¡ 各設備上本端出方向SA的SPI及密鑰必須和本端入方向SA的SPI及密鑰保持一致。
¡ Router A、Router B和Router C上的安全策略所引用的安全提議采用的安全協議、認證/加密算法和報文封裝模式要相同,而且所有設備上的SA的SPI及密鑰均要保持一致。
(3) 在RIPng進程下或接口上應用IPsec安全框架
(1) 配置Router A
¡ 配置各接口的IPv6地址(略)
¡ 配置RIPng的基本功能
<RouterA> system-view
[RouterA] ripng 1
[RouterA-ripng-1] quit
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] ripng 1 enable
[RouterA-GigabitEthernet0/0/1] quit
¡ 配置IPsec安全框架
# 創建並配置名為tran1的IPsec安全提議(報文封裝模式采用傳輸模式,安全協議采用ESP協議,加密算法采用128比特的AES,認證算法采用HMAC-SHA1)。
[RouterA] ipsec transform-set tran1
[RouterA-ipsec-transform-set-tran1] encapsulation-mode transport
[RouterA-ipsec-transform-set-tran1] protocol esp
[RouterA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-tran1] quit
# 創建並配置名為profile001的IPsec安全框架(協商方式為手工方式,出入方向SA的SPI均為123456,出入方向SA的密鑰均為明文abcdefg)。
[RouterA] ipsec profile profile001 manual
[RouterA-ipsec-profile-manual-profile001] transform-set tran1
[RouterA-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[RouterA-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[RouterA-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[RouterA-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[RouterA-ipsec-profile-manual-profile001] quit
¡ 在RIPng進程上應用IPsec安全框架
[RouterA] ripng 1
[RouterA-ripng-1] enable ipsec-profile profile001
[RouterA-ripng-1] quit
(2) 配置Router B
¡ 配置各接口的IPv6地址(略)
¡ 配置RIPng的基本功能
<RouterB> system-view
[RouterB] ripng 1
[RouterB-ripng-1] quit
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] ripng 1 enable
[RouterB-GigabitEthernet0/0/1] quit
[RouterB] interface gigabitethernet 0/0/2
[RouterB-GigabitEthernet0/0/2] ripng 1 enable
[RouterB-GigabitEthernet0/0/2] quit
¡ 配置IPsec安全框架
# 創建並配置名為tran1的IPsec安全提議(報文封裝模式采用傳輸模式,安全協議采用ESP協議,加密算法采用128比特的AES,認證算法采用HMAC-SHA1)。
[RouterB] ipsec transform-set tran1
[RouterB-ipsec-transform-set-tran1] encapsulation-mode transport
[RouterB-ipsec-transform-set-tran1] protocol esp
[RouterB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran1] quit
# 創建並配置名為profile001的IPsec安全框架(協商方式為手工方式,出入方向SA的SPI均為123456,出入方向SA的密鑰均為明文abcdefg)。
[RouterB] ipsec profile profile001 manual
[RouterB-ipsec-profile-manual-profile001] transform-set tran1
[RouterB-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[RouterB-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[RouterB-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[RouterB-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[RouterB-ipsec-profile-manual-profile001] quit
¡ 在RIPng進程上應用IPsec安全框架
[RouterB] ripng 1
[RouterB-ripng-1] enable ipsec-profile profile001
[RouterB-ripng-1] quit
(3) 配置Router C
¡ 配置各接口的IPv6地址(略)
¡ 配置RIPng的基本功能
<RouterC> system-view
[RouterC] ripng 1
[RouterC-ripng-1] quit
[RouterC] interface gigabitethernet 0/0/1
[RouterC-GigabitEthernet0/0/1] ripng 1 enable
[RouterC-GigabitEthernet0/0/1] quit
¡ 配置IPsec安全框架
# 創建並配置名為tran1的IPsec安全提議(報文封裝模式采用傳輸模式,安全協議采用ESP協議,加密算法采用128比特的AES,認證算法采用HMAC-SHA1)。
[RouterC] ipsec transform-set tran1
[RouterC-ipsec-transform-set-tran1] encapsulation-mode transport
[RouterC-ipsec-transform-set-tran1] protocol esp
[RouterC-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128
[RouterC-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterC-ipsec-transform-set-tran1] quit
# 創建並配置名為profile001的IPsec安全框架(協商方式為手工方式,出入方向SA的SPI均為123456,出入方向SA的密鑰均為明文abcdefg)。
[RouterC] ipsec profile profile001 manual
[RouterC-ipsec-profile-manual-profile001] transform-set tran1
[RouterC-ipsec-profile-manual-profile001] sa spi outbound esp 123456
[RouterC-ipsec-profile-manual-profile001] sa spi inbound esp 123456
[RouterC-ipsec-profile-manual-profile001] sa string-key outbound esp simple abcdefg
[RouterC-ipsec-profile-manual-profile001] sa string-key inbound esp simple abcdefg
[RouterC-ipsec-profile-manual-profile001] quit
¡ 在RIPng進程上應用IPsec安全框架
[RouterC] ripng 1
[RouterC-ripng-1] enable ipsec-profile profile001
[RouterC-ripng-1] quit
以上配置完成後,Router A、Router B和Router C將通過RIPng協議學習到網絡中的IPv6路由信息,且分別產生用於保護RIPng報文的IPsec SA。
可以通過如下display命令查看Router A上RIPng的配置信息。如下顯示信息表示RIPng進程1上已成功應用了IPsec安全框架。
[RouterA] display ripng 1
RIPng process : 1
Preference : 100
Checkzero : Enabled
Default Cost : 0
Maximum number of load balanced routes : 8
Update time : 30 secs Timeout time : 180 secs
Suppress time : 120 secs Garbage-Collect time : 120 secs
Update output delay: 20(ms) Output count: 3
Graceful-restart interval: 60 secs
Triggered Interval : 5 50 200
Number of periodic updates sent : 186
Number of triggered updates sent : 1
IPsec profile name: profile001
可以通過如下命令查看Router A上生成的IPsec SA。
[RouterA] display ipsec sa
-------------------------------
Global IPsec SA
-------------------------------
-----------------------------
IPsec profile: profile001
Mode: Manual
-----------------------------
Encapsulation mode: transport
[Inbound ESP SA]
SPI: 123456 (0x3039)
Connection ID: 90194313219
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
[Outbound ESP SA]
SPI: 123456 (0x3039)
Connection ID: 64424509441
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
No duration limit for this SA
Router B和Router C上也會生成相應的IPsec SA來保護RIPng報文,查看方式與Router A同,此處略。
企業分支通過IPsec VPN接入企業總部,有如下具體需求:
· 總部網關Router A和各分支網關Router B、RouterC、Router D之間建立IPsec隧道,對總部網絡4.4.4.0/24與分支網絡5.5.5.0/24之間的數據進行安全保護。
· 使用IKE協商方式建立IPsec SA,采用ESP安全協議,DES加密算法,HMAC-SHA-1-96認證算法。
· IKE協商采用預共享密鑰認證方式、3DES加密算法、HMAC-SHA1認證算法。
· 在Router A上開啟IPsec反向路由注入功能,實現總部到分支的靜態路由隨IPsec SA的建立而動態生成。
圖1-15 配置IPsec反向路由注入功能組網圖
(1) 配置RouterA
¡ 配置各接口的IPv4地址(略)
¡ 配置IPsec安全提議
# 創建並配置名為tran1的安全提議,采用使用ESP安全協議,DES加密算法,HMAC-SHA-1-96認證算法。
<RouterA> system-view
[RouterA] ipsec transform-set tran1
[RouterA-ipsec-transform-set-tran1] encapsulation-mode tunnel
[RouterA-ipsec-transform-set-tran1] protocol esp
[RouterA-ipsec-transform-set-tran1] esp encryption-algorithm des
[RouterA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-tran1] quit
¡ 配置IKE profile
# 創建並配置IKE profile,名稱為profile1。
[RouterA] ike profile profile1
[RouterA-ike-profile-profile1] keychain key1
[RouterA-ike-profile-profile1] match remote identity address 2.2.2.2 255.255.255.0
[RouterA-ike-profile-profile1] quit
¡ 配置IPsec安全策略模板
# 創建並配置名為temp1的IPsec安全策略模板,引用安全提議tran1
[RouterA] ipsec policy-template temp1 1
[RouterA-ipsec-policy-template-temp1-1] transform-set tran1
[RouterA-ipsec-policy-template-temp1-1] ike-profile profile1
¡ 配置RRI功能
# 開啟RRI功能,指定生成的靜態路由的優先級為100、Tag值為1000。
[RouterA-ipsec-policy-template-temp1-1] reverse-route dynamic
[RouterA-ipsec-policy-template-temp1-1] reverse-route preference 100
[RouterA-ipsec-policy-template-temp1-1] reverse-route tag 1000
[RouterA-ipsec-policy-template-temp1-1] quit
¡ 配置IKE協商方式的IPsec安全策略
# 創建並配置名為map1的IPsec安全策略,基於安全策略模板temp1創建
[RouterA] ipsec policy map1 10 isakmp template temp1
¡ 配置IKE提議
# 創建並配置IKE提議1,指定使用預共享密鑰認證方式、3DES加密算法、HMAC-SHA1認證算法。
[RouterA] ike proposal 1
[RouterA-ike-proposal-1] encryption-algorithm 3des-cbc
[RouterA-ike-proposal-1] authentication-algorithm sha
[RouterA-ike-proposal-1] authentication-method pre-share
[RouterA-ike-proposal-1] quit
¡ 配置IKE keychain
# 創建並配置名為key1的IKE keychain,指定與地址為2.2.2.2的對端使用的預共享密鑰為明文123。
[RouterA] ike keychain key1
[RouterA-ike-keychain-key1] pre-shared-key address 2.2.2.2 key simple 123
[RouterA-ike-keychain-key1] quit
¡ 在接口下引用IPsec安全策略
# 在接口GigabitEthernet0/0/1上應用IPsec安全策略map1。
[RouterA] interface gigabitethernet 0/0/1
[RouterA-GigabitEthernet0/0/1] ipsec apply policy map1
[RouterA-GigabitEthernet0/0/1] quit
(2) 配置Router B
¡ 配置各接口的IPv4地址(略)
¡ 配置IPsec安全提議
# 創建並配置名為tran1的安全提議
[RouterB] ipsec transform-set tran1
[RouterB-ipsec-transform-set-tran1] encapsulation-mode tunnel
[RouterB-ipsec-transform-set-tran1] protocol esp
[RouterB-ipsec-transform-set-tran1] esp encryption-algorithm des
[RouterB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-tran1] quit
¡ 配置ACL
# 配置IPv4高級ACL 3000,定義要保護由子網5.5.5.0/24去往子網4.4.4.0/24的數據流。
[RouterB] acl advanced 3000
[RouterB-acl-ipv4-adv-3000] rule permit ip source 5.5.5.0 0.0.0.255 destination 4.4.4.0 0.0.0.255
[RouterB-acl-ipv4-adv-3000] quit
¡ 配置IKE profile
# 創建並配置IKE profile,名稱為profile1。
[RouterB] ike profile profile1
[RouterB-ike-profile-profile1] keychain key1
[RouterB-ike-profile-profile1] match remote identity address 1.1.1.1 255.255.255.0
[RouterB-ike-profile-profile1] quit
¡ 配置ISAKMP方式的安全策略
# 創建並配置名為map1的IPsec安全策略,引用安全提議tran1,引用ACL 3000,並指定IPsec隧道的對端地址為1.1.1.1。
[RouterB] ipsec policy map1 10 isakmp
[RouterB-ipsec-policy-isakmp-map1-10] transform-set tran1
[RouterB-ipsec-policy-isakmp-map1-10] security acl 3000
[RouterB-ipsec-policy-isakmp-map1-10] remote-address 1.1.1.1
[RouterB-ipsec-policy-isakmp-map1-10] ike-profile profile1
[RouterB-ipsec-policy-isakmp-map1-10] quit
¡ 配置IKE提議
# 創建並配置IKE提議1,指定預共享密鑰認證方式、3DES加密算法、HMAC-SHA1認證算法。
[RouterB] ike proposal 1
[RouterB-ike-proposal-1] encryption-algorithm 3des-cbc
[RouterB-ike-proposal-1] authentication-algorithm sha
[RouterB-ike-proposal-1] authentication-method pre-share
[RouterB-ike-proposal-1] quit
¡ 配置IKE keychain
# 創建並配置名為key1的IKE keychain,指定與地址為1.1.1.1的對端使用的預共享密鑰為明文123。
[RouterB] ike keychain key1
[RouterB-ike-keychain-key1] pre-shared-key address 1.1.1.1 key simple 123
[RouterB-ike-keychain-key1] quit
¡ 在接口上應用IPsec安全策略
# 在接口GigabitEthernet0/0/1上應用IPsec安全策略map1。
[RouterB] interface gigabitethernet 0/0/1
[RouterB-GigabitEthernet0/0/1] ipsec apply policy map1
[RouterB-GigabitEthernet0/0/1] quit
保證RouterB上存在到達對端私網網段的路由,出接口為GigabitEthernet0/0/1。
(3) 配置Router C、Router D
配置步驟與Router B類似,請參考Router B的配置。
以上配置完成後,當分支子網5.5.5.0/24向總部網絡4.4.4.0/24發起數據連接時,將觸發Router B和Router A之間進行IKE協商。IKE成功協商出IPsec SA後,企業總部與分支子網之間的數據流傳輸將受到IPsec SA的保護。在Router A上可通過以下顯示查看到協商生成的IPsec SA。
[RouterA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/1
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: Template
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1463
Tunnel:
local address: 1.1.1.1
remote address: 2.2.2.2
Flow:
sour addr: 4.4.4.0/255.255.255.0 port: 0 protocol: ip
dest addr: 5.5.5.0/255.255.255.0 port: 0 protocol: ip
[Inbound ESP SAs]
SPI: 1014286405 (0x3c74c845)
Connection ID: 90194313219
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843199/3590
Max received sequence-number: 4
Anti-replay check enable: Y
Anti-replay window size: 64
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 4011716027 (0xef1dedbb)
Connection ID: 64424509441
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843199/3590
Max sent sequence-number: 4
UDP encapsulation used for NAT traversal: N
Status: Active
IPsec SA成功建立後,在Router A上可以通過display ip routing-table verbose命令查看到IPsec反向路由注入生成的靜態路由,目的地址為分支子網地址5.5.5.0/24,下一跳為IPsec隧道對端地址2.2.2.2,優先級為100,Tag值為1000。Router A和Router C、Router D之間的IPsec隧道建立成功後,Router A上也會產生到達各分支子網的相應靜態路由,此處顯示略。
如圖1-16所示,某企業分支和總部均使用固定的IP地址接入Internet。現有如下組網要求:
· 企業分支與企業總部之間的所有流量通過IPsec安全隧道進行傳送;
· 當企業分支的私網IP地址段調整時,不需要改變企業總部網關的IPsec配置。
為實現如上組網需求,可采用如下配置思路實現:
· 在Router A和Router B之間使用IPsec隧道接口建立IPsec連接,將發送給對端私網的數據流路由到IPsec虛擬隧道接口上,由IPsec虛擬隧道接口上動態協商建立的IPsec安全隧道對分支子網(10.1.1.0/24)與總部子網(10.1.2.0/24)之間的所有數據流進行安全保護。
圖1-16 基於IPsec隧道建立保護IPv4報文的IPsec隧道組網圖
在開始下麵的配置之前,請確保Router A的GE0/0/2接口和Router B的GE0/0/2接口之間IPv4報文路由可達。
(1) 請根據組網圖中標示的接口IP地址,配置各接口的IP地址,具體配置步驟略
(2) 配置IPsec安全框架
# 創建IKE keychain abc並進入IKE keychain視圖。
<RouterA> system-view
[RouterA] ike keychain abc
# 配置與地址為2.2.3.1的對端使用的預共享密鑰為明文的123456TESTplat&!。
[RouterA-ike-keychain-abc] pre-shared-key address 2.2.3.1 255.255.255.0 key simple 123456TESTplat&!
[RouterA-ike-keychain-abc] quit
# 創建IKE profile abc,並進入其視圖。
[RouterA] ike profile abc
# 在IKE profile abc中指定名稱為abc的配置的IKE keychain。
[RouterA-ike-profile-abc] keychain abc
# 指定使用IP地址2.2.2.1標識本端身份。
[RouterA-ike-profile-abc] local-identity address 2.2.2.1
# 指定需要匹配對端身份類型為IP地址,取值為2.2.3.1。
[RouterA-ike-profile-abc] match remote identity address 2.2.3.1 24
# 配置IKE第一階段協商使用野蠻模式。
[RouterA-ike-profile-abc] exchange-mode aggressive
[RouterA-ike-profile-abc] quit
# 創建名為abc的IPsec安全提議,並進入IPsec安全提議視圖。
[RouterA] ipsec transform-set abc
# 在IPsec安全提議中配置ESP加密算法為CBC模式的AES算法,密鑰長度為128比特。
[RouterA-ipsec-transform-set-abc] esp encryption-algorithm aes-cbc-128
# 在IPsec安全提議中配置ESP認證算法為HMAC-SHA1算法,密鑰長度為160比特。
[RouterA-ipsec-transform-set-abc] esp authentication-algorithm sha1
[RouterA-ipsec-transform-set-abc] quit
# 配置名稱為abc的IPsec安全框架,通過IKE協商建立安全聯盟。
[RouterA] ipsec profile abc isakmp
# 配置IPsec安全框架引用名稱為abc的IPsec安全提議。
[RouterA-ipsec-profile-isakmp-abc] transform-set abc
# 配置IPsec安全框架引用名稱為abc的IKE profile。
[RouterA-ipsec-profile-isakmp-abc] ike-profile abc
[RouterA-ipsec-profile-isakmp-abc] quit
(3) 配置IPsec隧道接口
# 創建模式為IPsec隧道的接口Tunnel1。
[RouterA] interface tunnel 1 mode ipsec
# 配置Tunnel1接口的IP地址。
[RouterA-Tunnel1] ip address 3.3.3.1 255.255.255.0
# 配置Tunnel1接口的源端地址(GE0/0/2接口的IP地址)。
[RouterA-Tunnel1] source 2.2.2.1
# 配置Tunnel1接口的目的端地址(RouterB的GE0/0/2接口的IP地址)。
[RouterA-Tunnel1] destination 2.2.3.1
# 在IPsec隧道接口上應用IPsec安全框架
[RouterA-Tunnel1] tunnel protection ipsec profile abc
[RouterA-Tunnel1] quit
(4) 配置Router A到Router B的靜態路由。
[RouterA] ip route-static 10.1.2.0 255.255.255.0 tunnel 1
(1) 請根據組網圖中標示的接口IP地址,配置各接口的IP地址,具體配置步驟略
(2) 配置IPsec安全框架
# 創建IKE keychain abc並進入IKE keychain視圖。
<RouterB> system-view
[RouterB] ike keychain abc
# 配置與地址為2.2.2.1的對端使用的預共享密鑰為明文的123456TESTplat&!。
[RouterB-ike-keychain-abc] pre-shared-key address 2.2.2.1 255.255.255.0 key simple 123456TESTplat&!
[RouterB-ike-keychain-abc] quit
# 創建IKE profile abc,並進入其視圖。
[RouterB] ike profile abc
# 在IKE profile abc中指定名稱為abc的配置的IKE keychain。
[RouterB-ike-profile-abc] keychain abc
# 指定使用IP地址2.2.3.1標識本端身份。
[RouterB-ike-profile-abc] local-identity address 2.2.3.1
# 指定需要匹配對端身份類型為IP地址,取值為2.2.2.1。
[RouterB-ike-profile-abc] match remote identity address 2.2.2.1 24
# 配置IKE第一階段協商使用野蠻模式。
[RouterB-ike-profile-abc] exchange-mode aggressive
[RouterB-ike-profile-abc] quit
# 創建名為abc的IPsec安全提議,並進入IPsec安全提議視圖。
[RouterB] ipsec transform-set abc
# 在IPsec安全提議中配置ESP加密算法為CBC模式的AES算法,密鑰長度為128比特。
[RouterB-ipsec-transform-set-abc] esp encryption-algorithm aes-cbc-128
# 在IPsec安全提議中配置ESP認證算法為HMAC-SHA1算法,密鑰長度為160比特。
[RouterB-ipsec-transform-set-abc] esp authentication-algorithm sha1
[RouterB-ipsec-transform-set-abc] quit
# 配置名稱為abc的IPsec安全框架,通過IKE協商建立安全聯盟。
[RouterB] ipsec profile abc isakmp
# 配置IPsec安全框架引用名稱為abc的IPsec安全提議。
[RouterB-ipsec-profile-isakmp-abc] transform-set abc
# 配置IPsec安全框架引用名稱為abc的IKE profile。
[RouterB-ipsec-profile-isakmp-abc] ike-profile abc
[RouterB-ipsec-profile-isakmp-abc] quit
(3) 配置IPsec隧道接口
# 創建模式為IPsec隧道的接口Tunnel1。
[RouterB] interface tunnel 1 mode ipsec
# 配置Tunnel1接口的IP地址。
[RouterB-Tunnel1] ip address 3.3.3.2 255.255.255.0
# 配置Tunnel1接口的源端地址(GE0/0/2接口的IP地址)。
[RouterB-Tunnel1] source 2.2.3.1
# 配置Tunnel1接口的目的端地址(RouterB的GE0/0/2接口的IP地址)。
[RouterB-Tunnel1] destination 2.2.2.1
# 在IPsec隧道接口上應用IPsec安全框架。
[RouterB-Tunnel1] tunnel protection ipsec profile abc
[RouterB-Tunnel1] quit
(4) 配置Router B到Router A的靜態路由
[RouterB] ip route-static 10.1.1.0 255.255.255.0 tunnel 1
以上配置完成後,Router A會自動與Router B進行IKE協商。當IKE協商完成後,Router A和Router B上的IPsec 虛擬隧道接口都將up,即可以滿足上述組網需求,對總部和分支的數據流進行安全保護。
# 通過display ip interface brief命令可查看接口狀態如下:
<RouterA> display ip interface brief
*down: administratively down
(s): spoofing (l): loopback
Interface Physical Protocol IP address/Mask VPN instance Description
GE0/0/1 up up 10.1.1.1/24 -- --
GE0/0/2 up up 2.2.2.1/24 -- --
Tun1 up up 3.3.3.1/24 -- --
# 通過display interface tunnel命令可查看隧道狀態如下:
<RouterA> display interface Tunnel 1
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 1444
Internet address: 3.3.3.1/24 (primary)
Tunnel source 2.2.2.1, destination 2.2.3.1
Tunnel TTL 255
Tunnel protocol/transport IPsec/IP
Output queue - Urgent queuing: Size/Length/Discards 0/100/0
Output queue - Protocol queuing: Size/Length/Discards 0/500/0
Output queue - FIFO queuing: Size/Length/Discards 0/75/0
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
# 通過display ipsec sa命令查看協商生成的IPsec SA:
<RouterA> display ipsec sa
-------------------------------
Interface: Tunnel1
-------------------------------
-----------------------------
IPsec profile: abc
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Transmitting entity: Initiator
Path MTU: 1388
Tunnel:
local address: 2.2.2.1
remote address: 2.2.3.1
Flow:
sour addr: 0.0.0.0/0.0.0.0 port: 0 protocol: ip
dest addr: 0.0.0.0/0.0.0.0 port: 0 protocol: ip
[Inbound ESP SAs]
SPI: 2701952073 (0xa10c8449)
Connection ID: 4294967296
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/3180
Max received sequence-number: 0
Anti-replay check enable: Y
Anti-replay window size: 64
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 3607077598 (0xd6ffa2de)
Connection ID: 12884901889
Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/3180
Max sent sequence-number: 0
UDP encapsulation used for NAT traversal: N
Status: Active
# 在Router A上用私網地址可以Ping通Router B連接的私網地址:
<RouterA> ping -a 10.1.1.1 10.1.2.1
Ping 10.1.2.1 (10.1.2.1) from 10.1.1.1: 56 data bytes, press CTRL_C to break
56 bytes from 10.1.2.1: icmp_seq=0 ttl=255 time=1.000 ms
56 bytes from 10.1.2.1: icmp_seq=1 ttl=255 time=1.000 ms
56 bytes from 10.1.2.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 10.1.2.1: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 10.1.2.1: icmp_seq=4 ttl=255 time=0.000 ms
--- Ping statistics for 10.1.2.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/0.600/1.000/0.490 ms
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!