Екі ұялы нысан, кіріс порттары жоқ: жұмыс істейтін хаб құрыңыз
Екі нысанның ешқайсысы кіріс IPv4 қосылымын қабылдамаса, екеуіне де қолжетімді хабқа қосылуды бастауға рұқсат етіңіз. Маршруттау, жіберу және қосалқы жол қадамдарын осы ретпен орындаңыз.
Ұялы арналардағы екі нысан екі бағытта да бірдей мәселеге тап болады: ешқайсысы сұралмаған IPv4 қосылымын қабылдай алмайды, сондықтан ешқайсысы тікелей туннельде сервер рөлін ойнай алмайды. Жұмыс істейтін архитектура ортаға қолжетімді үшінші тарапты қояды: әр нысан сыртқа қоңырау шалады, ал орта тек сіз мақұлдаған трафикті жібереді. Бұл орта сіз басқаратын маршрутизатор немесе теңдестерді таныстыратын өнім болуы мүмкін, және бұл екеуі бір нәрсе емес. Төмендегі қадамдар келесісі оған тәуелді болмас бұрын әрқайсысы дәлел беретіндей реттелген.
Ешбір нысанға қоңырау шалу мүмкін емес, сондықтан екеуі де сыртқа қоңырау шалуы керек
Шектеуді оның айналасында жобалаудан бұрын растаңыз. Егер оператор WAN интерфейсіне жеке мекенжай берсе, нысанның өз маршрутизаторындағы ешбір портты жіберу оны қолжетімді етпейді, себебі аударма жоғарыда болады. Сол арнада жария IPv6 мекенжайы болуы мүмкін және жобаны мүлдем өзгертеді, сондықтан тексеру екі отбасын да қамтиды. Жауапты әр нысан үшін жазып қойыңыз, себебі екеуі бір операторды бөліссе де шектеулері бірдей бола бермейді.
Кәдімгі ұялы жағдай оператордың аударылған ауқымынан алынған мекенжайға және ол арқылы өтетін әдепкі маршрутқа ұқсайды. Бұл түзетуге тиіс ақау емес; бұл хабтың болу себебі. Сіз нысан алдын ала сөйлемей-ақ үшінші тарап жете алатын кез келген мекенжайды іздейсіз.
Алдыңызда тұрған нысанның мекенжай мәселесіне екі пәрмен жауап береді. Оларды нысан маршрутизаторында іске қосыңыз, оның артындағы ноутбукта емес:
ip -4 addr show scope global
ip -6 addr show scope globalТеңдестерді кім таныстырады және пакеттерді кім тасиды
Таныстыру мен тасымалдау — өнімдер шекараны көрсетпей біріктіретін жеке жұмыстар. Кездесу механизмі екі теңдеске кандидат жол табуға көмектеседі; тікелей жол болмаса, реле олардың пакеттерін тасиды. Теңдестерді таныстыратын қызмет сатып алу сізге маршрутизатор бермейді, және бұл айырмашылық жобаға хаб керек пе, жоқ па екенін шешеді.
Өтудің өз сөздігі бар, және сөздер кепілдік емес, рөлдерді сипаттайды. ICE сипаттамасы кандидаттар мен қосылым тексерулерін сипаттайды, STUN мекенжай аудармасы туралы білудің бір жолын сипаттайды, ал TURN оны іске асыратын қосымшалар үшін реле арқылы тасымалдауды сипаттайды. Бұл механизмдердің ешқайсысы әдеттегі шлюзде көрінбейді, себебі сіз оны ашу мекенжайына бағыттадыңыз. Өтуді өнім мүмкіндігі ретінде тексеріңіз және сынақ керісін көрсетпейінше релені болжаңыз.
Әр нысанға бір маршрут, оны теңдес иеленеді
Хабқа әр нысан үшін бір туннель, әрқайсысының артында жеке LAN префиксі және әр префикс үшін оның иесін атайтын маршрут керек. Мысалда хаб 10.61.0.1, A нысаны LAN 10.60.10.0/24-пен 10.61.0.11, ал B нысаны LAN 10.60.20.0/24-пен 10.61.0.12 болып табылады. Төмендегі әр маршрут туннель интерфейсіне емес, префиксті иеленетін теңдеске сілтейді:
ip route add 10.60.10.0/24 via 10.61.0.11 dev wg0
ip route add 10.60.20.0/24 via 10.61.0.12 dev wg0
sysctl net.ipv4.ip_forward
ip route get 10.60.20.55 from 10.60.10.77Жіберу қосулы болуы керек, әйтпесе пакеттер хабта себебін көрсететін қатесіз тоқтайды. Соңғы пәрмен нақты сұраққа жауап береді, себебі ол дереккөзді іздеуге қоса отырып, пакеттің A нысанының LAN-ынан B нысанының LAN-ына қай жолмен жүретінін сұрайды. Туннель интерфейсін атайтын іздеуді дәлел деп қабылдаңыз, ал әдепкі маршрутқа түсетін іздеуді жұмбақ емес, жетіспейтін маршрут деп қабылдаңыз. Содан кейін транзитті әдейі шектеңіз, себебі әр теңдес арасында жіберетін хаб екі нысанды тегіс желіге айналдырады және сіз бар деп ойлаған қатынау саясаты қолданылудан қалады.
Шифрлау қай жерде аяқталатынын да шешіңіз. Хаб туннельдің екі ұшын да ұстап тұрса, сол машинаның операторы мен оның жұмыс жүктемесі сенім мен қолжетімділік моделіне қосылады, ал оның өткізу қабілеті жолдың бөлігіне айналады.
Әр бейнелеуді оператор арқылы тірі ұстаңыз
Әр нысан өз туннелін бастайды және әрқайсысы аударма бейнелеуін тірі ұстауы керек, әйтпесе оператор оны ұмытып кетеді. Бастаушы жақтағы тірілік хабарламасы сол бейнелеуді қол алысулар арасында сақтайды. Рұқсат етілген префикстерді хаб мекенжайымен және алыс LAN-мен шектеңіз, бұзылған теңдес өзіне тиесілі емес префиксті талап ете алмас үшін:
[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25Блокты екінші нысанда оның өз алыс префиксімен қайталаңыз және бүкіл туннель ауқымына рұқсат беру құлшынысына қарсы тұрыңыз. Тоқтап, жаңа дереккөз портынан жалғасатын қол алысу — мерзімі біткен бейнелеудің қолтаңбасы, ал қол алысудың уақыт белгілері бұның болғанының дәлелі. Оператордың уақыт шегінен қысқа аралық мерзімнің бітуін кейін түзетудің орнына алдын алады. Оператор аударма тәртібін өзгертсе, бұл уақыттар да онымен бірге өзгеретінін күтіңіз.
Екі бағытты дәлелдеңіз, содан кейін қалпына келуді дәлелдеңіз
Тексеру бағытты, сондықтан A-дан B-ға ping жобаның жартысын дәлелдейді, қайтару жолы туралы ештеңе айтпайды. Хабта сол дереккөзді ескеретін іздеумен жауап жолын тексеріңіз, содан кейін сынақты екінші жақтан қайталаңыз. Жаңа қол алысулар да дәлелге жатады, себебі бір сағат бос тұрған туннель ескі бейнелеуді сынап жатқан болуы мүмкін:
wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55Содан кейін қалаған табыс емес, күткен істен шығуды сынаңыз. Бір нысанның арнасын қайта іске қосыңыз және туннельдің екі ұшына адам қол тигізбей қайтатынын растаңыз, себебі оператордағы әр өзгерістен кейін оператор қажет болатын жоба аяқталмаған. Негізгі жолды, бар болса IPv6 баламасын және хаб қолжетімсіз болғандағы тәртіпті жазып қойыңыз. Хаб енді сіздің қолжетімділік моделіңіздің бөлігі, сондықтан оны үзіліс кезінде ашуға емес, жазып қоюға тиіссіз.