Екі /1 префиксі бір /0 сияқты дәл сол IPv4 мекенжайларын қамтиды, және бұл теңдік тек әріптестің рұқсат етілген префикстер тізімінің ішінде ғана күшінде болады. Орнату құралы қалай маршруттауды шешкен сәтте ол күшін жояды, өйткені Linux ішіндегі wg-quick әдепкі префиксті арифметика ретінде емес, ерекше жағдай ретінде қарастырады. Арнайы тармақ арнайы кестені, екі саясат ережесін, сокет белгісін және кері жол параметрлерін орнатады, оларды жарты маршруттар жұбы ешқашан алмайды. Сондықтан өңдеуден кейін прокси немесе браузер жұмысын тоқтатқанда, префикстер өзгерістің ең қызықсыз бөлігі болып қалады.

Префикстер тізімі бүкіл конфигурация емес

AllowedIPs бір уақытта екі жұмыс атқарады, оның тек біреуі ғана қамтуға қатысты. WireGuard үшін тізім криптокілттік маршруттау болып табылады: ол қай тағайындалулар әріптеске қарай шифрланатынын және сол әріптес қандай бастау мекенжайларын пайдалана алатынын анықтайды. wg-quick үшін сол тізім маршрут спецификациясы ретінде де қызмет етеді, ал ол жасайтын маршрут тізімнің кездейсоқ қай тармаққа сәйкес келуіне байланысты. Сондықтан екі түрлі тізім пішімінде бірдей қамту бірдей хост күйі туралы ештеңе айтпайды.

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

Әдепкі тармақ маршруттан тыс нені қосады

/0 жазбасы wg-quick құралын әдепкі маршрут жолына жібереді: жеке маршруттау кестесі әдепкіні қабылдайды, бір саясат ережесі белгіленбеген трафикті сонда жібереді, екінші ереже негізгі кестенің нақтырақ маршруттарын билікке ие етіп ұстайды, ал интерфейс өз сокетіне желілік қалқан белгісін алады. Сол белгі — цикл күзетшісі. Туннель трафигін тасымалдайтын шифрланған датаграммалар белгі қойылған күйде шығады, сондықтан қалғанның бәрін туннельге бағыттайтын ереже туннельдің өз тасымал пакеттерін жұтып қоймайды.

Оның орнына /1 жазбаларының жұбы қарапайым маршрут жолын таңдайды. Конфигурацияланған кестеге екі маршрут түседі, ал айналадағы механизмдердің ешқайсысы көрінбейді, бұл оның артық екендігінен емес, сол код жолына ешқашан кірмегендіктен.

Екі орналасу қай жерде ажырайды

Айырмашылық алдымен рекурсия ретінде көрінеді. Жарты маршруттар негізгі кестеде болғанда, әріптестің өз тасымал мекенжайы туннель префиксінің ішіне түседі, сондықтан туннельді тасымалдауға тиіс пакет туннельдің ішіне бағыттайтын маршрутқа сәйкес келеді. Бірдеңе оны босатуы керек: ағымдағы соңғы нүкте үшін хост маршруты, қолмен қойылған белгі немесе интерфейске тән ереже. Хост маршруты соңғы нүктенің мекенжайы өзгергенге дейін жұмыс істейді, бұл DNS негізіндегі соңғы нүктелерде, кезбе клиенттерде және көпәріптесті конфигурацияларда орын алады.

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

Өңдеуден бұрын ережелер мен белгілерді оқыңыз

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

ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints

Егер шығыстың бірінші жолы белгіленбеген трафик ережесін жоғалтқан болса және арнайы кесте бос болса, әдепкі тармақ жұмыс істемейді, ал префикстер арифметикасы оның әсерлерін қалпына келтірмейді. Бұрын белгісі бар интерфейсте нөлдік белгі — сол сигнал, бір мәнде көрінеді.

Шығару алдында туннель жоғалтуды жаттықтырыңыз

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

sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1

Маршрут іздеуі соңғы нүктені туннельден өтпей физикалық интерфейстен шешуі керек, ал интерфейсті түсіру хостты дизайн уәде еткен күйде қалдыруы керек. Ауыстырудан кейін жұмыс істейтін прокси жасалған хост күйінің маңызды болғанын дәлелдейді; бірақ циклды болдырмау мен өшірілген күйдегі мінез-құлықтың өңдеуден аман қалғанын дәлелдемейді.

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