HanG321 Blog

Add route after VPN

For some business reasons, company provides FortiGate SSL VPN to connect office network, but some subnet cannot be accessed due to route did not add automatically.

here is a PowerShell script to find the gateway and interface of VPN connection then add route. It will be great if I can find out how to run script automatically after VPN connection made.

let say office VPN subnet is 10.50.10.0/24, add 2 new subnet by following

# add route required admin right, this will popup and ask for permission.
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
$arguments = "& '" + $myinvocation.mycommand.definition + "'"
Start-Process powershell -Verb runAs -ArgumentList $arguments
Break
}

# find VPN connection gateway IP and interface number
$vpnroute = Get-WmiObject win32_IP4RouteTable | Where-Object { $_.Destination -eq "10.50.10.0" }
$gateway = $vpnroute.NextHop
$interface = $vpnroute.InterfaceIndex

route add 10.50.23.0 mask 255.255.255.0 $gateway metric 20 if $interface
route add 10.60.0.0 mask 255.255.0.0 $gateway metric 20 if $interface

FortiGate SSL VPN client is based on PPP, different to Cisco or others as normal network adapter.

ref:
http://serverfault.com/questions/145259/powershell-win32-networkadapterconfiguration-not-seeing-ppp-adapter
http://stackoverflow.com/questions/3293629/script-for-add-route

photo credit: Brent Hensarling
cc

Exit mobile version