WireGuard әдепкі маршрут циклі: соңғы нүктенің жолын табыңыз
Әдепкі маршрут туннельдің өз шифрланған пакеттерін қайтадан оның ішіне жібереді. Соңғы нүктенің жолын оқыңыз, бір хост маршрутын қосыңыз, содан кейін тексеріп, кері қайтарыңыз.
Интерфейс көтеріледі, серіктес конфигурациясы дұрыс көрінеді және ешбір қол алысу ешқашан аяқталмайды. Туннель арқылы әдепкі маршрут қосу — мұны жиі тудыратын қадам: сол маршруттар кестесі енді туннельдің өз шифрланған пакеттері қайда баруы керектігін шешеді, және оның беретін жауабы қайтадан туннельге кетеді. Ішкі пакетті таситын сыртқы пакетті таситын ештеңе жоқ, сондықтан байланыс басталмай тұрып тоқтайды. Түзету шағын, бірақ оның реті бар, және тексеру өңдеуден маңыздырақ.
Маршрутты өзгертуден бұрын циклді растаңыз
Серіктестің ағымдағы соңғы нүкте мекенжайын оқыңыз, содан кейін маршруттау стекінен сол мекенжайға баратын пакет қайда кететінін сұраңыз. Егер жауап туннель интерфейсін атаса, цикл расталды және одан әрі диагностика қажет емес. Бірдеңеге тиіспес бұрын екі шығысты да өзгеріс журналына сақтаңыз, өйткені түзетуден кейінгі салыстыру — сол екі команда. Цикл бір көргеннен кейін нәзік емес; қиындық — бұл болып жатқанда интерфейс сау көрінеді.
sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show
Сол жазбаға саясат ережелерін қосыңыз. Негізгі кестеде дұрыс көрінетін әдепкі маршрут белгіленген немесе белгіленбеген трафик үшін басқа кестені таңдайтын ережеден әлі де ұтылуы мүмкін, және маршруттар кестесі дұрыс көрінсе де цикл қайта пайда болады.
Соңғы нүктенің жолын оқыңыз, туннель жолын емес
Соңғы нүктенің жолы — шифрланған датаграммалар серіктестің жария мекенжайына баратын маршрут, және туннель бар болғанша ол туннельден тыс қалуы керек. Туннель жолы — серіктеске тасымалдауға рұқсат етілгеннің бәрі. Бұл екі жол бір маршруттар кестесін бөліседі, және дәл сондықтан бір ғана барлығын ұстайтын жазба оларды бір-біріне қиратып жіберуі мүмкін. Туннель трафигін туннельдің өз тасымалынан бөлу — бүкіл дизайн мәселесі, және әрбір қолдау көрсетілетін құрал оны бір жерде сәл басқаша шешеді.
Интерфейс екеуін де тасыса, екі мекенжай тұқымдасын бөлек тексеріңіз. Жұмыс істейтін IPv4 ерекшелігі IPv6 соңғы нүктесіне әлі қол жеткізуге бола ма деген сұраққа ештеңе айтпайды, және аралас конфигурация серіктестің IPv6 мекенжайы таңдалғанша жұмыс істеп тұрғандай көрінуі мүмкін.
Соңғы нүктенің жолын бір дәйекті өзгеріспен қалпына келтіріңіз
Екі қолдау көрсетілетін тәсіл бар, және оларды араластыру — жұмыс істейтін конфигурацияны болжауға келмейтін ететін жол. Біріншісі — интерфейске ие құралға бүкіл туннельді басқаруға рұқсат беру: wg-quick әдепкі серіктес ауқымы үшін арнайы өңдеуі бар, ол бөлек кесте, саясат ережелері және сокет белгісін орнатады, бұл сыртқы пакеттерді туннельден тыс ұстайды. Бұл механизмді бүтін күйінде қалдырыңыз, оның жартысын қолмен қайта жасаудың орнына. Қолмен қосылған әдепкіні белгілер мен ережелерді әлдеқашан орнататын менеджермен араластыратын конфигурация қайта қосылғаннан кейін сәтсіздікке ұшырайды, өйткені менеджер қолмен жасалған қадам көздеген күйді қайта жазады.
Екіншісі — қолмен жасалған дизайн, онда соңғы нүкте физикалық қақпа арқылы айқын хост маршрутын алады. Бұл маршрутты әдепкіден бұрын қосыңыз, ескірген жазба жеңбеуі үшін қосудың орнына ауыстырыңыз, содан кейін іздеуді растаңыз.
sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1
Тексеріңіз, содан кейін қайту жолын сақтаңыз
Алға жылжыған қол алысу уақыт белгісі — бірінші дәлел, және ол жай ғана бар интерфейстен күштірек. Оны туннель арқылы қосымша сынағымен жалғастырыңыз, содан кейін интерфейсті әдейі түсіріңіз және хосттың ештеңеге сілтемейтін әдепкі маршрутты ұстап тұрмай, қолдануға жарамды күйге қайтатынын растаңыз. Осы соңғы қадамды адамдар өткізіп жібереді, және қайта жүктеу машинаны байланыссыз қалдыра ма, соны сол шешеді.
sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20
Мұның бәрінен бұрын ағымдағы маршруттау күйін сақтаңыз және туннельге тәуелді емес кіру жолы бар екеніне көз жеткізіңіз: консоль, сыртқы басқару мекенжайы немесе жергілікті әріптес. Әдепкі маршрутынан айырылған қашықтағы машинаны жаңа ғана жоғалтқан байланыс арқылы қалпына келтіру мүмкін емес, және runbook-тың ең қауіпсіз қадамы — бірінші командаға дейін жасалатын қадам.