Simetriko na NAT at VPN: sukatin ang pagmamapa, hindi ang etiketa
Ang pagmamapa na nakadepende sa dulo ay nakakaapekto sa pagtuklas ng kapares, hindi sa karaniwang tunnel mula kliyente patungong server. Sukatin ang port, at kung mabigo ang direktang daan, gumamit ng relay.
Nagtatapos ang isang thread ng suporta sa hatol na “simetriko na NAT, hindi gagana ang VPN dito”, at pagkatapos ay i-install muli ang kliyente nang tatlong beses nang walang dahilan. Nakakasama ang etiketa dahil sinasagot nito ang tanong na walang nagtanong. Ang kliyenteng kumokonekta palabas sa isang fixed na server ay gumagawa ng pagmamapa sa sandaling ipadala nito ang unang packet, at pinapayagang bumalik ang tugon ayon sa mga patakarang ipinapatupad ng halos lahat ng network. Ang tunay na pinapahirap ng pagmamapa na nakadepende sa dulo ay ang dalawang kapares na sabay na sinusubukang maabot ang isa’t isa, at ibang pagsubok iyon.
May dalawang tanong na nakatago sa likod ng isang etiketa
Ang unang tanong ay kung makakapagbukas ba ang isang host sa likod ng network na ito ng sesyon patungo sa kilalang pampublikong address at port. Para sa kliyente ng tunnel, iyon ang karaniwang kaso, at ang sagot ay halos palaging oo. Itinatala ng router ang panloob na pinagmulan, naglalaan ng panlabas na port, at pinapadaan ang tugon dahil kabilang ito sa sesyong nagsimula sa loob.
Ang ikalawang tanong ay kung makakahanap ba ang dalawang host sa likod ng magkaibang network ng pinagsasaluhang daan at makakapagpadala sa isa’t isa nang walang server sa gitna. Iyon ay nakadepende sa kung paano inilalaan ng bawat network ang mga panlabas na port, at doon lamang mahalaga ang gawi ng pagmamapa.
Ang paghahalo ng dalawa ay gumagawa ng klasikong maling pagsusuri: nabigo ang isang feature sa pagitan ng kapares, may nagpapatakbo ng pagsubok ng uri ng NAT, nakita ang pinakamasamang kategorya, at napagpasyahan na kahit ang karaniwang tunnel ay hindi rin gagana. Ang tunnel ay hindi kailanman ang nabigo.
Ang pagmamapa at pag-filter ay dalawang hiwalay na katangian
Ang terminolohiya ng RFC ay mas tumpak kaysa sa mga pangalang ginagamit ng mga vendor, at sulit itong dalhin sa ticket dahil inaayos nito ang mga pagtatalo. Ang pagmamapa ay kung paano inilalaan ang panlabas na port. Ang pag-filter ay kung aling mga papasok na packet ang pinapayagang dumaan. Maaaring mahigpit ang isang network sa isa at maluwag sa isa pa, at ang kombinasyong iyon ang kailangang mapagtagumpayan ng isang protocol sa pagitan ng kapares.
| Behaviour | What it means | Effect on a direct peer path |
|---|---|---|
| Endpoint-independent mapping | One external port for every destination | Discovery works if the port is advertised |
| Address-dependent mapping | New port per remote address | Works only if both sides probe the same pair |
| Address-and-port-dependent | New port per remote address and port | Usually needs a relay |
Ang ikatlong hanay ay ang ibig sabihin ng karamihan ng consumer router at mobile operator sa salitang simetriko. Pansinin na inilalarawan lamang ng etiketa ang paglalaan. Ang isang network na may ganoong pagmamapa at maluwag na pag-filter ay maaari pa ring tumanggap ng mga papasok na packet sa port na inilaan nito lamang, kaya nagtatagumpay ang pagbutas ng butas sa ilan at nabibigo sa iba.
Ang pag-filter ay may sariling tatlong kaso at sariling pangalan para sa bawat isa. Ang pagsulat ng “simetriko na NAT” sa ticket samantalang ang ibig sabihin ay “pag-filter na nakadepende sa address at port” ay nagpapadala sa susunod na tao sa maling kabanata ng manwal. Magkaiba ang gawi ng dalawa sa pagsubok, kaya ang pagkakamali ay hindi lamang akademiko.
Sukatin ang pagmamapa sa halip na pangalanan ito
Maaari mong obserbahan ang inilaang port nang direkta mula sa panig ng server ng anumang serbisyong UDP na kinokontrol mo. Simulan ang paghuli sa pampublikong host, magpadala mula sa kliyente, at basahin ang pinagmulang port na dala ng packet:
sudo tcpdump -ni eth0 -c 10 'udp port 51820'
sudo wg show wg0 endpoints
sudo conntrack -L -p udp --dport 51820
Ang hanay ng dulo ang pinakakapaki-pakinabang sa tatlo, dahil itinatala ng WireGuard ang huling address at port na natanggap nito mula sa bawat kapares. Ihambing ang port na iyon sa port na inaakalang ginagamit ng kliyente. Magkaiba sila sa tuwing may pagsasalin, at ang mahalagang tanong ay kung nananatiling matatag ang halaga.
Ulitin ang obserbasyon laban sa ikalawang destinasyong port o ikalawang server at ihambing muli. Kung nagbabago ang panlabas na port ayon sa destinasyon, ang pagmamapa ay nakadepende sa address at port. Kung nananatili itong pareho, isang pagmamapa lang ang ibinibigay ng network at may pagkakataon ang pagtuklas.
Ang mga tool na batay sa STUN ay nag-uulat ng parehong klasipikasyon sa isang hakbang, at magagamit ang mga ito kapag pinapayagan ng network ang palabas na UDP patungo sa pampublikong STUN server. Kapag hindi ito pinapayagan, gumagana pa rin ang paraan ng paghuli sa itaas at wala itong kailangan maliban sa host na kinokontrol mo na.
Pumili ng pagwawasto na tumutugma sa kabiguan
Kung ang nabigong feature ay sa pagitan ng kapares, ang mga sinusuportahang sagot ay relay, serbisyo ng pagkikita na maaabot ng dalawang kapares, o ibang topolohiya. Umiiral ang TURN para mismo dito, at ang produktong may sariling relay ay nagsasabi sa iyo na inaasahan nitong may mga network na magiging palaban.
Kung ang nabigong feature ay karaniwang tunnel, ang gawi ng pagmamapa ay hindi mo problema at wala sa itaas ang naaangkop. Tiyakin na talagang nagpapadala ang kliyente, nakikita ng server ang packet, at bumabalik ang tugon. Tatlong obserbasyon ang sekwensyang iyon at hindi ito nangangailangan ng kaalaman tungkol sa kategorya ng NAT ng router.
Ang hindi gumagana ay ang magkalat ng mga pagbabago sa lokal na port hanggang may kumonekta. Ang pagbabago ng pinagmulang port ng kliyente ay hindi nagbabago sa paraan ng paglalaan ng network ng mga pagmamapa. Ang aksidenteng tagumpay sa ikalimang pagtatangka ay isang maling positibo, at ilang buwan itong sasabihin bilang pagwawasto.
Itala ang arkitektura, hindi ang hatol
Ang isang kapaki-pakinabang na tala ay nagsasabi kung aling protocol, sa aling direksyon nagsisimula ang sesyon, may relay ba sa daan, at ano ang naobserbahan sa kawad. Ang “simetriko na NAT, hindi gumagana” ay walang gamit, dahil sabay itong mali tungkol sa tunnel at walang impormasyon tungkol sa daan ng kapares.
Isama ang sinusukat na katatagan ng port at ang gawi ng pag-filter kung sinubukan mo ang mga ito. Ang dalawang katotohanang ito ay nagpapahintulot sa iba na mahulaan kung gagana ang isang bagong feature sa network na iyon nang hindi inuulit ang buong imbestigasyon. Mas matanda rin silang mabuti kaysa sa kategorya ng vendor na may bahagyang ibang kahulugan sa bawat pahina ng tulong.
Sa huli, itago ang terminolohiya ng RFC 4787 kapag isinusulat ito. Ang paggamit ng tumpak na mga termino ay nagkakahalaga ng isang pangungusap at pumipigil sa susunod na mambabasa na ulitin ang parehong maling pagsusuri, at iyon ang buong layunin ng pagsulat ng tala.