nftables-те қойылған белгі трафиктің бір класын туннель арқылы жіберуі керек, бірақ трафик физикалық интерфейстен шыға береді. Ережелер жиынтығы жеке қарағанда дұрыс көрінеді. Әдетте болған нәрсе — бірдеңе сол белгіні жазған, немесе маршруттау ережесі жаңа мән енді қанағаттандырмайтын маскаға сәйкес келеді.

Тексеру 1: ядро сәйкестендіретін ережені оқыңыз

Қорғаныс қабырғасынан емес, саясат ережесінен бастаңыз. Ядро ережелерді басымдық тәртібімен қарайды және бірінші сәйкестік кестені анықтайды. fwmark мәні мен масканы ереженің өзінен оқыңыз, содан кейін қойған белгіңіз бар пакеттің оған шынымен сәйкес келетінін растаңыз. Толық 32 биттік мәнді күтетін ереже тек бір бит таситын пакетке сәйкес келмейді.

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

Мұны екі команда шешеді: ережелер тізімі және сол кестедегі межеге дейінгі маршрутты іздеу.

Тексеру 2: пакет белгісі ме, әлде қосылым белгісі ме

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

Егер маршруттау ережесі пакет белгісіне сүйенсе, жолдың кейінгі бөлігінде қосылым белгісін қалпына келтіру бұл шешімге ештеңе жасамайды, өйткені шешім қабылданып қойған.

Маршруттау сигналы қай нысанға тиесілі екенін анықтаңыз, содан кейін оны маршруттау шешімі қабылданатын нүктеде қойыңыз.

Тексеру 3: бұл белгіні тағы кім жазады

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

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

Тағы біреуін қоспас бұрын жазушыларды тізімдеңіз.

Тексеру 4: маска нені сақтайтыныңызды шешеді

Белгі — 32 биттік өріс, ал маскалар — оны бірнеше иесінің бөлісу тәсілі. Маскамен мән қою сізге тиесілі емес биттерді сақтайды; бүкіл өрісті қою барлық басқалардың биттерін жояды. Өріске тиетін әрбір ережеде масканы оқыңыз, өзіңіз жазбаған ережелерде де.

Биттердің бөлінуін ережелер жиынтығының жанында құжаттаңыз.

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

Тексеру 5: іздеумен емес, нақты ағынмен тексеріңіз

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

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

Белгіні, масканы және кестені бір жерге жазыңыз, сонда келесі өңдеу тексерілетін болады.

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