Sommario

Introduzione

Introduzione

Prerequisiti

Componenti usati

Esclusione di responsabilità

Tipi di dati

Comunicazione tra il sistema di sicurezza di rete principale e il sistema di sicurezza terminale

Comunicazione tra il terminale e un dispositivo in direzione sud

Registrazione interna da parte dell'NED

Sequenze per operazione

Connetti

Check-Sync

Sync-From

Configurazione-confronto

Commit

Esecuzione a secco e nessuna connessione di rete

Commit nativo outformat Dry-Run

Commit senza sovrascrittura

Commit con errore

Live-Status

Fasi

CLI CONNECT, GENERIC CONNECT e RECONNECT

GET_TRANS_ID

MOSTRA

TRANS_ID PROVVISORIO

INIZIALIZZARE

PREPARARE

COMMIT

PERSISTERE

PREPARA ASCIUTTO

MOSTRA_PARZIALE

INTERROMPI

RIPRISTINA

COMANDO

IS_ALIVE

CHIUDI

IMPOSTA_TIMEOUT

Altre informazioni nella traccia

Modifiche

Introduzione

Questo documento descrive come leggere e comprendere correttamente le varie fasi della traccia NSO NED.

Introduzione

Cisco® Crosswork Network Service Orchestrator (NSO) può generare tracce dettagliate della comunicazione tra NSO e i dispositivi gestiti dai Network Element Drivers (NED) dell'NSO. Per gli END basati su Java, questi file di traccia includono la struttura basata su un framework condiviso. Questo documento consente di comprendere questa struttura condivisa e i dettagli in questi registri.

Prerequisiti

Componenti usati

- NSO 6.4

- NED cisco-iosxr-cli

- NED cisco-ios-cli

- NED cisco-nx-cli

- NED zte-zxros-cli

- NED alu-sr-cli

- NED juniper-junos_nc-gen

Esclusione di responsabilità

in questo documento si presume che si stia utilizzando un'estremità Java sviluppata da Cisco. tra cui CLI, Generic e 3PY NED. Le fasi e il framework spiegati in questo documento si applicano agli NED Netconf, ma i log di traccia generati per gli END Netconf non li etichettano come mostrato in questo documento.

Anche se le fasi descritte in questo documento sono condivise tra tutti gli END Java, le operazioni specifiche eseguite come parte di quella fase differiscono per ciascun END a causa delle esigenze dei singoli dispositivi.

Tipi di dati

I dati in un file di traccia NED possono essere visualizzati in 3 diverse categorie.

Comunicazione tra il sistema di sicurezza di rete principale e il sistema di sicurezza terminale

L'NSO istruisce l'END di avviare fasi specifiche. Ogni operazione in NSO produce le stesse sequenze di fasi, ma ogni END esegue istruzioni univoche verso un dispositivo di rete. Il file di traccia END non registra l'esatto flusso di dati tra l'NSO e l'END, ma registra l'istruzione per l'avvio di una fase e la risposta END che indica il completamento di una fase. Le righe che iniziano con >> indicano le istruzioni per l'avvio di una fase. Le righe che iniziano con << indicano la fine che informa l'NSO del completamento della fase.

>> 20-Mar-2025::23:23:17.277 user: admin/56 thandle 86091 hostname ncs device xr-netsim0 trace-id=1ee09d76-4415-4bb8-bd39-05f99072bd54 CLI CONNECT to xr-netsim0-127.0.0.1:10025 as admin (Trace=raw)<< CONNECTED

<< 20-Mar-2025::23:23:17.623 user: admin/56 thandle 86091 hostname ncs device xr-netsim0 trace-id=1ee09d76-4415-4bb8-bd39-05f99072bd54 CONNECTED 0

>> 20-Mar-2025::23:24:41.703 user: admin/56 thandle 86213 hostname ncs device xr-netsim0 trace-id=1ee09d76-4415-4bb8-bd39-05f99072bd54 SHOW 0:

<< 20-Mar-2025::23:24:41.879 user: admin/56 thandle 86213 hostname ncs device xr-netsim0 trace-id=1ee09d76-4415-4bb8-bd39-05f99072bd54 SHOW

Comunicazione tra il terminale e un dispositivo in direzione sud

All'interno di ciascuna fase, l'END esegue comandi verso il dispositivo di rete per raggiungere gli obiettivi di ciascuna fase. La comunicazione tra l'ESTREMITÀ e il dispositivo è contrassegnata come *** output, la comunicazione che l'ESTREMITÀ riceve dal dispositivo è contrassegnata come *** input.

