માસ્કરેડ કે નીતિ-આધારિત રૂટિંગ: VPN ગેટવે દ્વારા LAN ટ્રાફિક
Linux ગેટવે LAN સ્રોતોને તેના ટનલ સરનામા પાછળ છુપાવી શકે છે અથવા તેમને અકબંધ રૂટ કરી શકે છે. પસંદગી દૂરના છેડાની માલિકી અને તેના પરત માર્ગ પરથી આવે છે.
આખા LAN ને VPN ટનલ પાછળ મૂકવું સહેલો ભાગ છે; દૂરનો છેડો એ ક્લાયન્ટ્સને કેવી રીતે જુએ તે નક્કી કરવું નથી. માસ્કરેડ દરેક LAN સ્રોતને ગેટવેના ટનલ સરનામા પર ફરીથી લખે છે, તેથી દૂરનો છેડો એક પીઅરને જવાબ આપે છે. નીતિ-આધારિત રૂટિંગ મૂળ સરનામાં જાળવી રાખે છે અને દૂરના છેડાને તેમના સુધી પહોંચવાની રીત જાણવાની જરૂર પડે છે. બંનેમાંથી કોઈ ડિફોલ્ટ નથી; પસંદગી એના પરથી આવે છે કે દૂરનો છેડો કોનો છે અને પ્રતિ-ઉપકરણ ઓળખ મહત્વની છે કે નહીં.
બંને ડિઝાઇન અલગ વસ્તુઓનું વચન આપે છે
માસ્કરેડ LAN ને એક જ દૃશ્યમાન હોસ્ટ સુધી ઘટાડે છે: ગેટવે. દૂરનું નેટવર્ક એ જ એક સરનામાને જવાબ આપે છે, અને ગેટવે જવાબોને પ્રવાહ શરૂ કરનાર ક્લાયન્ટ પાસે પાછા અનુવાદિત કરે છે. દૂરના છેડે તમારા ખાનગી પ્રીફિક્સ માટે કોઈ રૂટની જરૂર નથી, તેથી જ આ ડિઝાઇન એવા પ્રદાતા સાથે ટકી રહે છે જે તેમને વહન કરવાનો ઇનકાર કરે. ગેટવે દરેક કનેક્શનનો સ્રોત પણ બને છે, તેથી દૂરનો છેડો બે ક્લાયન્ટ્સને અલગ પાડી શકતો નથી.
નીતિ-આધારિત રૂટિંગ દરેક ક્લાયન્ટનું સરનામું અકબંધ રાખે છે. દૂરનું નેટવર્ક વાસ્તવિક સ્રોત જુએ છે અને તેને લોગ કરી શકે છે, પ્રતિ-હોસ્ટ નિયમ લાગુ કરી શકે છે અથવા જવાબ સીધો તે સરનામે મોકલી શકે છે. એ દૃશ્યતા જ આખો મુદ્દો છે, અને તેની સાથે એક જવાબદારી આવે છે: દૂરના છેડે LAN પ્રીફિક્સ માટે એવો રૂટ હોવો જોઈએ જે ટનલમાંથી પાછો જાય. નિયમ સક્ષમ કરતા પહેલા એ રૂટનું આયોજન કરો, કારણ કે ટનલ કોઈપણ રીતે ઉપર આવશે અને ફક્ત જવાબો જ ખૂટશે.
નિષ્ફળતાના પ્રકારો વચનો જેટલા જ અલગ છે. ગેરહાજર માસ્કરેડ નિયમ એવા પેકેટ બનાવે છે જે ખાનગી સ્રોત સાથે નીકળે છે અને ક્યારેય પાછા ફરતા નથી. ગેરહાજર પરત રૂટ નીતિ-આધારિત રૂટિંગમાં એ જ લક્ષણ બનાવે છે, પરંતુ સુધારો ગેટવે પર નહીં, દૂરના રાઉટર પર આવે છે.
માસ્કરેડ: દૂરના છેડે એક જ પીઅર
માસ્કરેડ માર્ગનો એક ક્રમ છે જે મહત્વનો છે. કોઈપણ NAT નિયમ કંઈ ઉપયોગી કરે તે પહેલાં ફોરવર્ડિંગ સક્ષમ હોવું જોઈએ, ફિલ્ટર ટેબલે બંને દિશામાં ટ્રાન્ઝિટની પરવાનગી આપવી જોઈએ, અને ત્યાર પછી જ ટનલ ઇન્ટરફેસ પર અનુવાદ લાગુ પડે છે.
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
ક્લાયન્ટ્સને હજી પણ ગેટવે સુધીનો માર્ગ જોઈએ છે. કાં તો ગેટવે તેમનું ડિફોલ્ટ રાઉટર છે, અથવા તેઓ દૂરના પ્રીફિક્સ માટે ચોક્કસ રૂટ ધરાવે છે; જો અલગ રાઉટર ડિફોલ્ટ રહે, તો તે રાઉટરને ટનલના લક્ષ્યો માટે સ્થિર રૂટની જરૂર છે, નહીં તો ગેટવે તેને જોવા પહેલાં પેકેટ ખોટા હોપ પર જાય છે.
DNS એ અલગ નિર્ણય છે. દૂરના છેડેનો રિઝોલ્વર ફક્ત ત્યારે જ જવાબ આપે છે જ્યારે તેનો જવાબ ક્લાયન્ટ સુધી પાછો જઈ શકે. માસ્કરેડ હેઠળ ક્વેરી ગેટવે તરફથી આવતી લાગે છે, તેથી રિઝોલ્વરનો પરત માર્ગ પહેલેથી જ પૂરો છે; નીતિ-આધારિત રૂટિંગ હેઠળ રિઝોલ્વરને અન્ય કોઈપણ દૂરના સેવા જેવો જ પરત રૂટ જોઈએ છે.
નીતિ-આધારિત રૂટિંગ: સ્રોત રાખો, પરત માર્ગ ઉમેરો
નીતિ-આધારિત રૂટિંગ ટેબલ અને તેને પસંદ કરતા નિયમથી શરૂ થાય છે. LAN ઇન્ટરફેસ પરથી આવતો ટ્રાફિક સમર્પિત ટેબલ પર મોકલાય છે, અને તે ટેબલ ટનલ દ્વારા ડિફોલ્ટ રૂટ ધરાવે છે. મુખ્ય ટેબલ અસ્પૃશ્ય રહે છે, તેથી ગેટવે પોતે ઉત્પન્ન કરેલો ટ્રાફિક બીજો માર્ગ લઈ શકે છે.
ip rule add iif eth1 table vpn
ip route add default dev tun0 table vpn
પછી દૂરના છેડે LAN પ્રીફિક્સને ટનલ દ્વારા પાછું રૂટ કરવું પડે. એ દૂરના રાઉટર પરનું રૂપરેખાંકન છે, આ ગેટવે પર નહીં. ગેટવેએ એવા જવાબો પણ સ્વીકારવા પડે જે મુખ્ય ટેબલ અનુમાન કરે તેના કરતાં અલગ ઇન્ટરફેસ પર આવે; જ્યારે કડક મોડ એ પેકેટોને કાઢી નાખે ત્યારે ઢીલું વિપરીત-માર્ગ ફિલ્ટરિંગ (rp_filter 2 પર સેટ) સામાન્ય ગોઠવણ છે.
જ્યારે બે ટનલ સક્રિય હોય, ત્યારે દરેક પ્રવાહને પ્રવેશ સમયે ટેગ કરો અને ટેગને ટેબલ પસંદ કરવા દો. ફક્ત ઇનપુટ ઇન્ટરફેસ તરફ જોતો નિયમ બંને ટનલનો ટ્રાફિક એક જ ટેબલ પર મોકલે છે, તેથી બીજી ટનલ પ્રથમની પ્રવાહો ચોરી લે છે. એ ટેગને એવા કનેક્શન સાથે પરખો જે ફરીથી જોડાવાનું ટકી રહે, કારણ કે ત્યારે જ મિશ્ર નીતિ દેખાય છે.
માલિકી અને દૂરનો છેડો શું લોગ કરે તેના આધારે નિર્ણય લો
જો ટનલ પ્રદાતા પાસે પૂરી થાય, તો માસ્કરેડ વાપરો. એ ઓપરેટર તમારી ખાનગી LAN શ્રેણીઓ રૂટ કરશે નહીં, અને તમારા ગેટવે પાછળના વ્યક્તિગત ક્લાયન્ટ્સને અલગ પાડવાનું તેની પાસે કોઈ કારણ નથી. એક દૃશ્યમાન પીઅર એ જ એકમાત્ર મોડેલ છે જે તેની નીતિ ટેકો આપે છે, તેથી તેને એ જ આપો અને અનુવાદ તમારા કિનારે રાખો. પ્રદાતા એક પીઅર જુએ છે, જે તેની નીતિ બરાબર એ જ અપેક્ષા રાખે છે, અને તમારા ક્લાયન્ટ્સ એ એક જ ઓળખ વારસામાં મેળવે છે.
જો બંને છેડા તમારા હોય અને દૂરની સેવાઓ સ્રોત સરનામાં પર કાર્ય કરે, તો નીતિ-આધારિત રૂટિંગ પોતાનો વધારાનો રૂટ લાયક બને છે. ત્યારે ફાયરવોલ નિયમો, પ્રતિ-વપરાશકર્તા પ્રવેશ અને ઓડિટ લોગ ક્લાયન્ટ્સને અલગ પાડી શકે છે. જો દૂરના છેડાને ફક્ત પહોંચની જરૂર હોય, તો માસ્કરેડ સરળ છે અને પરત-રૂટની ભૂલોનો એક વર્ગ દૂર કરે છે.
હાઇબ્રિડ ડિઝાઇન સામાન્ય છે: તમારા પોતાના નેટવર્કમાં નીતિ-આધારિત રૂટિંગ, પ્રદાતાના કિનારે માસ્કરેડ. મહત્વનું એ છે કે કયો હોપ અનુવાદ કરે છે અને કયો હોપ રૂટ કરે છે તે લખવું, કારણ કે એક ક્લાયન્ટ માટે અકસ્માતે ઉમેરાયેલો NAT નિયમ એ જ સાંકળના દરેક ક્લાયન્ટનો સ્રોત છુપાવે છે.
એક ક્લાયન્ટથી ચકાસો, પછી બીજા ક્લાયન્ટથી
જ્યાં ટ્રાફિક શરૂ થાય ત્યાં પરીક્ષણ ચલાવો. હોસ્ટ જે રૂટ વાપરે છે તે તપાસો, ટનલ ઇન્ટરફેસ પર પેકેટ દેખાવાનું જુઓ, અને અનુવાદ માટે conntrack તપાસો. એ ક્રમ સાબિત કરે છે કે પેકેટ ઇચ્છિત માર્ગ પર ગયું, ફક્ત ક્યાંક પહોંચ્યું નહીં.
ફરીથી જોડાયા પછી પરીક્ષણનું પુનરાવર્તન કરો. ઇન્ટરફેસનું નામ લેતો માસ્કરેડ નિયમ નવા ટનલ સરનામા પર ટકી રહે છે; જૂનું સરનામું નામ લેતો નિયમ ટકતો નથી. પછી બીજા LAN હોસ્ટનું પરીક્ષણ કરો, કારણ કે એક મશીન પર કામ કરતી ડિઝાઇન ઘણી વાર એ મશીનના પોતાના રૂટ પર આધાર રાખે છે, ગેટવેની નીતિ પર નહીં.
પસંદ કરેલું મોડેલ, અનુવાદિત અથવા જાળવેલો સ્રોત અને પરત રૂટનો માલિક ગેટવે નોંધમાં લખો. નહીં તો આગલી વ્યક્તિ જે ક્લાયન્ટ કે ટનલ ઉમેરશે તે અનુમાન કરશે, અને અનુમાન એ જ રીતે કાર્યરત LAN-થી-VPN ગોઠવણ અંશતઃ બને છે.