Bandari chanzo ya mteja dhidi ya msikilizaji wa seva katika mtiririko wa VPN
Linganisha namba mbili za bandari kwenye handaki moja: msikilizaji thabiti wa seva na chanzo cha muda cha mteja, na jinsi tafsiri ya kipanga njia ilivyo katikati.
Katika mazungumzo yale yale yanaonekana namba mbili, na hakuna iliyo mbaya. Kumbukumbu ya seva inaonyesha msikilizaji anayetoa huduma, kompyuta mpakato inaonyesha soketi iliyotuma datagram, na kipanga njia katikati kinaweza kuandika upya ya pili wakati wa kutoka. Kulinganisha ncha mbili za mazungumzo ni muhimu zaidi kuliko kulinganisha tarakimu. Ulinganisho ulio hapa chini unatenganisha msikilizaji, soketi ya mteja na chanzo kilichotafsiriwa, kwa sababu hujibu maswali tofauti.
Namba mbili zinazoelezea ncha zinazopingana
Bandari iliyowekwa ya seva ni lengwa ambalo mteja hupiga. Huwekwa na sera, huonekana kwenye wasifu, na lazima iwe wazi upande wa seva. Bandari chanzo ya mteja huchaguliwa ndani, kwa kawaida kutoka safu ya muda, na ipo ili jibu liwe na mahali pa kutua. Inaweza kubadilika kila muunganisho upya, na hakuna kitu katika muundo kinachotegemea uthabiti wake.
Kipanga njia katikati kinaweza kuandika upya chanzo hicho kwenye ramani yake ya 'NAT'. Ndiyo sababu namba inayoonekana kwenye seva mara nyingi haina uhusiano na ile iliyochaguliwa na kompyuta mpakato.
Mahali ambapo namba ya chanzo hubadilika wakati wa kutoka
Chukua mfano wa kubuni wa IPv4: mteja nyuma ya kipanga njia kinachotafsiri, seva yenye msikilizaji mmoja wa 'UDP', na datagram moja inayovuka zote mbili. Jedwali hutaja kila ncha na kinachotokea kwake, badala ya kucheza tena pakiti kwenye sehemu tatu za uchunguzi.
| 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 |
Lengwa ni thabiti katika kila mstari, na hubadilika tu utambulisho wa chanzo. Mahitaji ya UDP NAT hutofautisha anwani na bandari ya ndani na ramani ya nje, ambayo ndiyo tofauti kamili kati ya mstari wa pili na wa tatu. Kipanga njia kinaweza kuhifadhi bandari chanzo ya mteja au kuchagua nyingine; kuhifadhi si kitu ambacho programu inapaswa kudhani.
Soma ncha tatu kutoka kwa wenyeji wenyewe
Orodha zilizo hapa chini zinatoka kwa mashine tatu tofauti na kwa pamoja zinaonyesha mazungumzo yote. Endesha ya kwanza kwenye seva, ya pili kwa mteja na ya tatu popote ramani ilipo. Mstari mmoja wa kumbukumbu hauonyeshi zote tatu kamwe.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
Orodha ya kwanza inathibitisha kuwa seva imefungwa kwenye bandari ya huduma na inaonyesha mchakato unaoimiliki. Ya pili inaonyesha soketi ya ndani ya mteja na lengwa alilopiga. Ya tatu inaonyesha ramani iliyoundwa na kipanga njia, na ndiyo mahali pekee panapoonekana chanzo kilichotafsiriwa. Zisome kwa mpangilio huo na namba mbili zitaacha kuonekana zikipingana.
Muunganisho upya hubadilisha nini, na nini haubadilishi
Vipanga njia vingine huhifadhi bandari chanzo ya mteja ikiwa wazi, na vingine hutoa nyingine kila mara. Tabia zote mbili ni za kawaida, na programu inayodai ya kwanza itavunjika kwa ya pili. Mabadiliko ya ramani baada ya muunganisho upya au mabadiliko ya mtandao si hitilafu ya seva: mteja hufungua soketi mpya, kipanga njia hutoa kilichonacho, na seva huona chanzo kipya kwenye msikilizaji yuleyule. Hitilafu itakuwa kutarajia seva ikubali trafiki inayoelekezwa kwenye bandari yoyote ya mteja.
Wateja OpenVPN wa jumuiya hupata tabia hii kupitia nobind, ambayo huiruhusu mfumo wa uendeshaji kuchagua bandari ya ndani; bandari ya mbali bado inatoka kwenye wasifu. Kufunga kwa uwazi ni uamuzi wa kufikiriwa, si sharti la itifaki. Seva inaendelea kutoa ncha moja wakati wateja wanachagua utambulisho wao wa ndani.
Weka lebo za tabaka kwa kila mmoja kwenye rekodi
Ndani ya handaki kuna mazungumzo ya pili yenye bandari zake. Ombi la HTTPS linalobebwa na handaki lina lengwa TCP 443, wakati muunganisho wa nje uliosimbwa hutumia UDP 1194, kwa hiyo kubadilisha bandari chanzo ya nje hakubadilishi chochote kwenye huduma ya ndani.
Hata kwenye tabaka la nje, itifaki ni muhimu. UDP 1194 na TCP 1194 ni ncha tofauti, na msikilizaji wa 'TCP' hatapokea kamwe datagram ya UDP kwa sababu tu namba inalingana. Unapoandika kumbukumbu ya usambazaji, weka lebo ya msikilizaji wa seva, soketi ya mteja na chanzo kilichotafsiriwa kama vitu vitatu tofauti, na uongeze usafiri kwa kila kimoja.
Kisha acha sera ifuate majukumu. Seva hufungua usafiri uliokusudiwa kwenye msikilizaji wake na bado huthibitisha mwenzake; ngome ya mteja huruhusu majibu ya mabadilishano yake ya kutoka bila kuchapisha huduma ya kuingia. Kichujio kisicho na hali kinahitaji mwelekeo wa kurudi uandikwe wazi, na hiyo ndiyo sababu ya kivitendo kwa nini tofauti hii ni muhimu zaidi ya michoro nadhifu.