Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Tipi di errori esterni

Lettura dei log di traccia di END in corso

Abilitazione dei registri di traccia di END

CLI e NED generici

Risoluzione dei problemi relativi agli errori esterni

Problemi specifici comuni:

Problema di traduzione

Problema di ordinazione

Problema di valore non valido

Errori, avvisi e messaggi informativi dal dispositivo:

Risoluzioni

Errore utente

Dispositivo di rete

Ned-settings

Conflitto End-Service

Miglioramenti NED e supporto TAC

Introduzione

Questo documento descrive come analizzare le tracce END di tipo CLI e generico e identificare la causa di errori esterni in Cisco Crosswork NSO.

Prerequisiti

Requisiti

- L'aspetto della risoluzione dei problemi di questo documento si applica a tutte le versioni attualmente supportate di Network Element Driver (NED) e Cisco® Crosswork Network Service Orchestrator (NSO).

- Per risolvere i problemi relativi agli errori esterni di NED, è necessario abilitare i registri di traccia di END e avere accesso a tali registri.

- Per valutare accuratamente gli errori esterni di NED, è consigliabile conoscere il dispositivo di rete gestito da NSO e la relativa API.

Componenti usati

- Crosswork NSO 6.4.3

- NED cisco-iosxr-7.64.1

Tipi di errori esterni

Gli errori terminali esterni sono il segno di un'interruzione della comunicazione tra il terminale e il dispositivo. Si presentano in tre grandi categorie:

- Il terminale riceve una risposta dal dispositivo di rete imprevisto.

- L'estremità riceve una risposta dal dispositivo di rete che viola il modello di estremità.

- L'END non riceve una risposta entro il tempo assegnato.

La categoria delle risposte impreviste è di gran lunga la categoria più comune sono gli errori esterni che si possono verificare alla FINE. Include la restituzione da parte del dispositivo di un messaggio di errore, di un messaggio informativo o di qualsiasi altro tipo di informazioni che non corrispondono a quanto previsto dall'NSO. Gli NED sono progettati per gestire messaggi informativi o avvertenze che possono essere ignorati senza problemi. Molti terminali dispongono di impostazioni finali per personalizzare i messaggi da ignorare o quelli da considerare come errori esterni.

È possibile visualizzare un errore esterno generato dall'estremità quando quest'ultima riceve informazioni che non corrispondono al modello yang durante un'operazione sync-from ocompare-config. Un esempio tipico è un modello yang che accetta un valore da 0 a 8 per una data foglia, ma nella versione più recente di questo sistema operativo, l'intervallo è stato aumentato a 0 a 16. Il modello END non accetta un valore di 16 in quanto si trova al di fuori dell'intervallo modellato. In alternativa, l'errore può essere generato quando una foglia è contrassegnata come obbligatoria nel modello yang ma non fornita dal dispositivo o quando il dispositivo fornisce una stringa quando NSO prevede un numero intero.

Per i dispositivi CLI e i dispositivi terminali generici, non viene generato alcun errore esterno se il dispositivo terminale riceve una configurazione non modellata nel modello NED yang. Viene invece registrato come file skipped line di traccia.

Infine, quando un END non riceve la risposta prevista dal dispositivo entro il tempo assegnato, viene generato un errore esterno. Questo problema può verificarsi perché il dispositivo non risponde e non ha inviato una risposta, ma può anche verificarsi quando la risposta dal dispositivo non è stata riconosciuta dall'END.

Lettura dei log di traccia di END in corso

I registri di traccia sono i migliori registri disponibili per la risoluzione degli errori esterni.

Abilitazione dei registri di traccia di END

I registri di traccia NED vengono abilitati dalla CLI NSO.

ncs_cli -C -u admin

admin@ncs# configure

admin@ncs(config)# devices device dev-1 ned-settings [ned-id] logging level debug

admin@ncs(config)# devices device dev-1 trace raw

admin@ncs(config)# commit

