એક પ્રોગ્રામ સામાન્ય કનેક્શન વાપરવું જોઈએ જ્યારે બાકીનું બધું ટનલ પર રહે, અને ક્લાયન્ટ પાસે તે માટે કોઈ સ્વિચ નથી. છુપાયેલું મેનુ પણ શોધવા માટે નથી. માર્ગ પેકેટની અંદરના ફીલ્ડમાંથી પસંદ થાય છે, અને પેકેટ સરનામાં અને પોર્ટ વહન કરે છે, તેને બનાવનાર પ્રક્રિયાની ઓળખ નહીં, તેથી બાકાત રાખવાનું તે ફીલ્ડમાંથી એકમાં વ્યક્ત કરવું પડે. એક વાર પેકેટને અનુસરો અને ઉપલબ્ધ વિકલ્પો રહસ્યમય રહેવાનું બંધ કરે છે.

ક્લાયન્ટ તે કેમ આપી શકતું નથી

ગંતવ્ય રાઉટિંગ ગંતવ્ય સરનામાને પ્રીફિક્સ સાથે સરખાવે છે અને સૌથી લાંબો મેળ રાખે છે. તે ક્ષણે દરેક પેકેટ એકસરખું દેખાય છે, તેને શું બનાવ્યું તે ગમે તે હોય. સ્રોત નીતિ રાઉટિંગ સરખામણીને સ્રોત સરનામા સુધી વિસ્તારે છે, અને દરેક વ્યવહારુ ઉકેલ આ હૂક જ વાપરે છે: સ્રોત બદલો, અને બીજું ટેબલ પાત્ર બને છે.

પોર્ટ મદદ કરતા નથી. પોર્ટ દ્વારા બાકાત રાખવાનું ગંતવ્ય શોધ પહેલાં મૂલ્યાંકન કરવું પડતું, અને તે નિર્ણયમાં પોર્ટનો કોઈ ભાગ નથી. પોર્ટ-આધારિત બાકાત તરીકે જે પણ જાહેર થાય છે તે વાસ્તવમાં બીજા કોઈ ફીલ્ડ દ્વારા બાકાત રાખે છે અને તેને ઢીલી રીતે વર્ણવે છે.

સાચું એપ્લિકેશન-વાર રાઉટિંગ ત્યાં અસ્તિત્વમાં છે જ્યાં પ્લેટફોર્મે તેના માટે મશીનરી ઉમેરી છે, જેમ કે Windows પર ફિલ્ટર કૉલઆઉટ અથવા Android પર VPN સેવા બાઈન્ડિંગ. ડેસ્કટોપ OpenVPN ઇન્સ્ટન્સ તેમાંથી કંઈપણ લાવતું નથી, અને કોઈ કન્ફિગરેશન ફ્લેગ તેને શોધી કાઢતું નથી.

Linux: પ્રક્રિયાને ચિહ્નિત કરો, પછી ચિહ્નને રાઉટ કરો

સૌથી સ્વચ્છ અભિગમ નિર્ણયને સોકેટ ધરાવતી પ્રક્રિયા સાથે જોડે છે. owner મેળ OUTPUT ચેઇનમાં સ્થાનિક રીતે ઉત્પન્ન થયેલા ટ્રાફિક માટે કામ કરે છે, તેથી ત્યાં લગાવેલું ચિહ્ન અલગ ટેબલ પસંદ કરી શકે છે:

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

વપરાશકર્તા 1001 ના પેકેટ પછી ટેબલ 200 ની સલાહ લે છે અને સામાન્ય ગેટવે દ્વારા નીકળે છે, જ્યારે મુખ્ય ટેબલ બાકીનું બધું ટનલમાં મોકલે છે. owner મેળ ફક્ત સ્થાનિક રીતે ઉત્પન્ન થયેલા પેકેટ પર લાગુ પડે છે, જે અહીં તમારા માટે મહત્વનો ટ્રાફિક છે, અને તે બીજા હોસ્ટ માટે ફોરવર્ડ કરેલા પેકેટનું વર્ગીકરણ કરી શકતું નથી. ઈરાદાથી નહીં, સાધનોથી ચકાસો: ss -tnp સ્થાપિત કનેક્શનનું સ્થાનિક સરનામું અને માલિક પ્રક્રિયા બતાવે છે, અને ip route get 1.1.1.1 mark 0x1 બતાવે છે કે ચિહ્ન કયું ટેબલ પસંદ કરે છે.

