简介
本文档介绍当远程对等设备具有动态IP地址时,如何在2台Cisco路由器之间配置FlexVPN站点到站点VPN隧道。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于以下软件和硬件版本:
- CSR1000V设备
- Cisco IOS® XE软件,版本17.3.4
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
网络图
动态对等体的拓扑
本示例中的拓扑显示了一台Cisco路由器和另一台Cisco路由器,该Cisco路由器在其面向公众的接口上具有动态IP地址。
配置
本节介绍当远程对等体使用动态IP地址时,如何在Cisco路由器上配置站点到站点FlexVPN隧道。
在此配置示例中,使用的身份验证方法是预共享密钥(PSK),但是也可以使用公共密钥基础设施(PKI)。
总部路由器配置
在本例中,使用了来自路由器的IKEv2智能默认值。IKEv2 Smart Defaults功能通过覆盖大多数使用案例来最大程度减少FlexVPN配置。可以针对特定使用案例自定义IKEv2智能默认值,但不建议这样做。智能默认值包括IKEv2授权策略、IKEv2提议、IKEv2策略、Internet协议安全(IPsec)配置文件和IPsec转换集。
要查看设备中的默认值,可以运行下列命令。
- show crypto ikev2 authorization policy default
- show crypto ikev2 proposal default
- show crypto ikev2 policy default
- show crypto ipsec profile default
- show crypto ipsec transform-set default
第1步配置IKEv2密钥环。
- 在这种情况下,由于总部路由器是动态的,所以它不知道对等ip,因此它匹配任何ip地址。
- 还配置了远程和本地密钥。
- 建议使用强密钥来避免出现任何漏洞。
crypto ikev2 keyring FLEXVPN_KEYRING
peer spoke
address 0.0.0.0 0.0.0.0
pre-shared-key local Cisco123
pre-shared-key remote Cisco123
第2步配置身份验证、授权和记帐(AAA)模型。
- 这会为可以连接此实例的用户创建管理框架。
- 由于连接协商是从此设备发起的,因此模型会引用其本地数据库来确定授权用户。
aaa new-model
aaa authorization network FLEXVPN local
第3步配置IKEv2配置文件。
- 鉴于远程对等体IP地址是动态的,您不能使用特定IP地址来标识对等体。
- 但是,您可以按域、FQDN或在对等设备上定义的密钥ID来识别远程对等设备。
- 需要为配置文件的授权方法添加身份验证、授权和记帐(AAA)组,指定PSK是所用的方法。
- 如果此处身份验证方法是PKI,则将其指定为cert而不是PKI。
- 由于目标是创建动态虚拟隧道接口(dVTI),因此此配置文件链接到虚拟模板
crypto ikev2 profile FLEXVPN_PROFILE
match identity remote key-id Peer123
identity local address 172.16.1.1
authentication remote pre-share
authentication local pre-share
keyring local FLEXVPN_KEYRING
aaa authorization group psk list FLEXVPN default
virtual-template 1
第4步配置IPsec配置文件。
- 如果不使用默认配置文件,可以配置自定义IPsec配置文件。
- 第3步中创建的IKEv2配置文件映射到此IPsec配置文件。
crypto ipsec profile defualt
set ikev2-profile FLEXVPN_PROFILE
第5步配置环回接口和虚拟模板接口。
- 由于远程设备具有动态IP地址,因此需要从模板创建dVTI。
- 此虚拟模板接口是从中创建动态虚拟访问接口的配置模板。
interface Loopback1
ip address 192.168.1.1 255.255.255.0
interface Virtual-Template1 type tunnel
ip unnumbered Loopback1
tunnel protection ipsec profile default
分支机构路由器配置
对于分支路由器,按照上述步骤中说明的配置IKEv2 Keyring、AAA模型、IPsec配置文件和IKEv2配置文件,并进行必要的配置更改和下面所述的更改:
1.配置发送到总部路由器的本地身份作为标识符。
crypto ikev2 profile FLEXVPN_PROFILE
identity local key-id Peer123
match identity remote address 172.16.1.1
authentication remote pre-share
authentication local pre-share
keyring local FLEXVPN_KEYRING
aaa authorization group psk list FLEXVPN default
第5步配置静态虚拟隧道接口。
- 假设总部路由器的IP地址已知且不会更改,则配置静态VTI接口。
interface Tunnel0
ip address 192.168.1.10 255.255.255.0
tunnel source GigabitEthernet0
tunnel destination 172.16.1.1
tunnel protection ipsec profile default
路由配置
在本示例中,通过配置访问控制列表,在建立IKEv2安全关联(SA)期间定义路由。这定义要通过VPN发送的流量。您也可以配置动态路由协议,但它不在本文档的讨论范围之内。
第五步:定义 ACL。
总部路由器:
ip access-list standard Flex-ACL
permit 10.10.10.0 255.255.255.0
分支路由器:
ip access-list standard Flex-ACL
permit 10.20.20.0 255.255.255.0
第六步:修改每台路由器上的IKEv2授权配置文件以设置ACL。
crypto ikev2 authorization policy default
route set interface
route set access-list Flex-ACL
总部路由器完成配置
aaa new-model
aaa authorization network FLEXVPN local
crypto ikev2 authorization policy default
route set interface
route set access-list Flex-ACL
crypto ikev2 keyring FLEXVPN_KEYRING
peer spoke
address 0.0.0.0 0.0.0.0
pre-shared-key local Cisco123
pre-shared-key remote Cisco123
crypto ikev2 profile FLEXVPN_PROFILE
match identity remote key-id Peer123
identity local address 172.16.1.1
authentication remote pre-share
authentication local pre-share
keyring local FLEXVPN_KEYRING
aaa authorization group psk list FLEXVPN default
virtual-template 1
crypto ipsec profile default
set ikev2-profile FLEXVPN_PROFILE
interface Loopback1
ip address 192.168.1.1 255.255.255.0
interface Loopback10
ip address 10.10.10.10 255.255.255.255
interface GigabitEthernet0
ip address 172.16.1.1 255.255.255.0
interface Virtual-Template1 type tunnel
ip unnumbered Loopback1
tunnel protection ipsec profile default
ip access-list standard Flex-ACL
5 permit 10.10.10.0 255.255.255.0
分支路由器完成配置
aaa new-model
aaa authorization network FLEXVPN local
crypto ikev2 authorization policy default
route set interface
route set access-list Flex-ACL
crypto ikev2 keyring FLEXVPN_KEYRING
peer HUB
address 0.0.0.0 0.0.0.0
pre-shared-key local Cisco123
pre-shared-key remote Cisco123
crypto ikev2 profile FLEXVPN_PROFILE
identity local key-id Peer123
match identity remote address 172.16.1.1
authentication remote pre-share
authentication local pre-share
keyring local FLEXVPN_KEYRING
aaa authorization group psk list FLEXVPN default
crypto ipsec profile default
set ikev2-profile FLEXVPN_PROFILE
interface Loopback20
ip address 10.20.20.20 255.255.255.255
interface Tunnel0
ip address 192.168.1.10 255.255.255.0
tunnel source GigabitEthernet0
tunnel destination 172.16.1.1
tunnel protection ipsec profile default
interface GigabitEthernet0
ip address dhcp
negotiation auto
ip access-list standard Flex-ACL
10 permit 10.20.20.0 255.255.255.0
验证
要检验隧道,您必须检验阶段1和阶段2是否正常运行且正常。
Headquarter#show crypto ikev2 sa detail
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 172.16.1.1/500 172.16.2.1/500 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA512, Hash: SHA512, DH Grp:19, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/74645 sec
CE id: 61256, Session-id: 1
Status Description: Negotiation done
Local spi: D5129F36B1180175 Remote spi: F9298874F90BFEC7
Local id: 172.16.1.1
Remote id: 172.16.2.1
Local req msg id: 16 Remote req msg id: 31
Local next msg id: 16 Remote next msg id: 31
Local req queued: 16 Remote req queued: 31
Local window: 5 Remote window: 5
DPD configured for 0 seconds, retry 0
Fragmentation not configured.
Dynamic Route Update: enabled
Extended Authentication not configured.
NAT-T is not detected
Cisco Trust Security SGT is disabled
Initiator of SA : No
Remote subnets: -------------> This section shows the traffic to be routed across this tunnel.
192.168.1.10 255.255.255.255
10.20.20.20 255.255.255.255
IPv6 Crypto IKEv2 SA
第2阶段,Ipsec
Headquarter#show crypto ipsec sa
interface: Virtual-Access1
Crypto map tag: Virtual-Access1-head-0, local addr 172.16.1.1
protected vrf: (none)
local ident (addr/mask/prot/port): (172.16.1.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (172.16.2.1/255.255.255.255/47/0)
current_peer 172.16.2.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 225, #pkts encrypt: 0, #pkts digest: 0
#pkts decaps: 225, #pkts decrypt: 225, #pkts verify: 225
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 172.16.1.1, remote crypto endpt.: 172.16.2.1
plaintext mtu 1458, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0
current outbound spi: 0xC124D7C1(3240417217)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xC2AADCAB(3265977515)
transform: esp-aes esp-sha-hmac ,
in use settings ={Transport, }
conn id: 2912, flow_id: CSR:912, sibling_flags FFFFFFFF80000008, crypto map: Virtual-Access1-head-0
sa timing: remaining key lifetime (k/sec): (4607993/628)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xC124D7C1(3240417217)
transform: esp-aes esp-sha-hmac ,
in use settings ={Transport, }
conn id: 2911, flow_id: CSR:911, sibling_flags FFFFFFFF80000008, crypto map: Virtual-Access1-head-0
sa timing: remaining key lifetime (k/sec): (4608000/628)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
您还需要验证虚拟访问接口是否处于UP状态。
show interface Virtual-Access1
Virtual-Access2 is up, line protocol is up
Hardware is Virtual Access interface
Interface is unnumbered. Using address of Loopback1 (192.168.1.1)
MTU 9934 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL
Tunnel vaccess, cloned from Virtual-Template1
Vaccess status 0x4, loopback not set
Keepalive not set
Tunnel linestate evaluation up
Tunnel source 172.16.1.1, destination 172.16.2.1
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Tunnel transport MTU 1434 bytes
Tunnel transmit bandwidth 8000 (kbps)
Tunnel receive bandwidth 8000 (kbps)
Tunnel protection via IPSec (profile "default")
Last input 20:53:34, output 20:53:34, output hang never
Last clearing of "show interface" counters 20:55:43
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/0 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
586 packets input, 149182 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
15 packets output, 1860 bytes, 0 underruns
Output 0 broadcasts (0 IP multicasts)
0 output errors, 0 collisions, 0 interface resets
0 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
故障排除
本节介绍如何排除隧道建立故障
如果IKE协商失败,请完成以下步骤:
- 使用以下命令验证当前状态:
- show crypto ikev2 sa
- show crypto ipsec sa
- show crypto session
2.使用以下命令调试隧道协商过程:
- debug crypto ikev2
- debug crypto ipsec
相关信息