Туннель көтөрүлгөн, handshake ар эки минут сайын болот, жана аркы тарапта так бир дарек жооп берет. Пирдин туннель дарегине пингдер иштейт; анын артындагы эч нерсе иштебейт. Бирөө интерфейс конфигурациясын окуп, хост префиксин көрүп, маска туура эмес деп жыйынтык чыгарат. Аны /24кө кеңейтүү пингди бир аз убакыт оңдоп, анан башка нерсени бузат. Префикс эч качан себеп болгон эмес, ал эми жетишпеген маршрут маска башкарган маршрут эмес.

Интерфейс префикси чындыгында эмне жаратат

Linuxте интерфейске дарек ыйгаруу ошол префикс үчүн туташкан маршрут жаратат. Хост префиксин ыйгарсаңыз, туташкан маршрут бир даректи камтыйт. /24 ыйгарсаңыз, ал 256 даректи камтыйт, жана алардын ар бири эми ошол байланыш аркылуу жеткиликтүү деп эсептелет.

ip -4 addr show dev wg0
ip -4 route show dev wg0
ip route get 10.80.7.1

Хост префикси чекиттен чекитке туннель үчүн толук кадимки тандоо, анткени аркы учунда так бир пир бар. Үчүнчү команда колдонуучунун суроосуна жооп берет: ядро ошол барар жер үчүн кайсы интерфейсти колдоноорун айтат, жана эч кандай маршрут дал келбесе, эч кандай пайдалуу нерсе көрсөтпөйт.

Бул симптомдун толук түшүндүрмөсү. Бир дарек жооп берет, анткени ага туташкан маршрут бар, же пирдин уруксат берилген тизмеси аны кокустан камтыйт. Калгандарынын баарында маршрут жок жана WireGuard катышканга чейин эле ыргытылат. Туннель ушул убакыттын ичинде соо, ошондуктан handshake эсептегичи дагы эле ишенимдүү көрүнөт.

AllowedIPs — бир ат астында эки эреже

WireGuardтагы ар бир пирге уруксат берилген тизме бир убакта эки иш аткарат, ал эми конфигурация синтаксиси аларды бирдей көрсөтөт. Кирүүдө пир кайсы баштапкы даректерди сунуштай аларын уруксат кылат. Чыгууда эң так дал келүүнү таап, пакет кайсы пирге жөнөтүлөрүн тандайт.

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

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

Маршрут кайдан келет

Эгер wg-quick колдонсоңуз, маршруттар ар бир пирдин уруксат берилген тизмесинен сиз үчүн жаралат, эгер Table = off орнотуп, башкарууну өзүңүз албасаңыз. Бул курал документтеген жүрүм-турум, жана ачык маршрут директивалары жок конфигурациянын баары бир иштешинин себеби ушул.

sudo wg show wg0 allowed-ips
ip route show | grep wg0
sudo wg-quick strip wg0

Уруксат берилген тизмени иш жүзүндө бар маршруттар менен салыштырыңыз. Бүт ички тармакка уруксат берип, бирок гана хост маршрутун түзгөн пир — жардамчы эч качан иштеген эмес, же интерфейсти wg жана ip аркылуу түз башкарып жатканыңызды билдирет, анда сиз үчүн эч нерсе маршрут жаратпайт.

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

Кененирээк префикс пир жазуусун кошпойт

Азгырган оңдоо — даректи /24кө өзгөртүп, туташкан маршрут сервердин жергиликтүү тармагын камтыйт. Иштеп жаткандай көрүнөт, жана анын иштеп жаткандай көрүнүшүнүн себеби — туташкан маршруттын эми дал келиши, WireGuard жаңы нерсе үйрөнгөнү эмес.

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

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

Бир нерсени өзгөртүүдөн мурун эки багытты тең ырастаңыз

Эки учту өзүнчө карап, ар бири эмне дей турганын жазыңыз. Клиентте маршрут жана пир жазуусу; серверде күзгү сүрөт плюс өзүнүн кайтуу жолу:

ip route get 192.168.70.20
sudo wg show wg0 allowed-ips
sudo wg show wg0 latest-handshakes
sudo tcpdump -ni wg0 -c 10

Түрмөк багыт боюнча талаштарды чечет. Эгер чыгуучу пакеттер туннель интерфейсинде пайда болуп, сервер эч нерсе жазбаса, алыскы уч аларды четке кагат, адатта сиздин булагыңыз анын уруксат берилген тизмесинен тышкары болгондуктан. Эгер такыр эч нерсе пайда болбосо, маршрут жетишпейт же башка жерди көрсөтөт.

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

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