Veeam PN (Powered Network) v2: novità e vantaggi

Nell’articolo Implementare una VPN site-to-site in Azure con Veeam PN abbiamo parlato della versione 1.0 di Veeam Powered Network, tool gratuito di Software Defined Networking realizzato da Veeam Software, con il quale è possibile realizzare in modo semplice e intuitivo tunnel VPN negli scenari “site-to site” e “point-to-site”. Raccomando la (ri)lettura del precedente articolo per un’introduzione tecnica al tool.

Alla prima versione pubblicata a dicembre del 2017, segue a distanza di circa 18 mesi un nuovo rilascio che presenta interessanti novità.

Storia di Veeam PN

Il popolare software Veeam Backup & Replication (https://www.veeam.com/it/vm-backup-recovery-replication-software.html) incorpora una funzionalità chiamata Direct Restore to Azure, con la quale è possibile effettuare il ripristino da backup di macchine virtuali o fisiche direttamente su Azure.

Al fine di agevolare la connettività fra i servizi spostati su Azure e la rete locale, Veeam ha quindi sviluppato il componente gratuito Veeam PN e l’ha reso disponibile come template nel marketplace di Microsoft.

Figura 1 – Veeam PN nel marketplace di Azure

Effettuando la distribuzione di Veeam PN su Azure (di fatto, una virtual machine basata su Ubuntu) si dispone immediatamente di un “hub” in grado di mettere in comunicazione in modo protetto le VM collocate in Azure e la rete aziendale, consentendo di ripristinare l’accesso ai servizi spostati su cloud, previa l’installazione on-premises di un server Veeam PN configurato nel ruolo “gateway”.

ll ruolo svolto da Veeam PN, infatti, dipende dalla collocazione nell’architettura:

  • Network Hub: collocato su Azure, gestisce (accetta e inoltra) il traffico proveniente da una o più reti on-premises;
  • Site Gateway: collocato on-premises, stabilisce il tunnel VPN verso Azure.

Figura 2 – Architettura Veeam PN

Il tool è stato immediatamente adottato dalla community anche per implementare soluzioni VPN al di fuori del contesto Azure: ad esempio per collegare fra loro varie sedi di un’organizzazione, far connettere alla rete aziendale gli utenti in smart-working, accedere dall’esterno al proprio home-lab…

L’interesse espresso da parte dei tanti utilizzatori ha portato Veeam a proseguire nello sviluppo del tool in un’ottica di utilizzo più generalizzato, di semplificazione delle procedure di implementazione e di miglioramento delle performance.

Le novità della versione 2.0

La prima release di Veeam PN si basava unicamente sulla tecnologia OpenVPN (https://community.openvpn.net/openvpn/wiki/OverviewOfOpenvpn) sia per le connessioni site-to-site, che per quelle point-to-site.

Nella nuova versione, OpenVPN è stato sostituito con WireGuard per gli scenari site-to-site.

WireGuard (https://www.wireguard.com/) è stato sviluppato dal ricercatore Jason Donenfeld con l’ambizioso obiettivo di realizzare una soluzione di tunneling VPN più veloce, più semplice da implementare e più sicura rispetto a quelle esistenti.

Veeam ha optato per WireGuard (una scelta molto drastica, che di fatto rende la nuova versione di Veeam PN incompatibile con la precedente) per vari motivi, fra i quali:

  • Il codice di WireGuard è composto da circa 4.000 righe contro le 600.000 di OpenVPN+OpenSSL, offrendo una minore superficie d’attacco e una maggiore velocità di esecuzione;
  • Disponibilità di algoritmi più moderni e robusti: ChaCha20, Poly1305, Curve25519, BLAKE2s, SIPHash24, HKDF;
  • Soprattutto, maggiori performance: throughput da 5 a 20 volte superiore a OpenVPN.

In questo interessante articolo https://arstechnica.com/?post_type=post&p=1360967 si mettono a confronto WireGuard e OpenVPN anche a proposito di prestazioni: nella snapshot a sinistra i tempi della procedura di handshake operata da OpenVPN (8 secondi) e in quella a destra i tempi di WireGuard (0,127 secondi).

Figura 3 – OpenVPN vs WireGuard: handskake

Nel sito ufficiale di WireGuard sono riportati i risultati di benchmark comparativi fra le due soluzioni di tunnelling VPN (https://www.wireguard.com/performance/):

Figura 4 – OpenVPN vs WireGuard: throughput e ping time

Fra le altre novità di Veeam PN v2:

  • DNS forwarding per la risoluzione dei FQDN nei siti connessi,
  • Report del processo di deployment più dettagliato,
  • Miglioramenti nell’integrazione con Microsoft Azure,
  • Script per l’installazione manuale in Ubuntu

Come ottenere Veeam PN

Abbiamo 3 modi per effettuare il deployment di Veeam PN:

  • Dal marketplace di Azure (https://portal.azure.com),
  • Scaricando il pacchetto .ova dal sito Veeam,
  • Effettuando il setup in un’installazione preesistente di Ubuntu 18.04 LTS.

Deployment su Azure

Il ruolo di Veeam PN disponibile su Azure è quello di Network Hub.

I passaggi di installazione sono molto semplici e sono praticamente identici a quelli riportati nel precedente articolo (https://www.ictpower.it/guide/implementare-una-vpn-site-to-site-in-azure-con-veeam-pn.htm) a cui vi rimando per i dettagli.

Figura 5 – Pagina Summary del processo di deployment di Veeam PN v2 su Azure

Completati i passaggi preliminari ed completato il deployment, collegandosi via browser all’indirizzo IP pubblico della virtual machine sarà possibile seguirne gli step di configurazione automatica.

Figura 6 – Descrizione realtime dei passaggi di configurazione della VM

Deployment tramite pacchetto .ova

Dopo aver scaricato il file .ova dal sito Veeam https://www.veeam.com/veeampn-download.html, importarlo come virtual machine in VMware vSphere versione 5.x o versioni successive (per fare qualche sperimentazione in ambiente non di produzione è possibile utilizzare anche VMware Workstation o Virtual Box).

Figura 7 – Pagina di download per Veeam PN v2

In questo caso, sarà possibile configurare Veeam PN come Network Hub o Site Gateway, a seconda della collocazione nella nostra infrastruttura.

Installazione manuale

Predisporre una macchina virtuale o fisica con Ubuntu Server versione 18.04 LTS (http://releases.ubuntu.com/18.04.2/ubuntu-18.04.2-live-server-amd64.iso) e queste caratteristiche minimali:

  • 1 CPU
  • 1 GB RAM
  • 16 GB di spazio Hard Drive
  • Connettività di rete verso Internet

Avuto accesso come superuser, per aggiungere il Veeam Software Repository Key al sistema eseguire il comando:

curl -k http://repository.veeam.com/keys/veeam.gpg | apt-key add –

Poi, aggiungere Veeam PN alla lista delle fonti APT ed eseguire un aggiornamento APT:

echo “deb [arch=amd64] http://repository.veeam.com/pn/public pn stable” > /etc/apt/sources.list.d/veeampn.list

e

apt-get update

Aggiungere il repository di WireGuard:

apt-add-repository ppa:wireguard/wireguard

Infine, installare le componenti Server e User Interface (l’operazione richiederà qualche minuto):

apt-get -y install veeam-vpn-ui veeam-vpn-svc

Verrà richiesta l’autorizzazione per modificare la configurazione IPTables: confermare con <YES>.

Al termine dell’installazione, per verificarne l’esito, aprire un browser e puntando all’indirizzo IP dell’host Ubuntu.

Figura 8 – Schermata di accesso a Veeam PN

Nota: All’indirizzo https://www.veeam.com/veeampn-download.html è disponibile lo script VeeamPN-installer.run.sh per automatizzare i passaggi precedentemente descritti.

Configurazione dei ruoli Veeam PN

Per i passaggi operativi da effettuare fare riferimento al già citato articolo https://www.ictpower.it/guide/implementare-una-vpn-site-to-site-in-azure-con-veeam-pn.htm .

Completata la configurazione iniziale del ruolo prescelto (Network Hub o Site Gateway) nella stessa console di gestione via browser, pannello Overview, sarà possibile verificare lo stato dei server WireGuard e OpenVPN.

Figura 9 – Stato dei server WireGuard e OpenVPN

IP Translation Rules

Quando una macchina fisica o virtuale viene migrata su Azure, riceve automaticamente un nuovo indirizzo IP.

Per consentire agli utenti, ai computer ed ai servizi on-premises di continuare ad accedere alla stessa macchina è possibile creare una IP Translation Rule su Veeam PN a livello di Network Hub o di Site Gateway: in questo modo, non dovranno essere effettuate modifiche alla configurazione di servizi, macchine o DNS.

Scenario di esempio: il nostro server “DB03” nella rete locale utilizzava l’indirizzo IP 192.168.1.110, ma dopo essere stato spostato su Azure ha ottenuto l’indirizzo 10.4.0.5.

Figura 10 – Il nostro server ha cambiato indirizzo IP…

Accediamo alla console di gestione di Veeam PN, ruolo Site Gateway, e nel pannello IP Translation per prima cosa creiamo una nuova regola facendo clic sul simbolo + in verde.

Figura 11 – Creazione nuova IP Translation Rule

Nella scheda New Rule inseriamo l’indirizzo IP che la macchina aveva on-premises e quello che ha ora su Azure. Verifichiamo che sia selezionata l’opzione Enable Rule e facciamo clic su Save.

Figura 12 – Definizione regola

Il secondo passaggio è di abilitare il servizio IP Translation, che per impostazione di default è disattivato.

Figura 13 – Abilitazione servizio IP Translation

That’s all. Magic!

Conclusioni

In questo articolo abbiamo visto le novità apportate da Veeam al proprio tool gratuito per la creazione di tunnel VPN, Veeam Powered Network v2, prima fra tutte l’introduzione di WireGuard in sostituzione di OpenVPN al fine di ottenere maggiori prestazioni in scenari di connettività site-to-site.