Caratteristiche, architettura e vantaggi del Software Defined Networking (SDN)

Caratteristiche, architettura e vantaggi del Software Defined Networking (SDN)

Software Defined Networking

Il concetto di Software Defined Networking definito da ONF costituisce un nuovo approccio in ottica cloud computing alle architetture di rete, che ne facilita l’amministrazione e la configurazione al fine di migliorarne performance e facilitarne il monitoring.

L’architettura SDN nasce con l’intento di essere dinamica, gestibile, economicamente efficiente e adattabile, cercando di essere funzionale per la natura dinamica e ad alto consumo di banda delle applicazioni odierne. Le architetture SDN disaccoppiano il controllo di rete e le funzioni di forwarding, dando la possibilità al controllo di rete di divenire direttamente programmabile e alla sottostante infrastruttura di essere astratta dalle applicazioni e dai servizi di rete.

Le principali caratteristiche della tecnologia SDN sono:

  • Direttamente programmabile: il controllo della rete è direttamente programmabile perché è disaccoppiato dalle funzioni di forwarding.
  • Agile: l’astrazione del controllo dal forwarding permette agli amministratori di modificare dinamicamente il flflusso di traffico nell’intera rete per soddisfare le necessità di cambiamento.
  • Gestita centralmente: l’intelligenza della rete è (logicamente) centralizzata all’interno dei controller SDN che mantengono una vista globale della rete, la quale appare alle applicazioni ed ai motori di policy come un unico switch logico.
  • Configurazione programmata: SDN permette ai gestori della rete di configurare, gestire, rendere sicure e ottimizzare le risorse di rete in maniera molto veloce attraverso script automatizzati che essi stessi possono scrivere, in quanto non devono basarsi su software proprietario.
  • Basata su standard aperti e indipendente dai vendor: Se implementata attraverso standard aperti, SDN semplifica il disegno e manutenzione della rete poiché le istruzioni sono fornite dai controller SDN invece che da molteplici dispositivi e protocolli proprietari.

Questa innovativa architettura è dinamica, facile da gestire, economicamente vantaggiosa e adattabile in qualsiasi circostanza. Considerate le già discusse limitazioni dell’attuale architettura di rete, SDN è la soluzione che permette l’interazione delle applicazioni con la rete.

Caratteristiche, architettura e vantaggi del Software Defined Networking (SDN)
Descrizione ad alto livello di un’architettura SDN

Differenza tra rete tradizionale e SDN

La rete attuale si basa su un’architettura distribuita dove il controllo è confinato nei singoli dispositivi di rete. Ciò significa che ogni dispositivo fisico di rete funziona in modo indipendente dagli altri, limitando l’accesso a software esterni e quindi ostacolando sviluppi specifici a supporto degli operatori e degli utilizzatori finali. In contrapposizione a questa, come illustrato nella Figura 3, con SDN il controllo della rete è disaccoppiato dall’hardware e posto in un controller, un software logicamente centralizzato, che libera l’utente dalla singola gestione dei dispositivi, riducendo così la complessità operativa e architetturale.

Il controller, grazie alla logica centralizzata, mantiene una vista globale della rete: ciò permette di rilevare lo stato della rete, di ottimizzare le risorse e di regolare le politiche di forwarding dinamicamente in base ai cambiamenti di stato molto più velocemente rispetto un sistema distribuito. Inoltre mediante piattaforme modulari, interoperabili e basate su standard aperti è possibile controllare la propria strategia di rete in base alle esigenze.

Si noti che il data plane è ancora completamente distribuito, mentre il control plane è logicamente centralizzato, ma può non essere fisicamente centralizzato: per questioni di performance, scalabilità e di affidabilità la logica centralizzata del controller SDN può essere distribuita su più controller fisici che cooperano al controllo della rete e delle applicazioni.

Differenza tra rete tradizionale e SDN
Differenza tra rete tradizionale e SDN

Architettura SDN

La struttura logica di SDN prevede la suddivisione in tre livelli di astrazione, come si può vedere nella Figura seguente.

