Port ng pinagmulan ng kliyente kumpara sa listener ng server sa isang VPN flow
Ihambing ang dalawang numero ng port sa isang tunnel: ang nakapirming listener ng server at ang panandaliang pinagmulan ng kliyente, at kung paano nasa pagitan nila ang salin ng router.
Dalawang numero ang lumilitaw sa iisang usapan, at wala sa dalawa ang mali. Ipinapakita ng log ng server ang listener na nag-aalok ng serbisyo, ipinapakita ng laptop ang socket na nagpadala ng datagram, at ang router sa pagitan ay maaaring mag-rewrite ng pangalawa sa paglabas. Mas kapaki-pakinabang na ihambing ang dalawang dulo ng usapan kaysa ihambing ang mga digit. Pinaghihiwalay ng paghahambing sa ibaba ang listener, socket ng kliyente at isinaling pinagmulan, dahil magkaiba ang sinasagot nila.
Dalawang numero na naglalarawan ng magkasalungat na dulo
Ang naka-configure na port ng server ang destinasyong tinatawagan ng kliyente. Itinakda ito ng patakaran, lumilitaw sa profile at dapat bukas sa panig ng server. Ang port ng pinagmulan ng kliyente ay pinipili nang lokal, karaniwang mula sa ephemeral range, at umiiral para may mapaglapagan ang sagot. Maaari itong magbago sa bawat muling pagkonekta, at wala sa disenyo ang umaasa na manatili itong matatag.
Ang router sa pagitan ay maaaring mag-rewrite ng pinagmulang iyon sa sarili nitong 'NAT' mapping. Kaya naman ang numerong nakikita sa server ay madalas walang kaugnayan sa numerong pinili ng laptop.
Saan nagbabago ang numero ng pinagmulan sa paglabas
Kumuha ng kathang-halimbawang IPv4: isang kliyente sa likod ng router na nagsasalin, isang server na may isang 'UDP' listener, at isang datagram na dumadaan sa dalawa. Pinapangalanan ng talahanayan ang bawat dulo at ang nangyayari rito, sa halip na i-play muli ang packet sa tatlong punto ng pagmamasid.
| 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 |
Ang destinasyon ay palagian sa bawat hilera, at ang pagbabago lamang ay ang pagkakakilanlan ng pinagmulan. Mga pangangailangan ng UDP NAT pinaghihiwalay ang panloob na address at port mula sa panlabas na mapping, at iyon mismo ang pagkakaiba ng pangalawa at pangatlong hilera. Maaaring panatilihin ng router ang port ng pinagmulan ng kliyente o pumili ng iba; ang pagpapanatili ay hindi dapat ipalagay ng aplikasyon.
Basahin ang tatlong dulo mula sa mga host mismo
Ang mga listahan sa ibaba ay mula sa tatlong magkaibang makina at magkakasamang nagpapakita ng buong usapan. Patakbuhin ang una sa server, ang pangalawa sa kliyente at ang pangatlo kahit saan naroon ang mapping. Ang isang linya ng log ay hindi kailanman nagpapakita ng tatlo.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
Pinatutunayan ng unang listahan na nakatali ang server sa port ng serbisyo at ipinapakita kung aling proseso ang may-ari nito. Ipinapakita ng pangalawa ang lokal na socket ng kliyente at ang destinasyong tinawagan nito. Ipinapakita ng pangatlo ang mapping na ginawa ng router, at iyon ang tanging lugar kung saan lumilitaw ang isinaling pinagmulan. Basahin ang mga ito sa ganoong pagkakasunod-sunod at hindi na magmumukhang magkasalungat ang dalawang numero.
Ano ang binabago ng muling pagkonekta, at ano ang hindi
Pinapanatili ng ilang router ang port ng pinagmulan ng kliyente kapag malaya ito, at ang iba ay naglalaan ng iba sa bawat pagkakataon. Normal ang dalawang ugali, at ang aplikasyong nangangailangan ng una ay masisira sa pangalawa. Ang pagbabago ng mapping pagkatapos ng muling pagkonekta o paglipat ng network ay hindi kasalanan ng server: nagbubukas ng bagong socket ang kliyente, naglalaan ang router ng kung ano ang mayroon ito, at nakikita ng server ang bagong pinagmulan sa parehong listener. Kasalanan ang umasa na tatanggapin ng server ang trapikong nakarating sa arbitraryong port ng kliyente.
Ang mga kliyente ng OpenVPN sa komunidad ay nakakakuha ng ugaling ito sa pamamagitan ng nobind, na nagpapahintulot sa operating system na pumili ng lokal na port; ang malayong port ay mula pa rin sa profile. Ang tahasang pag-bind ay sadyang pagpili, hindi kinakailangan ng protocol. Patuloy na nag-aalok ang server ng isang dulo habang pinipili ng mga kliyente ang sarili nilang lokal na pagkakakilanlan.
Lagyan ng label ang mga layer nang hiwalay sa rekord
Sa loob ng tunnel may ikalawang usapan na may sariling port. Ang kahilingang HTTPS na dinadala ng tunnel ay may destinasyong TCP 443, samantalang ang panlabas na naka-encrypt na koneksyon ay gumagamit ng UDP 1194, kaya walang nababago sa panloob na serbisyo kapag binago ang panlabas na port ng pinagmulan.
Kahit sa panlabas na layer, mahalaga ang protocol. Ang UDP 1194 at TCP 1194 ay magkaibang dulo, at ang 'TCP' listener ay hindi kailanman makakatanggap ng UDP datagram dahil lang nagtugma ang numero. Kapag nagdodokumento ng deployment, lagyan ng label ang listener ng server, socket ng kliyente at isinaling pinagmulan bilang tatlong magkaibang bagay, at idagdag ang transport sa bawat isa.
Pagkatapos hayaan ang patakaran na sumunod sa mga papel. Binubuksan ng server ang nilalayong transport sa listener nito at pinapatunayan pa rin ang peer; pinapayagan ng firewall ng kliyente ang mga sagot sa sarili nitong palabas na palitan nang hindi naglalathala ng papasok na serbisyo. Kailangan ng stateless filter ang direksyon ng pagbabalik na nakasulat nang tahasan, at iyon ang praktikal na dahilan kung bakit mahalaga ang pagkakaiba sa labas ng maayos na diagram.