Connect to your VPN. In AppleScript Editor run:

tell application "System Events"
 tell current location of network preferences
  get name of every service whose (kind is greater than 11 and kind is less than 16) and connected of current configuration is true
 end tell
end tell

This will return the VPN connection name.  Note this down.

In a new AppleScript, put the following code.  Where it says “putnamehere” put your name from above.  Save it as an application, and tick the box that says always open.

on idle
 tell application "System Events"
 tell current location of network preferences
 set myConnection to the service "putnamehere"
 if myConnection is not null then
 if current configuration of myConnection is not connected then
connect myConnection
 end if
 end if
 end tell
 return 120
 end tell

end idle

Add this to startup items, and you are away.

Works on 10.11, 10.10 and 10.9.

From here and here.