Sempre più spesso, girando i forum del settore, mi è capitato di trovare dei thread di utenti che si son trovati a dover installare e configurare una VM in un server virtualizzato con VMWare, Xenserver, Proxmox VE o altri dovendo impostare un gateway diverso dalla network. Questo accade ad esempio se il vostro server host è ospitato in una server farm che supporta appieno la virtualizzazione. Prime fra tutti in Europa ad esempio OVH ed Online.net.
Il problema nel dettaglio è che magari il vostro IP che volete assegnare alla VM ad esempio è: 123.234.1.99 fornito dal provider e inoltre quest’ultimo vi impone di usare la subnet mask 255.255.255.255 e come gateway a seconda del provider utilizzato dove impostare l’indirizzo IP del server host che ovviamente a livello di indirizzo non fa parte della network dell’IP da assegnare alla vostra VM. Ad esempio facciamo finta che il vostro server host abbia indirizzo IP 99.123.234.50
OVH vi impone di impostare come default gateway della VM, l’indirizzo IP del vostro server host, quindi nel nostro caso 99.123.234.50 mentre Online.net vi impone di usare il .1 finale della rete del server host quindi nel nostro caso 99.123.234.1
Molti sistemi operativi consentono questa impostazione di rete un po’ particolare, primo fra tutti Windows in tutte le sue versioni sia Server che Desktop e non crea problemi.
Mentre al contrario molte distribuzioni Linux o FreeBSD non consentono questa impostazione poichè in alcuni casi vi verrà detto che il gateway non è raggiungibile, in altri casi non verrà detto nulla ma poi nello specifico non funzionerà la connessione di rete della vostra VM.
Con alcune distribuzioni è possibile aggirare questo problema, specificando il gateway tramite i comandi up ip route, post-up ip route e pre-down ip route che ci permettono di specificare un gateway successivamente all’attivazione dell’interfaccia di rete e alla relativa assegnazione dell’indirizzo IP.
Con altre distribuzioni questo non è ammesso e la soluzione a questo problema è un vero incubo spesso senza soluzioni o con soluzioni estremamente difficili a causa delle personalizzazioni fatte nella distribuzione stessa.
Validi esempi di casi assai difficili da risolvere sono ad esempio Zentyal (ottima distribuzione tutto fare per server di rete), Openfiler (ottima distribuzione per realizzare degli storage di rete condivisi come NAS e SAN) e FreeNAS (lo descrive il nome stesso).
In molti sembrano disperarsi senza fine in queste configurazioni, cercando persino di mettere mano agli script automatici di configurazione delle distribuzioni stesse, spesso molto complicati, ma in realtà la soluzione facile, immediata e sicura è dietro l’angolo!
Tutto si risolve in modo molto semplice ed elegante come se foste nella rete del vostro ufficio, si frappone un router con funzionalità di firewall tra l’accesso ad internet e il server stesso. In questo caso abbiamo scelto pfSense ma potreste utilizzare molte altre soluzioni software in grado di svolgere queste funzionalità.
Per fare tutto questo non dovete far altro che creare un’interfaccia di rete virtuale nuova con cui far dialogare le due VM che avrete sul vostro server host. In questo modo creerete una rete locale tra le due VM mentre l’interfaccia di rete in bridge con la connessione ad internet stessa sarà assegnata a pfSense e sarà impostata come connessione WAN su pfSense.
Su Proxmox ad esempio dovrete creare una nuova interfaccia vmbr, ad esempio la vmbr1 che non ha nessuna interfaccia eth in bridge, ma è semplicemente un’interfaccia di rete virtuale. Questa la utilizzerete per assegnare una scheda di rete su entrambe le VM che vorrete far dialogare tra loro come se fosse una rete locale ed assegnerete loro degli indirizzi IP di rete locale come ad esempio 192.168.1.1 all’interfaccia LAN di pfSense e 192.168.1.2 all’interfaccia di rete della vostra VM con ad esempio installato Zentyal.
Per finire dovrete impostare sulle regole del firewall e della NAT un forward delle porte relative ai servizi interessati su Zentyal. In questo modo otterrete anche un’ottima protezione alla vostra VM stessa in grado di bloccare eventuali attacchi a servizi non utilizzati. In alternativa inoltre potrete girare l’intero indirizzo IP alla VM della vostra rete locale impostando un NAT 1:1.
Le prestazioni di questa soluzione, assegnando ovviamente un po’ di risorse alla VM con pfSense (2 core, 4 Gb di ram, 32 Gb di hard disk), sono eccellenti. Abbiamo sperimentato noi stessi prestazioni di almeno 700 Mbps di trasferimento costante dalla VM in rete locale dietro a pfSense e l’accesso di rete esterno.
by