Nur-IPv6-konekto, IPv4-servo: lasu SOCKS-prokurilon ponti
SOCKS-prokurilo akceptas unu konekton kaj malfermas alian, do kliento nur-IPv6 atingas servon IPv4. Tio estas plusendado, ne denaska IPv4-aliro.
Vi ne bezonas adreson en la celloka familio por atingi ĝin, kondiĉe ke io sur la vojo pretas plusendi. La aplikaĵo konektiĝas al la prokurilo, kaj la prokurilo malfermas duan konekton al la celo. Tio estas du poŝoj kun sendependaj adresfamilioj, kaj nenio en iu ajn el la du protokoloj postulas, ke ili kongruu. Tio estas plusendado je aplikaĵa nivelo, ne denaska IPv4-vojo, kaj tiu distingo decidas, kio funkcios kaj kio ne. Konfuzi la du estas la maniero, kiel tekkomputilo finas priskribita kiel havanta IPv4-konektecon, kiam ĉio, kion ĝi havas, estas prokurilo.
Du poŝoj, du adresfamilioj
SOCKS5-peto nomas la celon en unu el tri formoj: laŭlitera v4-adreso, laŭlitera v6-adreso, aŭ nomo por ke la prokurilo solvu. La peto priskribas, kie la prokurilo devas konekti, ne kiel aspektas la kliento-al-prokurilo-konekto.
Legu tiujn adrestipojn kiel tri sendependajn elektojn ene de unu mesaĝo. Prokurilo atingebla per IPv6 povas malfermi IPv4-cellokan poŝon kiam ajn ĝi havas funkciantan IPv4-eliron kaj ĝia politiko permesas la peton. La SOCKS5-specifikaĵo difinas ilin tute sen referenco al la transporto de la kliento.
Kontrolebla SSH-ekzemplo
Prenu SSH-gastiganton, kiun vi rajtas uzi, kiu respondas per IPv6 kaj mem povas atingi HTTPS-servon ekzistantan nur per v4. La dinamika plusendado de OpenSSH metas lokan SOCKS-aŭskultanton sur vian maŝinon dum la ensaluta seanco iras per v6.
ssh -6 -N -D 127.0.0.1:1081 -o ExitOnForwardFailure=yes [email protected]La gastiganto kaj konto supre estas ekzemploj, kaj la loopback-ligo tenas la aŭskultanton sur ĉi tiu komputilo. Ne anstataŭigu ĝin per ĵokera ligo por ke oficejo povu dividi neaŭtentikigitan prokurilon. ExitOnForwardFailure=yes ekzistas por ke malsukcesa plusendado finu la seancron anstataŭ lasi silentan komandon kuranta fone.
Kun la seanco kuranta, la peto aspektas tiel:
curl --proxy socks5h://127.0.0.1:1081 https://v4-only.example/La loopback-konekto ne estas IPv4-interreta vojo. Tio, kio forlasas vian maŝinon, estas la ensaluta seanco per v6, kaj la fora flanko malfermas la celpoŝon. La formo socks5h ankaŭ delegas nomrezolucion al tiu flanko, kio gravas kiam la kliento ne havas propran IPv4-rezolvan vojon.
Kion la celo fakte vidas
La celo vidas la eliran adreson de la plusendilo. Neniu adreso apartenanta al via tekkomputilo aperas tie. Fonto-permeslisto ĉe tiu servo devas nomi la plusendilon. Ĝiaj protokoloj ankaŭ atribuos la trafikon al la plusendilo. Skribu tion en la ŝanĝprotokolon antaŭ la revizio, ĉar permeslisto konstruita ĉirkaŭ klientaj adresoj malsukcesas ĉe la unua peto.
La plusendilo ankaŭ estas la loko, kie videblas la du duonoj de la interparolo, kio estas utila eco dum diagnozo kaj ŝarĝo se la plusendilo estas dividata sen politiko.
Ĉi tio ne estas DNS64 aŭ NAT64
DNS64 respondas per sintezitaj rikordoj, kiuj anstataŭas v4-celojn, kaj NAT64 reeorigas pakaĵojn laŭ agordita vojo. Neniuj priskribas tion, kio okazas ĉi tie, kie unu transporta interparolo finiĝas kaj alia komenciĝas kaj neniu sintezita adreso klarigas la rezulton. Sukcesa peto do diras nenion pri tio, kiujn tradukajn servojn via provizanto funkciigas, kaj la prokurilo povas funkciigi ordinaran NATN sur sia propra eliro.
Ambaŭ mekanismoj povas ekzisti en la sama reto, do priskribu tiun, kiun vi efektive kontrolis, anstataŭ tiun, kiu sonas plej proksima.
Konu la amplekson antaŭ ol promesi ĝin
La dinamika plusendado de OpenSSH portas TCP-konektojn, ne arbitran IP-trafikon, do UDP, ICMP kaj iu ajn protokolo, kiu ignoras la prokurilon, bezonas alian subtenatan dezajnon. Konservu la kontrolon de SSH-gastiganta ŝlosilo, la plusendajn limigojn de la servilo kaj la validigon de HTTPS-atestilo, ĉar la prokurilo estas plia fidata partoprenanto, ne kialo por malfortigi identecajn kontrolojn. Se la celo estas porti la eksteran transporton de VPN tra la prokurilo, kontrolu, ke ambaŭ finoj subtenas tiun transporton anstataŭ supozi, ke iu ajn SOCKS-aŭskultanto povas plusendi ĝin.
Nenio el tio igas la klienton duobla-staka, kaj nenio el tio bezonatas. Ĝi igas unu aplikaĵon atingi unu servon tra unu plusendilo, kio estas pli malgranda aserto kaj multe pli facile kontrolebla.