Dante SOCKS sa ibabaw ng VPN: buong tunnel kumpara sa routing ayon sa pinagmulan
Dalawang paraan para ipadala lamang ang SOCKS proxy sa isang tunnel: palitan ang default na ruta, o iugnay ang isang source address sa sarili nitong talahanayan. Iba ang paraan ng pagpalya nila.
Gusto mong lumabas ang trapiko ng SOCKS proxy sa VPN habang ang natitirang bahagi ng host ay nananatili sa normal nitong landas. Dalawang disenyo ang gumagawa nito, at nagkakaiba sila sa kung ano ang nasisira kapag may nangyaring mali. Ang isa ay nagtutulak ng default na ruta papasok sa tunnel at pagkatapos ay lumilibot dito; ang isa ay iniiwan ang pangunahing talahanayan at nagpapadala ng isang source address sa pangalawang talahanayan. Ang pangalawa ay mas malinis, at may sarili nitong mga bitag.
Dalawang disenyo, dalawang magkaibang saklaw ng pinsala
Ang disenyong buong tunnel ay ang ginagawa ng karamihan sa mga kliyente ng VPN bilang default: palitan ang default na ruta upang lahat ay sumunod sa tunnel, pagkatapos ay ibukod ang hindi dapat sumunod. Madaling isipin at mahirap panatilihing makitid, dahil ang bawat lokal na serbisyong idaragdag mo ay nagmamana ng tunnel hanggang sa ibukod mo ito. Malawak ang paraan ng pagpalya, dahil isang maling ruta lang ang nagdadala na rin ng konektividad ng host mismo.
Ang disenyong pinipili ayon sa pinagmulan ay pumupunta sa kabilang direksyon. Nananatili ang pangunahing talahanayan gaya ng dati, at isang tuntunin ng patakaran ang nagpapadala ng mga packet mula sa isang partikular na lokal na address patungo sa isang talahanayang may default na ruta sa tunnel. Wala nang iba pang nagbabago, ibig sabihin ang saklaw ng pinsala ay isang address.
Ang pagkamakitid na iyon ay ang limitasyon din: gumagana lang ang disenyo kung talagang dinadala ng mga palabas na packet ng proxy ang address na iyon.
Ano ang ginagawa ng external na setting ng Dante
Ang external na setting ang pumipili ng mga address na ginagamit ng proxy para sa mga palabas na koneksyon; hindi nito ginagalaw ang patakaran sa routing ng kernel. Ang paghihiwalay na iyon ang nagpapangyari sa pangalawang disenyo, at dito rin mali ang pagbasa ng mga tao sa dokumentasyon. Ang ituro ang external sa isang address ng tunnel ay nagiging dahilan upang simulan ng proxy ang mga koneksyon nito mula sa address na iyon, at pagkatapos ay nagpapasya ang talahanayan ng routing kung saan pupunta ang mga packet.
Ang listener ay hiwalay na usapin. Panatilihing limitado ang internal sa mga kliyenteng dapat gumamit ng proxy, kailanganin ang pagpapatunay, at isara ang port gamit ang firewall, dahil ang bukas na listener ay hindi katangian ng labasan ng VPN.
Kumpirmahin na ang na-configure na address ay talagang kabilang sa tunnel sa loob ng network namespace ng proxy.
Paggawa ng talahanayang pinipili ayon sa pinagmulan
Para sa isang TUN address na 10.90.0.2/24 na may maabot na peer sa 10.90.0.1, at isang numero ng talahanayan na wala nang ibang gumagamit, ganito ang ayos:
ip -4 route add table 100 10.90.0.0/24 dev tun0 src 10.90.0.2
ip -4 route add table 100 default via 10.90.0.1 dev tun0 metric 10
ip -4 route add table 100 unreachable default metric 32760
ip -4 rule add priority 1000 from 10.90.0.2/32 lookup 100Ang hindi maabot na ruta ang bahaging nilalaktawan ng mga tao. Kung wala ito, ang talahanayang nawalan ng ruta sa tunnel ay bumabagsak sa karaniwang default at tahimik na lumalabas ang proxy sa WAN. Kung mayroon ito, nabibigo ang paghahanap, na isang nakikitang pagpalya sa halip na tahimik na pagtagas. Kailangan ding mauna ang priyoridad ng tuntunin sa anumang iba pang tumutugma sa pinagmulang iyon.
Inilalarawan ng mga halagang ito ang isang topolohiya. Ang mga peer na punto-sa-punto, ang net30 na pagtugon sa address, at ang mga kliyenteng namamahagi ng ibang prefix ay lahat nangangailangan ng sarili nilang ruta, kaya kopyahin ang hugis, hindi ang mga address.
Saan tumatagas ang tuntunin ng pinagmulan
Ang tuntuning tumutugma sa isang source address ay nakakaapekto sa bawat prosesong gumagamit nito, hindi lamang sa proxy. Kung ibinubuklod ng ibang daemon ang parehong address, sumasama rin ang trapiko nito sa tunnel, at ang pagpalya ay magmumukhang problema ng walang kaugnayang serbisyo. Bigyan ang proxy ng address na wala nang ibang gumagamit, o tanggapin na ang saklaw ay ang address at hindi ang proseso.
Ang DNS ang isa pang pagtagas. Ang socket ng resolver ay hindi laging gumagamit ng external na pinagmulan ng datos ng koneksyon ng proxy, kaya maaari pa ring lumabas ang mga paghahanap ng pangalan sa WAN. Subukan ang resolution nang hiwalay sa pagtatatag ng koneksyon, at magpasya kung katanggap-tanggap ang resultang iyon.
Ang IPv6 ay nangangailangan ng sarili nitong mga tuntunin at ruta, dahil walang pinatutunayan ang ayos ng IPv4 tungkol dito.
Pumili ayon sa pagpalyang kaya mong tiisin
Piliin ang buong tunnel kapag ang host ay dapat protektahan nang buo at kaya mong panatilihin ang listahan ng pagbubukod. Piliin ang routing na nakabatay sa pinagmulan kapag dapat panatilihin ng host ang sarili nitong landas at isang serbisyo lang ang dapat i-redirect. Pareho silang lehitimo; ang pagkakamali ay pumili ng isa at pagkatapos ay subukan ito na parang ito ang isa pa.
Anuman ang piliin mo, i-verify mula sa magkabilang panig: isang kahilingan sa pamamagitan ng proxy at isang direktang kahilingan mula sa host, na naitatala ang naobserbahang address ng labasan para sa bawat isa.
Kung bumagsak ang tunnel, magpasya nang maaga kung dapat bang mabigo o umatras ang proxy, at hayaang ipahayag ng talahanayan ng routing ang pasyang iyon.