*** output 20-Mar-2025::13:08:31.955 user: admin/316551 thandle 18978916 hostname ncs device xr-netsim0 trace-id=- ***

show running-config

*** input 20-Mar-2025::13:08:31.987 user: admin/316551 thandle 18978916 hostname ncs device xr-netsim0 trace-id=- ***

show running-config

Thu Jan 5 13:08:37.274 BRT

Building configuration...

!! IOS XR Configuration 7.2.1

...

Negli NSO della CLI, l'input è costituito da tutte le informazioni visualizzate sulla CLI del dispositivo, inclusi i comandi inviati da NSO.

Registrazione interna da parte dell'NED

L'END registra una certa quantità di informazioni che non vengono inoltrate né al dispositivo né all'NSO. Sono incluse le impostazioni finali, l'elaborazione dei dati e le modifiche previste nel database NSO (CDB).

Questo tipo di informazioni spesso inizia con--ma non è applicabile a tutte le informazioni di questo tipo.

*** output 20-Mar-2025::13:08:31.955 user: admin/316551 thandle 18978916 hostname ncs device xr-netsim0 trace-id=- ***

-- BEGIN SHOW

-- [20-Mar-2025::13:08:31.956] progress: show: reading config...

-- Reading running config...

show running-config

Sequenze per operazione

In questa sezione viene esaminato un elenco di operazioni comuni e viene documentata la sequenza prevista di fasi avviate da NSO per ogni operazione. Per ulteriori informazioni su ciascuna fase, consultare la sezione Fasi di questo documento.

Nota: Le fasi IS_ALIVE, SET_TIMEOUT e CLOSE vengono omesse da ciascuna sequenza in quanto hanno un valore di risoluzione dei problemi ridotto

Connetti

>> CLI CONNECT

<< CONNECTED

O

>> GENERIC CONNECT

<< CONNECTED

Anche se dal punto di vista funzionale, le fasi CLI e GENERIC CONNECT sono quasi identiche, le fasi CLI e GENERIC usano fasi CONNECT diverse.

Check-Sync

>> CLI CONNECT

<< CONNECTED

>> GET_TRANS_ID

<< TRANS_ID

Sync-From

>> CLI CONNECT

<< CONNECTED

>> SHOW

<< SHOW

>> GET_TRANS_ID

<< TRANS_ID

O

>> CLI CONNECT

<< CONNECTED

>> SHOW

<< SHOW

<< PROVISIONAL TRANS_ID

Alcuni terminali sono stati ottimizzati per l'utilizzo PROVISIONAL TRANS_ID al posto di GET_TRANS_ID.

Configurazione-confronto

>> CLI CONNECT

<< CONNECTED

>> SHOW

<< SHOW

L'operazione compare-config è molto simile a sync-from, ma non aggiorna il CDB. Quando compare-config rileva una differenza di configurazione, non richiama GET_TRANS_ID per aggiornare il checksum. Quando non vi sono differenze di configurazione, viene richiamato GET_TRANS_ID e viene aggiornato il checksum.

Commit

>> CLI CONNECT

<< CONNECTED

>> INITIALIZE

<< INITIALIZED

>> PREPARE

<< PREPARE OK

>> COMMIT

<< COMMIT OK

>> PERSIST

<< PERSIST OK

>> GET_TRANS_ID

<< TRANS_ID

Esecuzione a secco e nessuna connessione di rete

Queste operazioni non attivano la logica END e non generano alcun log nel file di traccia END.

Commit nativo outformat Dry-Run

Questa operazione non invia dati ai dispositivi di rete, ma attiva la logica END.

>> CLI CONNECT

<< CONNECTED

>> PREPARE DRY

<< PREPARE DRY

Commit senza sovrascrittura

>> CLI CONNECT

<< CONNECTED

>> INITIALIZE

<< INITIALIZED

>> SHOW_PARTIAL

<< SHOW

>> PREPARE

<< PREPARE OK

>> COMMIT

<< COMMIT OK

>> PERSIST

<< PERSIST OK

>> GET_TRANS_ID

<< TRANS_ID

Questa sequenza è fuorviante. Afferma di includere la fase INITIALIZE, ma il NED non attiverà alcun comando durante questa fase e di fatto la ignora. Infatti, il flag no-overwrite non controlla il checksum ma la configurazione utilizzando al suo posto SHOW_PARTIAL.

Commit con errore

>> CLI CONNECT

