Туннель ұялы деректерде көтеріледі, содан кейін үйде қосылуда күйінде қалады: профиль де, peer кілті де сол, арасында конфигурация өзгерісі жоқ. Айырмашылық жолда: LAN ішінен маршрутизатордың жария мекенжайына кететін сұрау интернеттен келетін сұраумен бірдей сапар емес. Үй шлюздерінің көбісі қайтару жолын не мүлде іске асырмайды, не тек белгілі бір протоколдар үшін іске асырады. Бұл кілтте ештеңе өзгермесе де, симптомды бұзылған кілтке ұқсатады. Кілтке, портты бағыттауға немесе клиент профиліне тимес бұрын қай жолдың істен шыққанын анықтаңыз.

Бір мекенжай, екі түрлі жол

Сырттан пакет маршрутизатордың жария мекенжайына жетеді, ал портты бағыттау ережесі оны ішкі хосттағы WireGuard тыңдаушысына береді. Іштен клиент сол жария мекенжайды шақырады, сондықтан пакет клиенттен шығып, маршрутизаторға жетеді және LAN жаққа қайта бұрылуы керек. Екі жол дәл сол қайта бұру кезінде ажырайды, өйткені маршрутизатор бір интерфейстен шығып, қайта кіретін ағынды түрлендіруі керек. Көптеген іске асырулар оны түрлендірудің орнына тастайды, сонда клиент ешқашан жіберілмеген қол алысуды күтеді.

Бұл мінез-құлық әдетте NAT loopback немесе hairpinning деп аталады және ол WireGuard-қа емес, маршрутизаторға тән; RFC 4787 шлюз қолдай алатын немесе қолдамайтын түрлендіру жағдайларын баяндайды. WireGuard өзі жол туралы пікір білдірмейді, өйткені ол тек өз интерфейсіне жеткен пакеттерді көреді. Маршрутизатор ағынды тастағанда, демон ешқашан ештеңе алмайды, клиент қол алысу уақытының біткенін хабарлайды, ал сервер журналы бос қалады. Бос журнал сондықтан пакеттің қайда тоқтағанына нұсқау, сервердің істен шыққанына дәлел емес. Қайта орнатудың ештеңені өзгертпейтінінің себебі де сол.

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

Бірдеңені өзгертуден бұрын оны қайта шығарыңыз

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

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

wg show wg0 endpoints
dig +short vpn.example.net A
resolvectl query vpn.example.net

Бірінші команда интерфейстің дәл қазір пайдаланып отырған соңғы нүктесін хабарлайды, қалған екеуі атаудың осы машинада неге шешілетінін көрсетеді. Сервермен бір желіде отырып жария мекенжайды шақырған клиент hairpin жолын пайдаланып отыр. LAN мекенжайын шақырған клиент олай істемейді, ал ондағы ақау басқа тергеуге жатады. Осы айырмашылық келесі бөлімнің жалпы қолданылатынын шешеді.

Жақын серверге жетудің қолдау көрсетілген жолдары

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

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

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

ApproachWhat it depends onWhere it fails
Split-horizon nameControl of the internal DNS answerClients that resolve through a server outside the zone
Router reflectionGateway support for hairpin translationRouters that drop the flow silently
Private address in the profileNothing beyond the LANEvery network except the one at home

Профильді үйден тыс жерде пайдалануға жарамды ұстаңыз

Қай жолды таңдасаңыз да, сәйкестендіру тексеруін тыныш қалдырыңыз. Соңғы нүкте мекенжайы peer сәйкестігі емес, ал мекенжай өзгерісі кездейсоқ жауап беретін байланыссыз жария кілтті қабылдауды ешқашан ақтамайды. WireGuard кілт арқылы аутентификациялайды, сондықтан қате хост күтпеген нәрсеге қатынау берудің орнына қол алысуда сәтсіздікке ұшырайды.

Егер жария мекенжай жылжыса, атауды пайдалы ұстайтын нәрсе — динамикалық DNS, ал клиенттің жаңарту мінез-құлқы өзгерістің қаншалықты тез жететінін шешеді. Мұны мекенжай өзгергеннен кейін сырттан сынаңыз, өйткені LAN жағдайы оны растай алмайды. Ескі жауапты жазбаның өмір сүру мерзімінен ұзақ кэштелетін шешушіге назар аударыңыз. Әлі де алдыңғы мекенжайға нұсқайтын атау құлаған серверге дәл ұқсайды.

Профиль қай атауды пайдаланатынын және шекараның әр жағында неге шешілетінін жазып қойыңыз. Ешкім тіркемеген маршрутизатор функциясына тәуелді профиль — келесі прошивка жаңартуын күтіп тұрған қолдау қоңырауы. Жазба сонымен қатар келесі адамға ішкі ақаудың белгілі hairpin жағдайы ма әлде жаңа нәрсе ме екенін айтады.

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