Вашият IKEv2 клиент може да поиска вътрешен адрес от шлюза, а шлюзът решава какво да върне. В strongSwan тази заявка е настройката vips и тя си остава заявка, дори когато запишете в нея конкретен адрес. Инструкцията по-долу настройва заявката, зарежда я и прочита какво се е върнало, защото тези три стъпки се провалят по три различни начина. Нито една от тях не се съкращава, колкото и да удряте по клавиатурата.

Какво иска vips и какво не може да обещае

vips принадлежи в дефиницията на връзката и иска от ответника виртуален адрес. Ръководството на strongSwan за виртуални адреси е категорично, че отговорът може да е друг адрес или да няма нищо, и точно това изречение се пропуска, когато човек запише стойност и очаква тя да се появи. Заявката все пак си заслужава, защото това, което проверявате, е отговорът. Отнасяйте се към настройката като към указание да попитате, а не като към конфигурация на резултата.

Заявката за 0.0.0.0 иска всеки свободен виртуален адрес по IPv4 и обикновено е правилна, когато точната стойност няма значение. Заявката за конкретен адрес е подсказка към шлюза, а не изискване към него.

Фрагментът swanctl и къде му е мястото

Настройката стои вътре в блока на връзката, а не в отделен файл и не в профил на операционната система. Този изолиран фрагмент показва формата:

connections {
  net {
    local_addrs = 192.0.2.10
    remote_addrs = 203.0.113.5
    vips = 10.77.0.31
    children {
      net { local_ts = dynamic remote_ts = 10.77.0.0/24 }
    }
  }
}

Заредете го с файла, който притежава връзката, след което стартирайте връзката и прочетете резултата. Фрагмент, поставен в грешния раздел, дава грешка при разбора или, по-лошо, връзка, която се зарежда без заявката, която сте мислили, че сте направили. Изпълнете трите команди последователно и запазете изхода.

swanctl --load-all --file /etc/swanctl/swanctl.conf
swanctl --initiate --child net
swanctl --list-sas

local_ts избира трафик, а не създава адрес

local_ts назовава набора от трафик, който дъщерният SA защитава; той не слага адрес на интерфейс. След като виртуален IP бъде договорен, strongSwan спира да използва стандартния си динамичен селектор и вместо това използва отпуснатия адрес. Ако заковате селектора към буквален адрес, вие твърдите нещо, което шлюзът може и да не е отпуснал, и затова отказът изглежда като работещ SA с трафик, който не отива никъде. Селекторът описва трафик, докато назначението идва от другия обмен.

Другият начин да получите стабилен вътрешен адрес е да го притежавате локално. Поставете адреса на интерфейс, преди тунелът да се вдигне, насочете селектора към това, което вече съществува, и подредете партньора и маршрута около него.

В тази схема нищо не се договаря, затова нищо не може да бъде преназначено, и това е разменната сделка: детерминизъм срещу това сами да свършите адресирането. Това е различен механизъм, а не вариант на vips, поради което двете не бива да се смесват в една връзка. Закован селектор до договорен адрес е връзка, която работи, докато шлюзът не отпусне нещо друго.

Проверете какво всъщност е назначил ответникът

Прочетете списъка на SA за адреса, който шлюзът е отпуснал, после потвърдете, че адресът съществува на интерфейса. Ако двете не съвпадат, тунелът е вдигнат, а трафикът не отива там, където мислите. Отпуснат адрес, който така и не стига до интерфейса, е най-объркващият отказ в тази последователност, защото всяка половина изглежда вярна сама по себе си.

Дръжте четири адреса отделно в бележките си: поискания вътрешен адрес, отпуснатия, LAN адреса на машината и публичния изход, който някой сайт съобщава. Те принадлежат на различни слоеве и се появяват на различни места. Инструкция, която записва и четирите, е такава, която колега може да следва, без да пита кой адрес имате предвид. Прочитайте ги отново след всяко презареждане, защото отпуснатата стойност е единствената, която описва живия тунел.

Дръжте статичната схема отделно

Ако ви трябва фиксиран вътрешен адрес, уредете резервацията на шлюза и оставете заявката на клиента като заявка. Смесването на закован селектор с договорен адрес дава връзка, която работи, докато шлюзът назначи нещо различно. Запишете правилото за резервация до връзката, защото това е частта, която колега не може да извлече от конфигурационния файл. Тогава новият клиент наследява правилото, вместо да го открива наново.

При вградения клиент за Mac никое от тези имена на опции не съществува. Използвайте каквото назначаване или резервация предлага шлюзът, както и профила, който публикува операторът, и третирайте всяка стойност от страна на клиента като подсказка, докато не прочетете назначението обратно. Връщането назад означава да премахнете реда vips и да презаредите, което ви връща към това, което шлюзът назначава по подразбиране.

Подобни статии