ESP преноси саобраћај у IPsec VPN-у, а његов runbook почиње једним правилом: прочитајте безбедносну асоцијацију пре него што промените политику. Већина необјашњеног понашања ESP-а своди се на селектор који се није поклопио, режим који је претпостављен уместо прочитан, или бројач који нико није проверио док је слат један ток. Три корака испод утврђују шта шта преноси, доказују да један ток то користи и остављају враћање које не зависи од памћења. Сваки корак даје једно запажање које вреди записати.

Упознајте поља пре него што их прочитате

ESP ставља заглавље испред заштићених података и привезак иза њих. Заглавље носи индекс безбедносних параметара који идентификује коју асоцијацију прималац треба да користи, редни број за откривање понављања и допуну у привеску која држи корисни терет поравнат за шифру. Поље следећег заглавља у привеску каже шта је заштићени садржај и тако прималац зна шта је декапсулирао.

Режим мења оно што стоји унутар те заштите. У тунелском режиму заштићени материјал је потпун унутрашњи IP пакет, а ново спољашње заглавље га преноси између крајњих тачака. У транспортном режиму заштита обавија корисни терет горњег слоја постојећег пакета, па нема другог IP заглавља за отварање. Који је режим у употреби је чињеница конфигурације, а не ствар тумачења. Прочитајте је из уноса стања уместо да је изводите из дијаграма.

Ниједан режим не скрива спољашње адресирање које мора да достави пакет. То је својство дизајна, а не недостатак, и зато посматрач у средини и даље види које две адресе разговарају чак и када је корисни терет непрозиран.

Први корак: прочитајте стање, па политику

Уноси стања држе кључеве и бројаче; уноси политике држе селекторе који одлучују шта их сме користити. На Linux-у су оба видљива без хватања пакета, а читање у том реду држи два питања одвојеним.

ip xfrm state
ip xfrm policy

У излазу стања проверите извор и одредиште асоцијације, режим и то показује ли инкапсулација UDP портове. Ти портови значе да се користи NAT пролаз, што мења шта средњи заштитни зид мора да дозволи, али не и који селектори или кључеви важе на крајњим тачкама.

Затим прочитајте селекторе у политици. Селектор који наводи ужи префикс од саобраћаја који тестирате најчешћи је разлог зашто се чини да радни тунел игнорише ток, а селектор за погрешан протокол даје исту тишину.

FieldWhere it appearsWhat it decides
Security parameter indexESP header, and the receiving state entryWhich association and keys the receiver applies
Sequence numberESP headerReplay detection for that association
Next headerESP trailerWhat the decapsulated payload contains
Inner IP headerInside tunnel-mode payload onlyThe original source and destination the endpoints act on
Traffic selectorsPolicy, not the packetWhich local traffic is allowed to use the association

Алати произвођача исписују исте информације у прегледнијем облику. ipsec statusall на strongSwan-у наводи подређене асоцијације, њихове селекторе и њихове бројаче бајтова, што је често брже од читања сировог xfrm излаза када већ знате коју подређену асоцијацију гледати.

Други корак: докажите да један ток помера бројаче

Бројачи имају смисла само ако знате шта је требало да их помери, зато одаберите извор и одредиште које селектор сигурно покрива и пошаљите један безопасан захтев. Затим поново прочитајте исти унос и упоредите.

ip -s xfrm state
tcpdump -ni any esp

Два читања причају различите приче. Пакети који расту на излазној страни али никада на улазној упућују на проблем са прослеђивањем или повратним путем, а не са кључем, јер је пакет инкапсулиран и отишао. Ако се ниједан бројач не помера, саобраћај никада није ни одговарао политици, а селектор је место где треба гледати.

Хватање у истом кораку потврђује инкапсулацију на жици, укључујући то да ли су спољашњи пакети ESP или ESP инкапсулиран у UDP. Оно вам такође показује адресе које су заиста пренеле ток, а оне се понекад разликују од оних у конфигурацији коју сте читали.

Трећи корак: промените једну ствар и задржите враћање

Запишите извор, одредиште, режим, селекторе и бројаче асоцијације пре него што било шта уредите. Ако промена погорша ствари, тај запис вам омогућава да вратите претходно стање уместо да радну конфигурацију поново градите из нагађања. Запис траје минут и штеди сат касније. То је и једини артефакт који надживи особу која је направила промену.

Промените један селектор или један параметар, поново га учитајте и поновите други корак на истом току. Брисање асоцијације руши сваки ток који је користи, па су циљана измена и поновно учитавање подређене асоцијације готово увек бољи од пражњења стања да видите шта ће се догодити.

Враћање након измене селектора значи обновити претходну политику и поново је учитати, уз напомену да партнеру може требати одговарајућа промена ако се селектор преговара, а није локалан. Запишите ту зависност док је свежа, јер је напола обновљен пар теже разумети од било ког од два крајња стања.

На крају, држите обим искреним. Ток ESP-а који тече доказује да два пролаза штите и достављају сегмент, и не говори ништа о томе да ли апликација изнад аутентификује своје кориснике или шифрује оно што чува. То су одвојене контроле са одвојеним доказима, а runbook је завршен тек када следећа особа може да га понови из белешки.

Повезани чланци