Առաջին նիստը հաղթում է. OpenVPN մուտքերի արգելափակումը մինչև դուրսբերումը
Ավելի ուշ մուտքը մերժելը նույնը չէ, ինչ հինը փոխարինելը։ Որոշումը պետք է կայացվի նույն անվան դուրսբերումից առաջ, և սլոթի ստուգումը պետք է ատոմային լինի։
Մեկ հաշվի համար մեկ նիստ թույլ տվող քաղաքականությունը թվում է լուծված, մինչև չգա երկրորդ մուտքը։ Հնարավոր են երկու ելք՝ նորեկը փոխարինում է ընթացող նիստին, կամ ընթացող նիստը պահում է սլոթը, և նորեկը մերժվում է։ Միայն երկրորդն է առաջին նիստը հաղթում է քաղաքականությունը։ Այն հաճախորդի ընտրանքը, որին դիմում են մեծ մասը, միացնում է զուգահեռությունը և հետևաբար չի տալիս այդ արդյունքը։
Մեկ կարգավորման հետևում թաքնված են երկու պայմանագիր
Զուգահեռությունն անջատված լինելու դեպքում նույն վկայագրի անունը կրող երկրորդ միացումը կարող է տեղահանել արդեն աշխատող նիստը։ Զուգահեռությունը միացնելը թույլ է տալիս միաժամանակ մի քանի նիստ, ինչը սահմանափակման հակառակն է։ Ոչ մի վիճակ մերժման քաղաքականություն չէ, ուստի որոշումը պետք է կայացվի բոլորովին այլ տեղ։
Գրի առեք պայմանագիրը նախքան որևէ բան ներդնելը՝ ով է մերժվում, ինչ ապացույց է նույնացնում ընթացող նիստը, և ինչ է տեղի ունենում, երբ նիստը մահանում է առանց մաքուր անջատման։ Քաղաքականությունը, որը ոչ ոք այդպես չի ձևակերպել, հնարավոր չէ ավելի ուշ ստուգել։
Դուրսբերումը տեղի է ունենում ձեր միացման կեռիկից առաջ
2.6 սերվերի կոդի ուղու վրա նոր հաճախորդի վաղ նախապատրաստումը հեռացնում է նույն անունով գոյություն ունեցող օրինակները, երբ զուգահեռությունն անջատված է։ Այդ հեռացումը տեղի է ունենում մինչև միացման մշակիչների շղթայի աշխատելը։ Ուստի սկրիպտը, որը նկատում է կրկնօրինակը և վերադարձնում ձախողում, մերժում է նորեկին այն բանից հետո, երբ ընթացող նիստն արդեն դուրս է նետվել՝ հենց այն արդյունքը, որը քաղաքականությունը պետք է կանխեր։ Upstream իրականացման հետկանչների հերթականությունը ձեր կառուցման միակ հուսալի պատասխանն է։
| Stage | Who can still refuse | Effect on the incumbent |
|---|---|---|
| Certificate check | Server trust configuration | None |
| Authentication decision | The authentication controller | None, because establishment has not run |
| Connect handler | A profile script | Already evicted in the same-name case |
| Post-establishment | Status tooling, monitoring | Both sessions already exist or one is gone |
Կարգավիճակի ֆայլի հարցումը նույնպես դարպաս չէ։ Միասին եկող երկու փորձեր կարող են երկուսն էլ տեսնել դատարկ սլոթ, նախքան դրանցից մեկը կհաստատի այն, և երկուսն էլ շարունակում են։
Տեղափոխեք որոշումը նույնականացման մեջ
Կառավարման միջերեսը կարող է ստանձնել նույնականացման որոշումը վկայագրի ստուգումից հետո։ Այդ դասավորության մեջ կարգավորիչը դիտորդ չէ. այն ստանում է յուրաքանչյուր միացող հաճախորդի օրինակ և պատասխանում՝ թույլատրվա՞ծ է արդյոք այդ օրինակին շարունակել։ Քանի որ պատասխանը գալիս է հաստատումից առաջ, մերժումը թողնում է ընթացող նիստն անձեռնմխելի։ Նույն ուղին հաղորդում է անջատումների մասին, և այդպես կարգավորիչը իմանում է, որ սլոթը օրինականորեն ազատվել է։
Յուրաքանչյուր նոր օրինակ պետք է անցնի այդ դարպասով, ներառյալ վերամիացումները և ցանկացած ուղի, որը վերանույնականացնում է առանց հարցման։ Դարպասը, որին որոշ օրինակներ երբեք չեն հասնում, ոչինչ չի պաշտպանում, և բացթողումը մնում է անտեսանելի, մինչև ինչ-որ մեկը փորձի շրջանցումը։
Տոկենները կարող են անցնել դարպասի կողքով
Տոկեն թողարկվելուց հետո սերվերը կարող է այն ներքուստ վավերացնել և շրջանցել արտաքին նույնականացումը այդ միացման համար։ Կառավարման կանչը երբեք տեղի չի ունենում, ուստի միայն այնտեղ ներդրված սլոթի ստուգումը երբեք չի տեսնում նոր օրինակը։ Այդ վարքը հարմարություն է օգտագործողների համար և անցք զուգահեռության քաղաքականության մեջ։ Ստիպեք տոկենով նույնականացված միացումներին անցնել համարժեք հեղինակավոր ստուգում, կամ անջատեք տոկենի ուղին, երբ քաղաքականությունը պահանջում է որոշում յուրաքանչյուր միացման համար։
Մի՛ փոխհատուցեք դա՝ առանց պայմանի ընդունելով յուրաքանչյուր տոկեն։ Ժամկետանց կամ անվավեր տոկենը դեռ պետք է ձախողվի, և այն պետք է ձախողվի նույն որոշման կետով, ինչ մնացած ամեն ինչ։
Կապեք ամրագրումը օրինակին, ոչ թե հասցեին
Հասցեն վատ ինքնություն է. նույն նոթբուքից վերամիացումը կարող է գալ այլ հասցեից, և պատճենված հավատարմագրերը կարող են գալ նույն հասցեից։ Կապեք ամրագրումը սերվերի կողմից տրված հաճախորդի օրինակին, որպեսզի արդեն ընդունված օրինակի վերանույնականացումը ճանաչվի որպես սեփականատեր։ Նոր օրինակի նույնացուցիչը պետք է ձեռք բերի իր սլոթը առաջինը հաղթում է որոշման միջոցով նույնիսկ այն դեպքում, երբ ներկայացնում է նույն տոկենը։
Ազատեք միայն ձախողված փորձին պատկանող ամրագրումը։ Ավելի հին փորձից ուշացած անջատման իրադարձությունը չպետք է ջնջի ավելի նոր սեփականատիրոջ սլոթը, դրա համար ազատումը նշում է օրինակը, ոչ թե հաշիվը։ Կարգավորիչի վերսկսումից հետո համաձայնեցրեք կենդանի նիստերը նախքան որևէ մեկին ընդունելը, և կիրառեք նույն կանոնը յուրաքանչյուր դարպասում, որը սպասարկում է հաշիվը։
Առանձին որոշեք, թե ինչպես է վերականգնվում իսկապես հնացած սլոթը։ Ադմինիստրատորին անհրաժեշտ է փաստաթղթավորված միջոց այն մաքրելու համար, և այդ ուղին չպետք է հասանելի լինի այն օգտագործողին, ով պարզապես սեղմում է վերամիանալ։
Փորձարկեք կարևոր զույգերը՝ երկու գրեթե միաժամանակյա մուտք, վերամիացում մաքուր անջատումից հետո, ընթացող նիստի վերանույնականացում, մերժված նորեկ և կարգավորիչի վերսկսում։ Յուրաքանչյուր դեպքում ընթացող նիստը պետք է մնա օգտագործելի, իսկ նորեկը մերժվի առանց այլ հաշիվներին վնասելու։