admin@ncs(config)# devices device dev-1 disconnect

admin@ncs(config)# devices clear-trace

admin@ncs(config)# devices device dev-1 compare-config

Per [ned-id] , utilizzare l'id-fine per il dispositivo di destinazione con il comando.

Attenzione: Il comando clear-trace cancella i dati di tutti i registri di traccia di END presenti nella directory dei registri. Se si desidera conservare i registri di traccia per questo o altri dispositivi, archiviarli prima di eseguire questo comando. Nelle versioni NSO correnti è possibile eseguire clear-trace per un singolo dispositivo.

Nota: Se non si trova "end-settings [end-id] logging level debug", è possibile saltare questo comando.

Con questi comandi vengono cancellati tutti i dati precedenti dal file di traccia e vengono preparati con la configurazione corrente nel dispositivo. A questo punto si riproduce il problema rilevato utilizzando ncs_cli o il servizio NSO. Se l'errore si è verificato durante un'operazione di commit, è necessario acquisire gli output CLI per commit dry-run e commit dry-run outformat native per riferimento futuro.

Nel file LEGGIMI DI END è disponibile un capitolo intitolato "Come segnalare i problemi e le richieste di funzionalità di NED" per istruzioni più dettagliate.

CLI e NED generici

Le tracce NED per la CLI e gli END generici vengono suddivise in fasi distinte che sono utili per la risoluzione dei problemi. Le fasi più importanti da comprendere ai fini della risoluzione degli errori esterni sono le fasi SHOW e PREPARE.

La fase SHOW viene richiamata quando NSO legge le informazioni dal dispositivo di rete. Fa parte di sync-from e di compare-config operazioni. Durante questo passaggio, l'NSO chiede al dispositivo di eseguire un comando quale, show running-config ad esempio, prima di leggere e analizzare la risposta dal dispositivo. I messaggi in uscita, inviati dall'NSO al dispositivo, vengono indirizzati *** output mentre i messaggi in arrivo, inviati dal dispositivo all'NSO, iniziano con *** input.

Nota: Gli errori esterni durante un'operazione SHOW includono valori non accettati nel modello yang corrente e problemi di timeout.

La fase PREPARE viene richiamata come parte delle commit operazioni. Durante questa fase NSO invia istruzioni al dispositivo. All'inizio di una fase PREPARE, END stampa un elenco delle modifiche che NSO intende apportare al file di traccia. Dopo questo riepilogo iniziale, NSO invia le istruzioni al dispositivo. Per alcuni dispositivi, NSO invia i comandi in blocco, mentre per altri dispositivi questi comandi vengono inviati uno alla volta. Questo comportamento può essere modificato utilizzando le impostazioni finali rilevanti per gli END che lo supportano. Ad esempio, cisco-iosxr-cli NED ha l'impostazione NED "write number-of-lines-to-send-in-chunk <1-1000> (default 100)"

Per gli NSO CLI, è comune vedere i comandi inviati da NSO come output restituito come input. Ciò è dovuto al fatto che il comando viene visualizzato nell'interfaccia utente basata su testo del dispositivo e NSO considera come input tutto il testo visualizzato nell'interfaccia utente. Un esempio in cui NSO invia comandi uno alla volta può avere il seguente aspetto:

*** output 1-Jan-2024::09:56:00.928 user: admin/425 thandle 7428 hostname NSO1 device test-device ***

interface GigabitEthernet 0/0/0/2.34280485 l2transport

*** input 1-Jan-2024::09:56:00.929 user: admin/425 thandle 7428 hostname NSO1 device test-device ***

interface GigabitEthernet 0/0/0/2.34280485 l2transport

Nota: Gli errori esterni durante un'operazione PREPARE includono tutti i messaggi restituiti dal dispositivo che non soddisfano le aspettative dell'NSO, ad esempio errori, avvisi o messaggi informativi.

Risoluzione dei problemi relativi agli errori esterni

