Open vSwitch ( OVS ) è un'implementazione open source di un multilayer switch virtuale distribuito. Lo scopo principale di Open vSwitch è quello di fornire uno stack di switching per ambienti di virtualizzazione hardware, supportando al contempo più protocolli e standard utilizzati nelle reti di computer.
Il codice sorgente del progetto è distribuito secondo i termini della licenza Apache 2.0.
Panoramica
Open vSwitch distribuito come uno switch di rete virtuale tra server, distribuito in modo trasparente su più server fisici.
Open vSwitch è un'implementazione software di uno switch di retevirtuale multilayer, progettato per consentire un'automazione di rete efficace tramite estensioni programmatiche, supportando al contempo interfacce di gestione e protocolli standard quali NetFlow, sFlow, SPAN, RSPAN, CLI, LACP e 802.1ag . Inoltre, Open vSwitch è progettato per supportare una distribuzione trasparente su più server fisici consentendo la creazione di switch tra server in un modo da astrarre l'architettura del server sottostante, simile allo switch distribuito VMware DVS o Cisco Nexus 1000V.
Open vSwitch può funzionare sia come uno switch di rete basato su software in esecuzione all'interno di una macchina virtuale (VM) su hypervisor, sia come stack di controllo per hardware di switching dedicato; di conseguenza, è stato riportato su più piattaforme di virtualizzazione, su chipset di switching e su acceleratori hardware della rete. Open vSwitch è lo switch di rete predefinito nella piattaforma di virtualizzazione XenServer dalla sua versione 6.0, e nella piattaforma Xen Cloud tramite il suo stack di strumenti di gestione XAPI. Supporta inoltre gli hypervisor Xen, LinuxKVM, Proxmox VE e VirtualBox, mentre è disponibile anche una versione per Hyper-V . Open vSwitch è stato inoltre integrato in varie piattaforme software di cloud computing e sistemi di gestione della virtualizzazione, tra cui OpenStack, openQRM, OpenNebula e oVirt.
L'implementazione del kernel Linux di Open vSwitch è stata unita alla linea principale del kernel nella versione 3.3, rilasciata il 18 marzo 2012; i pacchetti Linux ufficiali sono disponibili per Debian, Fedora, openSUSE e Ubuntu. Dal Gennaio 2014 sono disponibili anche implementazioni FreeBSD e NetBSD, con l'implementazione di NetBSD che opera completamente nello spazio utente.
La maggior parte del codice sorgente di Open vSwitch è scritto in linguaggio C indipendente dalla piattaforma, che garantisce una facile portabilità in vari ambienti. Il codice sorgente è concesso in licenza con la licenza Apache 2.0.
Caratteristiche
Da Settembre 2015, le caratteristiche offerte da Open vSwitch includono le seguenti:
Comunicazione esposta tra macchine virtuali, tramite NetFlow, sFlow, IP Flow Information Export (IPFIX), Switched Port Analyzer (SPAN), Remote Switched Port Analyzer (RSPAN) e mirror di porte incapsulati tramite Generic Routing Encapsulation (GRE)
Supporto per il protocollo OpenFlow, comprese varie estensioni relative alla virtualizzazione
Supporto completo IPv6 (Internet Protocol version 6)
Supporto per più protocolli di tunneling, tra cui GRE, Virtual Extensible LAN (VXLAN), Stateless Transport Tunneling (STT) e Geneve, con supporto aggiuntivo per la stratificazione su Internet Protocol Security (IPsec)
Protocollo di configurazione remota, con associazioni esistenti per i linguaggi di programmazione C e Python
Implementazione del motore di inoltro dei pacchetti nello spazio kernel o nello spazio utente, consentendo flessibilità aggiuntiva e fornendo miglioramenti delle prestazioni elaborando la maggior parte dei pacchetti inoltrati senza lasciare lo spazio kernel e utilizzando componenti multithread nello spazio kernel e nello spazio utente
Pipeline di inoltro multi-tabella con un motore di caching del flusso
Inoltro dell'astrazione del livello, semplificando il porting di Open vSwitch su nuove piattaforme software e hardware