目录

简介

先决条件

要求

使用的组件

背景信息

配置

验证

故障排除

简介

本文档介绍如何配置到Azure的自适应安全设备(ASA) IPsec虚拟隧道接口(VTI)连接。

先决条件

要求

Cisco 建议您了解以下主题：

- 使用运行ASA 9.8.1或更高版本的公共静态IPv4地址直接连接到互联网的ASA。

- Azure帐户

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

在ASA 9.8.1中，IPsec VTI功能已扩展为使用IKEv2，但是，它仍然限制为通过IPv4的sVTI IPv4。此配置指南是使用ASA CLI界面和Azure门户生成的。Azure门户的配置也可以由PowerShell或API执行。有关Azure配置方法的详细信息，请参阅Azure文档。

注意：目前，VTI仅在单情景路由模式下受支持。

配置

本指南假设Azure云尚未配置。如果已建立资源，则可以跳过其中某些步骤。

步骤1: 在Azure中配置网络。

这是位于Azure云中的网络地址空间。此地址空间必须足够大，才能容纳其中的子网（如图所示）。

名称

云中托管的IP地址空间的名称

地址空间

Azure中托管的整个CIDR范围。本例中使用的是10.1.0.0/16。

子网名称

在通常连接VM的虚拟网络内创建的第一个子网的名称。通常创建一个名为default的子网。

子网地址范围

在虚拟网络中创建的子网。

第二步： 修改虚拟网络以创建网关子网。

导航到虚拟网络并添加网关子网。本例中使用的是10.1.1.0/24。

第三步： 创建虚拟网络网关。

这是托管在云中的VPN终端。这是ASA用来构建IPSec隧道的设备。此步骤还会创建分配给虚拟网络网关的公共IP。  完成此步骤可能需要15 ― 20分钟。

名称

虚拟网络网关的名称

网关类型

选择VPN，因为这是IPsec VPN。

VPN类型

选择Route-based，因为这是VTI。加密映射VPN完成后，使用基于策略的。

SKU

需要根据所需的流量量选择VpnGw1或更高版本。基本不支持

边界网关协议(BGP)

已启用主用/主用模式

不启用。在发布时，ASA没有从环回获取BGP会话的功能

或接口内部。Azure仅允许BGP对等的1个IP地址。

公共 IP 地址

创建新的IP地址并为资源指定名称。

配置BGP ASN

选中此框可在链路上启用BGP。

ASN

将此项保留为默认65515。这是ASN Azure展示自身。

第四步： 创建本地网络网关。

本地网络网关是代表ASA的资源。

名称

ASA的名称

IP Address

ASA外部接口的公用IP地址。

地址空间

稍后将在VTI上配置子网。

配置BGP设置

选中此复选框可启用BGP。

ASN

此ASN在ASA上配置。

BGP对等体IP地址

IP地址在ASA VTI接口上配置。

第五步： 在虚拟网络网关和本地网络网关之间创建新连接，如图所示。

第六步： 配置ASA。

首先，在外部接口上启用IKEv2并配置IKEv2策略。

crypto ikev2 policy 10

encryption aes-gcm-256 aes-gcm-192 aes-gcm

integrity null

group 14 5 2

prf sha512 sha384 sha256 sha

lifetime seconds 86400

crypto ikev2 policy 20

encryption aes-256 aes-192 aes

integrity sha512 sha384 sha256 sha

group 14 5 2

prf sha512 sha384 sha256 sha

lifetime seconds 86400

crypto ikev2 enable outside

第六步： 配置IPsec转换集和IPsec配置文件。

crypto ipsec ikev2 ipsec-proposal AZURE-PROPOSAL

protocol esp encryption aes-256

protocol esp integrity sha-256

crypto ipsec profile AZURE-PROPOSAL

set ikev2 ipsec-proposal AZURE-PROPOSAL

步骤 8 配置tunnel-group。

检索步骤3中创建的虚拟网络网关的公用IPv4地址，如图所示。

然后，在ASA上使用步骤3中定义的预共享密钥配置group-policy和tunnel-group。

group-policy AZURE internal

group-policy AZURE attributes

vpn-tunnel-protocol ikev2

tunnel-group A.A.A.A type ipsec-l2l