Quando si risolvono gli errori esterni per CLI e dispositivi terminali generici: abilitare la traccia, riprodurre il problema ed esaminare la fase SHOW o PREPARE più recente, a seconda delle operazioni che hanno attivato l'errore.

In caso di problemi in cui NSO si lamenta di un valore specifico fornito dal dispositivo:

- Di quale parte della configurazione si è lamentata NSO?

- La configurazione condivisa dal dispositivo è corretta per questo modello e questa versione del dispositivo?

- Siete a conoscenza di altri modelli o versioni di dispositivi che utilizzano questo NED che hanno requisiti di input più restrittivi?

Per un problema in cui NSO genera un errore esterno che comporta un timeout:

- Qual è l'ultimo comando inviato dall'NSO prima del timeout?

- Cosa attende l'NSO prima di procedere?

Può essere difficile determinare cosa attende l'NSO. Alcuni END con un livello di dettaglio maggiore stampano l'espressione regex che stanno cercando. In alcuni casi, il messaggio cercato da NSO non viene visualizzato nel file di traccia, ma NSO non lo riconosce e continua ad attendere.

Per un problema in cui NSO genera un errore esterno a causa di una risposta imprevista:

- Qual è la risposta specifica del dispositivo?

- Quale comando inviato dall'NSO ha attivato la risposta?

- La risposta è prevista in base a quanto inviato dall'NSO?

- È possibile ignorare la risposta del dispositivo oppure interrompere il commit?

- NSO ha inviato i comandi corretti nell'ordine corretto?

Problemi specifici comuni:

Problema di traduzione

Un problema di traduzione si verifica quando NSO ha l'intenzione corretta ma i comandi inviati al dispositivo non sono del tutto corretti. Questo può accadere quando una versione o un modello di dispositivo diverso che utilizza lo stesso NED ha una sintassi leggermente diversa. Se si utilizza una versione meno recente di un'estremità, verificare se lo stesso comportamento esiste ancora nell'ultima versione dell'estremità. Verificare inoltre se sono disponibili impostazioni finali nel file README-end-settings.md incluso in NED per verificare se sono disponibili impostazioni che consentono di personalizzare questo comportamento. Se il problema persiste e le impostazioni finali non consentono di risolverlo, aprire una richiesta con TAC. Fornire:

- Versione NSO

- Utilizzando l'ultimo NED, una traccia END acquisisce un'compare-configoperazione seguita da un'commitoperazione che invia il comando errato.

- Comando attualmente inviato dal terminale

- il comando corretto, preferibilmente mostrato come esempio sulla CLI del dispositivo reale

- Versione e modello del dispositivo che ha il problema

- Qualsiasi altra versione e modello di dispositivi nella rete che utilizzano questo END in cui il comportamento attuale di END è corretto.

Problema di ordinazione

Un problema di ordinamento si verifica quando l'END invia i comandi corretti nell'ordine errato. Per alcuni dispositivi e payload di configurazione specifici, l'ordine è importante. Se si utilizza una versione meno recente di un'estremità, verificare se lo stesso comportamento esiste ancora nell'ultima versione dell'estremità. Verificare inoltre se sono disponibili impostazioni finali nel file README-end-settings.md incluso in NED per verificare se sono disponibili impostazioni che consentono di personalizzare questo comportamento. Se il problema persiste e le impostazioni finali non consentono di risolverlo, aprire una richiesta con TAC. Fornire:

- Versione NSO

- Utilizzo della versione più recente di END e senza utilizzare un servizio: Una traccia END che acquisisce un'compare-configoperazione seguita da un'commitoperazione che invia l'ordine errato.

- Output di per commit dry-run outformat native  il commit non riuscito. In questo modo viene mostrato l'ordine in cui il terminale sta inviando i comandi.

- L'ordine corretto, preferibilmente mostrato come esempio sulla CLI del dispositivo reale

