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

Երկու համար, որոնք նկարագրում են հակադիր ծայրերը

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

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

Որտե՞ղ է փոխվում աղբյուրի համարը դուրս գալիս

Վերցրեք հորինված IPv4 օրինակ՝ թարգմանող երթուղիչի հետևում գտնվող հաճախորդ, մեկ 'UDP' լսողով սերվեր և մեկ դատագրամ, որն անցնում է երկուսով։ Աղյուսակը նշում է յուրաքանչյուր ծայրը և ինչ է կատարվում նրա հետ, փոխարենը երեք դիտարկման կետերում փաթեթը նորից արձակելու։

EndpointWhat stays fixedWhat changes on reconnectWho owns it
Server listenerThe service port and the address the profile namesNothing; the listener does not follow the clientThe server operator
Client socketThe destination it dialsThe local source port, chosen per socketThe client, or its operating system
Translated sourceUsually the public address of the routerThe port, and sometimes the address after a network switchThe NAT device or the upstream carrier

Նպատակակետը հաստատուն է յուրաքանչյուր տողում, և փոխվում է միայն աղբյուրի ինքնությունը։ UDP NAT-ի պահանջները տարբերում են ներքին հասցեն ու պորտը արտաքին քարտեզագրումից, ինչը հենց երկրորդ և երրորդ տողերի տարբերությունն է։ Երթուղիչը կարող է պահպանել հաճախորդի սկզբնաղբյուր պորտը կամ ընտրել այլը. պահպանումը այն չէ, ինչ հավելվածը պետք է ենթադրի։

Կարդացեք երեք ծայրերը հենց հոսթերից

Ստորև ցուցակները գալիս են երեք տարբեր մեքենաներից և միասին ցույց են տալիս ամբողջ զրույցը։ Առաջինը գործարկեք սերվերում, երկրորդը՝ հաճախորդում, իսկ երրորդը՝ այնտեղ, որտեղ քարտեզագրումը գոյություն ունի։ Մեկ մատյանի տողը երբեք չի ցույց տալիս բոլոր երեքը։

ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194

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

Ինչ է փոխում վերամիացումը, և ինչ՝ ոչ

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

Համայնքի OpenVPN հաճախորդները այս վարքագիծը ստանում են nobind միջոցով, որը թույլ է տալիս օպերացիոն համակարգին ընտրել տեղային պորտը. հեռավոր պորտը դեռ գալիս է պրոֆիլից։ Բացահայտ կապելը գիտակցված ընտրություն է, ոչ թե արձանագրության պահանջ։ Սերվերը շարունակում է առաջարկել մեկ ծայր, մինչ հաճախորդներն ընտրում են իրենց տեղային ինքնությունները։

Նշեք շերտերն առանձին գրառման մեջ

Թունելի ներսում երկրորդ զրույց է՝ իր պորտերով։ Թունելով տարվող HTTPS հարցումն ունի TCP 443 նպատակակետ, մինչդեռ արտաքին գաղտնագրված կապը օգտագործում է UDP 1194, ուստի արտաքին աղբյուր պորտի փոփոխությունը ոչինչ չի փոխում ներքին ծառայության մեջ։

Նույնիսկ արտաքին շերտում արձանագրությունը կարևոր է։ UDP 1194-ը և TCP 1194-ը տարբեր ծայրեր են, և 'TCP' լսողը երբեք UDP դատագրամ չի ստանա միայն այն պատճառով, որ համարը համընկնում է։ Տեղադրումը փաստագրելիս նշեք սերվերի լսողը, հաճախորդի սոքեթը և թարգմանված աղբյուրը որպես երեք տարբեր բաներ, և յուրաքանչյուրին ավելացրեք տրանսպորտը։

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

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