Белешка о split-tunnel-у која каже „канцеларијски саобраћај иде кроз VPN“ документовала је једну одлуку и имплицирала три друге. На пакетном нивоу табела рутирања бира интерфејс по адреси одредишта; на нивоу имена резолвер бира сервер по упиту, и те две одлуке се доносе независно. Зато исправно документован префикс и даље може дати машину која интерно име решава у јавну адресу, или не решава ништа док рута изгледа савршено.

Два селектора, један покушај везе

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

Ништа не повезује те две одлуке. Приватна зона може да одговори са 10.20.4.11, док табела рутирања шаље 10.20.0.0/16 у тунел, и веза ради. Окрените било коју и она пада на начин који изгледа као друга: исправна DNS политика плус рута која недостаје даје решено име и истек времена, док исправна рута плус јавни резолвер даје адресу која се чисто рутира на погрешно место.

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

Шта белешка само о рути изоставља

Запис само о рути је бескористан за најчешћи квар split-tunnel-а: имена. Корисник пријављује да се интранет не учитава, тунел је подигнут и префикс постоји. Онај ко преузме тикет нема запис који је резолвер требало да одговори, нема начин да разликује погрешан суфикс претраге од блокираног сервера и нема основну линију за поређење.

Друго изостављање је листа изузетака. Дизајн split-tunnel-а одређен је исто толико оним што остаје изван тунела колико и оним што у њега улази, а искључени опсези се обично први ломе, јер конкретнија локална рута или филтер на страни клијента може да надјача намеру без дирања профила.

Треће је далека страна тунела. Клијентска рута само ставља пакет на жицу; мрежни пролаз и даље мора да га проследи и да има пут назад. strongSwan-ов водич за прослеђивање подсећа да су правила прослеђивања и заштитног зида на пролазу део функције, а не део водовода који можете да претпоставите.

Поља која белешку чине извршивом

Један ред по току, а ток је одредиште плус име плус власник. Ово су поља која преживљавају сусрет са стварним инцидентом:

FieldWhy it has to be written down
Destination prefix and address familyThe route is per family; an IPv4 note says nothing about a AAAA answer
Selected tunnel or direct pathNames the decision, not the symptom
Private namespace and resolverWhich domain, which server, which search suffix
Public name pathConfirms public names do not accidentally use the private resolver
Where the rule livesClient profile, server push, OS policy or management tool
Owner and review dateNamespaces change owner more often than routes change

Ред „где живи“ је онај који људи прескачу. Префикс који гурне сервер, рута коју дода профил клијента и рута укуцана у љуску разликују се по томе ко може да их промени и да ли преживљавају поновно повезивање. Без тог поља следећи инжењер не може да каже коју од три гледа.

Један тест по правилу, не по тунелу

Сваки ред захтева две безопасне провере: једну која вежба руту и једну која вежба име. За руту затражите нешто што мора да пређе тунел и потврдите пут, а не доступност, на пример tracert -d 10.20.4.11 на Windows-у или ip route get 10.20.4.11 на Linux-у. За име упитајте приватно име и забележите који је сервер одговорио, користећи resolvectl query files.corp.example или dig files.corp.example према резолверу који белешка наводи.

Додајте и негативно очекивање: шта треба да се догоди када је тунел доле. Искључена апликација на Android или iOS уређају са укљученим блокирањем без VPN-а можда нема никакву везу, а десктоп клијент може да остави исту апликацију да ради док се тунел поново повезује. Записивање предвиђеног одговора претвара „VPN ми је покварио апликацију“ у проверљиву тврдњу.

Чувајте запис уз конфигурацију

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

Када се нешто поквари, упоредите примењену руту и ефективни резолвер са записом пре него што додате још један изузетак. Два од три честа узрока — старо правило именског простора и помоћни процес изван политике апликације — изгледају тачно као квар VPN-а и невидљиви су ако белешка наводи само префиксе.

Пре него што белешку прогласите готовом, потврдите да писмено одговара на ово: који префикс, за коју фамилију адреса; који приватни именски простор, којим резолвером одговорен; која имена намерно остају јавна; где је свако правило конфигурисано и ко га поседује; и једна команда која доказује руту и она која доказује име. Ако нешто од тога недостаје, следећи инцидент ће бити дијагностикован од нуле.

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