tunnel-group A.A.A.A general-attributes

default-group-policy AZURE

tunnel-group A.A.A.A ipsec-attributes

ikev2 remote-authentication pre-shared-key *****

ikev2 local-authentication pre-shared-key *****

步骤 9 配置隧道接口。

在第4步中，为已配置的BGP连接配置本地网络网关、网络地址和IP地址。这是要在VTI上配置的IP地址和网络。

interface Tunnel1

nameif AZURE

ip address 192.168.100.1 255.255.255.252

tunnel source interface outside

tunnel destination A.A.A.A

tunnel mode ipsec ipv4

tunnel protection ipsec profile AZURE-PROPOSAL

no shutdown

步骤 10

第 1 项.配置动态路由.使用BGP与Azure交换路由。

在Azure中找到BGP路由器的IP地址，以查看第3步中创建的虚拟网络网关的配置。在本示例中，该地址为10.1.2.254。

在ASA上，配置通过VTI隧道指向10.1.2.254的静态路由。在本例中，192.168.100.2与VTI位于同一子网内。即使没有设备具有该IP地址，ASA也会安装指向VTI接口的路由。

route AZURE 10.1.2.254 255.255.255.255 192.168.100.2 1

然后，在ASA上配置BGP。网络192.168.2.0/24是ASA的内部接口，也是传播到云中的路由。此外，在Azure中配置的网络会通告给ASA。

router bgp 65000

bgp log-neighbor-changes

bgp graceful-restart

address-family ipv4 unicast

neighbor 10.1.2.254 remote-as 65515

neighbor 10.1.2.254 ebgp-multihop 255

neighbor 10.1.2.254 activate

network 192.168.2.0

network 192.168.100.0 mask 255.255.255.252

no auto-summary

no synchronization

exit-address-family

第 2 项.配置静态路由 -在ASA和Azure上静态配置路由。配置ASA以通过VTI隧道向Azure网络发送流量。

route AZURE 10.1.0.0 255.255.0.0 192.168.100.2 1

使用存在于ASA之后的网络和隧道接口上的子网修改步骤4中创建的本地网络网关，并在添加其他网络空间部分下添加前缀。

验证

使用本部分可确认配置能否正常运行。

步骤1: 使用命令show crypto ikev2 sa验证IKEv2会话是否已建立。

ciscoasa# show crypto ikev2 sa

IKEv2 SAs:

Session-id:6, Status:UP-ACTIVE, IKE count:1, CHILD count:1

Tunnel-id Local                                               Remote                                                  Status         Role

2006974029 B.B.B.B.    /500                                   A.A.A.A/500                                             READY          INITIATOR

Encr: AES-CBC, keysize: 256, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK

Life/Active Time: 86400/4640 sec

Child sa: local selector  0.0.0.0/0 - 255.255.255.255/65535

remote selector 0.0.0.0/0 - 255.255.255.255/65535

ESP spi in/out: 0x74e90416/0xba17723a

第二步：使用show crypto ipsec sa命令验证是否也协商了IPsec SA。

ciscoasa# show crypto ipsec sa

interface: AZURE

Crypto map tag: __vti-crypto-map-3-0-1, seq num: 65280, local addr: B.B.B.B

local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)

remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)

current_peer: A.A.A.A

#pkts encaps: 240, #pkts encrypt: 240, #pkts digest: 240

#pkts decaps: 377, #pkts decrypt: 377, #pkts verify: 377

#pkts compressed: 0, #pkts decompressed: 0

#pkts not compressed: 240, #pkts comp failed: 0, #pkts decomp failed: 0

#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0

#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0

#TFC rcvd: 0, #TFC sent: 0

#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0

#send errors: 0, #recv errors: 0

local crypto endpt.: B.B.B.B/500, remote crypto endpt.: A.A.A.A/500

path mtu 1500, ipsec overhead 78(44), media mtu 1500

PMTU time remaining (sec): 0, DF policy: copy-df

ICMP error validation: disabled, TFC packets: disabled

current outbound spi: BA17723A

current inbound spi : 74E90416

inbound esp sas:

spi: 0x74E90416 (1961427990)

SA State: active

