Հաճախորդի սկզբնաղբյուր պորտը ընդդեմ սերվերի լսողի VPN հոսքում
Համեմատեք մեկ թունելում երկու պորտերի համարները՝ սերվերի հաստատուն լսողը և հաճախորդի կարճատև աղբյուրը, և ինչպես է երթուղիչի թարգմանությունը գտնվում նրանց միջև։
Նույն զրույցում հայտնվում են երկու համար, և նրանցից ոչ մեկը սխալ չէ։ Սերվերի մատյանը ցույց է տալիս ծառայությունը մատուցող լսողին, նոութբուքը ցույց է տալիս դատագրամն ուղարկած սոքեթը, իսկ միջև գտնվող երթուղիչը կարող է վերաշարադրել երկրորդը դուրս գալիս։ Զրույցի ծայրերը համեմատելը ավելի օգտակար է, քան թվանշանները։ Ստորև համեմատությունը լսողին, հաճախորդի սոքեթը և թարգմանված աղբյուրը առանձին է պահում, որովհետև նրանք տարբեր հարցերի են պատասխանում։
Երկու համար, որոնք նկարագրում են հակադիր ծայրերը
Սերվերի կարգավորված պորտը այն նպատակակետն է, որտեղ զանգում է հաճախորդը։ Այն ամրագրվում է քաղաքականությամբ, երևում է պրոֆիլում և պետք է բաց լինի սերվերի կողմից։ Հաճախորդի սկզբնաղբյուր պորտը ընտրվում է տեղային, սովորաբար կարճատև տիրույթից, և գոյություն ունի, որպեսզի պատասխանը տեղ ունենա իջնելու։ Այն կարող է փոխվել յուրաքանչյուր վերամիացման ժամանակ, և ոչինչ նախագծում կախված չէ նրա կայունությունից։
Միջև գտնվող երթուղիչը կարող է վերաշարադրել այդ աղբյուրը իր սեփական 'NAT' քարտեզագրման մեջ։ Այդ պատճառով սերվերում դիտարկված համարը հաճախ ոչ մի կապ չունի նոութբուքի ընտրածի հետ։
Որտե՞ղ է փոխվում աղբյուրի համարը դուրս գալիս
Վերցրեք հորինված IPv4 օրինակ՝ թարգմանող երթուղիչի հետևում գտնվող հաճախորդ, մեկ 'UDP' լսողով սերվեր և մեկ դատագրամ, որն անցնում է երկուսով։ Աղյուսակը նշում է յուրաքանչյուր ծայրը և ինչ է կատարվում նրա հետ, փոխարենը երեք դիտարկման կետերում փաթեթը նորից արձակելու։
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The 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-ը թույլ է տալիս պատասխանները իր սեփական ելքային փոխանակությանը՝ առանց մուտքային ծառայություն հրապարակելու։ Անվիճակ զտիչը պահանջում է վերադարձի ուղղության բացահայտ գրառում, և սա է գործնական պատճառը, թե ինչու տարբերակումը կարևոր է կոկիկ դիագրամներից դուրս։