Du numeroj aperas en la sama konversacio, kaj nek unu el ili estas malĝusta. La servila protokolo montras la aŭskultanton, kiu proponas la servon, la tekkomputilo montras la soketon, kiu sendis la datagramon, kaj enkursigilo intere povas reverki la duan survoje eksteren. Kompari la finojn de la konversacio pli utilas ol kompari la ciferojn. La komparo sube tenas aparte la aŭskultanton, la klientan soketon kaj la tradukitan fonton, ĉar ili respondas malsamajn demandojn.

Du numeroj, kiuj priskribas kontraŭajn finojn

La agordita pordo de la servilo estas la celo, kiun la kliento vokas. Ĝin fiksas politiko, ĝi aperas en la profilo, kaj ĝi devas esti malfermita ĉe la servila flanko. La fonta pordo de la kliento elektiĝas loke, kutime el la efemera intervalo, kaj ekzistas por ke la respondo havu lokon por alveni. Ĝi povas ŝanĝiĝi ĉe ĉiu rekonekto, kaj nenio en la dezajno dependas de tio, ke ĝi restu stabila.

Enkursigilo intere povas reverki tiun fonton en sian propran 'NAT'-mapadon. Tial la numero observata ĉe la servilo ofte havas neniun rilaton al tiu, kiun la tekkomputilo elektis.

Kie la fonta numero ŝanĝiĝas survoje eksteren

Prenu elpensitan IPv4-ekzemplon: kliento malantaŭ tradukanta enkursigilo, servilo kun unu 'UDP'-aŭskultanto, kaj unu sola datagramo trapasanta ambaŭ. La tabelo nomas ĉiun finpunkton kaj kio okazas al ĝi, anstataŭ reludi la paketon ĉe tri observpunktoj.

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

La celo estas konstanta en ĉiu vico, kaj nur la identeco de la fonto ŝanĝiĝas. Postuloj de UDP NAT distingas internan adreson kaj pordon de la ekstera mapado, kio estas ĝuste la diferenco inter la dua kaj la tria vicoj. Enkursigilo povas konservi la fontan pordon de la kliento aŭ elekti alian; konservado ne estas io, kion aplikaĵo devus supozi.

Legu la tri finpunktojn el la gastigantoj mem

La listoj sube venas el tri malsamaj maŝinoj, kaj kune ili montras la tutan konversacion. Rulu la unuan ĉe la servilo, la duan ĉe la kliento, kaj la trian tie, kie la mapado ekzistas. Unu protokola linio neniam montras ĉiujn tri.

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

La unua listo pruvas, ke la servilo estas ligita al la serva pordo, kaj montras, kiu procezo posedas ĝin. La dua montras la lokan soketon de la kliento kaj la celon, kiun ĝi vokis. La tria montras la mapadon kreitan de la enkursigilo, kaj tio estas la sola loko, kie la tradukita fonto aperas. Legu ilin laŭ tiu ordo, kaj la du numeroj ĉesas aspekti kontraŭdiraj.

Kion rekonekto ŝanĝas, kaj kion ne

Iuj enkursigiloj konservas la fontan pordon de la kliento, kiam ĝi estas libera, kaj iuj ĉiufoje asignas alian. Ambaŭ kondutoj estas normalaj, kaj aplikaĵo, kiu postulas la unuan, rompiĝos ĉe la dua. Ŝanĝo de mapado post rekonekto aŭ retŝanĝo ne estas servila fuŝo: la kliento malfermas novan soketon, la enkursigilo asignas tion, kion ĝi havas, kaj la servilo vidas novan fonton ĉe la sama aŭskultanto. Fuŝo estus atendi, ke la servilo akceptu trafikon adresitan al arbitra klienta pordo.

Komunumaj OpenVPN-klientoj ricevas ĉi tiun konduton per nobind, kio lasas al la operaciumo la elekton de la loka pordo; la fora pordo ankoraŭ venas el la profilo. Eksplicita ligado estas konscia elekto, ne postulo de la protokolo. La servilo daŭre proponas unu finpunkton, dum klientoj elektas siajn proprajn lokajn identecojn.

Marku la tavolojn aparte en la registro

Ene de la tunelo estas dua konversacio kun propraj pordoj. HTTPS-peto portata de la tunelo havas celon TCP 443, dum la ekstera ĉifrita konekto uzas UDP 1194, do ŝanĝo de la ekstera fonta pordo ŝanĝas nenion en la interna servo.

Eĉ ĉe la ekstera tavolo la protokolo gravas. UDP 1194 kaj TCP 1194 estas malsamaj finpunktoj, kaj 'TCP'-aŭskultanto neniam ricevos UDP-datagramon nur ĉar la numero kongruas. Kiam vi dokumentas starigon, marku la servilan aŭskultanton, la klientan soketon kaj la tradukitan fonton kiel tri apartajn aferojn, kaj aldonu la transporton al ĉiu.

Poste lasu la politikon sekvi la rolojn. La servilo malfermas la celatan transporton ĉe sia aŭskultanto kaj ankoraŭ aŭtentigas la partneron; la fajroŝirmilo de la kliento akceptas respondojn al sia propra elira interŝanĝo sen publikigi eniran servon. Senstata filtrilo bezonas eksplicite skribitan revenan direkton, kaj tio estas la praktika kialo, kial la distingo gravas preter ordigitaj diagramoj.

Rilataj artikoloj