In diesem Dokument wird beschrieben, wie Ping-Verluste über einen IPsec-Tunnel in Verbindung mit "%CRYPTO-4-RECVD_PKT_MAC_ERR"-Meldungen im Syslog wie im Feld gezeigt behoben werden:
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
Ein kleiner Prozentsatz dieser Tropfen gilt als normal. Eine hohe Fallrate kann sich jedoch auf den Service auswirken und die Aufmerksamkeit des Netzwerkbetreibers erfordern. Beachten Sie, dass diese Meldungen in den Syslogs in Intervallen von 30 Sekunden begrenzt sind, sodass eine einzige Protokollmeldung nicht immer darauf hinweist, dass nur ein Paket verworfen wurde. Um eine genaue Anzahl dieser Verwerfen zu erhalten, führen Sie den Befehl show crypto ipsec as detail aus, und sehen Sie sich die SA neben der in den Protokollen angezeigten Verbindungs-ID an. Unter den SA-Zählern überprüfen die Pkte die Konten für fehlgeschlagene Fehlerindikatoren für den Gesamtpaketverlust aufgrund des Verifizierungsfehlers für den Nachrichtenauthentifizierungscode (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
Für dieses Dokument bestehen keine speziellen Anforderungen.
Die Informationen in diesem Dokument basieren auf Tests, die mit Cisco IOS® Version 15.1(4)M4 durchgeführt wurden. Die Skripts und die Konfiguration sind zwar noch nicht getestet, sollten aber auch mit früheren Cisco IOS-Softwareversionen funktionieren, da beide Applets EEM Version 3.0 verwenden (wird von IOS Version 12.4(22)T oder höher unterstützt).
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
"%CRYPTO-4-RECVD_PKT_MAC_ERR: entschlüsseln:" impliziert, dass ein verschlüsseltes Paket empfangen wurde, das die MAC-Verifizierung nicht bestanden hat. Diese Überprüfung ist das Ergebnis des konfigurierten Authentifizierungsturnus:
Router (config)# crypto ipsec transform transform-1 esp-aes 256 esp-md5-hmac
Im obigen Beispiel definiert "esp-aes 256" den Verschlüsselungsalgorithmus als 256-Bit-AES, und "esp-md5" definiert MD5 (HMAC-Variante) als den für die Authentifizierung verwendeten Hash-Algorithmus. Hash-Algorithmen wie MD5 werden in der Regel verwendet, um einen digitalen Fingerabdruck des Inhalts einer Datei bereitzustellen. Der digitale Fingerabdruck wird häufig verwendet, um sicherzustellen, dass die Datei nicht durch einen Eindringling oder Virus verändert wurde. Das Auftreten dieser Fehlermeldung impliziert in der Regel Folgendes:
Da diese Fehlermeldung in der Regel durch Paketfehler verursacht wird, besteht die einzige Möglichkeit, eine Ursachenanalyse durchzuführen, in der Verwendung von EPC, um vollständige Paketerfassungen von der WAN-Seite an beiden Tunnelendpunkten zu erhalten und diese zu vergleichen. Bevor Sie die Erfassungen abrufen, sollten Sie am besten ermitteln, welche Art von Datenverkehr diese Protokolle auslöst. In einigen Fällen kann es sich um eine bestimmte Art von Datenverkehr handeln. In anderen Fällen kann es zufällig sein, aber leicht reproduziert werden (z. B. 5-7 Tropfen alle 100 Pings). In solchen Situationen ist das Problem etwas leichter zu identifizieren. Der Trigger lässt sich am besten identifizieren, indem der Testdatenverkehr mit DSCP-Markierungen markiert und die Pakete erfasst werden. Der DSCP-Wert wird in den ESP-Header kopiert und kann dann mit Wireshark gefiltert werden. Diese Konfiguration, bei der ein Test mit 100 Pings vorausgesetzt wird, kann zum Markieren der ICMP-Pakete verwendet werden:
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
Diese Richtlinie muss nun auf die Eingangs-Schnittstelle angewendet werden, an der der ungehinderte Datenverkehr auf dem verschlüsselten Router eingeht:
interface GigabitEthernet0/0
service-policy MARKING in
Alternativ können Sie diesen Test auch mit Routerdatenverkehr ausführen. Dazu können Sie die Pakete nicht mit Quality of Service (QoS) kennzeichnen, sondern mit Policy-Based Routing (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
Sobald die QoS-Markierung für Ihren ICMP-Datenverkehr konfiguriert ist, können Sie die integrierte Paketerfassung konfigurieren:
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"
Hinweis: Diese Funktion wurde in Cisco IOS Release 12.4(20)T eingeführt. Weitere Informationen zu EPCs finden Sie unter Embedded Packet Capture.
Die Verwendung einer Paketerfassung zur Behebung dieses Problems erfordert die Erfassung des gesamten Pakets, nicht nur eines Teils davon. Die EPC-Funktion in Cisco IOS-Versionen vor 15.0(1)M hat eine Puffergrenze von 512.000 und eine maximale Paketgrößenbeschränkung von 1024 Byte. Um diese Einschränkung zu vermeiden, aktualisieren Sie auf 15.0(1)M oder neueren Code, der jetzt eine Puffergröße von 100M bei einer maximalen Paketgröße von 9.500 Byte unterstützt.
Wenn das Problem mit jedem Ping mit 100 Zählern zuverlässig reproduziert werden kann, besteht das Worst-Case-Szenario darin, ein Wartungsfenster zu planen, um nur den Ping-Datenverkehr als kontrollierten Test zuzulassen und die Captures zu erfassen. Dieser Vorgang sollte nur wenige Minuten in Anspruch nehmen, aber er unterbricht den Produktionsdatenverkehr für diese Zeit. Wenn Sie QoS-Markierungen verwenden, können Sie die Anforderung, Pakete nur auf Pings zu beschränken, eliminieren. Um alle Ping-Pakete in einem Puffer zu erfassen, müssen Sie sicherstellen, dass der Test nicht zu Spitzenzeiten durchgeführt wird.
Wenn das Problem nicht einfach reproduziert werden kann, können Sie ein EEM-Skript verwenden, um die Paketerfassung zu automatisieren. Die Theorie besagt, dass Sie die Aufnahmen auf beiden Seiten in einen Zirkelpuffer starten und EEM verwenden, um die Erfassung auf einer Seite zu stoppen. Gleichzeitig stoppt der EEM die Erfassung, lassen Sie ihn einen SNMP-Trap an den Peer senden, der seine Erfassung stoppt. Dieser Prozess könnte funktionieren. Bei starker Auslastung reagiert der zweite Router möglicherweise nicht schnell genug, um die Erfassung zu stoppen. Ein kontrollierter Test wird bevorzugt. Nachfolgend sind die EEM-Skripts aufgeführt, die den Prozess implementieren:
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!"
Beachten Sie, dass der Code im vorherigen Feld eine mit 15.0(1)M getestete Konfiguration ist. Möglicherweise möchten Sie diese mit der von Ihrem Kunden verwendeten Cisco IOS-Version testen, bevor Sie sie in der Kundenumgebung implementieren.
ip.dsfield.dscp==0x08
"0x08" ist spezifisch für den DSCP-Wert AF21. Wenn ein anderer DSCP-Wert verwendet wird, kann der richtige Wert aus der Paketerfassung selbst oder aus der Liste der DSCP-Werte-Konvertierungsdiagramme abgeleitet werden. Weitere Informationen finden Sie unter DSCP und Precedence Values.
*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 ................
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
24-Oct-2013 |
Erstveröffentlichung |