Pseudowire-status kontra trafikräknare: vilken bevisar leveransen
Driftstatus säger att tjänsten är konfigurerad och uppe; räknare säger att ramar har flyttats. Koppla båda på VC-indexet och kontrollera riktning, diskontinuitet och MIB-stöd.
En pseudowire som rapporterar uppe berättar att tjänsten finns och att båda riktningarna är överens om att den bör bära trafik. Den berättar inte att en enda kundram någonsin har passerat den. Tillståndsobjekten och räknarobjekten skrevs för olika syften, och just genom att ta det ena som bevis för det andra går det fel i de flesta av dessa dashboards. Att jämföra dem är arbetet, eftersom tillit till bara en av dem besvarar en fråga som ingen ställde.
Status och räknare besvarar olika frågor
Huvudposten för VC bär en sammanlagd driftstatus, och den statusen är uppe bara när båda riktningsstatusarna är uppe. Allt bakom den är kunskap om kontrollplanet och konfigurationen: den lokala anslutningskretsen, peeren, signaleringen. En rad i denna status är ett påstående om avsikt och beredskap, inte om vidarebefordrade ramar.
Trafiken bor i en separat tabell med högkapacitetsräknare för paket och byte, och dessa rader bär samma VC-index. Tillväxt där är bevis för att ramar gick genom just den raden under det intervall du mätte. En oförändrad räknare är tvetydig i sig själv. En ledig tjänst, en collector som läser fel rad och en tyst bruten väg ger alla samma platta linje.
| Question | Object | What it can establish |
|---|---|---|
| Is the service up? | cpwVcOperStatus | Both direction states agree the VC should carry traffic. |
| Which side is down? | cpwVcInboundOperStatus, cpwVcOutboundOperStatus | Direction of the reported fault. |
| Did frames move? | cpwVcPerfTotalTable HC counters | Observed forwarding on that row between two polls. |
| Is the interval clean? | cpwVcPerfTotalDiscontinuityTime | Whether the counter was reset inside the window. |
Läs tabellen som två kolumner av bevis, inte som en stege av allvar. Uppe med platta räknare är inte en sämre version av uppe med tillväxt, det är en annan observation med ett annat nästa steg.
Koppla på VC-indexet, inte på numret i biljetten
VC-tabellen indexeras av ett enda heltal, och VC-ID, peer-adress, tjänstetyp och namn är attribut på den raden. Med de attributen hittar du din tjänst; indexet är det som gör att du fortsätter hitta den efter första avfrågningen. Ett gränssnittsindex, ett visat kretsnamn eller en MPLS-etikett är inte det indexet även när siffrorna stämmer.
Härled de numeriska OID:erna från MIB-filen på collectorn i stället för från ett blogginlägg, gå sedan igenom tabellen en gång och spara den identitet du hittade.
snmptranslate -On CPW-VC-MIB::cpwVcIndex
snmptranslate -On CPW-VC-MIB::cpwVcPerfTotalDiscontinuityTime
snmpwalk -v2c -c monitor 10.60.4.21 -On CPW-VC-MIB::cpwVcTableRegistrera hanteringsadressen och indexet tillsammans i övervakningssystemet. En ny provisionering kan flytta en tjänst till en annan rad, och en collector som knöt an vid VC-ID:t via namn kommer då att fortsätta rita ett inaktuellt index som fortfarande svarar artigt.
Riktning betyder pseudowiren, inte abonnenten
Ingående räknare beskriver vad VC:n tog emot från det paketförmedlade nätet; utgående räknare beskriver vad den vidarebefordrade mot det nätet. På en PE vänd mot en kund motsvarar det ofta nedladdning och uppladdning i någon ordning. På en hubb-PE, eller på en PE som peerar med en kärna, beskriver samma objektnamn den motsatta kundupplevelsen.
Skriv ned mappningen en gång per enhetsroll och håll den i dashboards etikett. En graf med titeln kunduppladdning som faktiskt ritar trafik in i kärnan kommer att överleva granskningen och tyst vilseleda alla som använder den för kapacitetsbeslut. Samma risk gäller larm byggda på dessa grafer, eftersom de kallar på fel team. Märk varje graf med färdriktningen i förhållande till pseudowiren, och låt kundmappningen leva i panelen som behöver den.
Ett test slår hur mycket läsning av objektsbeskrivningar som helst: dra en känd fil genom tjänsten, fråga båda riktningarna direkt efteråt och se vilken räknare som flyttade sig. Registrera resultatet bredvid enhetsrollen, eftersom nästa person kommer att ställa samma fråga.
En hastighet är bara giltig inom ett diskontinuitetsfönster
Beräkna en hastighet som ökningen i byteräknaren delad med de förflutna sekunderna, och multiplicera med åtta för bitar per sekund. Behandla intervallet som ogiltigt om räknaren sjönk, agenten startade om, raden ändrades eller diskontinuitetsobjektet förflyttades. Det objektet uttrycks mot systemets drifttid, så en omstart av enheten ogiltigförklarar det också. Kasta provet och öppna ett nytt fönster i stället för att rita en spik.
Ta två prover med känt mellanrum och behåll tidsstämplarna från collectorn, inte från terminalhistoriken.
snmpget -v2c -c monitor -Oqv 10.60.4.21 CPW-VC-MIB::cpwVcPerfTotalInHCBytes.7
sleep 60
snmpget -v2c -c monitor -Oqv 10.60.4.21 CPW-VC-MIB::cpwVcPerfTotalInHCBytes.7
snmpget -v2c -c monitor -Oqv 10.60.4.21 CPW-VC-MIB::cpwVcPerfTotalDiscontinuityTime.7Högkapacitetsräknare gör omslag till ett icke-problem på en enda pseudowire, så en minskning betyder nästan alltid en återställning, en utbytt agent eller en annan rad snarare än aritmetisk överströmning. Därför är det tredje kommandot lika viktigt som de två första.
Kontrollera vad den installerade versionen faktiskt stöder
En MIB-definition är en specifikation, inte ett löfte om din image. Tabeller kan saknas, vara delvis implementerade eller finnas men inte fyllas i förrän en funktion aktiveras, och samma plattform kan skilja sig mellan versioner. MIB-definitionen för CISCO-IETF-PW-MIB ger dig objektnamnen; enheten berättar om de svarar.
Fråga båda tabellerna och firmware-strängen i en genomgång och jämför sedan med vad versionsnoten hävdar.
snmpget -v2c -c monitor -Oqv 10.60.4.21 SNMPv2-MIB::sysDescr.0
snmpwalk -v2c -c monitor 10.60.4.21 CPW-VC-MIB::cpwVcTable | wc -l
snmpwalk -v2c -c monitor 10.60.4.21 CPW-VC-MIB::cpwVcPerfTotalTable | wc -lEn tom genomgång och en icke-stödd genomgång är olika fel, så läs felet och inte bara radantalet. Om tillståndstabellen svarar och prestandatabellen inte gör det, har den join du designade i första avsnittet ingenstans att landa, och rättelsen är en collectorändring snarare än en kretsändring.
Sekvensen för en omtvistad krets är kort: bekräfta radidentiteten från indexet, bekräfta riktningsmappningen med en känd överföring, beräkna hastigheten bara inom ett rent diskontinuitetsfönster och bekräfta att båda tabellerna svarar på den versionen. Varje steg tar bort en möjlig förklaring. När alla fyra håller och räknarna fortfarande inte rör sig pekar bevisen bort från pseudowiren. Det är då en paketinsamling på anslutningskretsen gör sig förtjänt.