નેટવર્ક નામસ્થાન સ્વતંત્ર પ્રોગ્રામ માટે વધુ મજબૂત જવાબ છે, કારણ કે તેની અંદર બનેલું દરેક સોકેટ બાંધકામથી જ તેના સાથે બંધાયેલું હોય છે, તેથી સહાયક પ્રક્રિયાઓ અને બાળ કનેક્શન કોઈપણ વર્ગીકરણ વિના વર્તન વારસામાં લે છે. ખર્ચ પ્લંબિંગ છે: એક veth જોડી, દરેક છેડે એક સરનામું, અને નામસ્થાનની અંદર ડિફોલ્ટ માર્ગ જે હોસ્ટ તરફ પાછો જાય છે.

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: ગંતવ્ય હજુ પણ નક્કી કરે છે

Windows ગંતવ્ય પરથી આઉટગોઇંગ ઇન્ટરફેસ પસંદ કરે છે, તેથી અલગ માર્ગ ઈચ્છતા પ્રોગ્રામે એવું કંઈક બદલવું પડે જે તે પસંદગી પહેલાં સ્ટેક સલાહ લે છે. ForceBindIP પહેલો ભાગ આવરે છે: તે પ્રોગ્રામ શરૂ કરે છે જેનાં સોકેટ પહેલેથી જ તમે નામ આપેલા સ્થાનિક સરનામા સાથે બંધાયેલાં હોય છે. એકલું તે નથી બદલતું કે પેકેટ કયા ઇન્ટરફેસથી નીકળે છે, કારણ કે માર્ગ હજુ પણ ગંતવ્ય પસંદ કરે છે. જેનો ડિફોલ્ટ માર્ગ ટનલ તરફ જાય છે તેવા લેપટોપ પર સ્રોત બાંધો, અને પેકેટ તો ટનલમાં જ જાય છે.

લક્ષણનો એક વાંચનીય આકાર છે, એક વાર ઓળખી લો પછી. તે એવા LAN સરનામા માટે લાગુ પડે છે જ્યાં પસંદ કરેલો ઇન્ટરફેસ સીધો પહોંચે છે, અને ઇન્ટરનેટ પરની કોઈપણ વસ્તુ માટે નિષ્ફળ જાય છે જેનો માર્ગ ટનલ તરફ જાય છે. તે કામ કરતું પણ લાગે છે જ્યાં સુધી પ્રોગ્રામ કામ સહાયકને સોંપે નહીં, કારણ કે પોતાનું સોકેટ ખોલતા સહાયકને બંધન વિશે કદી કહેવાયું નથી.

જ્યારે એક પ્રક્રિયા ખોટો એકમ હોય ત્યારે નિર્ણય ખસેડો

જો ખરી જરૂરિયાત પ્રોગ્રામ નહીં પણ ઉપકરણ હોય, તો તેને તેના પોતાના SSID અથવા VLAN પર મૂકો અને રાઉટરને નક્કી કરવા દો: તે સ્રોત સામાન્ય માર્ગ લે છે જ્યારે બીજા સ્રોત ટનલ વાપરે છે. સમર્પિત ગેટવે મશીન બીજી પ્રામાણિક ડિઝાઇન છે: તે VPN રાખે છે અને ફક્ત તે ગંતવ્યો સ્વીકારે છે જે રાઉટર તેને મોકલે છે. VLAN પર નીતિ ઉપકરણ ખોલે તે દરેક ફ્લોને આવરે છે, જેમાં તે સહાયક પ્રક્રિયાઓ પણ છે જેમણે Windows અભિગમ તોડ્યો. બદલો વ્યાપ છે: તે ઉપકરણ પરના બે પ્રોગ્રામને હવે અલગ રીતે ગણી શકાતા નથી.

બંને સ્રોત અથવા ગંતવ્ય નીતિઓ છે, જેનો વ્યાપ એક વાક્યમાં કહી શકાય. કોઈપણ એપ્લિકેશન-વાર નથી, અને જે ડિઝાઇન પોતાને એપ્લિકેશન-વાર તરીકે વેચે છે તે પ્રથમ વાર નિષ્ફળ જાય છે જ્યારે પ્રોગ્રામ તેનું કામ બીજી પ્રક્રિયાને સોંપે છે.

સંબંધિત લેખો