Este documento describe cómo resolver la pérdida de ping sobre un túnel IPsec asociado con los mensajes "%CRYPTO-4-RECVD_PKT_MAC_ERR" en el syslog como se muestra en el cuadro:
May 23 11:41:38.139 GMT: %CRYPTO-4-RECVD_PKT_MAC_ERR:
decrypt: mac verify failed for connection
id=2989 local=172.16.200.18 remote=172.16.204.18 spi=999CD43B
seqno=00071328
Un pequeño porcentaje de estas caídas se considera normal. Sin embargo, una alta tasa de caída debido a este problema puede afectar al servicio y puede requerir la atención del operador de red. Tenga en cuenta que estos mensajes notificados en los syslogs se limitan a la velocidad a intervalos de 30 segundos, por lo que un solo mensaje de registro no siempre indica que sólo se descartó un paquete. Para obtener un conteo preciso de estas caídas, ejecute el comando show crypto ipsec sa detail, y observe la SA junto al ID de conexión visto en los registros. Entre los contadores SA, el contador de errores pkts verify failed explica la pérdida total de paquetes debido a la falla de verificación del código de autenticación de mensajes (MAC).
interface: GigabitEthernet0/1
Crypto map tag: MPLSWanGREVPN, local addr 172.16.204.18
protected vrf: (none)
local ident (addr/mask/prot/port): (172.16.204.18/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (172.16.205.18/255.255.255.255/47/0)
current_peer 172.16.205.18 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 51810, #pkts encrypt: 51810, #pkts digest: 51810
#pkts decaps: 44468, #pkts decrypt: 44468, #pkts verify: 44468
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#pkts no sa (send) 0, #pkts invalid sa (rcv) 0
#pkts encaps failed (send) 0, #pkts decaps failed (rcv) 0
#pkts invalid prot (recv) 0, #pkts verify failed: 8
#pkts invalid identity (recv) 0, #pkts invalid len (rcv) 0
#pkts replay rollover (send): 0, #pkts replay rollover (rcv) 0
#pkts replay failed (rcv): 0
#pkts internal err (send): 0, #pkts internal err (recv) 0
local crypto endpt.: 172.16.204.18, remote crypto endpt.: 172.16.205.18
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/1
current outbound spi: 0xD660992C(3596654892)
inbound esp sas:
spi: 0x999CD43B(2577191995)
transform: esp-3des esp-sha-hmac ,
in use settings ={Transport, }
conn id: 2989, flow_id: AIM-VPN/SSL-3:2989, sibling_flags 80000006,
crypto map: MPLSWanGREVPN
sa timing: remaining key lifetime (k/sec): (4257518/24564)
IV size: 8 bytes
replay detection support: N
Status: ACTIVE
outbound esp sas:
spi: 0xD660992C(3596654892)
transform: esp-3des esp-sha-hmac ,
in use settings ={Transport, }
conn id: 2990, flow_id: AIM-VPN/SSL-3:2990, sibling_flags 80000006,
crypto map: MPLSWanGREVPN
sa timing: remaining key lifetime (k/sec): (4199729/24564)
IV size: 8 bytes
replay detection support: N
Status: ACTIVE
No hay requisitos específicos para este documento.
La información en este documento se basa en las pruebas realizadas con Cisco IOS ® versión 15.1(4)M4. Aunque aún no se ha probado, los scripts y la configuración deben funcionar con versiones anteriores del software del IOS de Cisco, ya que ambos applets utilizan la versión 3.0 de EEM (que se admite en la versión 12.4(22)T o posterior del IOS).
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
El "%CRYPTO-4-RECVD_PKT_MAC_ERR: descifrar:" implica que se recibió un paquete cifrado que falló la verificación MAC. Esta verificación es el resultado del conjunto de transformación de autenticación configurado:
Router (config)# crypto ipsec transform transform-1 esp-aes 256 esp-md5-hmac
En el ejemplo anterior, "esp-aes 256" define el algoritmo de cifrado como AES de 256 bits, y "esp-md5" define el MD5 (variante HMAC) como el algoritmo hash utilizado para la autenticación. Los algoritmos hash como MD5 se utilizan normalmente para proporcionar una huella digital del contenido de un archivo. La huella digital se utiliza a menudo para garantizar que el archivo no ha sido alterado por un intruso o virus. Por lo tanto, la aparición de este mensaje de error generalmente implica:
Dado que este mensaje de error suele estar causado por la corrupción de paquetes, la única manera de hacer un análisis de la causa raíz es utilizar EPC para obtener capturas de paquetes completas del lado de la WAN en ambos puntos finales del túnel y compararlas. Antes de obtener las capturas, es mejor identificar qué tipo de tráfico desencadena estos registros. En algunos casos, puede ser un tipo específico de tráfico; en otros casos, puede ser aleatorio pero fácilmente reproducido (como 5-7 caídas cada 100 pings). En esas situaciones, la cuestión resulta ligeramente más fácil de identificar. La mejor manera de identificar el disparador es marcar el tráfico de prueba con las marcas DSCP y capturar los paquetes. El valor DSCP se copia en el encabezado ESP y luego se puede filtrar con Wireshark. Esta configuración, que asume una prueba con 100 pings, se puede utilizar para marcar los paquetes ICMP:
ip access-list extended VPN_TRAFFIC
permit icmp <source> <destination>
class-map match-all MARK
match access-group name VPN_TRAFFIC
policy-map MARKING
class MARK
set dscp af21
Esta política debe aplicarse ahora a la interfaz de ingreso donde se recibe el tráfico despejado en el router de cifrado:
interface GigabitEthernet0/0
service-policy MARKING in
Alternativamente, puede que desee ejecutar esta prueba con tráfico generado por el router. Para ello, no puede utilizar la calidad del servicio (QoS) para marcar los paquetes, pero puede utilizar el routing basado en políticas (PBR).
ip access-list extended VPN_TRAFFIC
permit icmp <source> <destination>
route-map markicmp permit 10
match ip address vpn
set ip precedence critical
ip local policy route-map markicmp
Una vez que se haya configurado la marcación de QoS para el tráfico ICMP, puede configurar la captura de paquetes integrada:
Router(config)# ip access-list ext vpn_capo
Router(config)# permit ip host
Router(config)# permit ip host
Router(config)# exit //the capture is only configured in enable mode.
Router# monitor capture buffer vpncap size 256 max-size 100 circular
Router# monitor capture buffer vpncap filter access-list vpn_capo
Router# monitor capture point ip cef capo fastEthernet 0/1 both
Router# monitor capture point associate capo vpncap
Router# monitor capture point start capo //starts the capture.
To stop replace the "start" keyword with "stop"
Nota: esta función se introdujo en Cisco IOS Release 12.4(20)T. Refiérase a Captura de Paquetes Incrustados para obtener más información con respecto a los EPC.
El uso de una captura de paquetes para resolver este tipo de problema requiere que se capture todo el paquete, no sólo una parte de él. La función EPC en las versiones de Cisco IOS anteriores a 15.0(1)M tiene un límite de búfer de 512K y un límite máximo de tamaño de paquete de 1024 bytes. Para evitar esta limitación, actualice a 15.0(1)M o código más nuevo, que ahora admite un tamaño de búfer de captura de 100M con un tamaño máximo de paquete de 9500 bytes.
Si el problema se puede reproducir de forma fiable con cada ping de conteo 100, el peor de los escenarios es programar una ventana de mantenimiento para permitir solamente el tráfico ping como prueba controlada y tomar las capturas. Este proceso debe tardar unos minutos, pero sí interrumpe el tráfico de producción durante ese tiempo. Si utiliza la marcación de QoS, puede eliminar el requisito de restringir paquetes solamente a pings. Para capturar todos los paquetes ping en un buffer, debe asegurarse de que la prueba no se realice durante las horas pico.
Si el problema no se reproduce fácilmente, puede utilizar un script EEM para automatizar la captura de paquetes. La teoría es que se inician las capturas en ambos lados en un búfer circular y se utiliza EEM para detener la captura en un lado. Al mismo tiempo que el EEM detiene la captura, haga que envíe una trampa snmp al par, que detiene su captura. Este proceso podría funcionar. Pero si la carga es pesada, es posible que el segundo router no reaccione lo suficientemente rápido como para detener su captura. Se prefiere una prueba controlada. Estos son los scripts EEM que implementarán el proceso:
Receiver
========
event manager applet detect_bad_packet
event syslog pattern "RECVD_PKT_MAC_ERR"
action 1.0 cli command "enable"
action 2.0 cli command "monitor capture point stop test"
action 3.0 syslog msg "Packet corruption detected and capture stopped!"
action 4.0 snmp-trap intdata1 123456 strdata ""
Sender
======
event manager applet detect_bad_packet
event snmp-notification oid 1.3.6.1.4.1.9.10.91.1.2.3.1.9.
oid-val "123456" op eq src-ip-address 20.1.1.1
action 1.0 cli command "enable"
action 2.0 cli command "monitor capture point stop test"
action 3.0 syslog msg "Packet corruption detected and capture stopped!"
Tenga en cuenta que el código del cuadro anterior es una configuración probada con 15.0(1)M. Es posible que desee probarlo con la versión específica de Cisco IOS que utiliza su cliente antes de implementarlo en el entorno del cliente.
ip.dsfield.dscp==0x08
"0x08" es específico para el valor DSCP AF21. Si se utiliza un valor DSCP diferente, se puede obtener el valor correcto de la captura del paquete en sí o de la lista del gráfico de conversión de valores DSCP. Refiérase a Valores de Precedencia y DSCP para obtener más información.
*Mar 1 00:01:38.923: After encryption:
05F032D0: 45000088 00000000 E.......
05F032E0: FF3266F7 0A01201A 0A012031 7814619F .2fw.. ... 1x.a.
05F032F0: 00000001 DE9B4CEF ECD9178C 3E7A7F24 ....^.LolY..>z.$
05F03300: 83DCF16E 7FD64265 79F624FB 74D5AEF2 .\qn.VBeyv${tU.r
05F03310: 5EC0AC16 B1F9F3AB 89524205 A20C4E58 ^@,.1ys+.RB.".NX
05F03320: 09CE001B 70CC56AB 746D6A3A 63C2652B .N..pLV+tmj:cBe+
05F03330: 1992E8AF 2CE2A279 46367BDB 660854ED ..h/,b"yF6{[f.Tm
05F03340: 77B69453 83E47778 1470021F 09436285 w6.S.dwx.p...Cb.
05F03350: CB94AEF5 20A65B1F 480D86F6 125BA12E K..u &[.H..v.[!.
4F402C90: 45000088 00000000 E.......
4F402CA0: FF3266F7 0A01201A 0A012031 7814619F .2fw.. ... 1x.a.
4F402CB0: 00000001 DE9B4CEF ECD9178C 3E7A7F24 ....^.LolY..>z.$
4F402CC0: 83DCF16E 7FD64265 79F624FB 74D5AEF2 .\qn.VBeyv${tU.r
4F402CD0: 5EC0AC16 B1F9F3AB 89524205 A20C4E58 ^@,.1ys+.RB.".NX
4F402CE0: 09CE001B 70CC56AB 00000000 00000000 .N..pLV+........
4F402CF0: 00000000 00000000 00000000 00000000 ................
4F402D00: 00000000 00000000 00000000 00000000 ................
4F402D10: 00000000 00000000 00000000 00000000 ................
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
24-Oct-2013 |
Versión inicial |