transform: esp-aes-256 esp-sha-256-hmac no compression

in use settings ={L2L, Tunnel, IKEv2, VTI, }

slot: 0, conn_id: 1722, crypto-map: __vti-crypto-map-3-0-1

sa timing: remaining key lifetime (kB/sec): (3962863/24100)

IV size: 16 bytes

replay detection support: Y

Anti replay bitmap:

0xFFFFFFFF 0xFFFFFFFF

outbound esp sas:

spi: 0xBA17723A (3122098746)

SA State: active

transform: esp-aes-256 esp-sha-256-hmac no compression

in use settings ={L2L, Tunnel, IKEv2, VTI, }

slot: 0, conn_id: 1722, crypto-map: __vti-crypto-map-3-0-1

sa timing: remaining key lifetime (kB/sec): (4008947/24100)

IV size: 16 bytes

replay detection support: Y

Anti replay bitmap:

0x00000000 0x00000001

ciscoasa#

第三步： 如果要使用BGP或终端资源的第3层路由和第4层连接，请使用ping和ping tcp来验证通过隧道连接到BGP远程路由器的情况（如果使用静态路由）。

ciscoasa# ping 10.1.2.254

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.2.254, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 40/42/50 ms

ciscoasa# ping tcp 10.1.2.254 179

Type escape sequence to abort.

No source specified. Pinging from identity interface.

Sending 5 TCP SYN requests to 10.1.2.254 port 179

from 192.168.100.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 41/42/42 ms

ciscoasa#

第四步：使用BGP时，请验证已接收并通告给Azure的BGP连接路由以及ASA的路由表。

ciscoasa# show bgp summary

BGP router identifier 192.168.100.1, local AS number 65000

BGP table version is 6, main routing table version 6

4 network entries using 800 bytes of memory

5 path entries using 400 bytes of memory

2/2 BGP path/bestpath attribute entries using 416 bytes of memory

1 BGP AS-PATH entries using 24 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 1640 total bytes of memory

BGP activity 14/10 prefixes, 17/12 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

10.1.2.254      4        65515 73      60             6    0    0 01:02:26  3

ciscoasa# show bgp neighbors 10.1.2.254 routes

BGP table version is 6, local router ID is 192.168.100.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale, m multipath

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop        Metric LocPrf Weight  Path

*> 10.1.0.0/16      10.1.2.254                         0  65515 i   <<< This is the virtual network defined in Azure

*  192.168.100.0/30 10.1.2.254                         0  65515 i

r> 192.168.100.1/32 10.1.2.254                         0  65515 i

Total number of prefixes 3

ciscoasa# show bgp neighbors 10.1.2.254 advertised-routes

BGP table version is 6, local router ID is 192.168.100.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

r RIB-failure, S Stale, m multipath

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop        Metric LocPrf Weight  Path

*> 192.168.2.0      0.0.0.0              0         32768  i        <<< These are the routes being advertised to Azure

*> 192.168.100.0/30 0.0.0.0              0         32768  i        <<<

Total number of prefixes 2

ciscoasa#

ciscoasa# show route

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, V - VPN

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route

o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is 10.1.251.33 to network 0.0.0.0

S*       0.0.0.0 0.0.0.0 [1/0] via B.B.B.C, outside

B        10.1.0.0 255.255.0.0 [20/0] via 10.1.1.254, 01:03:33

S        10.1.2.254 255.255.255.255 [1/0] via 192.168.100.2, AZURE

C        B.B.B.A 255.255.255.224 is directly connected, outside

L        B.B.B.B 255.255.255.255 is directly connected, outside

C        192.168.2.0 255.255.255.0 is directly connected, inside

L        192.168.2.2 255.255.255.255 is directly connected, inside

C        192.168.100.0 255.255.255.252 is directly connected, AZURE

L        192.168.100.1 255.255.255.255 is directly connected, AZURE

第五步：通过隧道ping设备。在本示例中，它是在Azure中运行的Ubuntu VM。

ciscoasa# ping 10.1.0.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.0.4, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 40/42/50 ms

立即查看远程VM上的有效路由。它们必须显示ASA向云通告的路由，如图所示。

故障排除

当前没有故障排除此配置的特定可用资料。