Учитан strongSwan профил није активан тунел
strongSwan учитава дефиниције, а затим преговара IKE и CHILD SA. То што је профил учитан не говори ништа о томе постоји ли тунел или ко га покреће.
Навођење конекције у strongSwan конфигурацији доказује само да је дефиниција учитана. То не значи да је партнер контактиран, да постоји IKE SA или да је било који саобраћај заштићен. Демон третира дефиниције и живе асоцијације као одвојене објекте, а размак између њих је намерна дизајнерска одлука. Знати који објекат прегледате претвара нејасну грешку у конкретну следећу команду.
Учитавање није повезивање
Учитана конекција је изјава о томе шта се може преговарати касније: адресе партнера, акредитиви, предлози и селектори саобраћаја. Ништа у тој изјави не захтева да је демон некога позвао. Гејтвеј може чекати другу страну, иницирати при покретању или чекати да га пробуди одговарајући саобраћај. Сва три су ваљана, и сва три изгледају идентично у конфигурационој датотеци док не прочитате политику покретања.
Оператери упадају у невоље читајући листу дефиниција као листу статуса. Профил је ту, па се тунел сматра активним, а следећи сат одлази на отклањање грешака у рутама за асоцијацију која никада није изграђена.
Супротна грешка је једнако честа. Недостајући профил шаље људе у потрагу за мрежном грешком кад се конфигурација никада није учитала. Именујте објекат, а затим покрените команду која га посматра.
Три објекта, три посматрања
strongSwan држи учитану дефиницију, IKE SA и CHILD SA. Прва је конфигурација, друга је аутентификовани контролни однос, а трећа је преговарана заштита одабраног саобраћаја. Имају чак и одвојена имена, па профил по имену hq може поседовати child по имену hq-lan.
Табела повезује сваки слој са командом која га приказује. Прочитајте ред пре него што прочитате лог.
| Layer | What it contains | Command |
|---|---|---|
| Definition | Peer addresses, credentials, proposals, and traffic selectors | swanctl --list-conns |
| IKE SA | One authenticated control channel to the peer | swanctl --list-sas |
| CHILD SA | Keys and selectors for the traffic being protected | Child rows under the IKE SA |
Захтев за child прво гради његову надређену IKE SA када ниједна не постоји. Захтев само за IKE SA је други позив. Контролни канал који се исправно аутентификује не гарантује child који сте тражили.
Та разлика је важна током делимичног квара. IKE SA може бити здрав док child пада на неусклађености селектора или предлогу који партнер не прихвата. Два објекта падају из различитих разлога, па заслужују одвојена посматрања.
Одаберите акцију покретања намерно
У swanctl.conf start_action child-а одлучује о понашању након учитавања. Подразумевана вредност none оставља дефиницију за ручно иницирање или коришћење као responder. start је позива, док trap оставља политику која преговара чим се појави одговарајући саобраћај.
Дакле, и „учитавање никада не покреће тунел” и „учитавање увек покреће један” су погрешни. Акција је део профила и треба да одговара улози партнера. Два гејтвеја која оба чекају другу страну производе тишину, не тунел.
Уз trap саобраћај мора да одговара селекторима, па неповезан пинг неће ништа пробудити. Уз start адреса партнера мора бити употребљива и обе стране морају да се сложе око аутентификације и предлога. Ниједна од акција не замењује проверу тих услова.
Опоравак је одвојена политика
Покретање није keepalive. Откривање мртвог партнера, експлицитно затварање од стране партнера, обнављање кључева и поновно покретање процеса различити су догађаји животног циклуса са сопственим подешавањима. Конфигуришите сваки намерно уместо да очекујете да ће почетно покретање покрити све.
Тунел који се подигне при покретању и умре сат касније је питање опоравка. Политика покретања је одрадила свој посао и затим престала да буде важна. Погледајте DPD и подешавања обнављања кључева пре него што окривите почетно преговарање.
Замена учитаних дефиниција је засебна операција. Нестандардне политике покретања имају документоване инверзне акције, а поновно учитавање је оперативна промена, а не претпоставка да је свака асоцијација ажурирана на месту. Изводите поновна учитавања у фазама, где је поновно повезивање прихватљиво. Задржите стару конфигурацију док се нова не докаже.
Проверите шта постоји пре него што отклањате грешке у рутирању
Изведите три посматрања редом: учитане дефиниције, активне IKE SA и child уносе. Сваки одговор сужава следеће питање. Прескочите корак и на крају ћете отклањати грешке у слоју који никада није изграђен.
Почните са оним што је учитано и са оним што је заиста успостављено:
swanctl --list-conns
swanctl --list-sas
Ако child недостаје док је профил исправан, иницирајте га по имену и посматрајте шта се дешава. Излаз обично каже да ли је родитељ први подигнут.
swanctl --initiate --child hq-lan
Активна CHILD SA није циљна линија. Правила прослеђивања, руте и сопствена ауторизација апликације још морају да се поклопе. Животни циклус одговара шта је преговарано; не може да одлучи ко сме да користи услугу.