Inleiding
In dit document wordt beschreven hoe u problemen kunt oplossen met een hoog CPU-gebruik als gevolg van het IP-invoerproces.
Voorwaarden
Vereisten
Cisco raadt u aan het gebruik van Hoge CPU-toepassingen voor probleemoplossing te lezen op Cisco-routers voordat u met dit document gaat werken.
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Opmerking: dit document bevat geen strategieën om verschillende soorten aanvallen te voorkomen.
IP-ingang
Het Cisco IOS®-softwareproces dat IP-ingang wordt genoemd, omvat IP-pakketten die met processwitching werken. Als het IP-invoerproces ongewoon hoge CPU-bronnen gebruikt, zal de router veel IP-verkeer verwerken. Controleer deze problemen:
-
Interrupt schakelen is uitgeschakeld in een interface (of interfaces) met veel verkeer
Interrupt schakelen verwijst naar het gebruik van andere switching-algoritmen dan processwitching. Voorbeelden zijn snelle switching, optimale switching, Cisco Express Forwarding switching, enzovoort (raadpleeg Performance Tuning Basics voor meer informatie). Bekijk de output van de show interfaces switching
bevel om te zien welke interface met verkeer wordt belast. U kunt de show ip interface
bevel om te zien welke omschakelingsmethode(n) op elke interface worden gebruikt. Schakel de interfaceschakelaar opnieuw in. Herinner dat regelmatige snelle omschakeling op outputinterfaces wordt gevormd: als de snelle omschakeling op een interface wordt gevormd, worden de pakketten die uit die interface gaan snel-geschakeld. Cisco Express Forwarding switching is geconfigureerd op invoerinterfaces. Om het door:sturen van de Basis van de Informatie (FIB) en de ingangen van de nabijheidslijst op een bepaalde interface te creëren, vorm Cisco Express het Door:sturen omschakeling op alle interfaces die aan die interface leiden.
-
Het snel inschakelen van dezelfde interface is uitgeschakeld
Als een interface veel secundaire adressen of subinterfaces heeft en er veel verkeer afkomstig is van de interface en bestemd is voor een adres op dezelfde interface, dan zijn al die pakketten procesgeschakeld. In deze situatie moet u ip route-cache
same-interface
op de interface. Wanneer Cisco Express Forwarding switching wordt gebruikt, hoeft u Cisco Express Forwarding switching niet afzonderlijk in te schakelen op dezelfde interface.
-
Snelle switching op een interface die beleidsrouting biedt is uitgeschakeld
Als een route-kaart op een interface is gevormd, en veel verkeer door de route-kaart wordt behandeld, dan de router proces-switches dit verkeer. In deze situatie moet u ip route-cache policy
op de interface. Controleer de beperkingen die in het gedeelte Inschakelen van Fast-Switched Policy-Based Routing zijn vermeld bij het configureren van op beleid gebaseerde routing.
-
Verkeer dat niet kan worden onderbroken wordt ontvangen
Dit kan om het even welke vermelde types van verkeer zijn. Klik op gelinkte items voor meer informatie.
-
Pakketten waarvoor er nog geen ingang in het omschakelingscachegeheugen is
Zelfs als snel, optimaal, of Cisco Express Forwarding switching (CEF) is geconfigureerd, wordt een pakket waarvoor er geen overeenkomsten zijn in het Fast-Switching cache of FIB en nabijheidstabellen verwerkt. Vervolgens wordt er een ingang gemaakt in de juiste cache of tabel, en alle daaropvolgende pakketten die aan dezelfde criteria voldoen, zijn snel, optimaal of CEF-switched. In normale omstandigheden, veroorzaken deze verwerkte pakketten geen hoog CPU-gebruik. Als er echter een apparaat is in het netwerk dat 1) pakketten genereert tegen een extreem hoge snelheid voor apparaten die bereikbaar zijn via de router, en 2) verschillende bron of bestemming IP-adressen gebruikt, is er geen overeenkomst voor deze pakketten in het switching-cache of de tabel, zodat ze worden verwerkt door het IP Input-proces (als NetFlow-switching is geconfigureerd, worden de bron en bestemming TCP-poorten ook gecontroleerd tegen ingangen in het NetFlow-cache). Dit bronapparaat kan een niet-functioneel apparaat zijn of, waarschijnlijker, een apparaat dat een aanval probeert.
(*) Alleen met glimlaire nabijheid. Raadpleeg Cisco Express Forwarding begrijpen voor meer informatie over de nabijheid van Cisco Express Forwarding.
-
Pakketten die voor de router zijn bestemd
Dit zijn voorbeelden van pakketten die voor de router worden bestemd:
-
Routing updates die aan een extreem hoog tarief aankomen. Als de router een enorme hoeveelheid routing updates ontvangt die moeten worden verwerkt, kan deze taak de CPU overladen. Normaal gesproken kan dit niet in een stabiel netwerk gebeuren. De manier waarop u meer informatie kunt verzamelen hangt af van het routeringsprotocol dat u hebt geconfigureerd. U kunt echter ook beginnen met het controleren van de uitvoer van de show ip route summary
periodiek. Waarden die snel veranderen zijn een teken van een instabiel netwerk. De frequente veranderingen van de routeringstabel betekenen verhoogde routing protocol verwerking, wat resulteert in een verhoogd CPU-gebruik. Raadpleeg de sectie TCP/IP-probleemoplossing in de Internetwork Probleemoplossing Guide voor meer informatie over het oplossen van dit probleem.
-
Elk ander soort verkeer dat voor de router is bestemd. Controleer wie er ingelogd is op de router en de gebruikersacties. Als iemand is ingelogd en opdrachten geeft die lange uitvoer genereren, wordt het hoge CPU-gebruik door het "IP-ingang"-proces gevolgd door een veel hoger CPU-gebruik door het Virtual Exec-proces.
-
Oorlog van een plundering. Om het probleem te identificeren, geeft u de show ip traffic
opdracht om de hoeveelheid IP-verkeer te controleren. Als er een probleem is, is het aantal ontvangen pakketten met een lokale bestemming significant. Controleer vervolgens de uitvoer van de show interfaces
en show interfaces switching
opdrachten om te controleren welke interface de pakketten binnenkomen. Zodra u de ontvangende interface hebt geïdentificeerd, schakelt u deze in ip accounting
op de uitgaande interface en kijk of er een patroon is. Als er een aanval is, is het bronadres bijna altijd verschillend, maar het bestemmingsadres is het zelfde. Een toegangslijst kan worden geconfigureerd om het probleem tijdelijk op te lossen (bij voorkeur op het apparaat het dichtst bij de bron van de pakketten), maar de echte oplossing is om het bronapparaat op te sporen en de aanval te stoppen.
-
Uitzendverkeer
Controleer het aantal uitzendingspakketten in het show interfaces
opdrachtoutput. Als je de hoeveelheid uitzendingen vergelijkt met de totale hoeveelheid pakketten die werden ontvangen op de interface, kun je een idee krijgen of er een overhead van uitzendingen is. Als er een LAN is met meerdere switches die op de router zijn aangesloten, kan dit een probleem met Spanning Tree aangeven.
-
IP-pakketten met opties
-
Pakketten die protocolomzetting vereisen
-
Multilink point-to-point protocol (ondersteund in Cisco Express Forwarding switching)
-
Gecomprimeerd verkeer
Als er geen Compression Service Adapter (CSA) in de router is, moeten gecomprimeerde pakketten procesgeschakeld zijn.
-
Versleuteld verkeer
Als er geen ESR-adapter (Encryption Service Adapter) in de router is, moeten versleutelde pakketten procesgeschakeld zijn.
-
Pakketten die door seriële interfaces met X.25-insluiting gaan
In de X.25-protocolreeks wordt flow control geïmplementeerd op de tweede Open System Interconnection (OSI)-laag.
-
Een hoop pakketten, die tot een extreem hoog tarief, voor een bestemming in een direct aangesloten subnetnet komen, waarvoor er geen ingang in de lijst van de Resolutie van het Adres van het Protocol (ARP) is. Dit zal naar verwachting niet gebeuren met TCP-verkeer vanwege het venstermechanisme, maar kan gebeuren met User Datagram Protocol (UDP)-verkeer. Om het probleem te identificeren, herhaal de voorgestelde acties om een nepaanval op te sporen.
-
Veel multicast verkeer gaat door de router. Helaas is er geen makkelijke manier om de hoeveelheid multicast verkeer te onderzoeken. Het show ip traffic
de opdracht toont alleen overzichtsinformatie. Als u multicast routing op de router hebt geconfigureerd, kunt u echter snelle switching van multicast-pakketten met de ip mroute-cache
de opdracht van de interfaceconfiguratie (snelle switching van multicast pakketten is standaard uitgeschakeld).
-
De router is overgeabonneerd. Als de router te veel wordt gebruikt en deze hoeveelheid verkeer niet kan verwerken, probeer dan de lading onder andere routers te verdelen of een high-end router te kopen.
-
IP Network Address Translation (NAT) is geconfigureerd op de router en veel DNS-pakketten (Domain Name System) gaan door de router. UDP- of TCP-pakketten met bron- of doelpoort 53 (DNS) worden altijd door NAT op procesniveau geprikt.
-
Er zijn andere pakkettypes die aan verwerking worden gestraft.
-
Er is fragmentatie van IP Datagram. Er is een kleine toename in CPU en geheugen overhead te wijten aan fragment van een IP datagram. Raadpleeg IP-fragmentatie, MTU, MSS en PMTUD-problemen oplossen met GRE en IPSEC voor meer informatie over het oplossen van dit probleem.
Waarschuwing: wat ook de reden is voor het hoge CPU-gebruik in het IP-invoerproces, de bron van het probleem kan worden opgespoord als u de IP-pakketten debuggt. Aangezien het CPU-gebruik al hoog is, moet het debug-proces met uiterste voorzichtigheid worden uitgevoerd.
Het debug proces produceert veel berichten, dus alleen het loggen als bufferbestand moet worden geconfigureerd.
Vastlegging op een console veroorzaakt onnodige onderbrekingen in de CPU en verhoogt het CPU-gebruik. Vastlegging aan een host (of monitorvastlegging) genereert extra verkeer op interfaces.
Het debug-proces kan worden gestart met de debug ip packet detail exec
uit. Deze zitting mag niet langer dan drie à vijf seconden duren. Debugging berichten worden geschreven in de logboekbuffer. Een opname van een voorbeeldsessie voor IP-debugging is te vinden in de sectie IP-pakketdebugging sessie van dit document. Zodra het bronapparaat van ongewenste IP pakketten wordt gevonden, kan dit apparaat van het netwerk worden losgemaakt, of een toegangslijst kan op de router worden tot stand gebracht om pakketten van die bestemming te laten vallen.
Voorbeeldsessie voor IP-pakketdebugging
Configureerde logbestemmingen moeten eerst worden gecontroleerd met de show logging
opdracht:
router#show logging
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: level debugging, 52 messages logged
Monitor logging: level debugging, 0 messages logged
Buffer logging: level debugging, 148 messages logged
Trap logging: level informational, 64 message lines logged
Logging to 192.168.100.100, 3 message lines logged
Logging to 192.168.200.200, 3 message lines logged
--More--
Schakel alle logboekbestemmingen uit behalve logboekbuffer en duidelijke logboekbuffer:
router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
router(config)#no logging console
router(config)#no logging monitor
router(config)#no logging 192.168.100.100
router(config)#no logging 192.168.200.200
router(config)#^Z
router#clear logging
Clear logging buffer [confirm]
router#
Voor een betere leesbaarheid van debugging van uitvoer moeten datumtijd en milliseconden tijdstempels zijn ingeschakeld:
router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
router(config)#service timestamps log datetime msec
router(config)#service timestamps debug datetime msec
router(config)#end
router#
Een debugging sessie kan nu worden gestart:
router#debug ip packet detail
IP packet debugging is on (detailed)
Het zuiveren moet niet meer dan drie tot vijf seconden duren. De sessie kan worden gestopt met de undebug all exec
opdracht:
router#undebug all
All possible debugging has been turned off
De resultaten kunnen worden gecontroleerd met de show logging exec
opdracht:
router#show logging
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: disabled
Monitor logging: disabled
Buffer logging: level debugging, 145 messages logged
Trap logging: level informational, 61 message lines logged
Log Buffer (64000 bytes):
*Mar 3 03:43:27.320: IP: s=192.168.40.53 (Ethernet0/1), d=10.254.2.204
(Ethernet0/0), g=10.200.40.1, len 100, forward
*Mar 3 03:43:27.324: ICMP type=8, code=0
*Mar 3 03:43:27.324: IP: s=192.168.40.53 (Ethernet0/1), d=10.254.2.205
(Ethernet0/0), g=10.200.40.1, len 100, forward
*Mar 3 03:43:27.324: ICMP type=8, code=0
*Mar 3 03:43:27.328: IP: s=192.168.40.53 (Ethernet0/1), d=10.254.2.206
(Ethernet0/0), g=10.200.40.1, len 100, forward
*Mar 3 03:43:27.328: ICMP type=8, code=0
...
Uit het logboek blijkt dat:
-
Er is elke vier milliseconden een pakket ontvangen
-
Het IP-bronadres is 192.168.40.53
-
De pakketten zijn binnengekomen op interface Ethernet0/1
-
De pakketten hebben verschillende bestemmingsIP adressen
-
De pakketten zijn verzonden op interface Ethernet0/0
-
Het IP-adres van de volgende hop is 10.200.40.1
-
De pakketten waren ICMP-verzoeken (type=8)
In dit voorbeeld kunt u zien dat het hoge CPU-gebruik in het IP-invoerproces is veroorzaakt door een ping-overstroming vanaf IP-adres 192.168.40.53.
SYN overstromingen kunnen gemakkelijk op deze manier worden gedetecteerd omdat de aanwezigheid van SYN-vlag wordt aangegeven in de debugging-uitvoer:
*Mar 3 03:54:40.436: IP: s=192.168.40.53 (Ethernet0/1), d=10.254.2.204
(Ethernet0/0), g=10.200.40.1, len 44, forward
*Mar 3 03:54:40.440: TCP src=11004, dst=53,
seq=280872555, ack=0, win=4128 SYN
Gerelateerde informatie