<< CONNECTED

>> INITIALIZE

<< INITIALIZED

>> PREPARE

>> CLOSE

<< CLOSED

>> CLI CONNECT

<< CONNECTED

>> SHOW_PARTIAL

<< SHOW

>> ABORT

<< ABORT OK

>> GET_TRANS_ID

<< TRANS_ID

Quando si verifica un errore durante un commit, NSO interrompe la connessione, si riconnette e tenta di ripristinare il sistema. A tale scopo, NSO controlla la configurazione del dispositivo utilizzando SHOW_PARTIAL e invia una sequenza di comandi per ripristinare la configurazione corrente prima dell'inizio del commit durante la fase ABORT. I dispositivi con la configurazione candidata dispongono di metodi alternativi per il ripristino che possono essere utilizzati dall'NSO, a seconda del momento in cui si è verificato l'errore.

Live-Status

>> CLI CONNECT

<< CONNECTED

>> COMMAND

<< COMMAND

Fasi

Tutte le estremità basate su Java utilizzano le stesse fasi, ma ciascuna estremità regola l'esecuzione esatta della fase sul dispositivo specifico che sta gestendo.

CLI CONNECT, GENERIC CONNECT e RECONNECT

Durante la fase CONNECT, l'END stampa le informazioni su se stesso, stabilisce una connessione, disattiva l'impaginazione (per gli NED CLI) e raccoglie le informazioni sui dispositivi. Tra queste sono incluse le versioni NSO e NED, le impostazioni NED, gli algoritmi SSH, il modello e la versione del dispositivo. Non registra lo scambio di password.

In caso di errore di NSO nella connessione a un dispositivo, qualsiasi parte di questa fase può essere responsabile. È possibile che l'NSO sia riuscito a stabilire la sessione SSH ma non sia riuscito a recuperare il modello e la versione del dispositivo.

Gli terminali mantengono una sessione con un dispositivo per diversi secondi dopo il completamento di un'operazione. Se entro tale intervallo di tempo è necessaria un'altra operazione per lo stesso dispositivo, l'END registrerà una fase RECONNECT invece di CLI/GENERIC CONNECT e riutilizzerà le informazioni.

GET_TRANS_ID

La fase GET_TRANS_ID raccoglie informazioni per calcolare un checksum. Questo checksum può essere verificato per determinare se un dispositivo non è sincronizzato durante un'operazione di commit o di check-sync oppure può essere archiviato per un controllo futuro. Cisco seleziona l'opzione più leggera disponibile per ciascun dispositivo. Il terminale cisco-ios-cli raccoglie la configurazione completa del dispositivo per generare un checksum. Il componente NED di cisco-iosxr utilizza l'elenco commit e verifica se l'ID commit è stato modificato dopo l'ultima sincronizzazione.

Gli END stampano il checksum calcolato al termine della fase GET_TRANS_ID.

>> 15-Mar-2025::10:29:41.410 user: admin/205 thandle 1559 hostname ncs device alu0 GET_TRANS_ID

*** output 15-Mar-2025::10:29:41.411 user: admin/205 thandle 1559  hostname ncs device alu0 ***

-- get config method: cli dump

admin display-config

*** input 15-Mar-2025::10:29:41.415 user: admin/205 thandle 1559  hostname ncs device alu0 ***

admin display-config

...

<< 15-Mar-2025::10:29:42.045 user: admin/205 thandle 1559  hostname ncs device alu0 TRANS_ID 8f42fe893c448f47c155710bb909800b

GET_TRANS_ID viene richiamato durante la sincronizzazione di controllo, alla fine di sync-from, alla fine del commit o alla fine di compare-config se non è stata rilevata alcuna differenza. Il checksum non viene aggiornato come parte di GET_TRANS_ID solo durante la sincronizzazione di controllo. All'inizio di un'operazione di commit, NSO verifica anche il checksum ma utilizza INITIALIZE anziché GET_TRANS_ID.

MOSTRA

Durante la fase SHOW, un END raccoglie la configurazione corrente sul dispositivo e la analizza in modo da poterla aggiornare o confrontare con il CDB. Una fase SHOW può consistere in uno o più comandi per raccogliere i dati rilevanti. Alcuni END richiedono più fasi SHOW in una riga per diverse sezioni della configurazione.

<< 15-Mar-2025::14:17:07.190 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c CONNECTED 0

>> 15-Mar-2025::14:17:07.210 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0:

<< 15-Mar-2025::14:17:07.211 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