- Qualsiasi altro prerequisito rilevante per questo requisito di ordinazione

Nota: In rari casi, Cisco non è in grado di soddisfare una richiesta di ordini tramite il terminale, nel qual caso è possibile implementare un flusso di lavoro con più commit o generare un report dei bug con il fornitore interessato.

Problema di valore non valido

Un problema di valore non valido si verifica quando NSO consente l'impostazione di un intervallo di valori diverso da quello accettato dal dispositivo o impedisce a NSO di consentire l'intero intervallo consentito dal dispositivo. Ad esempio, NSO consente di definire un valore compreso tra 0 e 15, ma il dispositivo accetta solo i valori compresi tra 0 e 8. Ciò può verificarsi quando l'END è modellato in base a un modello e a una versione specifici ma altri dispositivi hanno aspettative diverse. Se si utilizza una versione meno recente di un'estremità, verificare se lo stesso comportamento esiste ancora nell'ultima versione dell'estremità. Verificare inoltre se sono disponibili impostazioni finali nel file README-end-settings.md incluso in NED per verificare se sono disponibili impostazioni che consentono di personalizzare questo comportamento. Se il problema persiste e le impostazioni finali non consentono di risolverlo, aprire una richiesta con TAC. Fornire:

- Versione NSO

- Per NSO che consente dati non accettati dal dispositivo, utilizzando l'ultimo NED: Traccia END che acquisisce un'compare-configoperazione seguita da un valore di commit invio rifiutato dal dispositivo.

- Per NSO che ha un'interpretazione dei dati più rigorosa di quella consentita dal dispositivo, utilizzando l'ultimo NED: Una traccia END che acquisisce un'sync-fromoperazione dopo la configurazione dei dati nel dispositivo che non è attualmente accettata da NSO.

- Intervallo di valori corretto

- Versione e modello del dispositivo che ha il problema

- Qualsiasi altra versione e modello di dispositivi nella rete che utilizzano questo END in cui il comportamento attuale di END è corretto.

Errori, avvisi e messaggi informativi dal dispositivo:

Quando un dispositivo risponde ai comandi NSO con un messaggio di errore o di altro tipo, è possibile che si verifichi un errore esterno in NSO. Gli NSO NED dispongono di un elenco interno di espressioni regex che possono essere ignorate senza problemi, nonché di espressioni che attivano un errore. Diversi terminali dispongono di impostazioni finali che consentono di personalizzare questi elenchi senza la necessità di un miglioramento di terminale. Ad esempio: OSPF (Open Shortest Path First) cisco-iosxr-cli NED ned-setting write config-warning.

Se l'ultimo NED non dispone di questa opzione, aprire una richiesta con TAC. Fornire:

- Versione NSO

- Una traccia END che acquisisce un'compare-configoperazione seguita dall'operazione che genera l'errore

- Richiesta di modifica degli elenchi interni e/o richiesta di aggiunta del supporto per un'opzione di impostazione di fine per personalizzare l'elenco

- Il messaggio specifico inviato dal dispositivo che causa il problema

Risoluzioni

Errore utente

Se i comandi inviati da NSO non sono corretti, verificare che l'input a NSO e i pacchetti di servizi abbiano generato le modifiche corrette. Verificare se l'output di commit dry-run corrisponde alle modifiche che si desidera apportare e se l'output di commit dry-run outformat native mostra i comandi e l'ordine corretti per richiamare tali modifiche. Se l'esecuzione a secco prevede modifiche impreviste, è necessario verificare i dati immessi nell'NSO o il codice di servizio. Se il funzionamento a secco è corretto ma i comandi inviati a NSO non sono corretti, controllare le risoluzioni dei problemi di conversione e di ordinazione.

Dispositivo di rete

