使用IPsec-VPN實現本地數據中心IDC(Internet Data Center)和阿里云VPC之間的網絡互通時,在阿里云側完成VPN網關的配置后,您還需在本地數據中心的網關設備中添加VPN配置才能成功在本地數據中心和阿里云VPC之間建立IPsec-VPN連接。本文介紹如何在思科防火墻中添加VPN配置。
場景示例
本文以上圖場景為例。某公司在阿里云擁有一個專有網絡VPC(Virtual Private Cloud),VPC網段為10.0.0.0/16,VPC中使用云服務器ECS(Elastic Compute Service)部署了應用服務。同時該公司在本地擁有一個數據中心,本地數據中心中要與VPC互通的網段為192.168.0.0/16。公司計劃在本地數據中心與云上VPC之間建立IPsec-VPN連接,實現資源互訪。
本文場景中,本地數據中心使用一臺思科防火墻的兩個公網IP地址與阿里云建立雙隧道模式的IPsec-VPN連接。如果您購買的VPN網關實例僅支持建立單隧道模式的IPsec-VPN連接,請參見文末的單隧道模式配置示例。
推薦您升級IPsec-VPN連接為雙隧道模式,雙隧道模式的IPsec-VPN連接支持可用區級別的容災,有效提高了網絡的高可用性。
網段規劃及VPN配置示例
網段規劃
資源 | 網段 | IP地址 |
本地數據中心 | 待和VPC互通的網段:192.168.0.0/16 | 服務器IP地址:192.168.50.198 |
思科防火墻 | 不涉及 | 思科防火墻連接公網的物理接口:
|
VPC | 主網段:10.0.0.0/16 交換機1:10.0.10.0/24 交換機2:10.0.20.0/24 | ECS IP地址:10.0.10.33 |
VPN網關實例(公網網絡類型) | 不涉及 |
說明 創建VPN網關實例后,系統會自動為VPN網關實例分配地址。 |
BGP網段規劃
本文將分別描述IPsec-VPN連接使用靜態路由方式和BGP動態路由方式下如何配置思科防火墻。如果您不需要使用BGP動態路由方式,可以忽略本部分。以下為本文的BGP網段規劃。
資源 | 隧道 | BGP隧道網段 | BGP IP地址 | BGP AS號(本端自治系統號) |
VPN網關實例 | 隧道1 | 169.254.10.0/30 說明 一個VPN網關實例下,每個隧道的網段需保持唯一。 | 169.254.10.1 | 65530 |
隧道2 | 169.254.20.0/30 | 169.254.20.1 | ||
思科防火墻 | 隧道1 | 169.254.10.0/30 | 169.254.10.2 | 65000 |
隧道2 | 169.254.20.0/30 | 169.254.20.2 |
VPN配置示例
本文場景中隧道1(主隧道)和隧道2(備隧道)使用相同的示例值。
每條隧道下,阿里云側和思科防火墻側VPN配置需保持相同。
配置項 | 阿里云側示例值 | 思科防火墻側示例值 | |
預共享密鑰 | 123456**** | 123456**** | |
IKE配置 | IKE版本 | ikev2 | ikev2 |
協商模式 | main | main | |
加密算法 | aes | aes | |
認證算法 | sha1 | sha1 | |
DH分組 | group14 | group14 | |
SA生存周期(秒) | 86400 | 86400 | |
IPsec配置 | 加密算法 | aes | aes |
認證算法 | sha1 | sha1 | |
DH分組 | group14 | group14 | |
SA生存周期(秒) | 86400 | 86400 |
開始配置
本文以思科ASA軟件版本9.19.1作為配置示例。不同軟件版本的配置命令可能會有所差異,操作時請根據您的實際環境查詢對應文檔或咨詢相關廠商。
在下述場景中,推薦您使用目的路由模式-靜態路由或者目的路由模式-BGP動態路由方式。
目的路由模式-靜態路由
前提條件
本文僅描述如何在思科防火墻中添加VPN配置,不再描述阿里云VPN網關側的配置。因此在您開始配置前,請確保您已經完成創建VPN網關實例、創建用戶網關、創建IPsec連接、配置VPN網關路由的任務。具體操作,請參見建立VPC到本地數據中心的連接(雙隧道模式)。
操作步驟
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名稱。 security-level 0 ip address 121.XX.XX.77 255.255.255.255 #GigabitEthernet0/2接口配置的公網IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為公網地址。 route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1 crypto ikev2 enable outside2
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。 crypto ipsec profile ALIYUN-PROFILE set ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec profile并應用已創建的proposal。 set ikev2 local-identity address #指定本端ID使用IP地址格式,與阿里云側RemoteId格式保持一致。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間的SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道1本段的預共享密鑰,需和阿里云側的保持一致。 ! tunnel-group 182.XX.XX.19 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 182.XX.XX.19 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道2本段的預共享密鑰,需和阿里云側的保持一致。 !
創建tunnel接口。
interface Tunnel1 #創建隧道1的接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道1源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道1目的地址為阿里云側隧道1的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道1接口。 ! interface Tunnel2 #創建隧道2的接口。 nameif ALIYUN2 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside2 #指定隧道2源地址為公網接口GigabitEthernet0/2。 tunnel destination 182.XX.XX.19 #指定隧道2目的地址為阿里云側隧道2的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道2接口。 !
查看IPsec-VPN連接狀態。
您可以通過以下命令查看已經協商成功的SA。
IPsec SA協商相關查詢命令
show crypto isakmp sa #查看控制面協商SA信息(舊命令) show crypto ikev2 sa #查看控制面協商一二階段SA、role、感興趣流信息 show crypto ipsec sa peer XX.XX.XX.XX #查詢指定peer SA的詳細信息 show ipsec sa #查看轉發面一二階段SA、role、感興趣流、流量統計等基本信息
VPN流量統計相關查詢命令
show crypto ikev2 stats #查看協議報文、加密、異常報文統計數據 show crypto protocol statistics all #查看協議報文、加密報文統計數據 show ipsec stats #查看IPsec統計信息
配置去往阿里云VPC(10.0.0.0/16)的靜態路由。
route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218 4 #指定從本地數據中心去往阿里云VPC流量優先通過隧道1接口傳輸,該路由優先級較高。 route ALIYUN2 10.0.0.0 255.255.0.0 182.XX.XX.19 5 #指定從本地數據中心去往阿里云VPC流量通過隧道2接口傳輸,該路由優先級低于指向隧道1接口的路由。
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見驗證測試。
目的路由模式-BGP動態路由
前提條件
本文僅描述如何在思科防火墻中添加VPN配置,不再描述阿里云VPN網關側的配置。因此在您開始配置前,請確保您已經完成創建VPN網關實例、創建用戶網關、創建IPsec連接、開啟BGP功能的任務。具體操作,請參見建立VPC到本地數據中心的連接(雙隧道模式和BGP路由)。
操作步驟
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名稱。 security-level 0 ip address 121.XX.XX.77 255.255.255.255 #GigabitEthernet0/2接口配置的公網IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為公網地址。 route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1 crypto ikev2 enable outside2
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。 crypto ipsec profile ALIYUN-PROFILE set ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec profile并應用已創建的proposal。 set ikev2 local-identity address #指定本端ID使用IP地址格式,與阿里云側RemoteId格式保持一致。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間的SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道1本段的預共享密鑰,需和阿里云側的保持一致。 ! tunnel-group 182.XX.XX.19 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 182.XX.XX.19 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道2本段的預共享密鑰,需和阿里云側的保持一致。 !
創建tunnel接口。
interface Tunnel1 #創建隧道1的接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道1源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道1目的地址為阿里云側隧道1的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道1接口。 ! interface Tunnel2 #創建隧道2的接口。 nameif ALIYUN2 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside2 #指定隧道2源地址為公網接口GigabitEthernet0/2。 tunnel destination 182.XX.XX.19 #指定隧道2目的地址為阿里云側隧道2的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道2接口。 !
查看IPsec-VPN連接狀態。
您可以通過以下命令查看已經協商成功的SA。
IPsec SA協商相關查詢命令
show crypto isakmp sa #查看控制面協商SA show crypto ikev2 sa #查看控制面協商一二階段SA、role、感興趣流信息 show crypto ipsec sa peer XX.XX.XX.XX #查詢指定peer SA的詳細信息 show ipsec sa #查看轉發面一二階段SA/role/感興趣流/SA/流量統計基本信息
VPN流量統計相關查詢命令
show crypto ikev2 stats #查看協議報文、加密、異常報文統計數據 show crypto protocol statistics all #查看協議報文、加密報文統計數據 show ipsec stats #查看IPsec統計信息
配置BGP動態路由。
router bgp 65000 address-family ipv4 unicast neighbor 169.254.10.1 remote-as 65530 #指定BGP鄰居,即阿里云側隧道1的IP地址。 neighbor 169.254.10.1 ebgp-multihop 255 neighbor 169.254.10.1 activate #激活BGP鄰居。 neighbor 169.254.20.1 remote-as 65530 #指定BGP鄰居,即阿里云側隧道2的IP地址。 neighbor 169.254.20.1 ebgp-multihop 255 neighbor 169.254.20.1 activate #激活BGP鄰居。 network 192.168.0.0 mask 255.255.0.0 #宣告本地數據中心的網段。 exit-address-family
查看BGP鄰居狀態和BGP路由。
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見驗證測試。
感興趣流模式-靜態路由
前提條件
本文僅描述如何在思科防火墻中添加VPN配置,不再描述阿里云VPN網關側的配置。因此在您開始配置前,請確保您已經完成創建VPN網關實例、創建用戶網關、創建IPsec連接的任務。相關操作,請參見:建立VPC到本地數據中心的連接(雙隧道模式),其中:
創建IPsec連接時,路由模式需選擇感興趣流模式,本端網段設置為10.0.0.0/16,對端網段設置為192.168.0.0/16。
重要如果您的場景中需要指定多個本端網段或者對端網段,則推薦您使用目的路由模式-靜態路由或者目的路由模式-BGP動態路由方式。更多方案,請參見多網段配置方案推薦。
創建IPsec連接后,您需要發布策略路由,具體操作,請參見配置策略路由。無需再配置目的路由。
操作步驟
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名稱。 security-level 0 ip address 121.XX.XX.77 255.255.255.255 #GigabitEthernet0/2接口配置的公網IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為公網地址。 route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1 crypto ikev2 enable outside2
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal,指定思科防火墻側的IPsec階段加密算法、認證算法,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。
定義感興趣流。
指定允許IPsec-VPN連接傳輸的流量網段。本示例指定本地數據中心的192.168.0.0/16網段和阿里云VPC10.0.0.0/16網段互通。
access-list acl_tun extended permit ip 192.168.0.0 255.255.0.0 10.0.0.0 255.255.0.0
創建IPsec策略。
#創建隧道1的IPsec策略 crypto map TUNL1 1 match address acl_tun #應用定義的感興趣流。 crypto map TUNL1 1 set pfs group14 #指定DH分組。 crypto map TUNL1 1 set peer 39.XX.XX.218 #指定對端ID,即阿里云IPsec地址1。 crypto map TUNL1 1 set ikev2 ipsec-proposal ALIYUN-PROPOSAL #應用IPsec proposal。 crypto map TUNL1 1 set ikev2 pre-shared-key 0 123456**** #指定預共享密鑰,需和tunnel-group命令中的預共享密鑰必須保持一致。 crypto map TUNL1 1 set security-association lifetime seconds 86400 #指定基于時間的IPsec SA生存周期。 crypto map TUNL1 1 set security-association lifetime kilobytes unlimited #關閉基于流量的IPsec SA生存周期。 crypto map TUNL1 interface outside1 #將IPsec策略應用在公網接口GigabitEthernet0/0。 ! #創建隧道2的IPsec策略 crypto map TUNL2 1 match address acl_tun #應用定義的感興趣流。 crypto map TUNL2 1 set pfs group14 #指定DH分組。 crypto map TUNL2 1 set peer 182.XX.XX.19 #指定對端ID,即阿里云IPsec地址2。 crypto map TUNL2 1 set ikev2 ipsec-proposal ALIYUN-PROPOSAL #應用IPsec proposal。 crypto map TUNL2 1 set ikev2 pre-shared-key 0 123456**** #指定預共享密鑰,需和tunnel-group命令中的預共享密鑰必須保持一致。 crypto map TUNL2 1 set security-association lifetime seconds 86400 #指定基于時間的IPsec SA生存周期。 crypto map TUNL2 1 set security-association lifetime kilobytes unlimited #關閉基于流量的IPsec SA生存周期。 crypto map TUNL2 interface outside2 #將IPsec策略應用在公網接口GigabitEthernet0/2。 !
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道1本段的預共享密鑰,需和阿里云側的保持一致。 ! tunnel-group 182.XX.XX.19 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 182.XX.XX.19 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道2本段的預共享密鑰,需和阿里云側的保持一致。 !
查看IPsec-VPN連接狀態。
您可以通過以下命令查看已經協商成功的SA。
IPsec SA協商相關查詢命令
show crypto isakmp sa #查看控制面協商SA show crypto ikev2 sa #查看控制面協商一二階段SA、role、感興趣流信息 show crypto ipsec sa peer XX.XX.XX.XX #查詢指定peer SA的詳細信息 show ipsec sa #查看轉發面一二階段SA/role/感興趣流/SA/流量統計基本信息
VPN流量統計相關查詢命令
show crypto ikev2 stats #查看協議報文、加密、異常報文統計數據 show crypto protocol statistics all #查看協議報文、加密報文統計數據 show ipsec stats #查看IPsec統計信息
配置去往阿里云VPC(10.0.0.0/16)的浮動靜態路由。
sla monitor 1 # 定義一個編號為1的SLA操作。 type echo protocol ipIcmpEcho 10.0.10.33 interface outside1 # 進行outside1接口與阿里云側10.0.10.33地址間的icmp-echo檢測。 num-packets 2 timeout 60 frequency 5 sla monitor schedule 1 life forever start-time now #立即啟動SLA 1,并永久運行。 track 1 rtr 1 reachability #創建Track 1并綁定SLA 1,探測outside1接口與阿里云側10.0.10.33地址的連通性 #track跟蹤到outside1接口與阿里云側10.0.10.33地址間的連通性DOWN,則撤銷該路由。 #track跟蹤到outside1接口與阿里云側10.0.10.33地址間的連通性UP,則添加該路由。 route outside1 10.0.0.0 255.255.0.0 39.XX.XX.218 1 track 1 route outside2 10.0.0.0 255.255.0.0 182.XX.XX.19 5
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見驗證測試。
IKEv1配置示例
如果思科防火墻中需要使用IKEv1版本,您可以參見以下內容進行配置。
使用以下配置和阿里云建立IPsec-VPN連接時,阿里云側IPsec連接需使用目的路由模式、IKEv1版本。
目的路由模式-靜態路由
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名稱。 security-level 0 ip address 121.XX.XX.77 255.255.255.255 #GigabitEthernet0/2接口配置的公網IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為公網地址。 route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv1功能。
crypto ikev1 enable outside1 crypto ikev1 enable outside2
創建IKEv1 Policy,指定驗證方式、IKE階段認證算法、IKE加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev1 policy 10 authentication pre-share #指定驗證方式為預共享密鑰。 encryption aes #指定加密算法。 hash sha #指定認證算法。 group 14 #指定DH分組。 lifetime 86400 #指定基于時間的SA生存周期。
創建IPsec transform和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac #創建IPsec transform,指定加密算法和認證算法。 crypto ipsec profile ALIYUN-PROFILE set ikev1 transform-set TRANSFORM #應用已創建的transform。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。 crypto isakmp identity address #FQDN采用address格式。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev1 pre-shared-key 123456**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ! tunnel-group 182.XX.XX.19 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 182.XX.XX.19 ipsec-attributes ikev1 pre-shared-key 123456**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 !
創建tunnel接口。
interface Tunnel1 #創建隧道1接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道1源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道1目的地址為阿里云側隧道1的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道1接口。 ! interface Tunnel2 #創建隧道2的接口。 nameif ALIYUN2 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside2 #指定隧道2源地址為公網接口GigabitEthernet0/2。 tunnel destination 182.XX.XX.19 #指定隧道2目的地址為阿里云側隧道2的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道2接口。 !
配置去往阿里云VPC(10.0.0.0/16)的靜態路由。
route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218 4 #指定從本地數據中心去往阿里云VPC流量優先通過隧道1接口傳輸,該路由優先級較高。 route ALIYUN2 10.0.0.0 255.255.0.0 182.XX.XX.19 5 #指定從本地數據中心去往阿里云VPC流量通過隧道2接口傳輸,該路由優先級低于指向隧道1接口的路由。
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見驗證測試。
目的路由模式-BGP動態路由
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名稱。 security-level 0 ip address 121.XX.XX.77 255.255.255.255 #GigabitEthernet0/2接口配置的公網IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為公網地址。 route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv1功能。
crypto ikev1 enable outside1 crypto ikev1 enable outside2
創建IKEv1 Policy,指定驗證方式、IKE階段認證算法、IKE加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev1 policy 10 authentication pre-share #指定驗證方式為預共享密鑰。 encryption aes #指定加密算法。 hash sha #指定認證算法。 group 14 #指定DH分組。 lifetime 86400 #指定基于時間的SA生存周期。
創建IPsec transform和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac #創建IPsec transform,指定加密算法和認證算法。 crypto ipsec profile ALIYUN-PROFILE set ikev1 transform-set TRANSFORM #應用已創建的transform。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。 crypto isakmp identity address #FQDN采用address格式。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev1 pre-shared-key 123456**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ! tunnel-group 182.XX.XX.19 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 182.XX.XX.19 ipsec-attributes ikev1 pre-shared-key 123456**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 !
創建tunnel接口。
interface Tunnel1 #創建隧道1接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道1源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道1目的地址為阿里云側隧道1的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道1接口。 ! interface Tunnel2 #創建隧道2的接口。 nameif ALIYUN2 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside2 #指定隧道2源地址為公網接口GigabitEthernet0/2。 tunnel destination 182.XX.XX.19 #指定隧道2目的地址為阿里云側隧道2的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道2接口。 !
配置BGP動態路由。
router bgp 65000 address-family ipv4 unicast neighbor 169.254.10.1 remote-as 65530 #指定BGP鄰居,即阿里云側隧道1的IP地址。 neighbor 169.254.10.1 ebgp-multihop 255 neighbor 169.254.10.1 activate #激活BGP鄰居。 neighbor 169.254.20.1 remote-as 65530 #指定BGP鄰居,即阿里云側隧道2的IP地址。 neighbor 169.254.20.1 ebgp-multihop 255 neighbor 169.254.20.1 activate #激活BGP鄰居。 network 192.168.0.0 mask 255.255.0.0 #宣告本地數據中心的網段。 exit-address-family
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見驗證測試。
單隧道模式配置示例
場景示例
本文以上圖場景為例。某公司在阿里云擁有一個VPC,VPC網段為10.0.0.0/16,VPC中使用ECS部署了應用服務。同時該公司在本地擁有一個數據中心,本地數據中心中要與VPC互通的網段為192.168.0.0/16。公司計劃在本地數據中心與云上VPC之間建立IPsec-VPN連接,實現資源互訪。
網段規劃及VPN配置示例
網段規劃
資源 | 網段 | IP地址 |
本地數據中心 | 待和VPC互通的網段:192.168.0.0/16 | 服務器IP地址:192.168.50.198 |
思科防火墻 | 不涉及 | 思科防火墻連接公網的物理接口:
|
VPC | 主網段:10.0.0.0/16 交換機1:10.0.10.0/24 交換機2:10.0.20.0/24 | ECS IP地址:10.0.10.33 |
VPN網關實例(公網網絡類型) | 不涉及 | VPN網關公網IP地址:39.XX.XX.218 說明 創建VPN網關實例后,系統會自動為VPN網關實例分配地址。 |
BGP網段規劃
本文將分別描述IPsec-VPN連接使用靜態路由方式和BGP動態路由方式下如何配置思科防火墻。如果您不需要使用BGP動態路由方式,可以忽略本部分。以下為本文的BGP網段規劃。
資源 | BGP隧道網段 | BGP IP地址 | BGP AS號(本端自治系統號) |
VPN網關實例 | 169.254.10.0/30 說明 一個VPN網關實例下,每個隧道的網段需保持唯一。 | 169.254.10.1 | 65530 |
思科防火墻 | 169.254.10.0/30 | 169.254.10.2 | 65000 |
VPN配置示例
阿里云側和思科防火墻側VPN配置需保持相同。
配置項 | 阿里云側示例值 | 思科防火墻側示例值 | |
預共享密鑰 | 123456**** | 123456**** | |
IKE配置 | IKE版本 | ikev2 | ikev2 |
協商模式 | main | main | |
加密算法 | aes | aes | |
認證算法 | sha1 | sha1 | |
DH分組 | group14 | group14 | |
SA生存周期(秒) | 86400 | 86400 | |
IPsec配置 | 加密算法 | aes | aes |
認證算法 | sha1 | sha1 | |
DH分組 | group14 | group14 | |
SA生存周期(秒) | 86400 | 86400 |
開始配置
本文以思科ASA軟件版本9.19.1作為配置示例。不同軟件版本的配置命令可能會有所差異,操作時請根據您的實際環境查詢對應文檔或咨詢相關廠商。
在下述場景中,推薦您使用目的路由模式-靜態路由或者目的路由模式-BGP動態路由方式。
目的路由模式-靜態路由
前提條件
本文僅描述如何在思科防火墻中添加VPN配置,不再描述阿里云VPN網關側的配置。因此在您開始配置前,請確保您已經完成創建VPN網關實例、創建用戶網關、創建IPsec連接、配置VPN網關路由的任務。具體操作,請參見建立VPC到本地數據中心的連接(單隧道模式)。
操作步驟
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0的名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側VPN網關公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。 crypto ipsec profile ALIYUN-PROFILE set ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec profile并應用已創建的proposal。 set ikev2 local-identity address #指定本端ID使用IP地址格式,與阿里云側emoteId格式保持一致。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間的SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道本段的預共享密鑰,需和阿里云側的保持一致。 !
創建tunnel接口。
interface Tunnel1 #創建隧道接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道目的地址為阿里云側VPN網關公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道接口。 !
配置去往阿里云VPC(10.0.0.0/16)的靜態路由。
route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見測試連通性。
目的路由模式-BGP動態路由
前提條件
本文僅描述如何在思科防火墻中添加VPN配置,不再描述阿里云VPN網關側的配置。因此在您開始配置前,請確保您已經完成創建VPN網關實例、創建用戶網關、創建IPsec連接、開啟BGP功能的任務。具體操作,請參見建立VPC到本地數據中心的連接(單隧道模式和BGP路由)。
操作步驟
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0的名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側VPN網關公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。 crypto ipsec profile ALIYUN-PROFILE set ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec profile并應用已創建的proposal。 set ikev2 local-identity address #指定本端ID使用IP地址格式,與阿里云側emoteId格式保持一致。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間的SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道本段的預共享密鑰,需和阿里云側的保持一致。 !
創建tunnel接口。
interface Tunnel1 #創建隧道接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道目的地址為阿里云側VPN網關公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道接口。 !
配置BGP動態路由。
router bgp 65000 address-family ipv4 unicast neighbor 169.254.10.1 remote-as 65530 #指定BGP鄰居,即阿里云側隧道1的BGP IP地址。 neighbor 169.254.10.1 ebgp-multihop 255 neighbor 169.254.10.1 activate #激活BGP鄰居。 network 192.168.0.0 mask 255.255.0.0 #宣告本地數據中心的網段。 exit-address-family
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見測試連通性。
感興趣流模式-靜態路由
前提條件
本文僅描述如何在思科防火墻中添加VPN配置,不再描述阿里云VPN網關側的配置。因此在您開始配置前,請確保您已經完成創建VPN網關實例、創建用戶網關、創建IPsec連接的任務。相關操作,請參見:建立VPC到本地數據中心的連接(單隧道模式),其中:
創建IPsec連接時,路由模式需選擇感興趣流模式,本端網段設置為10.0.0.0/16,對端網段設置為192.168.0.0/16。
重要如果您的場景中需要指定多個本端網段或者對端網段,則推薦您使用目的路由模式-靜態路由或者目的路由模式-BGP動態路由方式。更多方案,請參見多網段配置方案推薦。
創建IPsec連接后,您需要發布策略路由,具體操作,請參見配置策略路由。無需再配置目的路由。
操作步驟
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0的名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側VPN網關公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal,指定思科防火墻側的IPsec階段加密算法、認證算法,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。
定義感興趣流。
指定允許IPsec-VPN連接傳輸的流量網段。本示例指定本地數據中心的192.168.0.0/16網段和阿里云VPC10.0.0.0/16網段互通。
access-list acl_tun extended permit ip 192.168.0.0 255.255.0.0 10.0.0.0 255.255.0.0
創建IPsec策略。
#創建隧道的IPsec策略 crypto map TUNL1 1 match address acl_tun #應用定義的感興趣流。 crypto map TUNL1 1 set pfs group14 #指定DH分組。 crypto map TUNL1 1 set peer 39.XX.XX.218 #指定對端ID,即阿里云VPN網關公網IP地址。 crypto map TUNL1 1 set ikev2 ipsec-proposal ALIYUN-PROPOSAL #應用IPsec proposal。 crypto map TUNL1 1 set ikev2 pre-shared-key 0 123456**** #指定預共享密鑰,需和tunnel-group命令中的預共享密鑰必須保持一致。 crypto map TUNL1 1 set security-association lifetime seconds 86400 #指定基于時間的IPsec SA生存周期。 crypto map TUNL1 1 set security-association lifetime kilobytes unlimited #關閉基于流量的IPsec SA生存周期。 crypto map TUNL1 interface outside1 #將IPsec策略應用在公網接口GigabitEthernet0/0。 !
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key 123456**** #指定隧道對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key 123456**** #指定隧道本段的預共享密鑰,需和阿里云側的保持一致。 !
配置去往阿里云VPC(10.0.0.0/16)的靜態路由。
route outside1 10.0.0.0 255.255.0.0 39.XX.XX.218
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見測試連通性。
IKEv1配置示例
如果思科防火墻中需要使用IKEv1版本,您可以參見以下內容進行配置。
使用以下配置和阿里云建立IPsec-VPN連接時,阿里云側IPsec連接需使用目的路由模式、IKEv1版本。
目的路由模式-靜態路由
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0的名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #指定GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側VPN網關公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv1功能。
crypto ikev1 enable outside1
創建IKEv1 Policy,指定驗證方式、IKE階段認證算法、IKE加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev1 policy 10 authentication pre-share #指定驗證方式為預共享密鑰。 encryption aes #指定加密算法。 hash sha #指定認證算法。 group 14 #指定DH分組。 lifetime 86400 #指定基于時間的SA生存周期。
創建IPsec transform和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac #創建IPsec transform,指定加密算法和認證算法。 crypto ipsec profile ALIYUN-PROFILE set ikev1 transform-set TRANSFORM #應用已創建的transform。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。 crypto isakmp identity address #FQDN采用address格式。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev1 pre-shared-key 123456**** #指定隧道對端的預共享密鑰,即阿里云側的預共享密鑰。 !
創建tunnel接口。
interface Tunnel1 #創建隧道接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定隧道接口的IP地址。 tunnel source interface outside1 #指定隧道源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道目的地址為阿里云側VPN網關的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道接口。 !
配置去往阿里云VPC(10.0.0.0/16)的靜態路由。
route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見測試連通性。
目的路由模式-BGP動態路由
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0的名稱。 security-level 0 ip address 121.XX.XX.211 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #指定GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側VPN網關公網IP地址的路由,下一跳為公網地址。 route private 192.168.0.0 255.255.0.0 192.168.50.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv1功能。
crypto ikev1 enable outside1
創建IKEv1 Policy,指定驗證方式、IKE階段認證算法、IKE加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ikev1 policy 10 authentication pre-share #指定驗證方式為預共享密鑰。 encryption aes #指定加密算法。 hash sha #指定認證算法。 group 14 #指定DH分組。 lifetime 86400 #指定基于時間的SA生存周期。
創建IPsec transform和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac #創建IPsec transform,指定加密算法和認證算法。 crypto ipsec profile ALIYUN-PROFILE set ikev1 transform-set TRANSFORM #應用已創建的transform。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。 crypto isakmp identity address #FQDN采用address格式。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev1 pre-shared-key 123456**** #指定隧道對端的預共享密鑰,即阿里云側的預共享密鑰。 !
創建tunnel接口。
interface Tunnel1 #創建隧道接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定隧道接口的IP地址。 tunnel source interface outside1 #指定隧道源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道目的地址為阿里云側VPN網關的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道接口。 !
配置BGP動態路由。
router bgp 65000 address-family ipv4 unicast neighbor 169.254.10.1 remote-as 65530 #指定BGP鄰居,即阿里云側的BGP IP地址。 neighbor 169.254.10.1 ebgp-multihop 255 neighbor 169.254.10.1 activate #激活BGP鄰居。 network 192.168.0.0 mask 255.255.0.0 #宣告本地數據中心的網段。 exit-address-family
在本地數據中心側,設置本地數據中心客戶端到思科防火墻及思科防火墻到本地數據中心客戶端的路由。
后續您可以開始測試本地數據中心和阿里云VPC之間的網絡連通性。具體操作,請參見測試連通性。