Linux EHOSTUNREACH සමඟ OpenVPN: අසමත් වූයේ කුමන ඊළඟ හොප් ද?
EHOSTUNREACH පැමිණිය හැක්කේ පැහැදිලිවම unreachable ලෙස සලකන ලද මාර්ගයකින්, මිය ගිය අසල්වැසියෙකුගෙන් හෝ දුරස්ථ වාර්තාවකින්ය. ක්රිප්ටෝ ස්පර්ශ කිරීමට පෙර තෝරාගත් මාර්ගය සහ ඊළඟ හොප් කියවන්න.
EHOSTUNREACH යනු දුරස්ථ අසමත්වීමක් තරමටම දේශීය තීරණයක් වේ. මාර්ගයක් ගමනාන්තය unreachable බව පවසන නිසා, Ethernet ඊළඟ හොප් පිළිතුරු නොදුන් නිසා, නැතහොත් මාර්ගයේ තවත් ඉදිරියෙන් ICMP host-unreachable වාර්තාවක් පැමිණි නිසා කර්නලයට පැකට්ටුවක් ප්රතික්ෂේප කළ හැක. සෑම මූලාශ්රයක්ම වෙනස් වගුවක හෝ හැඹිලියක ජීවත් වන අතර, එක් එක් එක වෙනස් තැනක නිවැරදි කෙරේ. සයිෆර් ස්පර්ශ කිරීමට හෝ ටනලය නැවත ස්ථාපනය කිරීමට පෙර තෝරාගත් මාර්ගය සහ ඊළඟ හොප් තත්ත්වය කියවන්න.
සේවාදායකයා ඇත්තටම භාවිත කරන ලිපිනය සහ namespace එක තෝරන්න
නිශ්චිත ගමනාන්තය සහ දෝෂය ඇති කළ ජාල namespace එක සවි කිරීමෙන් ආරම්භ කරන්න. VPN සේවාදායකයක් එහිම namespace එකක ධාවනය විය හැකි අතර, පෙරනිමි namespace එකකින් සිදු කරන සෙවීමක් වෙනස් ප්රතිපත්ති නීති සහිත වෙනස් මාර්ග වගුවක් බලයි.
සෙවීම අසමත් වන යෙදුමට සමාන මූලාශ්රය, mark සහ වගු සන්දර්භය භාවිත කළ යුතුය, එසේ නොමැති නම් කිසිවෙකු නොඇසූ ප්රශ්නයකට පිළිතුරු දිය හැක. නිදර්ශනාත්මක IPv4 සහකරුවෙකු සඳහා, කියවීම්-පමණක් පරීක්ෂණ මෙසේය:
ip -4 route get 198.51.100.25
ip -4 neigh show 198.51.100.1
ip -4 route show table all | grep -w unreachable
පරිපාලන කවචයකින් ලැබෙන ප්රතිඵලයක් සනාථ කරන්නේ එම කවචය කරන දෙය පමණි. සේවාදායකයා firewall mark එකක් සකසන්නේ නම් හෝ VRF එකකට බැඳෙන්නේ නම්, ගැළපෙන mark එක සමඟ හෝ VRF එක තුළ සෙවීම නැවත කර, තෝරාගත් මාර්ගය සහ ඊළඟ හොප් සසඳන්න. තහවුරු කළ යුතු පළමු ලිපිනය පැතිකඩෙහි ඇති සහකරු ලිපිනය මිස පරිශීලකයා නම් කරන පොකුර හෝ සේවාව නොවේ.
පැහැදිලි unreachable මාර්ගයක් පැකට්ටුව දේශීයව ප්රතික්ෂේප කරයි
unreachable ආකාරයේ මාර්ගයක් යනු හිතාමතා දෙන දේශීය පිළිතුරකි. එය කර්නලයට පැකට්ටුව ඉවතලා යවන්නාට EHOSTUNREACH ආපසු දෙන ලෙස පවසන අතර, එබැවින්ම දෝෂය ක්ෂණිකව හා යන්ත්රයෙන් කිසිදු ගමනාගමනයක් නොයවා පෙනේ. කිසිවෙක් හෝ යම් ස්වයංක්රීයකරණයක් එම මාර්ගය එහි තැබුවේ හිතාමතාමය.
මාර්ග ආකාර එකිනෙකට හුවමාරු කළ නොහැක. blackhole යවන්නාට දෝෂයක් නොදී පැකට්ටුව ඉවතලයි, prohibit EACCES ආපසු දෙයි, unreachable EHOSTUNREACH ආපසු දෙයි. එබැවින් නැවත සම්බන්ධ වීමේදී sink මාර්ගයක් ස්ථාපනය කරන VPN සහායකයෙකුට ටනලය සක්රීය වූ පසු අතුරුදහන් වන host-unreachable දෝෂ රැල්ලක් ඇති කළ හැකි අතර, blackhole මාර්ගයක් ඒ වෙනුවට නිහඬ කාලය ඉකුත්වීම් ඇති කරයි.
දුරස්ථ කෙළවරට දොස් පැවරීමට පෙර ආකාරය සියලු වගු තුළ සොයන්න. වගුව තෝරන නීතිය එහි ඇති මාර්ගය තරමටම වැදගත් වන අතර, ප්රධාන වගුවට එකතු කළ මාර්ගයක් එහි ගමනාගමනය වෙනත් තැනකට යවන ප්රතිපත්ති නීතියක් ඇති සේවාදායකයෙකුට උපකාර නොවේ.
මිය ගිය අසල්වැසියෙක් Ethernet මත එම දෝෂයම ඇති කරයි
තෝරාගත් මාර්ගය on-link ද්වාරයක් භාවිත කරන විට, බෙදාහැරීමට විසඳන ලද සබැඳි-ස්ථර ලිපිනයක් අවශ්ය වේ. කර්නලය ARP හෝ IPv6 අසල්වැසි විමසුමක් යවන අතර, පිළිතුරක් නොපැමිණියහොත් පැකට්ටුව රාමු කළ නොහැක. එවිට මාර්ගයම වලංගු වුවද යැවීම EHOSTUNREACH සමඟ අසමත් වේ.
අසල්වැසි වගුව අවස්ථාව නම් කරයි. INCOMPLETE යනු විසඳුමක් තවම සිදු වෙමින් පවතින බවයි, FAILED යනු අවසන් උත්සාහයට පිළිතුරක් නොලැබුණු බවයි, REACHABLE හෝ STALE යනු කර්නලයට භාවිත කළ හැකි ලිපිනයක් ඇති බවයි. VPN ද්වාරය සඳහා FAILED සටහනක් යනු දේශීය බෙදාහැරීමේ ගැටලුවක් මිස ටනලයේ අනෙක් පැත්ත පිළිබඳ සාක්ෂියක් නොවේ.
සටහන කියවන්න සැබෑ ඊළඟ හොප් සඳහා මිස දුරස්ථ අන්තර්ජාල ලිපිනය සඳහා නොවේ. දුරස්ථ ලිපිනයක් සාමාන්යයෙන් ළඟා වන්නේ රවුටරයක් හරහා බැවින් එයටම ARP වාර්තාවක් නොතිබේ; එවැන්නක් ඉල්ලීම කිසිදා තිබිය යුතු නොවූ නැති සටහනක් සොයා යාමට මිනිසුන් යවන වර්ග දෝෂයකි.
දුරස්ථ වාර්තා සහ අසමමුහුර්ත UDP දෝෂ
EHOSTUNREACH බාහිරින්ද පැමිණිය හැක. පැකට්ටුව ඉදිරියට යැවීමට නොහැකි රවුටරයකට ICMP host unreachable යැවිය හැකි අතර, කර්නලය එම වාර්තාව ගැලීම හිමිකාර socket එකට ලබා දෙයි. එවිට මාර්ගය සහ අසල්වැසියා හොඳින් ඇති අතර, අසමත්වීම දේශීය ජාලයෙන් ඔබ්බේ ඇති හොප් එකකට අයත් වේ.
UDP මගින් හේතු නිර්ණය කිරීම අපහසු කරයි. පසුව සිදු වන යැවීමකින් හෝ ලැබීමකින් ආපසු දෙන දෝෂයක් කලින් datagram එකකට අදාළ විය හැකි බැවින්, අසමත් වන ඇමතුමේ ලිපිනය සහ වේලාව වාර්තාව ඇති කළ පැකට්ටුවට නොගැළපිය හැක. සම්බන්ධිත UDP socket එකකට දෝෂය එක් වරක් ලැබෙන අතර, සම්බන්ධ නොවූ socket එකකට එය කිසිසේත් නොපෙනිය හැක.
එබැවින් කාලය සාක්ෂියට අයත් වේ. දෝෂය පෙනුනේ කවදාද, socket එක භාවිත කළ සහකරු ලිපිනය කුමක්ද, සහ ටනලය දැන් නැවත සම්බන්ධ වී තිබුණේද යන්න සටහන් කරන්න. මාර්ග වෙනසකට පසුවම ඇති වන රැල්ලක් දේශීය වගුවට යොමු කරයි; ස්ථාවර ගැලීමක මිනිත්තු කිහිපයකට පසු ඇති තනි දෝෂයක් මාර්ග වාර්තාවකට යොමු කරයි.
ක්රිප්ටෝ වෙනස් කිරීමට පෙර ස්තර වෙන් කරන්න
ප්රශ්න තුනක් දෝෂය වර්ග කරයි. කර්නලය ගමනාන්තය ප්රතික්ෂේප කරන මාර්ගයක් තෝරා ගත්තේද? එය වලංගු මාර්ගයක් තෝරා ගත් නමුත් ඊළඟ හොප් විසඳීමට අසමත් වුනේද? නැතහොත් දේශීය ජාලයෙන් ඔබ්බෙන් වාර්තාවක් පැමිණියේද? තුන්වන අවස්ථාවට පමණක් ටනලයේ දුර කෙළවර දොස් පැවරිය හැකි අතර, එසේ වුවද එය සංකේතනයට දොස් නොපවරයි.
සත්යාපන සහ සාකච්ඡා ගැටලු ප්රවාහනය සහකරු වෙත ළඟා වූ පසු ඒවායේම දෝෂ ලෙස මතු වේ. සයිෆරයක් වෙනස් කිරීම හෝ සේවාදායකය නැවත ස්ථාපනය කිරීම දේශීය unreachable මාර්ගයක් නිවැරදි කළ නොහැකි අතර, සැබෑ හේතුව සඳහා ඔබට අවශ්ය මාර්ග සහ අසල්වැසි සාක්ෂියද එය විනාශ කරයි.
පළමු වෙනස්කමට පෙර ගමනාන්තය, namespace, තෝරාගත් වගුව, ඊළඟ හොප්, අසල්වැසි තත්ත්වය සහ දෝෂ වේලාව සටහන් කරන්න. නිවැරදි කිරීමෙන් පසු එම සෙවීමම නැවත කරන්න; දැන් ටනලයට යොමු වන මාර්ගයක් සහ දැන් විසඳෙන අසල්වැසි සටහනක් අදාළ නොවන ලිපිනයකට සාර්ථක ping එකකට වඩා ශක්තිමත් සාක්ෂියකි.