Solución de problemas de conectividad de AWS Site-to-Site VPN con un dispositivo de puerta de enlace de cliente de Cisco ASA
Al solucionar problemas de conectividad de un dispositivo de gateway de cliente de Cisco, tenga en cuenta el IKE, el IPsec y el direccionamiento. Puede solucionar problemas en estas áreas en cualquier orden, pero recomendamos empezar por IKE (en la parte inferior de stack de red) y continuar de forma ascendente.
importante
Algunos Cisco ASA solo admiten el modo Active/Standby. Al utilizar estos Cisco ASA, solo puede tener un túnel activo cada vez. El otro túnel en espera se activará solo si el primer túnel se vuelve no disponible. El túnel en espera puede producir el siguiente error en sus archivos de registro, que puede ignorarse: .: Rejecting IPSec tunnel: no
matching crypto map entry for remote proxy 0.0.0.0/0.0.0.0/0/0 local proxy
0.0.0.0/0.0.0.0/0/0 on interface outside .
IKE
Use el siguiente comando. La respuesta mostrará un dispositivo de gateway de cliente con el IKE configurado correctamente.
ciscoasa#show crypto isakmp sa
Active SA: 2
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 2
1 IKE Peer: AWS_ENDPOINT_1
Type : L2L Role : initiator
Rekey : no State : MM_ACTIVE
Debería ver una o varias líneas con el valor de src para la gateway remota que se especifica en los túneles. El valor state debería ser MM_ACTIVE y el status debería ser ACTIVE. La ausencia de entradas o la aparición de una entrada con otro estado indican que IKE no se ha configurado correctamente.
Para realizar una solución de problemas más profunda, ejecute los siguientes comandos para permitir que los mensajes de log proporcionen información de diagnóstico.
router#term monrouter#debug crypto isakmp
Para deshabilitar la depuración, utilice el siguiente comando.
router#no debug crypto isakmp
IPsec
Use el siguiente comando. La respuesta mostrará un dispositivo de gateway de cliente con IPsec configurado correctamente.
ciscoasa#show crypto ipsec sa
interface: outside
Crypto map tag: VPN_crypto_map_name, seq num: 2, local addr: 172.25.50.101
access-list integ-ppe-loopback extended permit ip any vpc_subnet subnet_mask
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (vpc_subnet/subnet_mask/0/0)
current_peer: integ-ppe1
#pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
#pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #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
#send errors: 0, #recv errors: 0
local crypto endpt.: 172.25.50.101, remote crypto endpt.: AWS_ENDPOINT_1
path mtu 1500, ipsec overhead 74, media mtu 1500
current outbound spi: 6D9F8D3B
current inbound spi : 48B456A6
inbound esp sas:
spi: 0x48B456A6 (1219778214)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, PFS Group 2, }
slot: 0, conn_id: 4710400, crypto-map: VPN_cry_map_1
sa timing: remaining key lifetime (kB/sec): (4374000/3593)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
outbound esp sas:
spi: 0x6D9F8D3B (1839172923)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, PFS Group 2, }
slot: 0, conn_id: 4710400, crypto-map: VPN_cry_map_1
sa timing: remaining key lifetime (kB/sec): (4374000/3593)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
Por cada interfaz del túnel, debería ver tanto inbound esp sas como outbound esp sas. Esto indica que aparece una SA (por ejemplo, spi: 0x48B456A6) y que IPsec se ha configurado correctamente.
En Cisco ASA, IPsec solo aparece después de enviar tráfico interesante (tráfico que debe cifrarse). Para mantener IPsec siempre activo, recomendamos configurar una monitorización de SLA. La monitorización de SLA sigue enviando tráfico interesante, lo que mantendrá el IPsec activo.
También puede utilizar el siguiente comando ping para obligar a su IPsec a comenzar la negociación y continuar.
pingec2_instance_ip_address
Pinging ec2_instance_ip_address with 32 bytes of data:
Reply from ec2_instance_ip_address: bytes=32 time<1ms TTL=128
Reply from ec2_instance_ip_address: bytes=32 time<1ms TTL=128
Reply from ec2_instance_ip_address: bytes=32 time<1ms TTL=128
Ping statistics for 10.0.0.4:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milliseconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Para una solución de problemas más profunda, utilice el siguiente comando para permitir la depuración.
router#debug crypto ipsec
Para deshabilitar la depuración, utilice el siguiente comando.
router#no debug crypto ipsec
Enrutamiento
Haga ping al otro extremo del túnel. Si funciona, se debe establecer el IPSec. En caso contrario, compruebe sus listas de acceso y consulte la sección anterior de IPsec.
Si no puede obtener acceso a sus instancias, compruebe la siguiente información:
-
Verifique que la lista de acceso esté configurada para permitir el tráfico asociado al mapa criptográfico.
Puede hacerlo con el siguiente comando.
ciscoasa#show run cryptocrypto ipsec transform-set transform-amzn esp-aes esp-sha-hmac crypto map VPN_crypto_map_name 1 match address access-list-name crypto map VPN_crypto_map_name 1 set pfs crypto map VPN_crypto_map_name 1 set peerAWS_ENDPOINT_1AWS_ENDPOINT_2crypto map VPN_crypto_map_name 1 set transform-set transform-amzn crypto map VPN_crypto_map_name 1 set security-association lifetime seconds 3600 -
Compruebe la lista de acceso mediante el siguiente comando.
ciscoasa#show run access-list access-list-nameaccess-list access-list-name extended permit ip anyvpc_subnetsubnet_mask -
Verifique si la lista de acceso es correcta. La siguiente lista de acceso de ejemplo permite todo el tráfico interno a la subred de VPC 10.0.0.0/16.
access-list access-list-name extended permit ip any 10.0.0.0 255.255.0.0 -
Ejecute un comando traceroute desde el dispositivo Cisco ASA para ver si llega a los routers de Amazon (por ejemplo,
AWS_ENDPOINT_1/AWS_ENDPOINT_2).Si llega al enrutador de Amazon, compruebe las rutas estáticas que agregó en la consola de Amazon VPC, así como los grupos de seguridad de las instancias particulares.
Para una solución de problemas más profunda, revise la configuración.
Rebote de la interfaz del túnel
Si el túnel parece estar activo pero el tráfico no fluye correctamente, el rebote de la interfaz del túnel (deshabilitándola y volviendo a habilitarla) suele resolver problemas de conectividad. Cómo rebotar la interfaz del túnel en un Cisco ASA:
-
Ejecuta lo siguiente:
ciscoasa# conf t ciscoasa(config)# interface tunnel X (where X is your tunnel ID) ciscoasa(config-if)# shutdown ciscoasa(config-if)# no shutdown ciscoasa(config-if)# endTambién puede utilizar un comando de una sola línea:
ciscoasa# conf t ; interface tunnel X ; shutdown ; no shutdown ; end -
Después de rebotar la interfaz, compruebe si la conexión de VPN se ha restablecido y si el tráfico fluye ahora correctamente.