Неге толық туннель маршруты оны тасымалдайтын серверді кесіп тастайды
Туннель арқылы өтетін әдепкі маршрут оны тасымалдайтын сыртқы пакеттерді де ұстап алады. Соңғы нүктені хост маршрутымен бекітіп, сервер жауаптарын одан тыс ұстаңыз.
Толық туннельді қосыңыз, енді әрбір межелі орын VPN интерфейсіне тиесілі, оны аяқтайтын машина да қоса. Туннельді тасымалдайтын сыртқы пакеттер сол машинаға адрестелген, сондықтан маршрут соңында өзі тәуелді транспортты тұтынып бітеді. Бір қосымша нақты маршрут мұны шешеді, ал себебін түсінуге тұрарлық. Сол себеп болмаса, келесі қайта құру ақауды қайта әкеледі.
Өз транспортын жейтін маршрут
Инкапсуляция әр пакетті екінші тақырыпқа орайды. Сыртқы тақырып жергілікті физикалық мекенжайдан сервердің жария мекенжайына бағытталған және қандай да бір туннель пайда болмас бұрын физикалық буыннан өтуі керек.
Енді сол жария мекенжай үшін іздеу туннельді таңдасын. Пакетті жіберу үшін машина оны инкапсуляциялауы керек, бұл сол мекенжайға маршрутты талап етеді, ал ол туннельді қайтарады. Клиенттер мұны екі жолдың бірімен шешеді. Абайлағышы әдепкі маршрутты орнатудан бас тартып, қате туралы хабарлайды, ал абайсызырағы сәттілік туралы хабарлап, содан кейін ештеңе жылжытпайды. Тыныш сәтсіздік — бір түстен кейінгі уақытты жоятын нәрсе.
Ең ұзын префикстің сәйкестігі кез келген метрикаға қарамай-ақ іздеуді шешеді, сондықтан бір мекенжайлы маршрут машинадағы әрбір әдепкі маршруттан оздырады. Жөндеудің артындағы бүкіл механизм осы.
Әдепкіден бұрын ерекшелікті орнатыңыз
Сервер үшін бір мекенжайлы маршрут жасаңыз, физикалық шлюзді келесі секіру ретінде алып, әдепкі маршрут жылжымас бұрын. Тәртіп маңызды: кейін орнату — теріп жатқанда сынған туннельмен өмір сүру деген сөз.
Клиенттердің көбісі мұны сұраусыз жасайды. OpenVPN қашықтағы мекенжайды іздеп, әдепкі шлюзді қайта жазбас бұрын оны бекітеді, ал оның route-delay опциясы осы реттілік жарысатын платформалар үшін бар. wg-quick мүлде басқа жол таңдайды, пакеттерді белгілеп, саясат ережесіне жүгіну арқылы ерекшелік қосудың орнына. Әртүрлі механизмдер, бір талап: сыртқы пакет өзі жасаған туннельден құтылуы керек.
ip route add 203.0.113.10/32 via 192.168.1.1 dev eth0
ip route get 203.0.113.10
Іздеу шығысы — қабылдау тесті. Ол физикалық құрылғыны және физикалық келесі секіруді атауы керек. Сол жауапта туннель құрылғысы болуы ерекшеліктің жоқтығын немесе оны басып тастайтын нәрсенің артына қойылғанын білдіреді.
Сервердегі айна бейнесі
Сол тұзақ арғы жақта, керісінше күтеді. Серверге басқа туннель арқылы әдепкі маршрут беріңіз немесе клиенттердің жария мекенжайларын қамтитын маршрутты оған итеріп жіберіңіз, сонда оның жауаптары қате бағыт әдетін игереді.
Қосылып, сұраныс жіберетін клиентті елестетіңіз. Жауап сол клиенттің жария мекенжайына адрестелген, ол енді туннель маршрутына сәйкес келеді, сондықтан ол басқа интерфейстен шығып, клиент ешқашан термеген көзді алып жүреді. Клиент бұл пакетті қабылдап, бәрібір тастай алады, өйткені оны жіберген сұраныспен ештеңе байланыстырмайды. Клиенттің күту уақытынан емес, сервердің маршруттау шешімінен бастаңыз, өйткені екеуінің тек біреуі ғана нақты таңдауды көрсетеді.
ip route get 198.51.100.44 from 10.90.0.1
ip rule show
sudo tcpdump -ni any host 198.51.100.44
Үш жөндеу бар және олар тең емес. Қызметті физикалық мекенжайға бекіту немесе көзді аудару — екеуі де маршруттау шешімін түзетудің орнына жасырады. Туннель пулы үшін жауап трафигін арнайы кесте арқылы жіберу себепті түзетеді, ал қалған екеуі маршруттау дизайны қатып тұрғанда ғана қолайлы.
Туннель үнемі ұрлап кететін ерекшеліктер
Бірнеше жұмыс туннель әдепкі маршрутты иемденіп тұрса да ашық интернетті қажет етеді, және әрқайсысына өз ерекшелігі керек. Динамикалық DNS жаңартқышы әдетте бірінші бұзылады.
Ол провайдерді шешіп, қосылыс ашады және өз пакеттерінің мекенжайы секунд бұрын өзгерген туннель арқылы жүргенін көреді, сондықтан жаңарту сәтсіз болады немесе қате мекенжайды жариялайды. Үш шығу жолы: провайдерді физикалық шлюз арқылы хост маршрутымен бекітіңіз, жаңартуды туннель көтерілмес бұрын іске қосыңыз немесе жаңартқышқа туннель ешқашан тимейтін саясат кестесін беріңіз. Уақыт синхрондауы шешкішсіз жүктелетін құрылғыда дәл осындай әсерге ұшырайды, ал сертификат тексеру соңғы нүктелері де сол себепті тізімге кіреді.
Ешкім жазбаған ерекшелік — келесі қайта құру тыныш тастап кететін ерекшелік.
Мұны қайта қосылғаннан кейін дәлелдеңіз, бұрын емес
Үш межелі орынды тексеріңіз, біреуін емес: соңғы нүкте, туннельдің артындағы жеке мекенжай және одан әрідегі жария мекенжай. Бір сәтті іздеу қалған екеуі туралы ештеңе дерлік айтпайды.
ip route get 203.0.113.10
traceroute -n 203.0.113.10
ip route get 10.90.0.5
ip route get 1.1.1.1
Содан кейін қосылысты қайта іске қосыңыз, өйткені қайта қосылу кезінде кестесін қайта құратын клиент қолмен терген маршрутты тастайды. Kill switch қосулы болса, соңғы нүктеге рұқсат бар-жоғын тексеріңіз, әйтпесе желі өзгергеннен кейін туннель қайта алмайды және симптом үзіліс сияқты көрінеді. Ерекшелікті shell тарихында емес, профильде немесе unit файлында сақтаңыз, қайта қосу оны өшірудің орнына қайта жасасын.