Ձեր կոնտեյները կարող է լսել UDP 1195-ում, մինչ հոսթը հրապարակում է 1194-ը, և դա ճիշտ է, քանի դեռ քարտեզագրումն այդպես է ասում։ Թվերը կազմում են թարգմանության աղյուսակ. հաճախորդը հավաքում է հոսթի պորտը, Docker-ը վերագրում է նպատակակետը կոնտեյների պորտին, և OpenVPN պատասխանում է այն պորտում, որը նշում է իր սեփական կոնֆիգուրացիան։ Այդ օղակներից ցանկացածում անհամապատասխանությունը ստեղծում է լուռ ձախողում, որը նման է firewalls։ Վկայականները և գաղտնագրերը գտնվում են դրանից ներքև և չեն կարող ուղղել այն։

Հետևեք մեկ փաթեթի հաճախորդից մինչև պրոցես, նախքան նույնականացման մեջ ինչ-որ բան փոխելը։

Երեք թիվ, մեկ կապ

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

Նախքան վրիպազերծումը շղթան գրեք մեկ տողով՝ հաճախորդի հասցեն և պորտը, հոսթի քարտեզագրումը, կոնտեյների լսողը, տրանսպորտը։ Շղթայի թերությունը երևում է որպես թիվ, որը հայտնվում է երկու անգամ տարբեր արժեքներով։

LocationExample
Remote client destinationHost address, UDP 1194
Published mappingHost UDP 1194 to container UDP 1195
Container listenerOpenVPN on UDP 1195

Ինչ է իրականում ասում կարճ շարահյուսությունը

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

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

ports:
  - 1194:1195/udp

Որտեղ փաթեթը կարող է կանգնել

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

Ապա լսողը. OpenVPN-ի կոնֆիգուրացիան նշում է պորտ և արձանագրություն, և կոնտեյների ներսում մեկ այլ պորտի հասնող հաճախորդը ոչնչի չի հասնում։ UDP ծառայության TCP-ով փորձարկումը ոչինչ չի ապացուցում այս փուլերից ոչ մեկում, ուստի օգտագործեք այն տրանսպորտը, որը կօգտագործի հաճախորդը։

Կապման հասցեները որոշում են հասանելիությունը

loopback-ին կապված հրապարակված քարտեզագրումը հասանելի է միայն հոսթից, մինչդեռ բոլոր ինտերֆեյսներին կապվածը հասանելի է այնտեղ, որտեղ firewall-ը թույլ է տալիս։ Երկուսը նույնական են թվում հասցեն բաց թողնող Compose ֆայլում, և Docker-ի լռելյայնը լայնն է։

Որոշեք, թե տեղաբաշխումը ինչ բացահայտում է նախատեսում, ապա գրեք այն հստակ։ loopback-ով միացող ներքին թեստը և չմիացող հեռավոր հաճախորդը կարող են երկուսն էլ նույն կոնտեյների ճշգրիտ նկարագրությունները լինել։

Կարդացեք աշխատող վիճակը

Ուսումնասիրեք աշխատող կոնտեյների փաստացի քարտեզագրումը և լսողը նրա ցանցային անվանատարածքում։ Compose ֆայլը կարող է փոփոխված լինել կոնտեյների մեկնարկից հետո, պատկերի մետատվյալները կարող են հայտարարել պորտ՝ առանց այն հրապարակելու, և երկրորդ կոնտեյները կարող է արդեն զբաղեցնել հոսթի պորտը։ Պատկերում պորտ հայտարարելը դրա հրապարակումը չէ, և դրանցից ոչ մեկը նույնը չէ լսելուն։

Երեք տարբեր վիճակ, երեք տարբեր հրաման, և միայն վերջինն է առնչվում OpenVPN-ին։

Երբ քարտեզագրումը ճիշտ է

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

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

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