Како раздвојени тунел одлучује који саобраћај користи VPN
Раздвојени тунел је скуп одлука о рутама и повезивању, а не режим који укључујете. Погледајте како правила по апликацији, префикси, DNS и безбедносни прекидачи делују заједно.
Раздвојени тунел је политика усмеравања изражена скупом правила, и клијент је само оно што их инсталира. Раздвајање се дешава на два места: правила подударања која бирају пут за сваки пакет, и повезивања која држе апликацију на једном интерфејсу, шта год таблица каже. На ком механизму ваш клијент почива, објашњава већину изненађења о којима људи извештавају.
Политику коју можете изразити у једном реду могуће је тестирати. Политика описана као брже прегледање то није, и неће вам рећи које правило променити када захтев крене погрешним путем.
Клијент инсталира правила, језгро доноси избор
Када се тунел подигне, клијент додаје руте и често правила политике у исту таблицу коју користе ваши други интерфејси. Сваки пакет затим стиже до претраге која пореди његово одредиште са сваким кандидатским префиксом и задржава најспецифичније подударање, док приоритет решава једнакости између правила која показују на различите таблице. Ништа у тој претрази не зна да је пакет дошао са картице прегледача, а не из задатка резервне копије. Побеђује правило које одређује пут, и можете га прочитати пре и после промене.
Зато раздвојени тунел може изгледати произвољно. Два одредишта у једној апликацији могу кренути различитим путевима само зато што је један префикс ужи од другог.
Исти избор постоји на свакој платформи, иако се називи мењају. Windows гура одлуку у своју платформу филтера, Android излаже списак дозвољених апликација кроз своју VPN услугу, а macOS причвршћује тунел за уређај који се још покорава таблици усмеравања. Белешке Microsoft-а о усмеравању вреди прочитати за случај Windows-а, а водич написан за једну платформу ретко се преноси непромењен на другу.
Повезивање по апликацији и префикси одредишта су различити алати
Политика одредишта пита куда пакет иде и консултује таблицу рута или правило политике. Политика по апликацији пита која је програма отворила сокет, и платформа држи тај програм на интерфејсу тунела чак и када конкретнија рута показује другде. Друга је јача јер преживљава промене таблице, али покрива само процесе које платформа може да припише. Помоћни процес, уграђени прегледач или услуга која отвара сопствену везу можда неће наследити повезивање које сте претпоставили.
Ниједан од два приступа не преживљава политику засновану на именима без помоћи. Адресе великих сајтова ротирају кроз мреже садржаја, па приковање имена хоста за неколико префикса ствара правило које тихо престаје да се подудара. Политика која мора да прати имена треба компоненту која разуме резолвер, а не статичну руту.
DNS и безбедносни прекидач следе сопствена правила
Разрешавање имена је одвојена одлука од усмеравања пакета, и раздвојени тунел обично жели два резолвера: онај компаније за унутрашња имена, локални за све остало. Клијент може да инсталира DNS поставке по интерфејсу, преда упите посредном резолверу или остави системску подразумевану вредност нетакнутом. Прегледач са сопственим шифрованим резолвером заобилази сва три уређења. Тестирајте упит уместо да претпостављате да је резолвер пратио руту.
Безбедносни прекидач додаје филтер одозго, и тај филтер не разликује увек намерно искључивање од случајног цурења. Неки клијенти блокирају све изван тунела, док други дозвољавају изузеће које политика објављује, зато прочитајте које понашање ваш спроводи пре него што се поуздате у било које од два.
Проверите раздвајање са обе стране
Тестирајте укључени пут и искључени пут одвојено, и процените резултат по имену интерфејса, а не по јавној адреси. Ове наредбе претпостављају Linux домаћин са већ подигнутим тунелским уређајем. Замените 203.0.113.10 одредиштем које ваша политика усмерава унутра, и 198.51.100.25 оним које шаље напоље.
ip route get 203.0.113.10
ip route get 198.51.100.25
resolvectl query intranet.example.com
curl -s --interface tun0 https://example.com -o /dev/null -w '%{http_code}\n'
Читајте прва два одговора заједно, јер интерфејс наведен у сваком од њих показује да ли је раздвајање ставило то одредиште на тунел. Упит резолверу показује који је сервер одговорио на унутрашње име, а последња наредба доказује да тунелски уређај уопште може да носи захтев. Неуспех у другом реду док први успева значи да политика ради управо оно што јој је речено.
Поновите скуп након поновног повезивања и након промене мреже. Обнова закупа и кретање интерфејса су места где раздвајање престаје да одговара намери за коју је грађено, и сачувани излаз сваког покретања чини одступање очигледним.