VPN-ը նորից միացավ, բայց հավելվածի սեսիան դեռ խափանվում է
Վերամիացումը վերականգնում է երթուղիները, ոչ թե սոքեթի վիճակը։ Բացեք մեկ նոր հարցում, քանի դեռ հինը կախված է, և կիմանաք, թե երկուսից որն է խափանվել։
Թունելը վերադառնում է, հաճախորդը հայտնում է միացման մասին, իսկ զննարկիչը դեռ պտտվում է այն էջի վրա, որը բեռնում էր ընդհատումից առաջ։ VPN-ի վերամիացումը վերականգնում է ուղին և չի վերականգնում այն միացման վիճակը, որը հավելվածներն ու հեռավոր կողմը կուտակել էին հին ուղու վրա։ Դրանք վերանորոգման երկու տարբեր բաներ են, և դրանք շփոթելը ձեզ առանց պատճառի հետ է ուղարկում VPN-ի կարգավորումներ։
Մեկ փորձարկում դրանք մաքուր բաժանում է, և այն տևում է տասը վայրկյան։ Ուղարկեք նոր հարցում նույն նպատակակետին, քանի դեռ հինը կախված է։
Ինչն է վերապրում վերամիացումը, և ինչը՝ ոչ
Թունելը երթուղիների, բանալիների և հասցեների ամբողջություն է, և վերամիացումը կարող է վերականգնել բոլոր երեքը, մինչդեռ յուրաքանչյուր հաստատված հոսք մեռած է մնում։ Օպերացիոն համակարգը սոքեթը բաց է պահում, որովհետև հավելվածը դա խնդրել է, և այդ սոքեթի ժամկետը կարող է րոպեներ կամ ժամեր հեռու լինել։ Դրա տակ գործընկերը մոռացել է հոսքը, թարգմանության գրառման ժամկետը լրացել է, կամ ուղին այժմ անցնում է մի վերջնակետով, որը երբեք չի տեսել ձեռքսեղմումը։ Վերամիացման հաջորդականության մեջ ոչինչ չի անցնում հավելվածի սոքեթներով և չի վերանորոգում դրանք։
Որոշ հաճախորդներ ավելացնում են կեռիկ, որը վերամիացման ժամանակ դեն է նետում հնացած միացումները, իսկ մեծ մասը՝ ոչ։ Այստեղ վարքը տարբերվում է ըստ հաճախորդի, հարթակի և տարբերակի։
Հեռավոր կողմը ձեզ նույնպես մոռացել է
Հեռավոր ծայրը պահում է իր վիճակը՝ TLS սեսիա, TCP կառավարման բլոկ և հնարավոր է քարտեզագրման գրառում, որը կապում է ձեր հասցեն ու պորտը հոսքին։ Ուղու վրա գտնվող թարգմանության սարքը կարող է այդ քարտեզագրումը ժամկետանց դարձնել բացվածքի ընթացքում, նույնիսկ երբ թունելը արագ վերականգնվում է։ Երբ քարտեզագրումը անհետանում է, փաթեթները գալիս են մի հոսքի համար, որը սերվերն այլևս չի ճանաչում, և պատասխանը կարող է լինել reset, որը հաճախորդը երբեք չի ցուցադրում։ Հավելվածները դա հաղորդում են որպես կանգ, ոչ որպես սխալ, որովհետև նրանք դեռ սպասում են մի սոքեթի, որը երբեք չի պատասխանի։
Սերվերի կողմի անգործության ժամկետները նույնն են անում իրենց ժամանակացույցով, դրա համար սեսիան կարող է մեռնել առանց որևէ ցանցային իրադարձության։ Այն միացումը, որը անգործ է եղել ավելի երկար, քան սերվերն է սպասում, արդեն անհետացել է, նախքան կնկատեք, որ թունելը տեղափոխվել է։
Նոր հարցումն է այն փորձարկումը, որը բաժանում է դրանք
Ուղարկեք նոր հարցում նույն հոսթին, քանի դեռ հինը կախված է, և դիտեք երկուսին էլ։ Եթե նոր հարցումը հաջողվի, ապա թունելը, ուղին և անունների լուծումը աշխատում են, և խափանումը սահմանափակվում է հնացած հոսքով։ Եթե նոր հարցումը նույնպես ձախողվի, դուք ունեք ուղու խնդիր, և հավելվածի սեսիայի վիճակը կեղծ հետք է։
Փորձարկման ընթացքում ուղիղ թրաֆիկի ցանկացած արգելափակում թողեք տեղում։ Մի պատահական պահեստային ուղով հաջողված հարցում ոչինչ չի ապացուցում թունելի մասին։
Հաստատեք նոր միացումով, ոչ հինով
Ստորև բերված հրամանները ցույց են տալիս դեռ բաց սոքեթները, սկսում են մեկ նոր հարցում և ստուգում, թե արդյոք սեսիաների աղյուսակը դեռ գրառում ունի հոսքի համար։ Առաջինը գործարկեք վերամիացումից առաջ և հետո, որպեսզի տարբերությունը երևա։ Փոխարինեք հոսթը և պորտը ձեր սեփական ծառայությամբ։
ss -tanp | grep -E ':(443|8443)'
curl -sS -o /dev/null -w '%{http_code} %{time_connect}\n' --max-time 8 https://intranet.example.com/
conntrack -L 2>/dev/null | grep 8443
dig +short intranet.example.com
Առանց շարժվող թրաֆիկի հաստատված սոքեթը այն նշանն է, որը պետք է փնտրել, և կարգավիճակի կոդ վերադարձնող նոր հարցումը ցույց է տալիս, որ ուղին ողջ է։ Միացումների աղյուսակը պատասխանում է, թե արդյոք ինչ-որ բան դեռ քարտեզագրում է հոսքը, և դա այն մասն է, որը հաճախորդը չի կարող տեսնել։ Լուծիչին ուղղված հարցումը ծածկում է էջի բեռնման մյուս կեսը, քանի որ անվան ձախողումը և կանգնած միացումը զննարկիչում նույնն են թվում։ Միասին, այդ չորս ելքերը առանձնացնում են հնացած սեսիան կոտրված թունելից։
Գրանցեք ընդհատման ժամանակը, վերամիացման ժամանակը և հին ու նոր հարցումների տարբերությունը։ Այդ գրառումը անորոշ բողոքը դարձնում է հաշվետվություն, որի վրա ինչ-որ մեկը կարող է գործել։