Бөлінген туннель — ережелер жиынтығы ретінде көрсетілген маршруттау саясаты, және клиент — оларды орнататын нәрсе ғана. Бөлу екі жерде жүреді: әр пакетке жол таңдайтын сәйкестендіру ережелері және кесте не десе де қолданбаны бір интерфейсте ұстайтын байланыстырулар. Сіздің клиентіңіз қай механизмге сүйенетіні адамдар хабарлайтын таңғажайыптардың көбін түсіндіреді.

Бір жолда айтуға болатын саясатты тексеруге болады. Жылдамырақ шолу деп сипатталған саясат олай емес, және сұраныс дұрыс емес бағытқа кеткенде қай ережені өзгерту керегін айтпайды.

Клиент ережелерді орнатады, таңдауды ядро жасайды

Туннель көтерілгенде, клиент басқа интерфейстеріңіз пайдаланатын сол кестеге маршруттарды және жиі саясат ережелерін қосады. Содан кейін әр пакет өз межелісін әрбір үміткер префикспен салыстырып, ең нақты сәйкестікті сақтайтын іздеуге жетеді, ал басымдық әртүрлі кестелерге сілтейтін ережелер арасындағы теңдікті шешеді. Бұл іздеуде пакеттің сақтық көшірме жұмысынан емес, браузер қойындысынан келгенін ештеңе білмейді. Жеңген ереже жолды белгілейтін ереже, және оны өзгеріске дейін де, кейін де оқуға болады.

Сондықтан бөлінген туннель ерікті болып көрінуі мүмкін. Бір қолданбадағы екі межелі екі түрлі жолмен жүруі мүмкін, тек бір префикстің екіншісінен тар болуына байланысты.

Дәл сол таңдау әр платформада бар, бірақ атаулары өзгереді. 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'

Алғашқы екі жауапты бірге оқыңыз, өйткені әрқайсысында аталған интерфейс бөлудің сол межеліні туннельге қойғанын көрсетеді. Шешуші сұранысы ішкі атауға қай сервер жауап бергенін көрсетеді, ал соңғы команда туннель құрылғысының сұранысты жалпы таси алатынын дәлелдейді. Бірінші жол сәтті болғанда екінші жолдағы сәтсіздік саясаттың өзіне айтылғанды дәл орындап жатқанын білдіреді.

Жиынды қайта қосылғаннан кейін және желі өзгергеннен кейін қайталаңыз. Жалдауды жаңарту мен интерфейстердің ауысуы — бөлу өзі үшін салынған ниетке сәйкес келуін тоқтататын жерлер, ал әр іске қосудың сақталған шығысы ауытқуды айқын етеді.

Қатысты мақалалар