WireGuard-ը տվյալներ է ուղարկում, բայց ոչինչ հետ չի ստանում՝ ո՞ր կողմը
Աճող ուղարկման հաշվիչը ուղղություն է, ոչ ախտորոշում։ Որոշեք՝ հարցումը երբեք չի՞ լքել թունելը, թե՞ պատասխանը երբեք չի վերադարձել, նախքան որևէ բան փոխելը։
Ուղարկման հաշվիչները, որոնք աճում են, մինչ ստացման հաշվիչը մնում է զրոյի վրա, նկարագրում են ուղղություն, ոչ ախտորոշում։ Նույն ցուցանիշը հայտնվում է, երբ զուգակիցը երբևէ չի ավարտել ձեռքսեղմումը, երբ նպատակակետը ընտրել է սխալ զուգակցի, երբ հեռավոր կողմը վերադարձի երթուղի չունի, և երբ զտիչը գցում է պատասխանը տուն վերադառնալու ճանապարհին։ Նրանցից յուրաքանչյուրը վերանորոգվում է տարբեր տեղում։
Աշխատանքը կրճատող համեմատությունը թունելից երբևէ դուրս չեկած հարցման և երբևէ չվերադարձած պատասխանի միջև է։ Ճիշտ ինտերֆեյսում մեկ գրառումը որոշում է նրանց միջև։
Հաշվիչները նկարագրում են ծավալը, ոչ թե անսարքության ուղղությունը
WireGuard-ի հաշվիչները գրանցում են, թե ինտերֆեյսն ինչ հանձնեց զուգակցին և ինչ ստացավ նրանից։ Նրանք չեն ասում, թե որ նպատակակետը, որ զուգակիցը կամ փոխանակման որ կեսը ձախողվեց։ Ֆոնային երթևեկությունը գումարները դարձնում է ավելի քիչ տեղեկատվական, քանի որ որոշ բայթեր կարող են լինել կապը պահող հաղորդագրություններ կամ անկապ հոսքեր։ Կարդացեք դրանք որպես նշան, որ ինտերֆեյսը ակտիվ է, ապա դադարեցրեք դրանք որպես ապացույց դիտարկել։
Առաջին օգտակար փաստն այն է, թե արդյոք ձեռքսեղմումը ընթացիկ է։ Առանց դրա այս զուգակցի համար ոչինչ չի գաղտնագրվել, և ստացման հաշվիչը շարժվելու պատճառ չունի։
Զուգակցի ընտրություն կամ պատասխանի ուղի՝ երկու բացատրություն
Առաջին բացատրությունն այն է, որ փաթեթը երբևէ չի հասել նախատեսված զուգակցին, քանի որ երթուղին այլ տեղ էր ցույց տալիս, կամ զուգակցի թույլատրված նախածանցերը չէին ծածկում նպատակակետը։ Երկրորդն այն է, որ փաթեթը հասավ, բայց պատասխանը չկարողացավ վերադառնալ, ինչը հեռավոր ծայրում երթուղորման խնդիր է։ Աղյուսակը բաժանում է նրանց ըստ այն բանի, թե ինչ կնկատեք յուրաքանչյուր կետում։
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
Կարդացեք աղյուսակը վերևից։ Բացակայող ձեռքսեղմումը ձեզ ուղարկում է բանալիների, վերջնակետերի և արտաքին ուղու մոտ, քանի որ դեռ ուրիշ բան չկա քննելու։ Ընթացիկ ձեռքսեղմումը, երբ հարցումը տեսանելի է սերվերում, խնդիրը տեղափոխում է վերադարձի ուղղություն, որտեղ որոշում է նպատակակետի սեփական երթուղային աղյուսակը։ Այն հարցումը, որը երբեք չի հայտնվում սերվերում, ընտրության խնդիր է, և երկու զուգակիցների թույլատրված նախածանցերն առաջինն են, ինչ պետք է համեմատել։
Այս չորս տողերից երկուսը վերանորոգվում են հաճախորդում, երկուսը՝ սերվերում։ Իմանալը, թե որ զույգում եք, աշխատանքի մեծ մասն է։
Որտեղ են անհետանում պատասխանները
Պատասխանը լքում է նպատակակետը, հասնում սերվերի թունելային ինտերֆեյսին և գաղտնագրվում այն զուգակցի համար, ում թույլատրված հասցեները համընկնում են հաճախորդի ներքին հասցեի հետ։ Եթե այդ համընկնումը ձախողվի, պատասխանը լուռ դեն է նետվում, ինչը հաճախորդի կողմից ուղղակի ցանցային անսարքություն է թվում։ Եթե պատասխանը գաղտնագրված է, և հաճախորդի սեփական զտիչը մերժում է այն, ախտանիշը կրկին նույնն է։ Երկու դեպքում էլ պետք է գրառումը, ոչ հաշվիչը։
Այս սխալի ամենաուժեղ ձևն այն սերվերն է, որը փոխանցում է փաթեթները հաճախորդի համար, բայց վերադարձի երթուղի չունի դեպի հաճախորդի ներքին տիրույթ։ Այն ընդունում է հարցումը, պատասխանը ուղարկում է իր լռելյայն դարպասին, և թունելը երբեք չի տեսնում այն։ Սերվերում ավելացված լայն թարգմանության կանոնը թաքցնում է այդ անսարքությունը՝ երթուղին վերանորոգելու փոխարեն։
Փորձարկեք մեկ նպատակակետ ծայրից ծայր
Ընտրեք մեկ նպատակակետ զուգակցի տիրույթում և փորձարկեք այն, քանի դեռ ձեռքսեղմումն ակնհայտորեն ընթացիկ է։ Ստորև բերված հրամանները կարդում են զուգակցի վիճակը, ընտրված երթուղին և փոխանակման երկու կողմերը։ Գրառումը կատարեք այն ինտերֆեյսում, որն իրականում օգտագործում են գաղտնագրված փաթեթները։
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
Գրառումը, որը ցույց է տալիս հարցումը թունելային ինտերֆեյսում, բայց ոչինչ հետ չի վերադառնում, սերվերի կողմի պատասխան է, և նպատակակետի երթուղային աղյուսակը հաջորդ տեղն է, որտեղ պետք է նայել։ Եթե ընդհանրապես ոչինչ չհայտնվի, փաթեթն այլ ուղի է բռնել, ուստի տեղական երթուղին է կասկածելի։ Երկու գրառումներում էլ տեսանելի փոխանակումը, որտեղ հավելվածում առաջընթաց չկա, հարցը տեղափոխում է փաթեթի չափին կամ զտիչի, որը ինտերֆեյսի վիճակագրությունը երբեք չի ցուցադրում։ Փորձարկման մեջ պահեք մեկ նպատակակետ և մեկ հաճախորդ, քանի որ երկրորդ փոփոխականը ապացույցը կրկին տպավորություն է դարձնում։
Եթե անունները ձախողվում են, մինչ թույլատրված հասցեն աշխատում է, պատասխանը DNS-ում է, ոչ թունելում։ Եթե միայն մեծ փոխանցումներն են կանգ առնում, փաթեթի չափը ուսումնասիրեք առանձին։