Software defined network (SDN, "reti definite dai software") è un paradigma tecnologico piuttosto ampio all'interno del quale trovano posto diverse tipologie di tecnologie di networking il cui scopo è di rendere le reti di calcolatori agili e flessibili, come ad esempio i server virtuali e le infrastrutture di archiviazione utilizzate nei moderni data center.
Lo scopo di una SDN è di consentire a ingegneri e gestori di rete di rispondere in maniera veloce alle esigenze e necessità in continua evoluzione di aziende e distributori di servizi online. In una software defined network la gestione rete è dinamica e affidata a professionisti che possono modellarne i flussi tramite una console di controllo centralizzata. Il tutto senza dover agire fisicamente su switch e altri apparati di rete: agendo da remoto, chi gestisce il network potrà attivare o disattivare servizi a richiesta senza preoccuparsi se un certo router è collegato a un tal server, a uno switch o a qualunque altra periferica online.
Nell'architettura SDN l'infrastruttura di rete fisica è resa astratta e direttamente programmabile tramite un'interfaccia di controllo software. Ciò permette di disgiungere la gestione del network dalle funzioni di inoltro (forwarding) e adattare il flusso di dati alle necessità del momento. Un'infrastruttura di rete SDN, dunque, è:
A livello logico, le strutture che compongono un network SDN possono essere raccolte in tre livelli. Alla base troviamo l'infrastruttura di rete, ovvero la struttura fisica, l'hardware, composta da switch, router, server e cavi di collegamento; al livello superiore troviamo il software SDN, che consente la gestione dinamica del network così di adattare i flussi dati alle necessità del momento; l'ultimo livello è infine occupato dai servizi e dalle applicazioni aziendali che agiscono sull'infrastruttura fisica comunicando direttamente con il livello SDN per mezzo di apposite API.
In questo schema le applicazioni e i servizi di rete comunicano le loro esigenze e necessità alla struttura SDN in maniera diretta e programmata, così che i software di controllo possano "tradurre" le comunicazioni in comandi di gestione per l'infrastruttura fisica del network. Questa organizzazione permette di agire sui flussi dati senza che ci sia bisogno di modificare manualmente e puntualmente la configurazione dell'infrastruttura di rete: sarà sufficiente modificare alcuni parametri del software di controllo per ottenere i risultati voluti in tempi brevissimi.
L'adozione di questa architettura consente agli amministratori di rete di agire in maniera decisamente più libera e veloce. La separazione che si viene a creare tra il piano dell'infrastruttura fisica e il piano di gestione e controllo permette ai network administrator di reagire in maniera più veloce e più precisa ai solleciti e alle richieste di cambiamento. In alcuni casi l'automazione dei controlli permette di modulareil flusso di traffico dati direttamente e in maniera dinamica al variare delle necessità contingenti senza che ci sia bisogno di alcun intervento umano.
Una tale versatilità assicura una lunga serie di vantaggi a quegli amministratori che implementeranno una software defined network all'interno del loro data center.