Workspace-Guru

New-VPNConnection

Jun 1st, 2018
1,553
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #### Parameters
  2. $ResourceGroup = "myResourceGroup"             ### Name of your Resource Group
  3. $Location = "myLocation"                       ### Resource Location example, westeurope
  4. $VirtualNetworkName = "newAzureLan"            ### Name of new Azure Virtual Network
  5. $VirtualGatewayName = "newAzureGateway"        ### Name of new Azure Virtual Gateway
  6. $LocalGatewayName = "newLocalGateway"          ### Name of new Azure Local Gateway
  7. $SubnetName = "newAzureSubnet"                 ### Name of new Azure Subnet
  8. $Sharedkey = "key01"                           ### Preshared key for VPN
  9. $InternalPrefix = 'myPrefix'                   ### Internal Network Prefix example, 192.168.0.0/24
  10. $AddressPrefix = 'newPrefix'                   ### New Address prefix for Azure virtual network example, 10.4.0.0/16
  11. $Subnet = 'newSubnet'                          ### New Subnet for new Azure virtual network example, 10.4.0.0/24
  12. $DNSServer = "myDNSServer"                     ### IP address of DNS Server internal or Azure example, 192.168.0.1
  13. $GatewaySubnet = 'newGatewaySubnet'            ### Gateway Subnet for virtual gateway example, 10.4.1.0/24
  14. $VPNConnectionName = "newConnection"           ### New VPN Connection name example, VPNConnection
  15.  
  16.  
  17. #### Import Azure PowerShell Module
  18. Import-Module -Name AzureRM
  19.  
  20. #### Connect to Azure Tenant
  21. Write-host "Please enter your Azure Tenant credentails"
  22. $Azurecred = Get-Credential
  23.  
  24. Connect-AzureRmAccount -Credential $Azurecred
  25.  
  26. #### Create Azure Virtual Network
  27. $AzureSubnet = New-AzureRmVirtualNetworkSubnetConfig -name $SubnetName -AddressPrefix $subnet
  28. New-AzureRmVirtualNetwork -Name $VirtualNetworkName -ResourceGroupName $ResourceGroup -Location $location -AddressPrefix $AddressPrefix -Subnet $Azuresubnet -DnsServer $DNSServer
  29.  
  30. #### Create Azure Virtual Network Gateway
  31. $PublicIP = New-AzureRmPublicIpAddress -name GWIP -ResourceGroupName $ResourceGroup -Location $Location -AllocationMethod Dynamic
  32. $VirtualNetwork = Get-AzureRmVirtualNetwork -Name $VirtualNetworkName -ResourceGroupName $ResourceGroup
  33. $GatewaySubnetConfig = Add-AzureRmVirtualNetworkSubnetConfig -Name GatewaySubnet -AddressPrefix $GatewaySubnet -VirtualNetwork $VirtualNetwork | Set-AzureRmVirtualNetwork
  34. $VirtualNetwork = Get-AzureRmVirtualNetwork -Name $VirtualNetworkName -ResourceGroupName $ResourceGroup
  35. $GatewaySubnetIP = Get-AzureRmVirtualNetworkSubnetConfig -name GatewaySubnet -VirtualNetwork $VirtualNetwork
  36. $GatewayIPConfig = New-AzureRMVirtualNetworkGatewayIpConfig -Name GatewaySubnet -SubnetId $GatewaySubnetIP.id -PublicIpAddressId $PublicIP.Id
  37. New-AzureRmVirtualNetworkGateway -Name $VirtualGatewayName -ResourceGroupName $ResourceGroup -Location $Location -ipconfiguration $GatewayIPConfig -GatewayType Vpn -VpnType PolicyBased -GatewaySku Basic
  38.  
  39. #### Create Azure Local Network Gateway
  40. $ExternalIP = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
  41. New-AzureRmLocalNetworkGateway -Name $LocalGatewayName -ResourceGroupName $ResourceGroup -Location $location -GatewayIpAddress $ExternalIP -AddressPrefix $InternalPrefix
  42.  
  43. #### Create Azure VPN Connection
  44. $VirtualGateway = Get-AzureRmVirtualNetworkGateway -Name $VirtualGatewayName -ResourceGroupName $ResourceGroup
  45. $localGateway = Get-AzureRmLocalNetworkGateway -Name $LocalGatewayName -ResourceGroupName $ResourceGroup
  46. New-AzureRmVirtualNetworkGatewayConnection -Name $VPNConnectionName -ResourceGroupName $ResourceGroup -Location $Location -VirtualNetworkGateway1 $VirtualGateway -LocalNetworkGateway2 $LocalGateway -ConnectionType IPsec -RoutingWeight 10 -SharedKey $Sharedkey
  47.  
  48. ### Show VPN info
  49. $PublicIPAddress = Get-AzureRmPublicIpAddress -Name GWIP -ResourceGroupName $ResourceGroup
  50. Write-host "Azure VPN IP Address is "$PublicIPAddress.IpAddress" and the shared key is $Sharedkey"
Advertisement
Add Comment
Please, Sign In to add comment