>> 15-Mar-2025::14:17:07.211 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0:

<< 15-Mar-2025::14:17:07.212 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

>> 15-Mar-2025::14:17:07.212 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0:

<< 15-Mar-2025::14:17:07.212 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

>> 15-Mar-2025::14:17:07.213 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0:

<< 15-Mar-2025::14:17:07.213 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

>> 15-Mar-2025::14:17:07.214 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0: <'vlan-configuration'>

<< 15-Mar-2025::14:17:07.214 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

>> 15-Mar-2025::14:17:07.214 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0: <'switchvlan-configuration'>

<< 15-Mar-2025::14:17:07.215 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

>> 15-Mar-2025::14:17:07.215 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW 0:

<< 15-Mar-2025::14:17:08.672 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c SHOW

<< 15-Mar-2025::14:17:08.672 user: admin/17279 thandle 7896374 hostname ncs device zte0 trace-id=438b8c PROVISIONAL TRANS_ID 8bb56df1e125549b62f96e8007866

Una volta raccolti i dati, l'NED li analizza e li prepara per l'NSO. Negli terminali CLI questo processo è contrassegnato da turbo-parser. Qualsiasi NSO di dati non è in grado di comprendere e di eseguire il mapping al modello yang corrente viene registrato come una linea ignorata.

-- turbo-mode parsing (setvalues) :: performance numbers :

-- --------------------------------------------------------------------------------

--   number of lines parsed           :    469

--   number of lines skipped          :      2

--   time to parse config (ms)        :     20

--   time to transfer xml to nso (ms) :    531

-- --------------------------------------------------------------------------------

--   skipped 2 lines in context '/' :

--    (line 16) : 'platform sslvpn use-pd'

--    (line 74) : 'pae'

-- --------------------------------------------------------------------------------

-- [15-Mar-2025::17:00:07.906] progress: show: populating cdb ok [531 ms]

-- transformed >= sorted 8 'neighbor ' lines for hash checksum

-- show trans_id = 12b6f28a48520ca4b5c6ebdfe3d333ee

-- done show [5055 ms]

<< 15-Mar-2025::17:00:07.912 user: nsoadmin/23219 thandle 3068964 hostname ncs device ios0 SHOW

TRANS_ID PROVVISORIO

PROVISIONAL TRANS_ID è un'ottimizzazione implementata in alcuni END per sostituire GET_TRANS_ID al termine di un'operazione di sincronizzazione da. Senza questa ottimizzazione, gli END necessari per raccogliere la configurazione completa di un dispositivo per calcolare un checksum raccolgono i dati due volte durante la sincronizzazione da. Una volta durante la fase SHOW e una seconda volta durante la fase GET_TRANS_ID. PROVISIONAL TRANS_ID sostituisce GET_TRANS_ID in queste situazioni per riutilizzare i dati dell'operazione SHOW.

Una speciale implementazione di questa ottimizzazione esiste nel software NED cisco-iosxr-cli. Questa opzione END non richiede la configurazione completa, ma la configurazione può essere così grande che l'analisi richiede un tempo sufficiente per il timeout della sessione SSH entro il momento di avvio di GET_TRANS_ID. Per evitare questo inconveniente, l'END raccoglie le informazioni necessarie come parte di SHOW e utilizza al suo posto l'ID TRANS_PROVVISORIO.

INIZIALIZZARE

La fase INITIALIZE è simile a GET_TRANS_ID. Raccoglie gli stessi dati e calcola un checksum, ma viene utilizzato solo all'inizio di un'operazione di commit per verificare se un dispositivo è sincronizzato. Se un dispositivo non è sincronizzato, la fase INITIALIZE è seguita da una fase UNINITIALIZE e viene restituito un errore a NSO. INITIALIZE non aggiorna mai il checksum.

Nota: Commit no-overwrite non dispone di una fase INITIALIZE, ma durante tale fase non viene eseguito alcun comando, poiché la mancata sincronizzazione non è rilevante.

PREPARARE

La fase PREPARE è la fase più importante di un'operazione di commit. Durante la fase PREPARE l'END converte le modifiche previste nel CDB NSO in comandi comprensibili per il dispositivo. e quindi invia tali comandi al dispositivo, inclusi quelli per l'esplorazione dell'interfaccia utente, ad esempio l'accesso alla modalità di configurazione.

Per i dispositivi senza configurazione, l'invio di comandi influisce immediatamente sulla configurazione e sul funzionamento della rete.

COMMIT

