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

Դիտարկեք նախագիծը որպես շղթա, ոչ որպես կարգավորում։ Հարցը յուրաքանչյուր քայլում այն է, թե որ բաղադրիչն է տիրապետում որոշմանը և ինչ է լինում, երբ նրա մուտքը բացակայում է։

Ինչ կարող է և ինչ չի կարող անել DNS պատասխանը

dnsmasq-ն կարող է պատասխաններից հասցեներ պատճենահանել nftables բազմության մեջ, ինչը սնուցում է, ոչ թե երթուղավորման որոշում։ Այդ տարբերակը, որը փաստաթղթավորված է dnsmasq ձեռնարկում, նշում է ընտանիքը, աղյուսակը և բազմությունը, և նրա սկզբնական 4# ընտրում է միայն A գրառումներ, ուստի v6 նպատակակետերին պետք է իրենց ձևավորումը։ Բազմությունը պետք է արդեն գոյություն ունենա, քանի որ լուծիչը տարրեր է ավելացնում այն բանին, որը ստեղծել է հրային պատի տերը։ Այդ քայլում ոչինչ չի ընտրում ինտերֆեյս, աղյուսակ կամ զույգ։

Հաճախորդը նույնպես պետք է այդ լուծիչն օգտագործի անվան համար։ Սեփական գաղտնագրված DNS ունեցող հավելվածը կամ քաղաքականությունից առաջ պահված պատասխանը միանում է առանց բազմության մեջ որևէ գրառում ստեղծելու։

Բազմությունը մուտք է, ոչ երթուղի

Բազմության տարրը համապատասխանության պայման է։ Ինչ-որ բան պետք է նայի դրան, որոշի, որ այս փաթեթը սկսում է նոր հոսք, և կիրառի այն քաղաքականությունը, որը հոսքն ուղարկում է թունելով։ Linux-ում դա սովորաբար նշանակում է երթուղավորման ընդունակ ելքային ուղի, որը կարող է նշում դնել, կանոն, որը նշված փաթեթներն ուղարկում է առանձին աղյուսակ, և այդ աղյուսակում WireGuard սարքին ուղղված երթուղի։ Միայն անդամակցությունը ոչ մեկը դրանցից չի տեղադրում։

nft add set inet vpn_select office_v4 { type ipv4_addr\; }
ip rule add fwmark 0x40 table 200
ip route add default dev wg0 table 200
wg show wg0 allowed-ips

Զույգը կիրառում է երկրորդ ծածկույթի ստուգում, որը մարդիկ մոռանում են։ WireGuard-ը գաղտնագրում է փաթեթը միայն այն զույգի համար, որի թույլատրված հասցեները ներառում են նպատակակետը, ուստի դեպի ինտերֆեյս քաղաքականության երթուղին բավարար չէ, երբ զույգի ցանկը բացառում է այդ նախածանցը։ Ցանկը պահեք երթուղավորման տիրոջ վերահսկողության տակ՝ փոխարենը հույս չդնելով, թե մենեջերը ինչ երթուղիներ կստեղծի։

Նշումներ, աղյուսակներ և զույգի ծածկույթ

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

Թունելի սեփական արտաքին փաթեթները պետք է խուսափեն դասակարգիչից։ WireGuard գործիքները հենց այդ նպատակի համար տալիս են socket նշում, և դրա օգտագործումը թույլ չի տալիս, որ ինկապսուլյացիան հետ երթուղավորվի այն ինտերֆեյս, որը այն կառուցում է։

Փորձարկեք յուրաքանչյուր կյանքի տևողությունն առանձին

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

dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show

Տարր ավելացնող թարմ որոնումն ապացուցում է, որ սնուցումն աշխատում է, մինչդեռ իր պատասխանից երկար ապրող հին տարրը կյանքի տևողության անհամապատասխանություն է, որն արժե գրի առնել։ Կապերի աղյուսակում սպասված նշումով նոր կապի հայտնվելը ցույց է տալիս, որ դասակարգիչն աշխատել է, իսկ հին կապի՝ իր սկզբնական նշումը պահելը ճիշտ վարք է, ոչ թե սխալ։ Կանոնների ցանկը պատասխանում է՝ արդյոք քաղաքականության որոնումը ընդհանրապես գոյություն ունի, ինչը տարբեր հարց է նրանից՝ այն համընկե՞լ է։ Կարդացեք չորս ելքերը այդ հերթականությամբ, և ձախողված փոխանցումն ինքն իրեն կմատնի։

Երբ պահանջն այն է, որ որոշակի անունը միշտ մեկ ուղի օգտագործի, DNS-ով սնվող բազմությունը չի կարող դա ապացուցել, քանի որ ընդհանուր հասցեները կրում են նաև այլ անուններ։ Պրոքսին կամ հավելվածի մակարդակի մեխանիզմն այդ երաշխիքի գործիքն է։

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