Programu moja inapaswa kutumia muunganisho wa kawaida wakati kila kitu kingine kinabaki kwenye handaki, na mteja hana swichi ya hilo. Hakuna menyu iliyofichwa ya kupatikana pia. Njia huchaguliwa kutoka sehemu zilizo ndani ya pakiti, na pakiti hubeba anwani na lango, si utambulisho wa mchakato uliouunda, kwa hivyo kutenga kunapaswa kuonyeshwa katika moja ya sehemu hizo. Fuatilia pakiti mara moja na chaguo zilizopo huacha kuwa za kificho.

Kwa nini mteja hawezi kutoa hilo

Uelekezaji wa lengo hulinganisha anwani ya lengo na viambishi awali na huhifadhi ulinganifu mrefu zaidi. Wakati huo pakiti kila moja huonekana sawa, chochote kilichoiumba. Uelekezaji wa sera ya chanzo hupanua ulinganisho hadi anwani ya chanzo, na ndiyo ndoano ambayo kila suluhisho la vitendo hutumia: badilisha chanzo, na jedwali lingine linafaa.

Malango hayasaidii. Kutenga kwa lango kungehitaji kupimwa kabla ya utafutaji wa lengo, na lango halina sehemu yoyote katika uamuzi huo. Kila kitu kinachotangazwa kama kutenga kwa msingi wa lango kwa kweli hutenga kwa sehemu nyingine na huelezea hilo kwa ulegevu.

Uelekezaji halisi kwa programu unapatikana pale jukwaa lilipoongeza utaratibu wa hilo, kama vile miito ya kichujio kwenye Windows au uunganishaji wa huduma ya VPN kwenye Android. Nakala ya kompyuta ya mezani ya OpenVPN haileti chochote cha hayo, na hakuna bendera ya usanidi inayobuni hilo.

Linux: weka alama kwenye mchakato, kisha elekeza alama

Mbinu safi zaidi inaunganisha uamuzi na mchakato unaomiliki soketi. Ulinganifu wa owner hufanya kazi kwa trafiki inayozalishwa ndani ya mashine katika mnyororo wa OUTPUT, kwa hivyo alama inayowekwa hapo inaweza kuchagua jedwali tofauti:

iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 0x1
ip rule add fwmark 0x1 table 200
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.0 table 200
ip route add default via 192.168.1.1 dev eth0 table 200

Pakiti kutoka mtumiaji 1001 kisha hushauriana na jedwali 200 na hutoka kupitia lango la kawaida, wakati jedwali kuu bado linapeleka kila kitu kingine kwenye handaki. Ulinganifu wa owner unatumika tu kwa pakiti zinazozalishwa ndani ya mashine, ambayo ndiyo trafiki muhimu hapa, na hauwezi kuainisha pakiti zinazopelekwa kwa mwenyeji mwingine. Thibitisha kwa zana, si kwa nia: ss -tnp huonyesha anwani ya ndani na mchakato unaomiliki miunganisho iliyoanzishwa, na ip route get 1.1.1.1 mark 0x1 huonyesha jedwali ambalo alama huchagua.

Nafasi ya majina ya mtandao ni jibu imara zaidi kwa programu inayojitegemea, kwa sababu kila soketi inayoundwa ndani yake imefungwa nayo kwa muundo, kwa hivyo michakato saidizi na miunganisho ya watoto hurithi tabia bila kuainishwa kabisa. Gharama ni mabomba: jozi ya veth, anwani kila mwisho, na njia chaguo-msingi ndani ya nafasi ya majina inayoelekeza nyuma kwa mwenyeji.

ip netns add novpn
ip link add veth-host type veth peer name veth-ns
ip link set veth-ns netns novpn
ip addr add 10.200.0.1/24 dev veth-host
ip netns exec novpn ip addr add 10.200.0.2/24 dev veth-ns
ip netns exec novpn ip route add default via 10.200.0.1

Windows: lengo bado linaamua

Windows huchagua kiolesura cha kutoka kutokana na lengo, kwa hivyo programu inayotaka njia tofauti lazima ibadilishe kitu ambacho mrundikano huuliza kabla ya chaguo hilo. ForceBindIP hufunika nusu ya kwanza: huanzisha programu na soketi zake zikiwa tayari zimefungwa kwa anwani ya ndani unayoitaja. Hilo pekee halibadilishi kiolesura ambacho pakiti hutoka, kwa sababu lengo bado huchagua njia. Funga chanzo kwenye kompyuta ya mkononi ambayo njia yake chaguo-msingi inaelekeza kwenye handaki, na pakiti itaingia handakini hata hivyo.

Dalili ina umbo linalosomeka mara tu unapoijua. Inatumika kwa anwani ya LAN ambayo kiolesura kilichochaguliwa hufikia moja kwa moja na hushindwa kwa kila kitu kwenye mtandao ambao njia yake inaelekeza kwenye handaki. Pia inaonekana kufanya kazi hadi programu ikabidhi kazi kwa msaidizi, kwa sababu msaidizi anayefungua soketi yake mwenyewe hakuwahi kuambiwa kuhusu ufungaji.

Hamishia uamuzi wakati mchakato mmoja ni kitengo kisichofaa

Ikiwa hitaji la kweli ni kifaa na si programu, kiweke kwenye SSID au VLAN yake mwenyewe na uache kipanga njia kuamua: chanzo hicho huchukua njia ya kawaida wakati vyanzo vingine hutumia handaki. Mashine ya lango maalum ni muundo mwingine wa uaminifu: inashikilia VPN na hupokea tu maeneo ambayo kipanga njia huituma. Kwenye VLAN sera inashughulikia kila mtiririko ambao kifaa hufungua, ikiwa ni pamoja na michakato saidizi iliyovunja mbinu ya Windows. Badilishano ni wigo: programu mbili kwenye kifaa hicho haziwezi kushughulikiwa tofauti tena.

Zote mbili ni sera za chanzo au lengo zenye wigo unaoweza kusema katika sentensi moja. Hakuna moja iliyo kwa programu, na muundo unaojitangaza kama wa programu hushindwa mara ya kwanza programu inapokabidhi kazi yake kwa mchakato wa pili.

Makala zinazohusiana