La continua evoluzione delle piattaforme di virtualizzazione ha portato alla sempre più forte esigenza di disaccoppiamento di tali piattaforme software dai dispositivi hardware in grado di ospitarle. Anche l’infrastruttura di rete deve evolversi di pari passo proponendo una soluzione completamente software alla virtualizzazione degli apparati di rete. Tale soluzione prende il nome di Open vSwitch.
Open vSwitch è uno switch virtualizzato di classe enterprise, multilayer, distribuito mediante la licenza Apache 2.0. Il progetto nasce per offrire una forte capacità di automazione all’interno dei datacenters di nuova concezione grazie al supporto del modello di networking definito come “Software Defined Networking“. Normalmente un apparato di rete layer 2 di tipo managed ospita all’interno dello stesso dispositivo sia l’hardware che realizza le connessioni fisiche tra le porte sia la parte software che si occupa di prendere le decisioni in merito al forwarding dei frame ethernet. Oltre ai noti problemi di interoperabilità, ogni apparato di rete ha una visione della rete limitata all’interno della macchina stessa.
Le Software Defined Networks introducono una separazione tra i dispositivi, fisici o virtualizzati che siano, e la logica di controllo che prende le decisioni di forwarding. Ne consegue che i dispositivi vanno a far parte del “data plane” e la logica di controllo del “control plane”. Il principale vantaggio di questo modo di realizzare una rete di questo tipo consiste nel avere una vista completa della rete da parte della logica di controllo. E’ quindi necessario che il controller possa comunicare con il data plane attraverso un protocollo appositamente progettato per tale scopo. La Open Networking Foundation, ente preposto alla definizione ed alla promozione delle software defined networks, ha rilasciato la definizione del protocollo Open Flow il 28 Ottobre 2011 ed attualmente è in vigore la versione 1.4 dello standard.
Il progetto Open vSwitch nasce nel 2009 all’interno dei laboratori di Citrix in risposta alla proposta di Cisco denominata Nexus 1000V. Sin dall’inizio fu integrato il supporto ad OpenFlow nelle versioni antecedenti alla 1.1 anche se di fatto non esisteva un vero e proprio standard di definizione del protocollo.
Attualmente il progetto Open vSwitch ha raggiunto la versione 2.1.2 e presenta le seguenti features:
– Visibiità del traffico inter-VM mediante procolli NetFlow, sFlow(R), IPFIX, SPAN, RSPAN e GRE mirroring all’iterno di tunnel
– LACP (IEEE 802.1AX-2008)
– 802.1Q VLAN con supporto al trunking
– BFD e 802.1ag per il monitoraggio dei link
– STP (IEEE 802.1D-1998)
– QoS ad alta granularità
– Supporto HSFC qdisc
– Applicazione di policy su una singola interfaccia di una VM
– NIC bonding con load balancing basato sul MAC address sorgente, active backup e L4 hasghin
– Supporto al protocollo OpenFlow
– Supporto IPv6
– Support a protocolli multipli di tunneling (GRE, VxLAN, IPsec, GRE e VxLan su IPsec)
– Protocollo di configurazione remota con bindings verso i linguaggi C e Python
– Motore di forwarding eseguibile sia in kernel-space che in user-space
– Multi-table forwarding pipeline con flow-caching engine
– Astrazione del forwarding layer per facilitare il porting su nuove piattaforme sia hardware che software
Attualmente Open vSwitch è distribuito all’iterno delle pricipali piattaforme di virtualizzazione open source come XenServer 6.0 e Xen Cloud Platform, e VirtualBox ed è inoltre il cuore del progetto Neutron, precedentemente Quantum, incluso all’interno di Openstack dalla versione Folsom della nota piattaforma di cloud computing.
Nel prossimo articolo verrà presentato il setup di un’istanza di Open vSwitch su piattaforma Fedora GNU/Linux versione 20.