La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive come leggere e comprendere correttamente le varie fasi della traccia NSO NED.
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.
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.
I dati in un file di traccia NED possono essere visualizzati in 3 diverse categorie.
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
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.
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
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
>> 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.
>> CLI CONNECT
<< CONNECTED
>> GET_TRANS_ID
<< TRANS_ID
>> 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
.
>> 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.
>> CLI CONNECT
<< CONNECTED
>> INITIALIZE
<< INITIALIZED
>> PREPARE
<< PREPARE OK
>> COMMIT
<< COMMIT OK
>> PERSIST
<< PERSIST OK
>> GET_TRANS_ID
<< TRANS_ID
Queste operazioni non attivano la logica END e non generano alcun log nel file di traccia END.
Questa operazione non invia dati ai dispositivi di rete, ma attiva la logica END.
>> CLI CONNECT
<< CONNECTED
>> PREPARE DRY
<< PREPARE DRY
>> 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.
>> 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.
>> CLI CONNECT
<< CONNECTED
>> COMMAND
<< COMMAND
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.
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
Durante la fase CLOSE, il terminale chiude la sessione SSH al dispositivo terminale.
La fase SET_TIMEOUT indica un aggiornamento di vari timeout gestiti da NSO e da END.
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
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
24-Mar-2025
|
Versione iniziale |