简介
本文档介绍如何在具有多个远程外联网设备(分支)的思科安全防火墙(集线器)上配置DVTI。
背景
动态虚拟隧道接口
动态虚拟隧道接口(DVTI)可为远程访问虚拟专用网络(VPN)提供高度安全且可扩展的连接。
DVTI可用于集中星型配置。隧道为每个VPN会话提供按需独立虚拟访问接口。
1.分支发起与中心的IKE交换请求,以进行VPN连接。
2.中心对分支进行身份验证。
3.思科安全防火墙管理中心在中心上分配动态虚拟模板。
4.虚拟模板在集线器上动态生成虚拟访问接口。此接口对于每个分支的VPN会话是唯一的。
5.中心通过虚拟访问接口与分支建立动态VTI隧道。
6.中心和分支通过隧道交换流量,使用动态路由协议(BGP/OSPF/EIGRP)或保护网络功能(多安全关联VTI)。
7.动态VTI的功能与任何其他接口类似,因此只要隧道处于活动状态,您就可以应用QoS、防火墙规则、路由协议和其他功能。
8.在HUB设备和多个远程/分支站点的多个静态隧道接口上创建一个DVTI。
注意:思科安全防火墙在版本7.3上添加了DVTI支持,目前根据Cisco Bug ID CSCwe13781,仅支持一个DVTI。 只有注册的思科用户才能访问内部思科工具和信息。
实施多个安全关联VTI功能以支持基于路由的VPN和基于策略的VPN系统之间的兼容性,
先决条件
- 至少有两台思科安全防火墙设备已在思科安全防火墙管理中心注册,具有基本路由配置,可分别作为一台集线器和一个分支–1,每台设备上有一个环回接口,以模拟192.168.5.0/24(集线器)本地网络和192.168.6.0/24(分支–1)远程本地网络。
- 部署一个ASA并配置基本路由配置和IKEv2支持,使其作为spoke-2运行,并预配置一个环回接口来模拟远程本地网络192.168.7.0/24。
- 使用一台具有基本路由配置和IKEV2支持的Cisco IOS/Cisco IOSXE路由器作为分支–3运行,并预配置一个环回接口来模拟远程本地网络192.168.8.0/24。
要求
- 了解VPN技术和IKEv2协议。
- 有关思科安全防火墙管理中心GUI(FMC)导航和思科安全防火墙设备配置的知识。
- 有关Cisco IOS-XE设备的基本配置知识。
- 基本IPV4路由概念。
注意:本文档中的信息是从特定实验环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
使用的组件
本文档中的信息基于以下软件版本:
- 思科安全防火墙管理中心(FMC)7.3或更高版本。
- 思科安全防火墙7.3或更高版本。
- ASAv 9.20或更高版本
- 思科CSR
注意:本文档中的信息是从特定实验环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
网络图
注意:使用每台设备上以前配置的环回接口来模拟所有本地和远程子网。
配置
1.使用管理员凭证登录FMC GUI。
2.从FMC控制面板视图中,转至Devices,然后单击VPN选项下的Site To Site。
3.从Site to Site(站点到站点)控制面板,单击+ Site to Site VPN(站点到站点VPN)以创建新的Site to Site(站点到站点)拓扑。
4.从Create New VPN Topology菜单,指定新名称并选择Route Based(VTI)作为新拓扑的VPN类型,从IKE Version选项中选中IKEv2协议,在Network Topology settings下选择Hub and Spoke,然后从Hub Nodes部分点击+图标以指定新的Hub设备。
5.从Add Endpoint窗口中选择用作集线器的设备,然后单击DynamicVirtual Tunnel Interface 下拉菜单旁边的+图标以创建新的DVTI。
6.从Add Virtual Tunnel Interface菜单中,指定新隧道接口的名称,将其分配给所需的Security Zone,选择Tunnel Source with its IP,然后单击IP Address配置下的+图标,以便在Border IP选项旁创建新的环回接口。
Cisco建议从环回接口为动态接口配置借用IP。
注意:隧道源接口需要可路由且能够到达远程辐射点对等IP
7.在Add Loopback Interface窗口中,使用接口的ID指定接口名称,然后转到IPv4选项卡。
8.从IPv4选项卡,从下拉菜单的IP类型选项下选择使用静态IP,并指定属于DVTI的IP地址,然后单击确定。
注意:集线器DVTI的IP地址为192.168.17.1/32。
9.从Add Virtual Tunnel Interface菜单中,下拉菜单下显示新的日志包,选择该日志包并点击确定。
10.系统将显示Virtual Tunnel Interface Added窗口,指示已创建新的DVTI,单击Ok并继续。
11.在“添加终端”(Add Endpoint)窗口中,新DVTI显示在Dynamic Virtual Tunnel Interface下拉栏下,选择它,选中Send Virtual Tunnel Interface IP to peers框选项以及Allow incoming IKEv2 routes from the peers选项,然后单击Protected Networks设置旁边的+,以指定中心设备后面的网络。
注意:在本示例中,集线器上的第二个环回接口将本地OnPREM子网中的主机模拟为IP地址为192.168.5.1/24的受保护网络的一部分。
12.在Available Networks部分中,确定模拟本地受保护网络和DVTI子网(192.168.17.0/24)的子网,然后单击Add,然后单击OK应用更改。
注:本文中的网络对象已预配置为192.168.17.0/24网络的OnPREM。需要添加DVTI子网以保护源自隧道接口的流量。
13.确认已添加新的受保护网络对象,然后单击OK。
14.确认Hub Nodes部分下已添加新的中心设备,然后单击Spoke Nodes部分旁边的+以添加新的终端作为远程spoke-1。
15.从Add Endpoint窗口中选择作为spoke-1运行的设备,然后单击StaticVirtual Tunnel Interface下拉菜单旁边的+图标以创建新的SVTI。
16.从Add Virtual Tunnel Interface菜单中,指定新隧道接口的名称,将其分配给所需的Security Zone,选择Tunnel Source with its IP,然后单击IP Address配置下的“+”图标,以便在Border IP选项旁创建新的环回接口。
17.在Add Loopback Interface窗口中,使用接口的ID指定接口名称,然后转到IPv4选项卡。
18.从IPv4选项卡中,从下拉菜单的IP Type选项下选择Use Static IP,指定属于SVTI的IP地址,然后单击OK。
注意:Spoke-1 SVTI的IP地址为192.168.17.2/32。
19.从Add Virtual Tunnel Interface菜单,下拉菜单下将显示新的日志包,选择它并单击OK。
20.系统会提示Virtual Tunnel Interface Added窗口,指示已创建新的DVTI,然后单击Ok并继续。
21.在“添加终端”(Add Endpoint)窗口中,新SVTI显示在StaticVirtual Tunnel Interface下拉栏下,选择它,选中Send Virtual Tunnel Interface IP to peers选项以及Allow incoming IKEv2 routes from the peers选项,然后单击Protected Networks设置旁边的“+”以指定分支设备后面的网络。
注意:在本示例中,spoke-1上的第二个环回接口模拟远程网络192.168.6.1/24中的主机。
22.在Available Networks部分中,确定远程受保护的网络以及VTI子网(192.168.17.0/24),然后单击Add,然后单击OK应用更改。
注:需要添加SVTI子网以保护源自隧道接口的流量。
23.确认已添加新的受保护网络对象,然后单击OK。
24.确认新拓扑中同时添加了中心节点和分支节点。
25.转到IKE选项卡,在“KEv2设置”下指定所需的算法,选择Authentication Type及其属性。
26.转到IPsec选项卡,在IKEv2 IPsec Proposals设置下指定所需的算法,并选中Enable Reverse Route Injection选项,然后返回Endpoints选项卡。
注意:当不使用动态路由协议时,需要启用反向路由注入,以便通过集线器和所有分支之间的隧道通告OnPREM和远程受保护的网络。
27.再添加一个外网spoke-2,单击Endpoints选项卡中的+图标。
28.从Device下的下拉菜单中的Add Endpoint窗口Select Extranet,指定spoke-2中的设备名称及其对等IP地址,然后单击OK。
29.重复步骤27和28,从外联网添加新的spoke-3。
30.确认拓扑中已添加新的外网辐条,然后单击Save。
31.在两台Cisco安全防火墙设备上部署配置。
最终配置
思科安全防火墙中心配置
crypto ikev2 policy 100
encryption aes-256 aes
integrity sha512 sha384 sha256 sha
group 21 20 19 14
prf sha512 sha384 sha256 sha
lifetime seconds 86400
crypto ikev2 enable inside-2820
crypto ipsec ikev2 ipsec-proposal CSM_IP_1
protocol esp encryption aes-256 aes
protocol esp integrity sha-512 sha-384 sha-256 sha-1
crypto ipsec profile FMC_IPSEC_PROFILE_2
set ikev2 ipsec-proposal CSM_IP_1
interface Virtual-Template1 type tunnel
nameif DVTI-HUB
ip unnumbered DVTI-LOOPBACK
tunnel source interface inside-2820
tunnel mode ipsec ipv4
tunnel protection ipsec profile FMC_IPSEC_PROFILE_2
tunnel-group 10.28.20.99 type ipsec-l2l
tunnel-group 10.28.20.99 general-attributes
default-group-policy .DefaultS2SGroupPolicy
tunnel-group 10.28.20.99 ipsec-attributes
virtual-template 1
ikev2 remote-authentication pre-shared-key *****
ikev2 local-authentication pre-shared-key *****
ikev2 route set interface
tunnel-group 10.28.20.100 type ipsec-l2l
tunnel-group 10.28.20.100 general-attributes
default-group-policy .DefaultS2SGroupPolicy
tunnel-group 10.28.20.100 ipsec-attributes
virtual-template 1
ikev2 remote-authentication pre-shared-key *****
ikev2 local-authentication pre-shared-key *****
ikev2 route set interface
tunnel-group 10.28.20.20 type ipsec-l2l
tunnel-group 10.28.20.20 general-attributes
default-group-policy .DefaultS2SGroupPolicy
tunnel-group 10.28.20.20 ipsec-attributes
virtual-template 1
ikev2 remote-authentication pre-shared-key *****
ikev2 local-authentication pre-shared-key *****
ikev2 route set interface
Cisco Secure Firewall Spoke-1配置
crypto ikev2 policy 10
encryption aes-256 aes
integrity sha512 sha384 sha256 sha
group 21 20 19 14
prf sha512 sha384 sha256 sha
lifetime seconds 86400
crypto ikev2 enable vlan2820
crypto ipsec ikev2 ipsec-proposal CSM_IP_2
protocol esp encryption aes-256 aes
protocol esp integrity sha-512 sha-384 sha-256 sha-1
crypto ipsec profile FMC_IPSEC_PROFILE_2
set ikev2 ipsec-proposal CSM_IP_2
set reverse-route
access-list CSM_IPSEC_ACL_2 extended permit ip 192.168.6.0 255.255.255.0 192.168.5.0 255.255.255.0
access-list CSM_IPSEC_ACL_2 extended permit ip 192.168.6.0 255.255.255.0 192.168.17.0 255.255.255.0
access-list CSM_IPSEC_ACL_2 extended permit ip 192.168.17.0 255.255.255.0 192.168.5.0 255.255.255.0
access-list CSM_IPSEC_ACL_2 extended permit ip 192.168.17.0 255.255.255.0 192.168.17.0 255.255.255.0
interface Tunnel1
nameif SVTI--SPOKE1
ip unnumbered SVTI-SPOKE1
tunnel source interface vlan2820
tunnel destination 10.28.20.101
tunnel mode ipsec ipv4
tunnel protection ipsec profile FMC_IPSEC_PROFILE_2
tunnel protection ipsec policy CSM_IPSEC_ACL_2
tunnel-group 10.28.20.101 type ipsec-l2l
tunnel-group 10.28.20.101 ipsec-attributes
ikev2 remote-authentication pre-shared-key *****
ikev2 local-authentication pre-shared-key *****
ikev2 route set interface
注意:Cisco ASAv spoke-2配置已淘汰,因为它与spoke-1的配置相同
Cisco CSRv1000 spoke-3配置
crypto ikev2 proposal all
encryption aes-cbc-256 aes-cbc-128 aes-cbc-192
integrity sha256 sha1 sha384 sha512
group 20 14 15 21 24
crypto ikev2 policy test
match address local 10.28.20.20
proposal all
crypto ikev2 authorization policy default
route set interface Tunnel100
route set remote ipv4 192.168.8.0 255.255.255.255
crypto ikev2 profile vti
match identity remote any
identity local address 10.28.20.20
authentication remote pre-share key cisco123
authentication local pre-share key cisco123
no config-exchange request
aaa authorization group psk list default default
crypto ipsec transform-set aes256sha256 esp-aes 256 esp-sha256-hmac
mode tunnel
crypto ipsec profile vti
set security-association lifetime seconds 120
set transform-set aes256sha256
set ikev2-profile vti
reverse-route
interface Tunnel100
ip address 192.168.17.4 255.255.255.0
tunnel source GigabitEthernet1
tunnel mode ipsec ipv4
tunnel destination 10.28.20.101
tunnel protection ipsec policy ipv4 ipsec-policy
tunnel protection ipsec profile vti
ip access-list extended ipsec-policy
10 permit ip 192.168.8.0 0.0.0.255 192.168.5.0 0.0.0.255
20 permit ip 192.168.8.0 0.0.0.255 192.168.17.0 0.0.0.255
30 permit ip 192.168.17.0 0.0.0.255 192.168.5.0 0.0.0.255
40 permit ip 192.168.17.0 0.0.0.255 192.168.17.0 0.0.0.255
验证
在Hub路由表中,一旦IKEv2隧道启动,我们就会看到来自通过虚拟模板接收的所有分支的路由。
firepower# show route
C 192.168.5.0 255.255.255.0 is directly connected, OnPrem-Network
L 192.168.5.1 255.255.255.255 is directly connected, OnPrem-Network
V 192.168.6.0 255.255.255.0
connected by VPN (advertised), DVTI-HUB_va146
V 192.168.7.0 255.255.255.0
connected by VPN (advertised), DVTI-HUB_va105
V 192.168.8.0 255.255.255.0
connected by VPN (advertised), DVTI-HUB_va155
V 192.168.17.0 255.255.255.0
connected by VPN (advertised), DVTI-HUB_va146
C 192.168.17.1 255.255.255.255 is directly connected, DVTI-LOOPBACK
V 192.168.17.2 255.255.255.255
connected by VPN (advertised), DVTI-HUB_va146
V 192.168.17.3 255.255.255.255
connected by VPN (advertised), DVTI-HUB_va105
V 192.168.17.4 255.255.255.255
connected by VPN (advertised), DVTI-HUB_va155
S 192.168.19.100 255.255.255.255 [1/0] via 10.28.20.20, inside-2820
Hub现在能够ping来自DVTI的所有SVTI分支接口。
注意:“show crypto ipsec” sa命令显示应用了受保护网络的反向路由注入时创建的多个IPSec SA。
firepower# ping 192.168.17.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.17.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/10 ms
firepower# ping 192.168.17.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.17.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
firepower# ping 192.168.17.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.17.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
firepower# show crypto ipsec sa | i cap|iden
local ident (addr/mask/prot/port): (192.168.17.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.17.0/255.255.255.0/0/0)
#pkts encaps: 15, #pkts encrypt: 15, #pkts digest: 15
#pkts decaps: 15, #pkts decrypt: 15, #pkts verify: 15
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
current outbound spi: 5A68524C
current inbound spi : DDF6D48F
spi: 0xDDF6D48F (3723941007)
spi: 0x5A68524C (1516786252)
Hub现在能够ping通OnPREM主机所有分支后面的远程LAN网络。
注意:“show crypto ipsec” sa命令显示应用了受保护网络的反向路由注入时创建的多个IPSec SA。
firepower# ping OnPrem-Network 192.168.6.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.6.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/10 ms
firepower# ping OnPrem-Network 192.168.7.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.7.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
firepower# ping OnPrem-Network 192.168.8.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.8.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
firepower# show crypto ipsec sa | i cap|iden
local ident (addr/mask/prot/port): (192.168.5.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.6.0/255.255.255.0/0/0)
#pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5
#pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
local ident (addr/mask/prot/port): (192.168.5.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.7.0/255.255.255.0/0/0)
#pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5
#pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
local ident (addr/mask/prot/port): (192.168.5.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.8.0/255.255.255.0/0/0)
#pkts encaps: 5, #pkts encrypt: 5, #pkts digest: 5
#pkts decaps: 5, #pkts decrypt: 5, #pkts verify: 5
故障排除
要对IKEv2和IPSEC进程进行故障排除,请使用以下debug命令:
ASA/Cisco Secure Firewall
debug crypto ikev2 protocol 255
debug crypto ikev2 platform 255
debug crypto ipsec
CSR
debug crypto ikev2
debug crypto ipsec