Туннель аркылуу демейки маршрут кошуңуз, ошондо туннелдин өз пакеттери да ага ээрчийт. Андан кийин таблицада өзүн-өзү жеңген эреже болот. Серверге шифрленген туташуу өзү түзүүгө аракет кылган туташуунун ичинен өтүүгө аракет кылат.

Бул илмекти эки механизм болтурбайт. Бири маршруттоо таблицасында көрүнөт, экинчиси колдонмонун ичинде жашайт.

Ички жана тышкы трафик — ар башка чечимдер

Колдонмо пакети виртуалдык интерфейске кирип, инкапсуляцияланат. Натыйжа — сервердин ачык дарегине адрестелген жаңы пакет. Бул пакетке физикалык тармакта маршрут керек, анткени анын эч бир бөлүгү туннелге кирбеши керек.

Экөө тең маршруттоо чечимдери, жана биринчиси гана туннелге таандык. Клиент серверди да камтыган демейки маршрут орноткондо, тышкы пакет да кармалат.

Симптомдор дароо жана толук. Кол алышуу аяктайт, анан эч нерсе агып өтпөйт, же маршрут орнотулган учурда эле байланыш үзүлөт. Эки учурда тең keepalive мындан ары чыга албайт.

Биринчи вариант: акыркы чекит үчүн хост маршруту

Түз ыкма сервердин дареги үчүн баштапкы шлюз аркылуу маршрут кошот. Бул бир сапты алат. Таблицаны окуган ар ким аны көрөт. Аны өзгөртүү жазуусунда түшүндүрүү да оңой.

Анын алсыздыгы астындагы жол өзгөргөндө көрүнөт. Сакталган маршрут эски тармактан шлюз менен интерфейсти атайт. Wi-Fi алмашкандан кийин ал шлюз болбошу мүмкүн, ал эми маршрут артта калат, туура көрүнөт жана эч нерсе кылбайт.

# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7

# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0

# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7

Хост аталышы муну кыйындатат. Эгер акыркы чекит бир нече дарекке чечилген аталыш болсо, өзгөчөлүк иш жүзүндө колдонулган даректи камтышы керек. Кийинки издөө маршрут эч качан камтыбаган нерсени кайтарышы мүмкүн.

Экинчи вариант: сокетти коргоо

Башка ыкма маршруттоо таблицасына эч качан тийбейт. Клиент туннелди ташыган сокетти белгилейт же коргойт, ошондуктан операциялык система саясат боюнча ошол сокеттин трафигин туннелден тышкары жөнөтөт. Android бул механизмди VPN колдонмолоруна түз берет. Десктоп клиенттер эквиваленттерин брандмауэр белгилери же түзмөккө байлоо чакырыктары менен ишке ашырышат.

Артыкчылыгы — өзгөчөлүк сакталган шлюзга эмес, туташууга ээрчийт. Тармак өзгөрүүсү астындагы жолду кайра жазат, жана корголгон сокет аны менен бирге жылат, анткени ал эч качан дарекке бекитилген эмес. Маршрут таблицасы таза бойдон калат.

Баасы — көрүнүү. Маршруттоо таблицасында өзгөчөлүктү эч нерсе көрсөтпөйт, ошондуктан хост маршрутун издеген рецензент эч нерсе таппайт жана долбоор кооптуу деп жыйынтык чыгарышы мүмкүн. Коргоо клиенттин кодунда жана ошол код орноткон саясат эрежелеринде жашайт.

Экөөнүн ортосунда тандоо

Клиент колдосо, сокет деңгээлиндеги механизмди тандаңыз, анткени ал бекитилген маршрутту бузган тармак өзгөрүүлөрүнө туруштук берет. Өзгөчөлүк башка куралдарга көрүнүшү керек болсо же клиент жакшыраак нерсе сунуштабаса, хост маршрутун тандаңыз.

Эч бир механизм сервер дарегинин таптакыр жеткиликтүү болушу зарылдыгын жок кылбайт. Жеке шлюздун ачык угуучу дареги бар, жана дал ошол дарек туннелден тышкары калышы керек. Анын артындагы ички тармактар туннель пайда болгондон кийин гана жеткиликтүү болот.

Кайсынысын тандасаңыз да, аны туннелге ээ болгон компоненттин жанында кармаңыз. Кол менен кошулган адашкан хост маршруту кийинки тармакка чейин иштейт, анан эртеңки табышмактуу тыныгууга айланат.

Тектеш макалалар