Nel primo livello (Application layer) troviamo una serie di applicazioni, tramite le quali gli sviluppatori devono interfacciarsi per usufruire della rete e delle sue funzionalità.

Il secondo è il livello di controllo (Control layer), all’interno del quale risiede la capacità computazionale dell’intera rete. Il controllo viene attuato tramite una serie di software opportunamente sviluppati, funzionanti su dispositivi dedicati, in grado di monitorare l’intera topologia di rete in modo da veicolare e analizzare i flussi del traffico dati in modo più avanzato ed efficiente rispetto alle reti tradizionali. Il software è in grado di interagire con le tabelle decisionali dei dispositivi, in modo da instradare fisicamente i flussi dati, in base al modello elaborato dal controllore.

All’ultimo livello (Infrastructure layer) si colloca l’infrastruttura fisica realizzata tramite hardware dedicati. Gli elementi che compongono questo livello sono in grado di svolgere solamente funzioni basilari sui pacchetti, ma il loro scopo principale è quello di inoltrare fisicamente i pacchetti realizzando dei collegamenti in maniera estremamente stabile e veloce.

All’interno di questo schema, le applicazioni comunicano esplicitamente, direttamente e in maniera programmata le proprie specifiche di network al controller SDN attraverso un’interfaccia northbound, che concettualizza i dettagli di livello inferiore, come dati o funzioni. Mentre il controller interagisce con i nodi della rete fisica utilizzando un’interfaccia southbound, attraverso la quale è possibile monitorare inoltri, statistiche e notifiche degli eventi al fine di ottenere un’espressione diretta dei comportamenti e dei requisiti di rete a qualsiasi livello di astrazione.

INFRASTRUCTURE LAYER

 L’infrastructure layer è il livello più basso che comprende i dispositivi fisici e rappresenta l’infrastruttura di rete. L’emulatore di rete Mininet, viene utilizzato per ricreare l’infrastructure layer in un contesto SDN, con lo scopo di eseguire dei test in un ambiente virtuale.

SOUTHBOUND INTERFACE

 L’interfaccia definita southbound interface ha la funzione di definire la comunicazione tra il controller e i dispositivi hardware di rete. L’implementazione standard di riferimento è il protocollo OpenFlow, il quale viene approfondito nel capitolo 2. Questo protocollo viene implementato sia sul lato del controller che sul lato dei dispositivi e instaura così un canale di comunicazione end-to-end sicuro, grazie ai convenzionali protocolli crittografici come SSL o TLS. Essa rappresenta un punto critico dell’architettura SDN, in quanto non solo permette al controller di gestire in maniera dinamica il traffico di una rete, ma ne incrementa l’efficienza in termini di traffico e richieste di transito.

CONTROL LAYER

L’architettura SDN, rispetto a quella tradizionale, è dotata di un elemento aggiuntivo chiamato controller. Il controller è l’elemento intelligente della rete e rappresenta il fulcro di tale architettura. Come raffigurato nella Figura mostrata, il controller è un’entità logica centralizzata che permette la comunicazione tra i dispositivi di rete al livello inferiore e le applicazioni software a livello superiore. Ciò consente di percepire una rete come un unico sistema centralizzato coordinato dal controller e personalizzato mediante applicazioni utente, indipendentemente dalla topologia fisica.

NORTHBOUND INTERFACE

Le northbound interface sono le interfacce di programmazione indispensabili per la comunicazione tra i controller SDN e i software applicativi. Queste sono necessarie in quanto determinate funzioni o servizi hanno il bisogno di acquisire informazione riguardo la struttura e il comportamento della rete, permettendo l’orchestrazione e l’automazione della rete con l’obiettivo di velocizzare l’innovazione. Diversamente dalla comunicazione controller-switch, attualmente non esiste un modello standard di API dominante per le interazioni northbound.

APPLICATION LAYER

