Un pseudowire che segnala di essere attivo ti dice che il servizio esiste e che entrambe le direzioni concordano che dovrebbe trasportare traffico. Non ti dice che una sola trama cliente lo abbia mai attraversato. Gli oggetti di stato e gli oggetti contatore sono stati scritti per scopi diversi, ed è proprio nel prendere l’uno come prova dell’altro che sbaglia la maggior parte di questi dashboard. Confrontarli è il lavoro, perché fidarsi di uno solo dei due risponde a una domanda che nessuno ha posto.

Stato e contatori rispondono a domande diverse

La voce VC principale porta uno stato operativo combinato, e tale stato è attivo solo quando lo sono entrambi gli stati direzionali. Tutto ciò che sta dietro è conoscenza del piano di controllo e della configurazione: il circuito di attacco locale, il peer, la segnalazione. Una riga in questo stato è un’affermazione su intenzione e prontezza, non sulle trame inoltrate.

Il traffico vive in una tabella separata di contatori ad alta capacità per pacchetti e byte, e quelle righe portano lo stesso indice VC. La crescita lì è prova che le trame sono passate per quella riga precisa durante l’intervallo che hai misurato. Un contatore invariato è ambiguo da solo. Un servizio inattivo, un collector che legge la riga sbagliata e un percorso silenziosamente rotto producono tutti la stessa linea piatta.

QuestionObjectWhat it can establish
Is the service up?cpwVcOperStatusBoth direction states agree the VC should carry traffic.
Which side is down?cpwVcInboundOperStatus, cpwVcOutboundOperStatusDirection of the reported fault.
Did frames move?cpwVcPerfTotalTable HC countersObserved forwarding on that row between two polls.
Is the interval clean?cpwVcPerfTotalDiscontinuityTimeWhether the counter was reset inside the window.

Leggi la tabella come due colonne di prove, non come una scala di gravità. Attivo con contatori piatti non è una versione peggiore di attivo con crescita, è un’osservazione diversa con un passo successivo diverso.

Unisci sull’indice VC, non sul numero nel ticket

La tabella VC è indicizzata da un solo intero, e l’ID VC, l’indirizzo del peer, il tipo e il nome del servizio sono attributi di quella riga. Con quegli attributi trovi il tuo servizio; l’indice è ciò con cui continui a trovarlo dopo la prima interrogazione. Un indice di interfaccia, un nome di circuito mostrato o un’etichetta MPLS non sono quell’indice anche quando i numeri coincidono.

Deriva gli OID numerici dal file MIB presente sul collector, non da un post di blog, poi percorri la tabella una volta e salva l’identità trovata.

snmptranslate -On CPW-VC-MIB::cpwVcIndex
snmptranslate -On CPW-VC-MIB::cpwVcPerfTotalDiscontinuityTime
snmpwalk -v2c -c monitor 10.60.4.21 -On CPW-VC-MIB::cpwVcTable

Registra insieme l’indirizzo di gestione e l’indice nel sistema di monitoraggio. Un nuovo provisioning può spostare un servizio su un’altra riga, e un collector che si è agganciato per nome all’ID VC continuerà allora a tracciare un indice obsoleto che risponde ancora con cortesia.

La direzione significa il pseudowire, non l’abbonato

I contatori in ingresso descrivono ciò che il VC ha ricevuto dalla rete a commutazione di pacchetto; i contatori in uscita descrivono ciò che ha inoltrato verso quella rete. Su un PE rivolto al cliente, questo spesso corrisponde a download e upload in un certo ordine. Su un PE di hub, o su un PE che ha un peer nel core, gli stessi nomi di oggetto descrivono l’esperienza cliente opposta.

Scrivi la mappatura una volta per ruolo di dispositivo e tienila nell’etichetta del dashboard. Un grafico intitolato upload del cliente che in realtà traccia traffico verso il core supererà la revisione e ingannerà silenziosamente tutti quelli che lo usano per decisioni di capacità. Lo stesso rischio vale per gli avvisi costruiti su quei grafici, perché chiameranno il team sbagliato. Etichetta ogni grafico con la direzione del movimento rispetto al pseudowire, e lascia che la mappatura del cliente viva nel pannello che ne ha bisogno.

Un test batte qualsiasi quantità di lettura delle descrizioni degli oggetti: fai passare un file noto attraverso il servizio, interroga subito dopo entrambe le direzioni e guarda quale contatore si è mosso. Registra il risultato accanto al ruolo del dispositivo, perché la persona successiva farà la stessa domanda.

Una velocità è valida solo all’interno di una finestra di discontinuità

Calcola una velocità come l’incremento del contatore di byte diviso per i secondi trascorsi, e moltiplica per otto per ottenere bit al secondo. Tratta l’intervallo come non valido se il contatore è diminuito, l’agente si è riavviato, la riga è cambiata o l’oggetto di discontinuità si è spostato. Quell’oggetto è espresso rispetto al tempo di attività del sistema, quindi anche un riavvio del dispositivo lo invalida. Scarta il campione e apri una nuova finestra invece di disegnare un picco.

Prendi due campioni con un intervallo noto e conserva i timestamp dal collector, non dalla cronologia del tuo terminale.

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.7

I contatori ad alta capacità rendono il riavvolgimento un non problema su un singolo pseudowire, quindi una diminuzione quasi sempre significa un reset, un agente sostituito o una riga diversa, non un overflow aritmetico. Ecco perché il terzo comando conta quanto i primi due.

Verifica cosa supporta davvero la release installata

Una definizione MIB è una specifica, non una promessa sulla tua immagine. Le tabelle possono mancare, essere implementate in parte o essere presenti ma non popolate finché non si abilita una funzione, e la stessa piattaforma può differire tra release. La definizione CISCO-IETF-PW-MIB ti dà i nomi degli oggetti; il dispositivo ti dice se rispondono.

Interroga entrambe le tabelle e la stringa di firmware in un solo passaggio, poi confronta con quanto afferma la nota di rilascio.

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 -l

Una scansione vuota e una scansione non supportata sono guasti diversi, quindi leggi l’errore e non solo il conteggio delle righe. Se la tabella di stato risponde e quella delle prestazioni no, il join progettato nella prima sezione non ha dove atterrare, e la correzione è un cambio di collector, non di circuito.

La sequenza per un circuito contestato è breve: conferma l’identità della riga dall’indice, conferma la mappatura di direzione con un trasferimento noto, calcola la velocità solo dentro una finestra di discontinuità pulita e conferma che entrambe le tabelle rispondono su quella release. Ogni passo elimina una spiegazione candidata. Quando tutte e quattro valgono e i contatori ancora non si muovono, le prove si allontanano dal pseudowire. È lì che una cattura di pacchetti sul circuito di attacco si guadagna il suo posto.

Articoli correlati