NETCONF - NETCONF
Il protocollo di configurazione di rete ( NETCONF ) è un protocollo di gestione della rete sviluppato e standardizzato da IETF . È stato sviluppato nel gruppo di lavoro NETCONF e pubblicato nel dicembre 2006 come RFC 4741 e successivamente rivisto nel giugno 2011 e pubblicato come RFC 6241 . La specifica del protocollo NETCONF è un documento Internet Standards Track.
NETCONF fornisce meccanismi per installare, manipolare ed eliminare la configurazione dei dispositivi di rete. Le sue operazioni sono realizzate su un semplice livello RPC ( Remote Procedure Call ). Il protocollo NETCONF utilizza una codifica dei dati basata su XML ( Extensible Markup Language ) per i dati di configurazione e per i messaggi del protocollo. I messaggi del protocollo vengono scambiati su un protocollo di trasporto sicuro.
Il protocollo NETCONF può essere suddiviso concettualmente in quattro livelli:
- Il livello Contenuto è costituito da dati di configurazione e dati di notifica.
- Il livello Operazioni definisce una serie di operazioni del protocollo di base per recuperare e modificare i dati di configurazione.
- Il livello Messaggi fornisce un meccanismo per la codifica delle chiamate di procedura remota (RPC) e delle notifiche.
- Il livello di trasporto sicuro fornisce un trasporto sicuro e affidabile di messaggi tra un client e un server.
Il protocollo NETCONF è stato implementato in dispositivi di rete come router e switch da alcuni dei principali fornitori di apparecchiature. Un particolare punto di forza di NETCONF è il supporto per una robusta modifica della configurazione utilizzando transazioni che coinvolgono più dispositivi.
Storia
L'IETF ha sviluppato il protocollo SNMP ( Simple Network Management Protocol ) alla fine degli anni '80 e si è rivelato un protocollo di gestione di rete molto popolare . Nella prima parte del 21 ° secolo è diventato evidente che, a dispetto di quanto originariamente previsto, SNMP non veniva utilizzato per configurare le apparecchiature di rete, ma principalmente per il monitoraggio della rete . Nel giugno 2002, l' Internet Architecture Board e membri chiave della comunità di gestione della rete dell'IETF si sono riuniti con gli operatori di rete per discutere la situazione. I risultati di questo incontro sono documentati nella RFC 3535 . Si è scoperto che ogni operatore di rete utilizzava principalmente un'interfaccia a riga di comando (CLI) proprietaria diversa per configurare i propri dispositivi. Questo aveva una serie di caratteristiche che piacevano agli operatori, incluso il fatto che era basato su testo, in contrasto con SNMP con codifica BER . Inoltre, molti fornitori di apparecchiature non hanno fornito la possibilità di configurare completamente i propri dispositivi tramite SNMP. Poiché agli operatori generalmente piaceva scrivere script per aiutare a gestire le proprie caselle, hanno riscontrato che la CLI SNMP mancava in molti modi. In particolare è stata la natura imprevedibile dell'output. Il contenuto e la formattazione dell'output erano soggetti a modifiche in modi imprevedibili.
Nello stesso periodo, Juniper Networks utilizzava un approccio di gestione della rete basato su XML. Questo è stato portato all'IETF e condiviso con la comunità più ampia. Collettivamente, questi due eventi hanno portato l'IETF nel maggio 2003 alla creazione del gruppo di lavoro NETCONF. Questo gruppo di lavoro è stato incaricato di lavorare su un protocollo di configurazione di rete, che si allineerebbe meglio alle esigenze degli operatori di rete e dei fornitori di apparecchiature. La prima versione del protocollo NETCONF di base è stata pubblicata come RFC 4741 nel dicembre 2006. Diverse estensioni sono state pubblicate negli anni successivi (notifiche in RFC 5277 a luglio 2008, blocchi parziali in RFC 5717 a dicembre 2009, con valori predefiniti in RFC 6243 a giugno 2011, notifiche di sistema in RFC 6470 a febbraio 2012, controllo di accesso in RFC 6536 a marzo 2012). Una versione rivista del protocollo NETCONF di base è stata pubblicata come RFC 6241 nel giugno 2011.
Livelli di protocollo
Soddisfare
Il contenuto delle operazioni NETCONF è XML ben formato. La maggior parte dei contenuti è correlata alla gestione della rete . Successivamente, è stato aggiunto anche il supporto per la codifica in JavaScript Object Notation (JSON).
Il gruppo di lavoro NETMOD ha completato il lavoro per definire un linguaggio di modellazione "a misura d'uomo" per la definizione della semantica dei dati operativi, dei dati di configurazione, delle notifiche e delle operazioni, chiamato YANG . YANG è definito in RFC 6020 (versione 1) e RFC 7950 (versione 1.1) ed è accompagnato dai "Common YANG Data Types" trovati in RFC 6991 .
Durante l'estate del 2010, il gruppo di lavoro NETMOD è stato ricondotto per lavorare sui modelli di configurazione di base (sistema, interfaccia e routing) e lavorare sulla compatibilità con il linguaggio di modellazione SNMP .
Operazioni
Il protocollo di base definisce le seguenti operazioni del protocollo:
| Operazione | Descrizione |
|---|---|
| <get> | Recupera la configurazione in esecuzione e le informazioni sullo stato del dispositivo |
| <get-config> | Recupera tutto o parte di un archivio dati di configurazione specificato |
| <edit-config> | Modifica un archivio dati di configurazione creando, eliminando, unendo o sostituendo il contenuto |
| <copy-config> | Copia un intero archivio dati di configurazione in un altro archivio dati di configurazione |
| <delete-config> | Elimina un archivio dati di configurazione |
| <lock> | Blocca un intero archivio dati di configurazione di un dispositivo |
| <unlock> | Rilascia un blocco del datastore di configurazione ottenuto in precedenza con l'operazione <lock> |
| <close-session> | Richiedi la terminazione regolare di una sessione NETCONF |
| <sessione di uccisione> | Forza la chiusura di una sessione NETCONF |
La funzionalità NETCONF di base può essere estesa mediante la definizione delle funzionalità NETCONF. La serie di funzionalità di protocollo aggiuntive supportate da un'implementazione viene comunicata tra il server e il client durante la parte di scambio di capacità della configurazione della sessione. Le caratteristiche obbligatorie del protocollo non sono incluse nello scambio di capacità poiché si presume. RFC 4741 definisce una serie di funzionalità opzionali tra cui: xpath e: validate. Si noti che RFC 6241 rende obsoleto RFC 4741 .
Una funzionalità per supportare la sottoscrizione e la ricezione di notifiche di eventi asincroni è pubblicata in RFC 5277 . Questo documento definisce l'operazione <create-subscription>, che consente la creazione di sottoscrizioni in tempo reale e di riproduzione. Le notifiche vengono quindi inviate in modo asincrono utilizzando il costrutto <notification>. Definisce anche la capacità: interleave, che se supportata con la funzionalità di notifica di base: facilita l'elaborazione di altre operazioni NETCONF mentre l'abbonamento è attivo.
Una capacità per supportare il blocco parziale della configurazione in esecuzione è definita in RFC 5717 . Ciò consente a più sessioni di modificare alberi secondari non sovrapposti all'interno della configurazione in esecuzione. Senza questa funzionalità, l'unico blocco disponibile è per l'intera configurazione.
Una capacità per monitorare il protocollo NETCONF è definita in RFC 6022 . Questo documento contiene un modello di dati che include informazioni su datastore NETCONF, sessioni, blocchi e statistiche che facilitano la gestione di un server NETCONF. Definisce inoltre i metodi per i client NETCONF per rilevare i modelli di dati supportati da un server NETCONF e definisce l'operazione <get-schema> per recuperarli.
Messaggi
Il livello dei messaggi NETCONF fornisce un semplice meccanismo di framing indipendente dal trasporto per la codifica
- Invocazioni RPC (messaggi <rpc>),
- Risultati RPC (messaggi <rpc-reply>) e
- notifiche di eventi (messaggi <notification>).
Ogni messaggio NETCONF è un documento XML ben formato. Un risultato RPC è collegato a una chiamata RPC da un attributo ID messaggio. I messaggi NETCONF possono essere pipeline, ovvero un client può richiamare più RPC senza dover attendere prima i messaggi di risultato RPC. I messaggi RPC sono definiti in RFC 6241 e i messaggi di notifica sono definiti in RFC 5277 .
Trasporto
- Protocollo NETCONF su Secure Shell (SSH): rfc: 6242
- Protocollo NETCONF su Transport Layer Security (TLS) con autenticazione X.509 reciproca: rfc: 7589
Guarda anche
- YANG
- Stefan Wallin (2014/10/18). Tutorial NETCONF (YouTube). Stoccolma: tail-f.
- Gestione della rete
- Gestione della configurazione
- Monitoraggio della rete
- Schema XML