Per quanto riguarda le applicazioni SDN, si tratta di programmi che comunicano dinamicamente, esplicitamente e direttamente i requisiti di rete e il suo stato al controller SDN attraverso le northbound interface. Le applicazioni SDN, grazie alla centralizzazione logica fornita dal controller, hanno una visione globale di tutta la rete e erogano i servizi di networking agli utenti finali.

Architettura SDN
Architettura SDN

Vantaggi SDN

La scelta di suddividere il control plane dal data plan e di centralizzare la gestione nel SDN controller ha portato ai seguenti vantaggi:

  • consente l’astrazione dell’infrastruttura sottostante;
  • le business application ed i servizi di rete percepiscono il network come una entità logica;
  • si realizza un’indipendenza dai vendor e dalle specificità dei dispositivi;
  • viene semplificata sia la progettazione sia la gestione operativa dell’intera rete;
  • permette di rendere più semplice sia le tecnologie di costruzione di router e switch, sia la loro configurazione, poiché il dispositivo svolge solo funzioni di forwarding del flusso e si richiede l’utilizzo del solo protocollo di comunicazione con il controller SDN;
  • il piano di controllo viene arricchito con nuove funzionalità;
  • la logica della rete è definibile direttamente dagli utilizzatori; è possibile instradare in tempo reale il traffico in base allo stato dell’intera infrastruttura IT, programmando adeguatamente il controller;
  • velocizza i processi d’innovazione e di automatizzazione consentendo la creazione di nuove funzionalità e servizi di rete, in modo più semplice e rapido senza dover configurare i singoli dispositivi o modificarne il firmware;
  • incrementa l’affidabilità e la sicurezza della rete avendo centralizzato ed automatizzato la gestione dei network device;
  • consente di controllare la rete ed applicare policy con diversi livelli di granularità, sessione, utente, device ed applicazione.
  • l’architettura SDN fornisce un set di API che consentono di implementare servizi di rete comuni, come routing, multicast, security, access control, bandwidth management, traffic engineering, quality of service, processor e storage optimization, energy usage, policy management.

Questa serie di vantaggi ha portato all’ interessamento nei confronti di questo nuovo tipo di approccio da parte di molte aziende del settore. Infatti IDC, primo gruppo mondiale in ricerche di mercato, ha recentemente previsto che il mercato globale SDN è destinato a crescere da 960 milioni di dollari nel 2014 a più di 8 bilioni di dollari nel 2018, quindi non è solo una moda passeggera. I primi ad adoperare questa tecnologia hanno visto un incremento nella loro agilità ed efficienza di rete, mettendo letteralmente a sedere i loro concorrenti.

Non solo grazie al SDN è possibile rendere la rete più efficiente, ma è possibile abbattere i costi operativi, siccome le imprese non necessitano più di hardware vendor specifico, né tantomeno di fare investimenti tecnologici aggiuntivi per rendere la propria rete adeguata. I primi a investire su questo nuovo tipo di approccio sono stati i Datacenter e i fornitori di servizi i quali hanno riscontrato migliore servizio al cliente finale e tempi di risposta più rapidi.

Tuttavia la genericità dell’architettura SDN crea un po’ di ambiguità, i confini tra le business application ed il controller non sono ben definiti, in termini di programmazione di alto livello della rete. In alcuni casi, le business application potrebbero sviluppare una view dei flussi di una rete di device (flow rule) da inviare, poi, al controller per la programmazione diretta degli switch, senza così tralasciare la conoscenza (anche se di alto livello) della rete. Inoltre, diverse soluzioni implementative del SDN forniscono entrambi i layer, application e controller, in un singolo prodotto; non solo, ma gran parte della feature più innovative del networking sono incluse proprio nel livello application.

Per superare tale ambiguità nei dispositivi di rete dovrà essere implementato un supporto alla nuova architettura e ogni dispositivo di rete dovrà presentare la stessa interfaccia verso il controller. Per fare questo è stato sviluppato e proposto dalla Open Networking Foundation, consorzio di aziende e istituzioni, lo standard OpenFlow in quanto risulta necessario definire alcune regole.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *