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

Կանոնները ընտրում են աղյուսակը, ապա աղյուսակը ընտրում է երթուղին

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

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

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

Կարդացեք կանոնների ամբողջությունը որպես հաջորդականություն, ոչ որպես ցանկ

Տպեք կանոնները իրենց առաջնահերթություններով և այն աղյուսակներով, որոնց նրանք հղում են անում, ապա տպեք յուրաքանչյուր աղյուսակ, որը կրում է լռելյայն կամ թունելային երթուղի։ Հերթականությունն է այն մասը, որ նշանակություն ունի, և հենց այն է, որ էկրանի պատկերը սովորաբար բաց է թողնում։

ip rule show
ip route show table all | sed -n '1,60p'
ip route get 198.51.100.20 from 10.8.0.2
ip route get 198.51.100.20 from 10.8.0.2 mark 0x1

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

Նշաններ և սոքեթներ: հաճախորդները երթևեկությունը բաժանելու երկու եղանակ

Որոշ հաճախորդներ նշում են փաթեթները firewall-ում և ավելացնում կանոն, որը համապատասխանում է նշանին։ Մյուսները օգտագործում են երթուղավորում սոքեթի մակարդակում՝ երթուղի դնելով սոքեթի վրա մինչև այն միանալը։ Առաջինը տեսանելի է ip rule-ի արդյունքում; երկրորդը՝ ոչ, և այն չի հայտնվի ընդհանուր որոնման մեջ։

Եթե փորձարկման ծրագիրը իրեն այլ կերպ է պահում, քան այն հավելվածը, որը պետք է ներկայացնի, ստուգեք՝ արդյոք հավելվածը նշան է դնում կամ կապվում է սարքի։ Այդ տարբերությունը առեղծված չէ, երբ մեխանիզմը անվանված է, և այն բացատրում է, թե ինչու shell-ից curl-ը և դիտարկիչի ներդիրը կարող են տարբեր ուղիներ անցնել նույն մեքենայում։ Երկու տեխնիկաներն էլ քաղաքականության երթուղավորում են լայն իմաստով՝ նրանք ուղին ընտրում են նպատակակետից բացի այլ բանով։ Նրանցից ոչ մեկը չի լիազորում երթևեկությունը, և ոչ մեկը չի փոխարինում firewall-ի կանոններին կամ այն հավատարմագրերին, որ սպասում է զուգընկերը։

Հետևեք սեփականատիրությանը՝ ևս մեկ կանոն ավելացնելուց առաջ

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

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

Ապացուցեք ծավալը երկու հոսքով, ոչ մեկով

Ուղղումը հաստատվում է միայն հոսքով, որի վրա պետք է ազդի, և հոսքով, որի վրա չպետք է ազդի։ Ընտրեք նպատակակետ, որը քաղաքականությունը ուղղում է թունել, և մեկը, որը պետք է մնա դրսում, ապա համեմատեք որոնումները և որսումները երկուսի համար։

ip route get 198.51.100.20 from 192.0.2.44
ip route get 198.51.100.21 from 192.0.2.44
tcpdump -ni any host 198.51.100.21 and port 443

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

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

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