nftables-ում դրված նշանը պետք է ուղարկի մեկ դասի թրաֆիկ թունելով, սակայն թրաֆիկը շարունակում է դուրս գալ ֆիզիկական ինտերֆեյսով։ Կանոնների հավաքածուն ինքնուրույն դիտելիս ճիշտ է թվում։ Սովորաբար եղել է այն, որ ինչ-որ այլ բան գրել է նույն նշանը, կամ երթուղավորման կանոնը համապատասխանում է մի դիմակի, որը նոր արժեքը այլևս չի բավարարում։

Ստուգում 1՝ կարդացեք այն կանոնը, որին համապատասխանում է միջուկը

Սկսեք քաղաքականության կանոնից, ոչ թե ֆայրվոլից։ Միջուկը կանոնները դիտարկում է առաջնահերթության կարգով, և առաջին համապատասխանությունը որոշում է աղյուսակը։ Կարդացեք fwmark արժեքը և դիմակը հենց կանոնից, ապա հաստատեք, որ ձեր դրած նշանով փաթեթն իսկապես համապատասխանում է դրան։ Լրիվ 32-բիթանոց արժեք սպասող կանոնը չի համապատասխանի միայն մեկ բիթ կրող փաթեթին։

Այնուհետև հաստատեք, թե այդ կանոնը որ աղյուսակն է ընտրում և ինչ է պարունակում աղյուսակը։ Դատարկ աղյուսակին ուղղված կանոնն առաջացնում է որոնման ձախողում, ինչը շատ համակարգերում նշանակում է, որ փաթեթն ընկնում է հաջորդ կանոնին և դուրս գալիս ֆիզիկական ինտերֆեյսով։

Երկու հրաման լուծում է սա՝ կանոնների ցանկը և երթուղու որոնումը դեպի նպատակակետ այդ աղյուսակում։

Ստուգում 2՝ փաթեթի նշան, թե միացման նշան

nftables-ը կարող է նշան դնել փաթեթի վրա և նշան՝ միացումների հետևման գրառման վրա, և դրանք տարբեր օբյեկտներ են։ Փաթեթի նշանն ապրում է փաթեթի մշակման անցման ընթացքում, մինչդեռ միացման նշանը պահպանվում է հոսքի համար և պետք է դիտավորյալ պատճենվի։ Մեկը դնելը և մյուսին սպասելը տարածված կիսանուգում է։

Եթե երթուղավորման կանոնը հենվում է փաթեթի նշանի վրա, ապա ուղու ավելի ուշ հատվածում միացման նշանի վերականգնումը ոչինչ չի անում այդ որոշման համար, որովհետև որոշումն արդեն կայացվել է։

Որոշեք, թե որ օբյեկտին է պատկանում երթուղավորման ազդանշանը, ապա դրեք այն այն կետում, որտեղ կայացվում է երթուղավորման որոշումը։

Ստուգում 3՝ ով էլ է գրում այդ նշանը

WireGuard-ի սեփական գործիքները նշում են իր UDP փաթեթները, որպեսզի գաղտնագրված տրանսպորտը հետ չուղղորդվի այն թունել, որին պատկանում է։ Եթե ձեր կանոնների հավաքածուն նույն դաշտին վերագրում է անկապ արժեք, այդ բացառությունը անհետանում է, և թունելի արտաքին թրաֆիկը փորձում է մտնել ինքն իր մեջ։ Ախտանիշը թունելն է, որը կառուցվում է, ապա դադարում թրաֆիկ անցկացնել։

Նշաններն օգտագործում են նաև այլ ֆայրվոլային գործիքներ, կոնտեյներային ցանցը և քաղաքականության վրա հիմնված երթուղավորումը այլ նպատակներով, ուստի ամբողջ դաշտը երկու ենթահամակարգերի կողմից գրելը հակասություն է, նույնիսկ երբ յուրաքանչյուրն առանձին ճիշտ է։

Թվարկեք գրողներին նախքան ևս մեկը ավելացնելը։

Ստուգում 4՝ դիմակն է որոշում, թե ինչ եք պահում

Նշանը 32-բիթանոց դաշտ է, և դիմակները այն բաժանելու եղանակն են մի քանի սեփականատերերի միջև։ Դիմակով արժեք դնելը պահպանում է այն բիթերը, որոնք ձերը չեն, իսկ ամբողջ դաշտը դնելը ոչնչացնում է մյուս բոլորի բիթերը։ Կարդացեք դիմակը յուրաքանչյուր կանոնում, որը դիպչում է դաշտին, ներառյալ նրանք, որոնք դուք չեք գրել։

Փաստաթղթավորեք բիթերի բաշխումը կանոնների հավաքածուի կողքին։

Հակառակ դեպքում հաջորդ մարդը կրկին կօգտագործի արժեք, որն արդեն սեփականատեր ունի, և այստեղի հակասությունը երթուղավորման սխալի տեսք ունի, մինչդեռ հասցեավորման սխալ է։ nftables-ի փաստաթղթերը փաթեթի մետատվյալների մասին նկարագրում են հենց նշանային գործողությունները։

Ստուգում 5՝ ստուգեք իրական հոսքով, ոչ թե որոնումով

Սովորական երթուղու որոնումը նշան չի կրում, ուստի կարող է ցույց տալ իրական փաթեթից տարբեր ուղի։ Ստեղծեք ձեզ հետաքրքրող թրաֆիկը և դիտարկեք հաշվիչները, միացումների հետևման գրառումը և ինտերֆեյսը, որով այն իրականում դուրս է գալիս։ Փորձարկեք թե՛ ներառված դասը, թե՛ բացառված դասը, որովհետև չափազանց լայն նշանը կոտրում է բացառումը՝ միաժամանակ հաջող երևալով։ Եթե ներառված դասը աշխատում է, և բացառված դասը նույնպես մտնում է թունել, ապա նշանը չափազանց լայն է, ոչ թե չափազանց նեղ։

Խուսափեք միացումների վիճակի մաքրումից՝ կենդանի սեսիայի ընթացքում թարմացում պարտադրելու համար, քանի որ նոր և գոյություն ունեցող հոսքերը կարող են օրինականորեն տարբեր ուղիներ անցնել։

Գրանցեք նշանը, դիմակը և աղյուսակը մեկ տեղում, և հաջորդ խմբագրումը դառնում է վերանայելի։

Առնչվող հոդվածներ