Tailscale උපජාල SNAT අක්රීය කිරීමෙන් පසු එක්-දිශා ගමනාගමනය
Tailscale උපජාල රවුටරයේ SNAT අක්රීය කරන්න, එවිට පිළිතුරු පැමිණීම නවතී. සැබෑ මූලාශ්ර ලිපිනය ඉතිරි වේ, එබැවින් LAN හට 100.64.0.0/10 වෙත ආපසු මාර්ගයක් අවශ්ය වේ.
Tailscale උපජාල රවුටරයේ මූලාශ්ර NAT අක්රීය කරන්න, උමග ක්රියා කරමින්ම පවතින අතර එය හරහා යන සම්බන්ධතා නවතී. ඉල්ලීම් ගමනාන්තයට පැමිණෙන්නේ දුරස්ථ සේවාදායකයාගේම overlay ලිපිනය සමඟිනි, එය මෙම වෙනසෙහි අරමුණය, සහ පිළිතුරුවලට දැන් LAN කිසිදා නොදැන සිටිය යුතු මාර්ගයක් අවශ්යය. එම මාර්ගය නොමැතිව පැකට් ගොඩබසින අතර පිළිතුරු සාමාන්ය ගේට්වේ හරහා පිටවෙයි, දෝෂය කිසිදු firewall නියමයක් පැහැදිලි නොකරන firewall ගැටලුවක් ලෙස පෙනේ. උමග සුවපත් ය; ආපසු කොටස නැත.
SNAT සඟවා තිබූ දේ
SNAT සක්රීය විට රවුටරය උපජාලයට යැවීමට පෙර මූලාශ්ර ලිපිනය තමන්ගේම LAN ලිපිනයට නැවත ලියයි, එබැවින් ගමනාන්තය දැනටමත් එහි යාමට දන්නා සත්කාරකයාට පිළිතුරු දෙන අතර වෙනත් කිසිවක් වින්යාසගත කිරීමට අවශ්ය නැත. එය අක්රීය කිරීම මුල් මූලාශ්රය රඳවා තබයි, ගමනාන්තය තමන්ගේම රැහැනේ අසල්වැසියා වෙනුවට overlay පරාසය තුළ ලිපිනයක් දකී. එම ලිපිනය සැබෑ ය, 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 සත්කාරකයාට මෙම මාර්ගය නොමැතිව overlay වෙත ළඟා විය නොහැක, එබැවින් overlay තුළ ඊළඟ පිම්ම වෘත්තාකාර වන අතර පැකට්ටුව කොහේවත් යවන්නේ නැත. එම එකම වැරැද්ද නිවැරදි ලෙස පෙනී තිබියදීත් අසාර්ථක වන බොහෝ වින්යාසයන් පැහැදිලි කරයි, එය රවුටරයේම වගුව පමණක් කියවන සෑම පරීක්ෂාවකින්ම ගැලවේ. ඔබ භාවිත කළේ කුමන ස්ථානයද ලියා තබන්න, නැත්නම් ඊළඟ පුද්ගලයා වැරදි එක පරීක්ෂා කරයි.
දෝෂය එක්-දිශා ගමනාගමනයක් ලෙස කියවීම
රෝග ලක්ෂණය හේතුවට වඩා හඳුනා ගැනීම පහසුය: සේවාව රවුටරයේම පිළිතුරු දෙන අතර දුරස්ථ සේවාදායකයාගෙන් නිශ්ශබ්ද වේ. ගමනාන්තයේ ග්රහණයක් ඉල්ලීම් පැමිණෙන අතර පිළිතුරු පිටවන බව පෙන්වයි, එය එම පිළිතුරු යන තැන දකින තෙක් සාර්ථකත්වයක් ලෙස පෙනේ. ඒවා පෙරනිමි ගේට්වේ වෙත යයි, එනම් ඇතුළු වන කොටස ක්රියා කළ අතර ආපසු කොටස ක්රියා නොකළ බවයි.
ඒ වෙනුවට රවුටරයේ ග්රහණය කරන්න, මන්ද එය එක් හුවමාරුවක දිශා දෙකම දකින අතර පිළිතුරක් කිසිදා පැමිණියේදැයි පෙන්වයි. පිළිතුර ගමනාන්තයේ පෙනී රවුටරයේ කිසිදා නොපෙනේ නම්, මාර්ගය ගමනාන්ත පැත්තේ නැතහොත් වැරදිය. එය රවුටරයේ පෙනී එහි නතර වේ නම්, ගැටලුව තවත් ඉදිරියෙන් වන අතර තවත් පරීක්ෂණයකට අයත් වේ.
sudo tcpdump -ni any host 100.64.0.5
ip route get 100.64.0.5
සැබෑ ලිපිනය මාර්ගයකට වටීද
ගමනාන්ත ජාලය නැවත වින්යාසගත කළ නොහැකි සෑම අවස්ථාවකම SNAT තබා ගැනීම සරල පිළිතුර ලෙස පවතී, වියදම නම් සෑම සේවාදායකයෙක්ම ගමනාන්තයේ ලොග සහ ප්රතිපත්තිය තුළ රවුටරය ලෙස පෙනීමයි. යෙදුමකට සැබෑ මූලාශ්ර ලිපිනය අවශ්ය විට හෝ ජාල ප්රතිපත්තියට එකම රවුටරය බෙදාගන්නා සේවාදායකයන් වෙන් කිරීමට සිදු විට එය අක්රීය කිරීම යුක්තිසහගත ය. දෙකම නීත්යානුකූල හේතු වන අතර කිසිවක් නොමිලේ නොවේ. ප්රතිලාභය සෑම ගමනාන්ත ජාලයකම මාර්ගයක් නඩත්තු කිරීමට සහ පහත විස්තර කරන firewall සමාලෝචනයට වටී විය යුතුය.
එක් කුඩා LAN එකකට මෙම හුවමාරුව සාමාන්යයෙන් ලාභදායක ය, නමුත් ස්ථිතික මාර්ගයක් ගත නොහැකි උපාංග රැසකට සාමාන්යයෙන් නොවේ. තීරණය සහ හේතුව රවුටර වින්යාසය අසල සටහන් කරන්න, එවිට ඊළඟ පරිපාලකයාට කුමන හැසිරීම චේතනාන්විත දැයි දැනගත හැක. කිසිවෙකු නොලියූ පෙරනිමියක් අතපසුවීමකින් වෙන් කළ නොහැක.
Firewall, ලොග්කරණය සහ ද්විත්ව භූමිකාව
රවුටරයේ LAN ලිපිනයට ගැළපුණු සෑම නියමයක්ම දැන් වෙනස් මූලාශ්රයකට ගැළපේ, එයට අවසර නියම සහ රවුටරය සේවාදායකයා ලෙස සටහන් කළ ඕනෑම ලොග් ක්ෂේත්රයක් ඇතුළත් වේ. එම නියම පළමු පරීක්ෂණයට පෙර කියවන්න, පළමු අසාර්ථකත්වයට පසුව නොව, මන්ද රවුටරයේ ලිපිනයට පමණක් අවසර දෙන නියමය නව මූලාශ්රය සම්පූර්ණයෙන්ම අවහිර කරයි. ප්රතිස්ථාපනය අවශ්ය සේවාදායකයන්ට සහ වරායන්ට පමණක් සීමා කරන්න, පසුව එය නිශ්ශබ්දව මුළු tailnet පිළිගන්නේ නැති බව තහවුරු කරන්න.
sudo nft list ruleset | grep -n '100\.64'
sudo iptables-save | grep -n '100\.64'
එක් නෝඩයක් එකම වේලාවේ පිටවීමේ නෝඩය සහ උපජාල රවුටරය ලෙස සේවය කිරීම ලේඛනගත සංයෝජනයකි, එය උපජාල SNAT අක්රීය වූ පසු ඉහළ ගැලීමේ ගමනාගමනය අතහැරිය හැක. එම භූමිකා වෙනස් නෝඩවලට වෙන් කිරීම මෙම අනතුරු ඇඟවීම ඉවත් කර සෑම මාර්ගයකට සහ firewall ප්රතිපත්තියකට එකම හිමිකරුවෙක් ලබා දෙයි. භූමිකා එකට තැබිය යුතු නම්, මෙම හැසිරීම අපේක්ෂා කර සේවාදායකයාට දොස් පැවරීමට පෙර එය පරීක්ෂා කරන්න. මාර්ගය, ස්විච සැකසීම සහ භූමිකා වෙන් කිරීම එකම සටහනක තබන්න, මන්ද ඊළඟ සම්බන්ධතාවය අසාර්ථක විට ඒවා එකට කියවේ.