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

Таблица — талапкерлердин жыйындысы, чечим эмес

Ар бир жазуу префиксти жана ага дал келген трафик менен эмне кылууну сүрөттөйт: аны интерфейске жөнөтүү, кийинки секирүүгө өткөрүү же таштоо. Ошол тизмеде эч нерсе максат боюнча иреттелген эмес, жана адамга эң конкреттүү көрүнгөн жазуу ар дайым ядро тандаган жазуу боло бербейт, анткени тандоо эң узун префикс дал келүүсүнө, ал эми бирдей префикстер арасында метрикага таянат.

Ошондуктан биринчи кадам — тизмени окуунун ордуна ядродон суроо. Издөө буйругу багыт үчүн жооп берет, ал эми булак аргументи менен ал жөнөтүлгөн же байланган туташуу колдоно турган так жуп үчүн жооп берет:

ip route get 198.51.100.10
ip route get 198.51.100.10 from 10.80.0.25
ip -6 route get 2001:db8:10::40

Жогорудагы ар бир дарек — документтин мисалы. Маселе жооптун формасында: интерфейс, тандалган булак дареги, шлюз жана жазуу келген таблица. Эгер бул чыгым күткөн интерфейскө дал келбесе, сиз көйгөйдү бир буйрук менен локалдаштырдыңыз, жана толук таблицаны окуунун эч бир өлчөмү кайсы талапкер жеңгенин айтмак эмес.

Издөө адегенде эрежелерден, анан таблицалардан өтөт

Linux'то чечим эки баскычта. Саясат эрежелери артыкчылык тартибинде бааланат, жана дал келген биринчи эреже кайрылуучу таблицаны атайт; андан кийин ошол таблица эң узун префикс дал келүүсүн аткарат. Эреже булак, багыт, firewall белгиси, интерфейс же алардын айкалышы боюнча дал келиши мүмкүн, ошондуктан негизги таблицанын дампы толук так жана сиз иликтеп жаткан пакет үчүн толук маанисиз болушу мүмкүн.

ip rule show
ip route show table all | head -40
ip route show table 100

Эгер эреже VPN пулуңуздан трафикти 100-таблицага жөнөтсө, анда маанилүүсү — 100-таблица, жана негизги таблица — тузак. Бул ошондой эле маршрутизатордогу булакка негизделген маршруттоонун механизми: бир эле багыттын пакет кайдан келгенине жараша эки башка жообу болушу мүмкүн, жана булак аргументи бар издөө гана кайсынысы колдонулаарын ачат.

IPv6нын өз эрежелери жана таблицалары бар. Эки үй-бүлөнү тең иштеткен долбоорго эки издөө тең керек, жана иштеген IPv4 жообу кош стектүү кардар артык көрүшү мүмкүн болгон v6 жолу жөнүндө эч нерсе айтпайт.

VPN кардары эмнени орнотот

Кардарлар адатта демейки маршрутту алмаштырышпайт, анткени бул туннелдин өз тышкы жолун бузат. Алар префикс узундугу менен жеңүүчү көбүрөөк конкреттүү нерсени орнотушат: 0.0.0.0/1 жана 128.0.0.0/1 камтыган жарым-демейки жуп — классикалык ыкма, анткени экөө тең 0.0.0.0/0дөн узун префикс жана чогуу бүт мейкиндикти камтыйт. Башкалары конкреттүү жеке префикстерди жана саясат эрежесин орнотушат, кээ бирлери тандалган трафик гана кармалышы үчүн белги кошот.

Ошондуктан "VPN демейки маршрутумду өзгөрткөн жок" — ийгиликсиздиктин далили эмес. Ал чындап эмнени кошконун жана каралып жаткан багыт ошол префикстердин ичинде экенин текшериңиз:

ip route show | grep -E 'tun|wg|ppp|ipsec'
ip route get 10.20.30.40 from 10.80.0.25

Эки жарым маршрутту дампта байкоо кыйын, анткени алар демейкиге окшошпойт. Префиксти кошууну унутуп калган split-tunnel конфигурациясы сиз кууп жүргөн симптомду так жасайт: туннелди колдонушу керек болгон колдонмо анын ордуна жергиликтүү чечип, туташат. Орнотулган префикстерди колдонуучуга чындап керек болгон багыттар менен салыштырыңыз, кокустан текшерген даректер менен эмес. Файл серверин камтыган, бирок анын чечүүчүсүн камтыбаган split-tunnel тизмеси коомдук дарекке чечилип, анан аутентификациядан өтпөгөн туташууну жаратат, бул сырсөз көйгөйүнө окшош, бирок маршрут көйгөйү.

Тышкы маршрут да аман калышы керек

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

Өнөктөштүн дарегин ички багытты текшергендей текшериңиз жана ал туннелге эмес, физикалык интерфейске чечилерин ырастаңыз:

ip route get 203.0.113.10
traceroute -n -m 5 203.0.113.10

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

Маршруттоо чыгымы сизге эмнени айта албайт

Туура издөө ядро пакетти акылга сыярлык жерге жөнөтөрүн билдирет. Бул firewall уруксат берет, IPsec саясаты камтыйт, NAT эрежеси которот же алыскы тарапта кайтуу маршруту бар дегенди билдирбейт. Алардын ар бири кийинки баскыч, жана strongSwanдын өткөрүү боюнча жазуулары пакет эки учта өтүшү керек болгон чынжырды сүрөттөйт.

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

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

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