OpenVPN. տեղական հասցեն ընդդեմ թունելի հասցեի՝ երկու տարբեր սոկետ
Այն հասցեն, որը կապ է հաստատում սերվերի հետ, թունելի ներսի հասցեն չէ։ local, remote և nobind-ը որպես առանձին դերեր կարդալը բացատրում է կապակցման սխալների մեծ մասը։
Հաճախորդը հրաժարվում է մեկնարկել և բողոքում է, որ չի կարող կապել տեղական հասցե, իսկ ակնհայտ լուծումը թվում է թե պետք է ուղղել այն դեպի այն թունելի հասցեն, որը նա սպասում է ստանալ։ Դա չի կարող աշխատել, և պատճառն արժե հասկանալ՝ քանի դեռ թունելը գոյություն չունի, ներքին հասցե չկա, և այն սոկետը, որը կապ է հաստատում սերվերի հետ, պետք է գոյություն ունենա առաջինը։ Այստեղ ներգրավված են երկու տարբեր հասցեներ, և դրանցից միայն մեկը կարելի է ընտրել տեղում։
Կապակցման սխալը նշում է տեղական հասցե
Երբ OpenVPN-ը հաղորդում է, որ չի կարող կապել տեղական հասցե, նա խոսում է տրանսպորտային սոկետի մասին՝ այն UDP կամ TCP վերջնակետի, որը գաղտնագրված կապը տանում է դեպի զուգընկերը։
Հստակ local հրահանգը խնդրում է դեմոնին կապել այդ սոկետը որոշակի տեղական հասցեի։ Հասցեն պետք է գոյություն ունենա այն ցանցային անվանատարածքում, որտեղ աշխատում է գործընթացը, և այն պետք է հատկացելի լինի այն պահին, երբ հաճախորդը մեկնարկում է։
Երթուղիչում կամ ամպի եզրին թարգմանված հանրային հասցեն այն տեղական հասցեն չէ, որը դեմոնը կարող է կապել, թեև հենց այն է, ինչ տեսնում է սերվերը։ Այդ տարբերությունը բացատրում է, թե ինչու մի պրոֆիլ աշխատում է տանը և ձախողվում ամպային ինստանսում։ Այն նաև բացատրում է, թե ինչու հանրային հասցեն loopback ինտերֆեյսին ավելացնելը չի օգնում, քանի որ այդ դեպքում տրանսպորտը կելնի այնպիսի հասցեից, որին ցանցը չի կարող պատասխան վերադարձնել։ Կարդացեք ինտերֆեյսների ցանկը պրոֆիլը խմբագրելուց առաջ։
Ինչ են իրականում ընտրում local-ը և remote-ը
remote-ը նշում է այն զուգընկերը, որի հետ պետք է կապ հաստատել։ local-ը կապում է նույն սոկետի մոտակա ծայրը։ nobind-ը օպերացիոն համակարգին թողնում է ընտրել և՛ տեղական հասցեն, և՛ պորտը, դրա համար էլ տնային երթուղիչների հետևում գտնվող հաճախորդները սովորաբար աշխատում են առանց այդ երկու հրահանգներից ոչ մեկի։
Այդ երկու հրահանգներից ոչ մեկը որևէ կապ չունի թունելի ներսի հասցեի հետ։
Կոնտեյներում կամ ցանցային անվանատարածքում գործում է նույն կանոնը՝ ավելի նեղ սահմաններով. հոսթի հասցեները ներսում չկան, ուստի հոսթի կոնֆիգուրացիայից պատճենված local տողը ձախողվում է բոլորովին այլ պատճառով, քան սխալ հասցեն։
ip -brief address show
ip route get 203.0.113.10Ներքին հասցեն գալիս է սերվերից
Թունելի ներսի հասցեն համաձայնեցվում կամ հատկացվում է կառավարման ալիքը հաստատվելուց հետո։ Դինամիկ լողավազանում սերվերը դա որոշում է միանալու պահին, իսկ հաճախորդին հատուկ կոնֆիգուրացիայի դեպքում այն կարող է ֆիքսված լինել ըստ ինքնության։
local-ը ներքին հասցեով գրելը սերվերից չի խնդրում հատկացնել այդ հասցեն։ Լավագույն դեպքում կապակցումը ձախողվում է, վատագույն դեպքում հաճախորդը գտնում է նույն արժեքով անկապ հոսթի հասցե և սկսում է այն օգտագործել տրանսպորտի համար։
Ընթերցման ենթակա ինտերֆեյսները նույնպես տարբեր են։ ifconfig-ի պարամետրերը և լողավազանի կոնֆիգուրացիան նկարագրում են ներքինը, մինչդեռ remote-ը, local-ը, proto-ը և nobind-ը նկարագրում են արտաքինը։ Երկու ցանկերն առանձին պահելը բացատրում է գրեթե բոլոր շփոթեցնող օրինակները, որ կգտնեք ֆորումում։ OpenVPN 2.6 ձեռնարկը նույն պատճառով դրանք լուսաբանում է առանձին բաժիններում։
Թակարդը՝ ամբողջական թունել, որ գերեվարում է սեփական տրանսպորտը
Երբ թունելը բարձրացած է և տանում է լռելյայն երթուղին, այն պահող փաթեթները չպետք է երթուղվեն դրա ներս։ Սա երթուղային խնդիր է, ոչ հասցեային, և դեմոնը լուծում է այն՝ սկզբնական գեյթվեյի միջով ավելի կոնկրետ երթուղի տեղադրելով դեպի սերվերի սեփական հասցեն։
Եթե տրանսպորտը կապեք որոշակի տեղական հասցեի և հետո փոխեք այն ուղին, որն օգտագործում է այդ հասցեն, արտաքին կապը կարող է մոլորվել, մինչ ներքինը մնում է կազմաձևված։ Թունելը շարունակում է հաղորդել, որ միացած է, որովհետև ներքինը լավ է։ Կոտրված է միայն տրանսպորտը, և դրա համար էլ մատյանները կարդացվում են որպես հակասություններ։
Այդ ժամանակ ախտանիշները նման են թունելի, որը միանում է և սառչում, կամ մեկին, որը օգտակար սխալի բացակայությամբ նորից միանում է ցիկլով։ Ստուգեք երթուղին դեպի զուգընկերի հասցեն նախքան թունելի ներսում ինչ-որ բան ստուգելը, և հաստատեք, որ կապած տեղական հասցեն դեռ պատկանում է սպասված ինտերֆեյսին։
Սովորություն, որը կանխում է շփոթությունը
Կարդացեք պրոֆիլի յուրաքանչյուր հասցե և խմբագրելուց առաջ որոշեք, թե որ շերտին է այն պատկանում։
Եթե այն անվանում է տրանսպորտի հեռավոր ծայրը կամ կապում է դրա մոտակա ծայրը, դա արտաքին հասցե է և պետք է գոյություն ունենա մինչ մեկնարկը։ Եթե այն նկարագրում է, թե ինչ է կատարվում թունելի ներսում, այն գալիս է սերվերից կամ տոպոլոգիայից, և ոչ մի տեղական հրահանգ չի կարող փոխարինել այն։
Գրեք երկու ցանկերը պրոֆիլի կողքի տեղակայման նշումներում։ Հաջորդ խնդիրների լուծման նստաշրջանը այդ դեպքում կսկսվի շերտից, ոչ թե ենթադրությունից։