К основному контенту

L2TP/IPSEC подключение и маршруты

Рассмотрим подключение на примере ОС Windows.

А именно какие маршруты добавляются и как с этим жить.

Итак в свойствах подключения есть:

 

В случае если у нас установлен флаг - "Использовать основной шлюз в удаленной сети" то все что не попадает в нашу локальную подсеть будет отправлено удаленному шлюзу - а это значит что и доступ в интернет должен быть на той стороне настроен для удаленных клиентов, и мы так же теряем доступ к собственным ресурсам через наш локальный шлюз. Иногда это даже хорошо но чаще нет.
Флаг же "Отключить добавление маршрутов на основе класса" наоборот если снят то происходит следующее:
Если пул из которого выдаются адреса удаленным клиентам например 10.100.101.0/25
То в нашу таблицу маршрутизации будет добавлен маршрут 10.0.0.0/8 через удаленный шлюз потому что это сеть класса A и если все удаленные сети тоже класса А (ну они конечно могут быть на основе масок) то все они будут доступны и без галки - "Использовать основной шлюз в удаленной сети" а вот если пул например 192.168.101.0/24 то беда, потому что это сеть класса C ну и добавиться маршрут на сеть 192.168.101.0/24.
 
Хуже всего если вы не хотите чтоб весь трафик клиентов шел через вас включая интернет трафик, у вас на стороне L2TP/IPSEC сервера есть сети как 10.XX.XX.XX так и 192.XX.XX.XX
Тогда придется добавлять маршруты вручную на ПК удаленного пользователя.
Например таким PowerShell скриптом:

#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

в первом случае маршрут не сохраняется даже после реконнекта - это хорошо если у вас есть такие же сети где-то еще.

Во втором случае маршрут остается даже после перезагрузки.

 

Комментарии

Популярные сообщения из этого блога

Avaya, переадресация на мобильный, по неответу после 3 звонков.

Есть простейшее решение. 1. Через FAC набрать самому 2. Через change station на странице 3, задать номера и активировать их. 3. Через change coverage remote задать там номера, потом change coverage path задать правила перехода. В 1 и последнем случае, нет дурацкого сообщения на экране. Вариант 3: r2 означает, что надо вять номер из таблицы выше (remote). На станции указываем нужный coverage path

Конвертируем точку доступа AIR-LAP1131AG-E-K9 в автономную

1. Отключаем Ethernet кабель 2. Зажимаем кнопку (она там одна, справа от кабелей) 3. Подключаем консольный кабель 4. Подключаем AC-DC адаптер Теперь не отпуская кнопки ждем когда на консоли появится примерно следующее: Initializing ethernet port 0... Reset ethernet port 0... Reset done! link auto-negotiating....  auto-negotiation takes 10000 milli-seconds to complete ERROR: timeout waiting for auto-negotiation to complete  ERROR: fail to bring ethernet link up The system has been encountered an error initializing ethernet port. You may need to check hardware The system is ignoring the error and continuing boot. If you interrupt the system boot process, the following commands will reinitialize ethernet, tftp, and finish loading the operating system software:     ether_init     tftp_init     boot button is pressed, wait for button to be released... Тут мы должны отпустить кнопку, и далее увидим button pressed for 55 seconds process_config_recovery: set IP a

Время в логах на Cisco

чтобы в логах на Cisco было корректное время, нужно ввести следующую строку service timestamps log datetime localtime Ну и заодно в режиме отладки service timestamps debug datetime localtime