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

Թույլտվությունը վերաբերում է հյուրընկալողի վերջնակետին, թարգմանությունը՝ Docker-ին, իսկ մուտքը՝ հավելվածին։ Երեք որոշում, նայելու երեք տեղ։

Հետևեք նպատակակետին հրապարակումից հետո

Վերցրեք Linux Docker հյուրընկալող, որը կոնտեյների 80 պորտը հրապարակում է հյուրընկալողի 8080 պորտում։ Գործընկերը միանում է հյուրընկալողի ցանցային հասցեին 8080-ով, հյուրընկալողը ընդունում է կապը, և նպատակակետի թարգմանությունը վերագրում է այն կոնտեյների կամրջի հասցեին, սովորաբար ինչ-որ բան 172.17.0.2-ի նման՝ 80 պորտում։

Երբ կանոնը ստուգում է այդ հոսքը, հետաքրքիր նպատակակետը կոնտեյներն է, ոչ հյուրընկալողը։ Քաղաքականությունը, որը դատողություն է անում միայն «այս մեքենայի ծառայության» մասին, դատողություն է անում սխալ օբյեկտի մասին։ Հարցումը վայրէջք կատարեց հյուրընկալողի վրա, բայց այն առաքվում է այլ տեղ։

Այդ պատճառով ցանցի փաստաթղթերը Docker կոնտեյներները թվարկում են այն ռեսուրսների շարքում, որոնք Linux-ում կառավարում է տեղական ցանցի թույլտվությունը։ Թույլտվությունը VPN-ի թույլատրելիների ցանկի սովորական գրառման հոմանիշ չէ, և երկու վերահսկիչները չեն փոխարինում միմյանց։ Մեկը որոշում է, թե արդյոք գործընկերը կարող է ընդհանրապես հասնել տեղական ռեսուրսներին, մյուսը որոշում է, թե ինչ նպատակակետեր է կրում թունելավորված երթուղին։

Որոշեք, թե որքան տեղական հասանելիություն է տալիս թույլտվությունը

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

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

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

Փորձարկեք թույլտվությունը, ոչ միայն URL-ը

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

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

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

Գրեք հայտնաբերումը համակարգի սեփական տերմիններով

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

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

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