WireGuard толук туннели: AllowedIPs 0.0.0.0/0 жетишсиз
0.0.0.0/0 жана ::/0 эмнени жуп ташый турганын гана тандайт. Кардар менеджери, шлюздеги өткөрүү, DNS жана иштебей калуу саясаты дагы эле конфигурацияланышы керек.
Жуптун AllowedIPs ичине 0.0.0.0/0, ::/0 жазуу — баары эстеп калган кадам, жана ал жупка кандай трафикти ташууга уруксат экенин гана чечет. Бул префикстер эч кандай маршрут түзбөйт, аркы тарапта эч нерсе өткөрбөйт жана ар бир колдонмонун резолверин так ошол жерде калтырат. Толук туннель чындап толук болушу үчүн төрт өзүнчө нерсе бир убакта аткарылышы керек, жана аларды төмөнкү тартипте текшерген жакшы, анткени кийинки текшерүү мурункусун куткара албайт. Төмөнкү ар бир текшерүү — машинадан окууга боло турган факт, колдонулду деп үмүт кылган параметр эмес.
Жуптун префикси эмнени тандайт, эмнени тандабайт
AllowedIPs бир убакта тандап алуучу да, уруксат берүүчү да. Ал жергиликтүү тарапка кайсы максаттарды бул жупка жөнөтүүгө болорун айтат, ал эми кабыл алуучу тарапка бул жуп кайсы булак дарегин көрсөтө аларын айтат. Бүткүл жумуш ушул. Бул сүрөттөмөдө эч нерсе хостто маршрут түзбөйт, алыс тарапта өткөрүүнү күйгүзбөйт жана аттарды чечүүгө тийбейт.
Ошондуктан конфигурация толук көрүнүп, бөлүнгөн туннель сыяктуу жүрүшү мүмкүн. Префикс жуп баарын кабыл алат дейт; хосттун маршруттоо таблицасы ошол жерге чындап эмне жетээрин чечет, ал эми шлюз бир нерсе чыгабы же жокпу аныктайт. Бул үч чечимдин бири да жуптун бөлүмүндө жашабайт.
Кардарды маршруттоо, жуптардын тизмесин гана эмес
Мисалы, wg-quick сыяктуу менеджерлер хосттун маршруттоо таблицасын сиздин ордуңузга программалашат, ошондуктан эки бирдей конфигурация файлы интерфейстин кантип көтөрүлгөнүнө жараша башкача жүрөт. Эң аз профиль бир демде окууга жеткиликтүү кыска:
[Interface]
Address = 10.8.0.2/32
DNS = 10.8.0.1
[Peer]
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.net:51820
Жумушту эки деталь көтөрөт. Address талаасы бир хост префикси, кардар өзүнүкү деп ойлогон кошумча тармак эмес, жана дал менеджер демейки AllowedIPs-ти чыныгы демейки маршрутка айландырат. Ошол эле файлды ip link жана wg setconf менен көтөрсөңүз, эч кандай маршрут көрүнбөйт, бул бузулган туннелге окшошот, ал эми чындыгында маршруттоо кадамы өткөрүлүп кеткен соо туннель. wg-quick колдонмосу маршруттоону жана Table жүрүм-турумун документтейт, аны бул менеджерлер кошот.
Файлды эмес, натыйжаны окуңуз: ip route get 1.1.1.1 туннелдин интерфейсин аташы керек, ал эми wg show кыймылдаган өткөрүү эсептегичи менен жакынкы кол алышууну билдириши керек. Маршрутсуз кол алышуу менеджер эч качан иштебегенин билдирет, жана профилди кайра оңдоо аны оңдобойт. Интерфейсти колдонуучу кантип баштаса, ошондой баштаңыз, болбосо тест жайгаштыруунун ордуна сиздин shell-ди өлчөйт.
Акыркы чекитти туннелден тышкары кармоо
Толук туннель ар бир максатты кармайт, анын ичинде жашаш үчүн сүйлөшүүгө туура келген максатты да. Менеджерлер муну баштапкы шлюз аркылуу акыркы чекитке хост маршрутун кошуу менен чечишет, ошондуктан туура конфигурацияда дээрлик ар дайым бир атайын жасалган өзгөчөлүк болот. Конфигурациянын жарымын менеджер менен, калганын кол менен колдонуу — бул өзгөчөлүктүн жоголушунун кадимки жолу.
Эгер акыркы чекит бир нече дарекке же сиз ташыбаган үй-бүлөгө чечилген хост аты болсо, өзгөчөлүк жаман эскирет жана туннель кадимки көрүнгөн кайра туташуудан кийин иштебей калышы мүмкүн. Акыркы чекитти өзүңүз көзөмөлдөгөн дарекке бекитиңиз, же менеджер аны кайра баалаарын ырастаңыз, жана ар бир тармактык өзгөрүүдөн кийин хост маршрутун кайра окуңуз.
Ошол эле механизм толук туннель менен туткун порталынын эмне үчүн кагылышканын түшүндүрөт. Портал туннелиңиз азыр кармап жаткан трафикти тосуп алууну күтөт, ошондуктан мейманкана жана аэропорт тармактарында туннелди порталга киргенден кийин көтөрөсүз, эч качан мурун эмес.
Шлюздеги өткөрүү жана кайтуу жолу
Шлюзде ташып жаткан үй-бүлө үчүн өткөрүүнү күйгүзүңүз, которгондо forward тизмегине эки багытта уруксат бериңиз жана кайтуу жолун булакка мүнөздүү издөө менен ырастаңыз. Булардын эч бири ийгиликтүү кол алышуудан келип чыкпайт, анткени кол алышуу эки жуп UDP алмаша аларын гана далилдейт. Ал капсуладан чыгарылган пакетке кийин эмне болорун эч нерсе айтпайт.
sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding
ip route get 1.1.1.1 from 10.8.0.2
Издөө кардарда эмес, шлюзде аткарылат, болбосо башка маршруттоо таблицасын окуйсуз. Эгер ал туура эмес интерфейсти атаса же маршрут жок деп билдирсе, анда кардар тараптагы эч бир өзгөрүү интернетке чыгууну жаратпайт. Шлюз чыгуу учурунда кардар даректерин которгондо, жооп ошол котормо абалына байланыштуу, ошондуктан эреже агымдын эки багыты үчүн тең болушу керек, чыгуучу багыт үчүн гана эмес.
DNS жана иштебей калуу абалы, өзүнчө текшерилген
Протоколдун өзү эч бир колдонмонун резолверин конфигурациялабайт. wg-quick DNS сабын дистрибутивдин резолвер интеграциясы аркылуу колдонот, өз стектери бар контейнерлер жана браузерлер аны этибарга албашы мүмкүн, ошондуктан туннель пакеттерди идеалдуу ташып жатканда да ат иштебей калышы мүмкүн. Даректин ордуна хост аты менен текшериңиз жана профилдеги сервер жооп берди деп божомолдоонун ордуна кайсы сервер жооп бергенин жазып алыңыз.
Дарек үй-бүлөлөрү — өзүнчө жообу бар өзүнчө тест. v4 демейки маршруту колдонмонун v6 туташуусу эмне кылары тууралуу эч нерсе айтпайт, ал эми экинчи үй-бүлөнү үнсүз агызган туннель катуу иштебей калган туннелден жаман. Ар бир үй-бүлө аркылуу ат сураңыз, ар бир сурам колдонгон интерфейсти окуңуз жана котормо эсептегичтерин мурун жана кийин текшериңиз, анткени эч нерсеге дал келбеген эреже жок эреже менен бирдей көрүнөт.
Акырында, туннель токтогондо каалаган абалды текшериңиз. Толук туннель өзү билдирген трафик үчүн жабык түрдө иштебей калышы керек: эгер интерфейс кулап, колдонмолор физикалык байланыш аркылуу үнсүз уланса, долбоор кошумча кадамдары бар бөлүнгөн туннель. Көздөлгөн иштебей калуу жүрүм-турумун жазыңыз, аны атайын текшериңиз жана төрт жоопту жазып бүтүрүңүз — кайсы менеджер интерфейсти көтөрөт, кайсы маршрут демейкини ташыйт, шлюзде ким өткөрүп которот, жана кайсы резолвер жооп берет.