Personalizzare il client di una connessione Point to Site su Azure
Abbiamo visto nel precedente articolo Creare una connessione Point to Site in Azure Resource Manager usando Powershell che un computer client può connettersi al Public Cloud di Microsoft in maniera molto semplice.
La connessione creata permette di raggiungere la VNET e l’eseguibile di Azure scaricato per creare la connessione sul pc client si occupa anche di poter creare le regole di Routing per poter indirizzare il traffico verso la VNET attraverso la connessione VPN.
Nel mio caso la rete da utilizzare per la connessione Point to Site è 192.168.20.0/24, mentre la VNET ha un indirizzamento 10.0.0.0/16
Figura 1: Configurazione della connessione Point to Site (P2S)
Figura 2: Address Space della VNET
Ogni volta che lancio il client per connettermi alla VNET viene creata una regola di Routing che permette di raggiungere la rete della VNET attraverso la connessione VPN Point to Site
Figura 3: Tabella di routing con la rotta aggiunta dalla connessione
Il problema che mi si è presentato è che la VNET è collegata anche con una connessione Site to Site in azienda. Dopo la connessione VPN il client riusciva a connettersi alla VNET, ma non riusciva a connettersi anche in azienda, passando attraverso Azure.
Figura 4: Configurazione delle reti
Per potersi collegare in azienda (rete 192.168.11.0/24) passando attraverso Azure è necessario infatti aggiungere staticamente una rotta sia sul pc client che sul device VPN che avete in casa.
Sul PC cliente ho aggiunto manualmente la rotta digitando il comando
route add 192.168.11.0 mask 255.255.255.0 192.168.20.4
(dove 192.168.20.4 è l’indirizzo ottenuto dalla connessione Point to Site)
Figura 5: aggiunta delle rotta per la rete 192.168.11.0
Mentre sul device VPN ho creato la rotta statica verso la rete 192.168.20.0/24 per la connessione Site to Site che punta al Gateway Azure. In azienda uso RRAS ed il risultato è mostrato in figura:
Figura 6: aggiunta delle rotta di ritorno sul VPN device in azienda
Il problema però che ho riscontrato è che ogni volta che mi riconnettevo alla connessione Point to Site cambiava l’indirizzo IP che mi veniva assegnato da Gateway nella rete 192.168.20.0/24
A questo punto l’unica soluzione che ho trovato è stata quella di modificare il client VPN che avevo scaricato da Azure per creare la connessione Point to Site. Nel mio caso il file si chiama 45b1c375-8d3a-4b92-8232-2eca25dc1893 .exe
Il file è scaricabile tramite Powershell utilizzando il comando
Get-AzureRmVpnClientPackage -ResourceGroupName NomeResourceGroup -VirtualNetworkGatewayName NomdelGatewaydiAzure -ProcessorArchitecture Amd64
Estraendo 45b1c375-8d3a-4b92-8232-2eca25dc1893.exe con Winrar ho potuto visualizzare il file routes.txt che aggiunge le regole di Routing
Figura 7: file che difinisce le rotte da aggiungere
Ho modificato il file e ho aggiunto la rotta che mi interessava:
Figura 8: Aggiunta della rotta mancante
Per poter fare in modo però che le rotte vengano aggiunge ogni volta che lanciate la connessione Point to Site dovete rilanciare il Connection Manager Profile installer con il comando
cmstp.exe /s /su /ns 45b1c375-8d3a-4b92-8232-2eca25dc1893.inf
sostituendo 45b1c375-8d3a-4b92-8232-2eca25dc1893 con il GUID della vostra connessione Point to Site.
Figura 9: Comandi del Connection Manager Profile installer
Da adesso in poi, indipendentemente dall’indirizzo che vi viene assegnato dalla connessione Point to Site verso Azure, le rotte verranno aggiunte alla vostra tabella di Routing, senza che lo dobbiate fare a mano ogni volta che vi connettete.
NOTA: Nel caso abbiate bisogno di distribuire il client con le rotte aggiornate potete semplicemente “ripacchettizzarlo” creando un archivio autoestraente (con Winzip, con Winrar, ecc.) che esegua in automatico il comando del Connection Manager Profile installer (cmstp.exe …..). Grazie a Roberto Balboni per il suggerimento.
Conclusioni
Permettere ai client di potersi collegare tramite VPN ad Azure e poi poter accedere anche alle risorse aziendali, se è presente una connessione Site to Site, rappresenta un vantaggio davvero enorme perchè è possibile effettuare una sola connessione per poter accedere a tutto il workload aziendale, sia online che on-premises.