Dopo l'esplosione iniziale di OpenFlow / SDN campagna pubblicitaria , un certo numero di persone hanno fatto affermazioni che OpenFlow non è lo strumento si può usare per rendere il lavoro SDN, e netconf è comunemente citato come alternativa (e non sorprende, considerando che il sostegno sia IOS Cisco e Junos esso). Purtroppo, considerando lo stato attuale di netconf, nulla può essere più lontano dalla verità.
Che cosa è netconf?
Netconf ( RFC 6,421 mila ) è un protocollo basato su XML utilizzato per gestire la configurazione di apparecchiature di rete. Permette la console di gestione ("manager") per impartire comandi e modificare la configurazione dei dispositivi di rete ("agenti netconf"). A questo proposito, è un po 'simile a SNMP, ma dato che usa XML, fornisce un insieme molto più ricco di funzionalità rispetto alle semplici coppie chiave / valore di SNMP.
Per ulteriori dettagli, vorrei vivamente di ascoltare il netconf Pusher Packet podcast.
Cosa c'è di sbagliato netconf?
Greg Ferro ha una grande analogia nella suddetta podcast: netconf è come SNMPv2/v3 (il protocollo di trasporto) e Yang (il linguaggio usato per descrivere messaggi netconf validi) è come ASN.1 (la sintassi descrivere variabili SNMP). Tuttavia, c'è un terzo componente nel quadro SNMP: un ampio insieme di standard MIB che vengono attuate da quasi tutti i fornitori di rete.
E 'quindi possibile scrivere un'applicazione per la gestione di rete utilizzando un MIB standard che avrebbe funzionato con attrezzature da tutti i venditori che hanno deciso di attuare tale MIB. Per esempio, se gli sviluppatori Hadoop decidere di utilizzare LLDP di auto-scoperta della topologia dei cluster Hadoop , che poteva contare su LLDP MIB essere disponibile negli switch da molti produttori di data center networking.
A parte pochi aspetti fondamentali della gestione della sessione, nessuna di tali struttura standardizzata dei dati esiste nel mondo netconf. Per esempio, non esiste un comando standard (specificata in un RFC) che si potrebbe usare per ottenere l'elenco di interfacce, spegnere un'interfaccia o configurare un indirizzo IP su un'interfaccia. Le bozze sono state scritte dal gruppo NETMOD di lavoro , ma ci vorrà un po 'prima che lo rendono allo stato RFC e vengono attuate dai fornitori principali.
Ogni singolo fornitore, che ci ha graziati con una implementazione netconf utilizza quindi il suo formato proprietario all'interno della busta XML di netconf. Nella maggior parte dei casi, il fornitore parte specifica delle mappe dei messaggi direttamente in comandi CLI esistenti (nel caso in cui Junos, i comandi sono in formato XML, perché Junos XML utilizza internamente). Posso dunque scrivere un'applicazione netconf che avrebbe lavorato con Cisco IOS e Junos? Certo che potevo ... se avessi implementare un fornitore modulo specifico per ogni famiglia di dispositivi ho intenzione di sostenere nella mia applicazione.
Perché utilizzare netconf?
Prendiamo in considerazione le alternative: decenni fa abbiamo configurato dispositivi di rete sulla sessioni Telnet utilizzando aspettano script - script di automazione semplici che specificano ciò che si deve inviare al dispositivo, e quale risposta ci si dovrebbe aspettare. Si potrebbe implementare gli script con l'originale si aspettano strumento, o con un linguaggio di scripting come Perl o Tcl.
Utilizzando un protocollo standard che fornisce una chiara definizione del messaggio ( si aspettano gli script sono stati principalmente congetture e potrebbe rompersi ad ogni aggiornamento software fatto su i dispositivi di rete) e la segnalazione degli errori (un'altra parte le congetture del aspettano script) è evidentemente una soluzione molto più robusta, ma è ancora troppo poco e troppo lentamente consegnato. Quello che ci serve è un meccanismo standard di configurazione di un ambiente multi-vendor, non è un wrapper migliore intorno CLI esistente (anche se l'involucro non meglio tornare utile).
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.