Durante la fase COMMIT, l'END applica la configurazione al dispositivo. La fase COMMIT è vuota per i dispositivi senza configurazione candidata, ad esempio i dispositivi gestiti da cisco-ios-cli NED. Se il dispositivo dispone di funzionalità confermate da commit, NSO le utilizza durante questa fase.

>> 8-Mar-2025::14:06:54.238 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a COMMIT 1: (Timeout 30)

*** output 8-Mar-2025::14:06:54.239 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

-- BEGIN COMMIT

-- [08-Mar-2025::14:06:54.239] progress: commit: committing config...

-- Committing (confirmed) [num-commit 0 0a delayed=0]

commit confirmed 30 show-error

*** input 8-Mar-2025::14:06:54.268 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

commit confirmed 30 show-error

Wed Mar 8 14:06:54.354 BRT

RP/0/RP0/CPU0:RNCOBSA0101(config)#

*** output 8-Mar-2025::14:06:58.377 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

commit show-error

*** input 8-Mar-2025::14:06:58.404 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

commit show-error

Wed Mar 8 14:06:58.493 BRT

% Confirming commit for trial session.

RP/0/RP0/CPU0:RNCOBSA0101(config)#

*** output 8-Mar-2025::14:06:58.734 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

end

*** input 8-Mar-2025::14:06:58.763 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

end

RP/0/RP0/CPU0:RNCOBSA0101#

*** output 8-Mar-2025::14:06:58.832 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a ***

-- [08-Mar-2025::14:06:58.832] progress: commit: committing config ok [4593 ms]

-- DONE COMMIT [4594 ms]

<< 8-Mar-2025::14:06:58.832 user: admin/397910 thandle 18935883 hostname ncs device xr0 trace-id=c9c7a91b-dfd2-45bd-bbe4-71a0ddb1039a COMMIT OK

PERSISTERE

Per alcuni dispositivi sono necessarie istruzioni aggiuntive per garantire il mantenimento della configurazione anche al riavvio del dispositivo. Questi comandi vengono inviati durante la fase PERSIST.

PREPARA ASCIUTTO

La fase PREPARE DRY è specifica per le commit dry-run outformat native operazioni. Analogamente alla fase PREPARE, converte l'intento dell'NSO in comandi di dispositivo, ma non li invia al dispositivo.

MOSTRA_PARZIALE

La fase SHOW_PARTIAL può essere richiamata da un'istruzione macro oppure viene utilizzata durante commit no-overwite e rollback during commit error.

Questa fase è simile alla fase SHOW in quanto raccoglie i dati di configurazione dal dispositivo e li analizza. Raccoglie un set di dati più specifico relativo all'operazione di commit corrente anziché alla configurazione completa. Non tutti i dispositivi supportano la raccolta di set di dati più piccoli.

INTERROMPI

La fase ABORT è simile alla fase PREPARE ma è esclusiva per il ripristino del rollback. NSO invia comandi per ripristinare la configurazione dei dispositivi precedente al commit.

RIPRISTINA

La fase REVERT viene utilizzata nelle situazioni in cui un commit ha riscontrato un errore ma l'NSO può semplicemente indicare a un dispositivo di ripristinare una configurazione precedente. In questo caso, le fasi SHOW_PARTIAL e ABORT non sono necessarie.

COMANDO

La fase COMMAND è specifica delle operazioni in stato attivo. Durante la fase COMMAND, NSO trasmette le istruzioni ai dispositivi al di fuori dell'ambito delle tipiche operazioni di commit.

IS_ALIVE

La fase IS_ALIVE è un controllo dello stato che consente di verificare se le sessioni tra l'END, il dispositivo e l'NSO sono ancora integre. Se il valore di IS_ALIVE è false, è probabile che si sia verificato un timeout in una delle sessioni.

CHIUDI

Durante la fase CLOSE, il terminale chiude la sessione SSH al dispositivo terminale.

IMPOSTA_TIMEOUT

La fase SET_TIMEOUT indica un aggiornamento di vari timeout gestiti da NSO e da END.

Altre informazioni nella traccia

Modifiche

Dopo una fase SHOW, l'END stampa un elenco delle modifiche previste da apportare nel CDB NSO.

created    /ios:line/vty[first='5'][last='15']/login

created    /ios:line/vty[first='5'][last='15']/login/local

modified   /ios:interface/Loopback[name='2']

created    /ios:interface/Loopback[name='2']/shutdown

created    /ios:username[name='cisco']

value_set  /ios:username[name='cisco']/privilege 15