L2TP/IPSEC подключение и маршруты
Рассмотрим подключение на примере ОС Windows.
А именно какие маршруты добавляются и как с этим жить.
Итак в свойствах подключения есть:
#Add list of the networks which accessible via interface, divide by commas
$remnets2 = @("192.168.151.0/24","192.168.152.0/24")
#Specify adapter name
$adaptername = "UserGateTEST"
#Set next parameter to 1 if You want to add route with next hop
$setroutewithnexthop = 0
#PolicyStore ActiveStore or PersistentStore
$PolisyStore = "PersistentStore"
#----------------------------------------------------------------------------------------------------------------------------------------------
$defaultGatewayNadp = ""
#find adapter
$ifindex = Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.InterfaceAlias -match $adaptername } | Select-Object -ExpandProperty ifIndex
$ifindexrcount = $ifindex.count
if($ifindexrcount -gt 0){
$defaultGatewayNadp = (Get-NetIPConfiguration -InterfaceIndex 15).ipv4defaultgateway.NextHop
Write-Output "Connection found"
#if network list is not empty
if($remnets2.count -gt 0){
#find and delete current route
foreach($remnet in $remnets2){
[Array]$rarr = Get-NetRoute | Where-Object {$_.DestinationPrefix -like $remnet}
foreach($delnet in $rarr){
Write-Output $delnet
Remove-NetRoute -DestinationPrefix $remnet -Confirm:$False
}
}
#add route
foreach($remnet in $remnets2){
if($setroutewithnexthop -gt 0){
Write-Output "Add route with NextHop"
if($PolisyStore -eq "PersistentStore"){
New-NetRoute -DestinationPrefix $remnet -NextHop $defaultGatewayNadp -InterfaceIndex $ifindex
}else{
New-NetRoute -PolicyStore $PolisyStore -DestinationPrefix $remnet -NextHop $defaultGatewayNadp -InterfaceIndex $ifindex
}
}else{
Write-Output "Add route without NextHop"
if($PolisyStore -eq "PersistentStore"){
New-NetRoute -DestinationPrefix $remnet -InterfaceIndex $ifindex
}else{
New-NetRoute -PolicyStore $PolisyStore -DestinationPrefix $remnet -InterfaceIndex $ifindex
}
}
}
}
}else{
Write-Output "Connection $adaptername not found"
}
Тут надо отметить несколько параметров:
$adaptername - Это имя вашего VPN соединения
$remnets2 - список сетей на которые нужно создать маршруты - указываются списком через запятую как в примере выше
$PolisyStore - может принимать два значения - ActiveStore или PersistentStore
в первом случае маршрут не сохраняется даже после реконнекта - это хорошо если у вас есть такие же сети где-то еще.
Во втором случае маршрут остается даже после перезагрузки.
Комментарии
Отправить комментарий