Екінші клиентіңіз қосылады, біріншісінің ресурстары шешілмей қалады, ал билетте жұмыс VPN-і жекесін бұзды деп жазылған. Ақау мағынасында ештеңе бұзылған жоқ: екі клиент те өздері жасалған нәрсені істеді, ал машинада тек бір маршруттау кестесі бар. Соқтығыс әр клиент өзіне тиесілі деп санайтын төрт ресурс туралы. Оларды ретімен қарап шығыңыз, сонда түзету әдетте жөндеу емес, дизайн таңдауына айналады.

1-қадам: шығысты қай клиент иеленетінін анықтаңыз

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

ip route get 1.1.1.1
ip route show default
route print

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

Егер екі клиент те бірдей метрикамен бірдей префиксті талап етсе, тоқтаңыз. Ядро біреуін таңдайды, ал екіншісі ештеңе тасымай-ақ қосылған болып көрінеді.

2-қадам: шешуші мен қабаттасатын префикстерді тексеріңіз

DNS — екінші соқтығыс, ол өзіне тән белгі береді: атаулар сәтсіз болады, ал мекенжайлар жұмыс істейді. Әр клиент өз шешушісін таңады, ал келесі сұраулар үшін соңғы жазған жеңеді. Клиенттің параметрлер бетін оқудың орнына шешуші қызметінен әр байланыс үшін нені пайдаланатынын сұраңыз.

resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example

Содан кейін екі желі пайдаланатын жеке префикстерді салыстырыңыз. Егер екі жақ та бір ауқымнан бөлсе, клиент жағындағы ешбір шара оны түзетпейді, өйткені машина қай 10.0.0.0/8 межесі қай туннельге тиесілі екенін айта алмайды. Бір жақты қайта нөмірлеу немесе аудару керек, және бұл конфигурация өзгерту емес, желі иелерімен әңгіме. Қабаттасу — адал жауабы «дизайнды өзгерту керек» болатын жалғыз соқтығыс.

Префикстер қабаттасса, осында тоқтаңыз. Бұл тізімдегі кейінгінің бәрі олар қабаттаспайды деп есептейді.

3-қадам: тұрақты бөлу үлгісін таңдаңыз

Сенімді үлгілер бір маршруттау кестесіне қарсы екі клиентті жүргізуден аулақ болады. екі жеке желіге де жететін split-tunnel саясаты бар бір клиент ең қарапайым, межелер қабаттаспаса және саясат иесі келіссе. Виртуалды машина немесе желілік атау кеңістігі — келесі қадам, өйткені әрқайсысы өз кестесін және өз шешушісін алады.

sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/

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

Бір үлгі таңдап, себебін жазыңыз. Бір қолданба үшін атау кеңістігін қалғандары үшін split-tunnel-мен араластыру бастапқы соқтығысты түзетуге қиынырақ түрде қайта жасайды.

4-қадам: екі желіні де бір сессиядан тексеріңіз

Әр жеке желідегі бір ресурсты қолданба шынымен жұмыс істейтін ортадан сынаңыз, қолданба атау кеңістігінің ішінде жұмыс істесе, өз қабығыңыздан емес. Шығыс интерфейсін, шешілген мекенжайды және жауап кодын бірге тексеріңіз, өйткені үшеуінің біріндегі сәттілік қалғандарындағы сәтсіздікті жасыруы мүмкін. Қайта жүктеуден кейін қайталаңыз, өйткені клиенттердің іске қосылу реті кім жеңетінін шешеді. Дәл осы ретті адамдар жазып алуды ұмытады.

curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40

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

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

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