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

SNAT શું છુપાવતું હતું

SNAT સક્રિય હોય ત્યારે રાઉટર સબનેટમાં ફોરવર્ડ કરતાં પહેલાં સ્રોત સરનામાને પોતાના LAN સરનામામાં ફરીથી લખે છે, તેથી ગંતવ્ય એવા હોસ્ટને જવાબ આપે છે જેને ત્યાં પહોંચવાનો રસ્તો પહેલેથી ખબર છે અને બીજું કંઈ ગોઠવવાની જરૂર નથી. તેને બંધ કરવાથી મૂળ સ્રોત જળવાય છે, અને ગંતવ્ય પછી પોતાના તાર પરના પાડોશીને બદલે ઓવરલે શ્રેણીમાંનું સરનામું જુએ છે. તે સરનામું વાસ્તવિક છે અને tailnet આખામાં રૂટ કરી શકાય તેવું છે, પરંતુ ડિફોલ્ટ ગેટવે દ્વારા LAN થી તે પહોંચી શકાતું નથી. દસ્તાવેજીકૃત સ્વિચ --snat-subnet-routes=false છે, જે Linux સબનેટ રાઉટર પર જ લાગુ થાય છે.

તે દરેક પેકેટ માટેનું ટોગલ નહીં પણ કાયમી સેટિંગ છે, તેથી તે રાઉટર જે દરેક ગંતવ્ય નેટવર્કને સેવા આપે છે તેના માટે પરત માર્ગ હાજર હોવો જોઈએ. તેથી જ આ પરિવર્તન ચેકબોક્સને બદલે જમાવટનો નિર્ણય બને છે. તે રાઉટર જે પણ સેવા આપે છે તે એ જ ક્ષણે આ જરૂરિયાત વારસાઈમાં મેળવે છે.

પરત માર્ગ ક્યાં રહી શકે

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

ip route add 100.64.0.0/10 via 192.168.1.10
ip route get 100.64.0.5

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

નિષ્ફળતાને એકમાર્ગી ટ્રાફિક તરીકે વાંચવી

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

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

sudo tcpdump -ni any host 100.64.0.5
ip route get 100.64.0.5

શું અસલી સરનામું રૂટને લાયક છે

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

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

ફાયરવોલ, લોગિંગ અને બમણી ભૂમિકા

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

sudo nft list ruleset | grep -n '100\.64'
sudo iptables-save | grep -n '100\.64'

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

સંબંધિત લેખો