In alcuni casi, un errore esterno è il risultato della configurazione, delle impostazioni o anche di un bug sul dispositivo di rete stesso, ad esempio un utente che non dispone dell'autorizzazione corretta o un dispositivo che limita alcune operazioni. Valutare se la configurazione o le impostazioni del dispositivo possono essere modificate per consentire a NSO di funzionare meglio con il dispositivo.

Ned-settings

Ogni terminale dispone di una serie di impostazioni finali che consentono di personalizzare il modo in cui NSO interagisce con il dispositivo. Le impostazioni dei nodi sono documentate nel file README-end-settings.md all'interno di NED e tendono a differire da NED a NED. cisco-iosxr-cli NED dispone di opzioni per modificare il modo in cui NSO calcola un checksum per il dispositivo, il numero di comandi inviati in blocco, personalizzare i comandi aggiuntivi da inserire in base a trigger specifici o se l'NED deve raccogliere i dati di configurazione utilizzando "show running-config"  o scrivendo la configurazione in un file sul dispositivo e trasferendo il file utilizzando sftp, che può essere utile per configurazioni di grandi dimensioni.

Conflitto End-Service

Un conflitto di tipo END-Service si verifica quando è presente un comportamento problematico quando la configurazione viene modificata o eliminata utilizzando un service-package, ma non viene visualizzato quando le stesse modifiche alla configurazione vengono apportate senza utilizzare un service-package. Questo tipo di comportamento può apparire come configurazione imprevista aggiunta o rimossa, causando errori esterni dal dispositivo. In genere questo è il risultato della proprietà del servizio su parti della configurazione. Le modifiche alla configurazione del CDB NSO risultanti da un pacchetto di servizio possono ignorare la logica NED che normalmente protegge da modifiche non corrette. Se si sospetta che si sia verificato questo problema, eseguire la verifica tentando le stesse modifiche alla configurazione senza utilizzare un pacchetto del servizio.

Fare riferimento all'articolo Informazioni sulla proprietà dei servizi NSO per ulteriori informazioni sulla proprietà dei servizi e sulle possibili soluzioni.

Miglioramenti NED e supporto TAC

Se non sono disponibili altre opzioni, è possibile aprire una richiesta con Cisco TAC e richiedere l'aggiornamento della richiesta NED in base alle proprie esigenze.

Le terminazioni NSO fornite da Cisco sono basate su aggiornamenti basati sui casi di utilizzo dell'utente. Cisco non tenta di coprire in modo proattivo tutti i possibili modelli e versioni di dispositivi, ma il terminale viene costantemente aggiornato per soddisfare le esigenze di una rete in evoluzione e di nuovi scenari di utilizzo. Qui è possibile trovare un riepilogo dell'ambito del supporto NED fornito dagli sviluppatori Crosswork NSO

Nota: Nonostante Cisco si adoperi al meglio per mantenere un ambiente di test interno di grandi dimensioni, non è in grado di gestire ogni modello e versione per un'ampia gamma di fornitori. Per questo motivo possiamo richiedere il tuo aiuto per fornire l'accesso a un dispositivo che rappresenti il comportamento in questione.

Quando si apre una richiesta in Cisco TAC per un'unità terminale fornita da Cisco, fornire:

- Versione NSO

- Traccia END impostata per il debug a livello di registrazione

- La traccia END deve acquisire un' compare-config o un'sync-fromoperazione

- La traccia END deve acquisire il problema specifico per il quale si desidera ottenere assistenza

- Qualsiasi informazione su altri dispositivi o su terminali che mostri un problema

- Qualsiasi informazione su dispositivi simili sullo stesso TERMINALE che non mostri un problema

Nota: I dispositivi terminali Netconf creati utilizzando lo strumento NSO NED Builder non sono supportati da Cisco al di fuori di qualsiasi problema con lo strumento stesso.

Suggerimento: Per gli END forniti dagli sviluppatori Crosswork NSO, utilizzare la tecnologia: NMS (Network Management Services and Sub-Technology: servizi e sottotecnologia di gestione della rete: Network Service Orchestrator (NSO) - END