රවුටරයේ VPN එකකින් එක් උපාංගයක් යැවීමට ටොගලයක් නොව, නීති තුනක් අවශ්යයි
රවුටරයේ VPN එකකින් එක් උපාංගයක් යැවීම තේරීම් රූටිං ය, චෙක්පෙට්ටියක් නොවේ: සලකුණු කළ වගුවක්, සීමිත NAT නීතියක්, සහ මාර්ගෝපදේශ මඟහරින DNS, IPv6 සහ LAN මාර්ග.
රවුටරයේ VPN එකක එක් එක් උපාංගය සඳහා ස්විචයක් නැත; ඔබ සොයන ටොගලය යනු ඔබ වෙනුවෙන් තේරීම් රූටිං නීති ලියන කෙටි මාර්ගයකි. එක් ලැප්ටොප් පරිගණකයක්, එක් පෝට් පරාසයක්, එක් ලිපින ලැයිස්තුවක් හෝ එක් LAN කොටසක් උමඟ භාවිත කළ යුතු අතර අනෙක් සියල්ල WAN හි රැඳිය යුතු මොහොතේ, ඔබ විශේෂාංගයක් සක්රීය කරන්නේ නැත, තේරීම් මාර්ගයක් ගොඩනඟයි. කාර්යයට චලනය වන කොටස් තුනක් ඇති අතර එක් එක් කොටස වෙනස් ආකාරයෙන් අසාර්ථක වේ: මාර්ගයක් නැති සලකුණු කළ වගුව නිහඬතාවක් මෙන් පෙනේ, වැරදි දාමයක තැබූ සලකුණ කිසිවක් සිදු නොවූ ආකාරයෙන් පෙනේ, සහ නැති NAT නීතිය සම්බන්ධ වන නමුත් කිසිවක් ගෙන නොයන උමඟක් මෙන් පෙනේ. තවත් කොටස් දෙකක් නැති වන්නේ ඒවා කිසිදා mangle නීතියේ නොපෙනෙන බැවිනි, ඒවා DNS සහ IPv6 ය.
මිථ්යාව: උමඟ යනු සේවාලාභී සැකසුමකි
රවුටරයේ පැත්තේ VPN සේවාලාභියා එක් අමු කාර්යයක් හොඳින් කරයි: එය 0.0.0.0/0 ප්රධාන රූටිං වගුවට දමා උමඟ දෙසට හරවයි. WireGuard එය AllowedIPs වලින් ලබා ගනී, OpenVPN සේවාදායකයා තල්ලු කරන redirect-gateway වලින් ලබා ගනී, දෙකම රවුටරය පිටුපස සෑම සත්කාරකයකගේ මාර්ගයම වෙනස් කරයි. AllowedIPs පටු කිරීම හෝ route-nopull එකතු කිරීම සේවාලාභියා ස්ථාපනය කරන දෙය වෙනස් කරයි. එය එම ස්ථාපනය කාට අදාළ වේද යන්න වෙනස් නොකරයි, මන්ද සේවාලාභියා කිසිදා උපාංග නොදකී. ඔහු දකින්නේ පැකට් පමණි.
මූලාශ්රය හෝ ගමනාන්තය අනුව තේරීම රූටිං තීරණයකි, එබැවින් එය රවුටරයේ ප්රතිපත්ති ස්තරයට අයත් වේ: RouterOS හි mangle නීතියක් සහ දෙවන වගුවක්, OpenWrt හෝ DD-WRT හි MARK සහ ip rule, හෝ pfSense හි ද්වාරය උමඟ වන ෆයර්වෝල් නීතියක්. Netgate හි WireGuard සේවාලාභී වට්ටෝරුව අනුමාන කිරීමට පෙර කියවිය යුතු දෙයයි, මන්ද එම වේදිකාවේ නීතියේ ද්වාරය, අතුරුමුහුණතේ පැවරීම සහ පිටතට යන NAT සටහන එක් සේවාලාභියෙක් උමඟ භාවිත කිරීමට පෙර එකඟ විය යුතුය.
මිථ්යාවේ දෙවන අර්ධය දෙවන රවුටරයයි. තවත් පෙට්ටියක් මිලදී ගැනීම හෝ උපාංගය අමුත්තන්ගේ SSID එකකට ගෙන යාම බොහෝ විට ක්රියා කරයි, හේතුව දෘඩාංග නොවේ: එය උපාංගය එහිම උපජාලයක තබයි, එයින් ඈවරය දැනටමත් තේරුම් ගන්නා මූලාශ්ර තේරීමක් ලැබේ. ඔබ සතු රවුටරයේ එම කොටස අර්ථ දැක්විය හැකි නම්, අමතර පෙට්ටිය ඔබට නොතිබූ ගැටලුවක් විසඳයි.
පළමු කොටස: පෙරනිමි මාර්ගය නොවන උමඟ
RouterOS හි පෙරනිමි මාර්ගයක් නොමැතිව සේවාලාභියා එකතු කර උමඟට එහිම වගුවක් දෙන්න. පළමු මාර්ගය සලකුණු කළ පෙරනිමිය; දෙවැන්න අසාර්ථකත්වයේ අර්ධය.
/ip route add dst-address=0.0.0.0/0 gateway=VPN_GATEWAY_IP routing-mark=vpn distance=1
/ip route add dst-address=0.0.0.0/0 type=unreachable routing-mark=vpn distance=2
නොපැමිණෙන මාර්ගය නිසාවෙන් සලකුණු කළ වගුව ප්රධාන වගුවේ ව්යතිරේක ලැයිස්තුව පරාජය කරයි. උමඟ වැටෙන විට සලකුණු කළ පැකට් නිහඬව WAN වෙත ආපසු යනවා වෙනුවට ක්ෂණිකව නොපැමිණෙන බව ලබා ගනී, එබැවින් දෝෂය පැයකින් පරීක්ෂා කරන භූ ස්ථාන පිටුවේ නොව යෙදුමේ දෝෂ පණිවිඩයේ දිස් වේ.
RouterOS 7 6.x එකට තබා ගත් දේ වෙන් කරයි: ඔබ වගුව /routing table add name=vpn fib මගින් ප්රකාශ කරයි, පසුව මාර්ගයේ සහ mangle නීතියේ නමින් එයට යොමු වේ. වගුව අර්ථ දැක්වීමකින් තොරව routing-mark ලියන 6.x කොටස පිරිසිදුව පූරණය වන අතර කිසිවක් සමඟ නොගැළපේ. අනෙක් සම්භාව්ය අවස්ථාව වන්නේ 0.0.0.0/1 හි අර්ධ දෙකක්, හෝ එකම වගුවක එකම දුරින් පෙරනිමි දෙකක්: කර්නලය එකක් තෝරයි, නැවත ඇරඹීමෙන් පසු හැසිරීම වෙනස් විය හැක.
දෙවන කොටස: මාර්ග සෙවීමට පෙර සලකුණු කරන්න
කුමන පැකට් එම වගුවට ඇතුළු වේද යන්න තේරීම තීරණය කරයි. RouterOS සාමාන්යයෙන් ගමනාන්ත ප්රතිපත්තිය සඳහා ලිපින ලැයිස්තුවකින්, හෝ උපාංග ප්රතිපත්තිය සඳහා මූලාශ්ර ලිපිනයකින් ආරම්භ කරයි:
/ip firewall mangle add chain=prerouting src-address=192.168.88.50 action=mark-routing new-routing-mark=vpn
/ip firewall mangle add chain=prerouting dst-address-list=via-vpn action=mark-routing new-routing-mark=vpn
/ip firewall address-list add list=via-vpn address=203.0.113.10
Linux ස්ථිරාංගයද netfilter සලකුණක් සහ සලකුණු කළ පැකට් ඔබ පිරවූ වගුවකට හරවන නීතියක් සමඟ එයම කරයි:
iptables -t mangle -A PREROUTING -p tcp --dport 27000:27050 -j MARK --set-mark 0x200
ip route add default dev tun0 table 100
ip rule add fwmark 0x200 table 100
දාමය ශෛලීය තේරීමක් නොවේ. පැකට් එකක් FORWARD වෙත ළඟා වන විට මාර්ග සෙවීම දැනටමත් සිදු වී ඇත, එබැවින් එහි MARK හෝ DROP කිරීමට හැක්කේ නැවත ලිවීම හෝ ඉවත් කිරීම පමණි. සලකුණ PREROUTING හි යැවෙන රථවාහන සඳහා සහ OUTPUT හි රවුටරයම සාදන රථවාහන සඳහා වැටිය යුතුය, රවුටරයේ DNS, NTP සහ යාවත්කාලීන පරීක්ෂා එහි ජීවත් වේ. එම ප්රතිදාන මාර්ගය නිසාවෙන් සම්පූර්ණයෙන් උමඟ කළ වින්යාසයක් කාන්දු පරීක්ෂණයකදී තවමත් ISP විශ්ලේෂකයෙන් පිළිතුරු දෙයි.
උපාංග ප්රතිපත්තියට ලිස්සා නොයන ගැළපීමක් අවශ්යයි. DHCP හි ලිපිනය වෙන් කරන්න, නැතහොත් කැප වූ කොටසක් සඳහා අතුරුමුහුණතක් ගැළපන්න; පසුව වෙනත් උපාංගයකට යන ලිපිනයක් නිහඬව වැරදි සේවාලාභියාට උමඟ යොදයි. තමන්ගේම උපජාලයක් සහිත එක් එක් SSID පාලම එම අදහසේ වඩාත් ටිකාකාරී අනුවාදයයි, එය IPv6 නීතිවලටද ජීවත් වීමට තැනක් දෙයි.
තෙවන කොටස: NAT, DNS සහ LAN ව්යතිරේකය
උමඟ හරහා පිටවන රථවාහනයට අනෙක් පැත්ත පිළිතුරු දෙන මූලාශ්ර ලිපිනයක් අවශ්යයි. පරිවර්තනය උමඟ අතුරුමුහුණතට සීමා කරන්න: RouterOS හි out-interface=VPN_NAME, Linux හි -o tun0, pfSense හි ගැළපෙන පිටතට යන NAT සටහන. එම සීමාව නොමැතිව masquerade නීතිය ඔබ නොසලකා හැරීමට අදහස් කළ රථවාහනයද නැවත ලියයි, රෝග ලක්ෂණය වන්නේ උමඟ නොමැති උපාංගය එහි පොදු ලිපිනය අහිමි කර ගැනීමයි.
LAN ව්යතිරේකය උමඟටත් වඩා සහාය තීරු ඇති කරයි. සලකුණු කළ වගුවේ පෙරනිමි මාර්ගයක් පමණක් තිබේ නම්, තෝරාගත් උපාංගයේ මුද්රණ යන්ත්රයේ හෝ NAS හි ගමනාන්තය එම පෙරනිමිය සමඟ ගැළපී උමඟ තුළ අතුරුදහන් වේ. එම වගුවටම LAN මාර්ගය එකතු කරන්න, නැතහොත් තේරීමේදී දේශීය උපජාලය බැහැර කරන්න; දෙකම ක්රියා කරයි, පසුව VLAN එකතු කරන විට බැහැර කිරීම නිවැරදිව තබා ගැනීම පහසුය.
DNS වෙනම මාර්ගයක් ගනී. රවුටරය යවන විමසුම් රවුටරයෙන් හටගෙන OUTPUT අනුගමනය කරයි, යවන ලද සලකුණ නොවේ, එබැවින් සම්පූර්ණයෙන් උමඟ කළ ලැප්ටොප් එකකට තවමත් ISP හරහා නම් විසඳිය හැක. සේවාලාභීන් උමඟ හරහා ළඟා විය හැකි විශ්ලේෂකයකට හරවන්න, නැතහොත් රවුටරයේම port-53 රථවාහනය සලකුණු කරන්න, පසුව පිළිතුර වෙබ් ඉල්ලීම සමඟ ගමන් කළ යැයි උපකල්පනය නොකර විසඳන ලද ලිපිනය පරීක්ෂා කරන්න.
නීතිය ගැළපෙන නමුත් යෙදුම තවමත් WAN භාවිත කරන විට
ගමනාන්ත ලැයිස්තු ඉක්මනින් පැරණි වේ. නමක් ලැයිස්තුවේ නැති ලිපිනයකට විසඳෙන බැවින් ඉල්ලීම WAN ගනී, ලැයිස්තුගත ලිපිනයට ඔබ කළ සෑම පරීක්ෂණයක්ම ක්රියා කළ නමුත්. සේවාලාභියා භාවිත කරන එම විශ්ලේෂකයෙන් ලැයිස්තුව අලුත් කරන්න, සහ ඇත්තටම එක් උපාංගයකින් සියලු රථවාහන අවශ්ය නම් මූලාශ්ර පාදක තේරීමකට මුල් තැන දෙන්න.
IPv6 නිහඬ මඟහැරීමයි. උපාංගයට තමන්ගේම පෙරනිමි මාර්ගය සහ තමන්ගේම නීති කට්ටලය සහිත දෙවන ලිපින පවුලක් ඇත, IPv4 ලිපිනයට පමණක් ගැළපීම ප්රතිපත්තියේ අර්ධයකි. එම තේරීම ip6tables හෝ nftables සමානයට යොදන්න, නැතහොත් එම කොටසේ IPv6 අහම්බෙන් නොව, හිතාමතාම අක්රීය කරන්න.
ස්ථාපිත සම්බන්ධතාද වැදගත් වේ. වෙනසට පෙර සාදන ලද conntrack සටහනක් කල් ඉකුත් වන තෙක් පැරණි මාර්ගය අනුගමනය කරයි, එබැවින් සංස්කරණය අතරතුර විවෘතව තිබූ බ්රව්සරය කිසිදා යොදා නොගත් නීතියක් මෙන්ම පෙනේ. ප්රතිපත්තිය විනිශ්චය කිරීමට පෙර නව සම්බන්ධතාවක් විවෘත කරන්න, නැතහොත් තත්ත්වය හිස් කරන්න.
උපාංග දෙකක් සහ නැවත ඇරඹීමකින් තහවුරු කරන්න
උමඟ තුළ තිබිය යුතු උපාංගය සහ නොතිබිය යුතු උපාංගය පරීක්ෂා කර, වේග අංකයක් වෙනුවට දෙවන පැනීම සසඳන්න. එක් එක් එකෙන් traceroute දෙවන පැනීමේදී උමඟේ ද්වාරය හෝ ISP ද්වාරය පෙන්වයි; දෙකම එකම ආකාරයෙන් පෙනේ නම්, සලකුණ හෝ වගුව නීතිය කියන දේ නොකරයි. පරීක්ෂණයට නව සම්බන්ධතා භාවිත කරන්න.
පසුව නැවත අරඹන්න. ක්රියා කරන ප්රතිපත්තිය කැඩෙන තැන ඇරඹුම් අනුපිළිවෙලයි, මන්ද නොපැමිණෙන මාර්ගය ස්ථාපනය කිරීමට පෙර සේවාලාභියා අවදිව සිටිය යුතුය, පැරණි නීති කට්ටලය නැවත ගෙන එන සුරකින ලද ඡායාරූපයක් ඔබේ වගුව උඩින් ලියයි. සෑම නීතියක්ම සුරකින ලද වින්යාසයේ ඇති බව සහ සලකුණු කළ පෙරනිමිය ඇරඹීමෙන් පසු පවතින බව ඔබ ලියා පසුව පමණක් නොව, පරීක්ෂා කරන්න.
යමක් අසාර්ථක වුවහොත් පළමුව සලකුණ ඉවත් කර සාමාන්ය රථවාහන නැවත පැමිණේදැයි බලන්න, පසුව වගුව ඉවත් කරන්න. එම අනුපිළිවෙල ඔබ රූටිං ගැටලුවක් හෝ ෆයර්වෝල් ගැටලුවක් පසුපස යනවාදැයි කියයි, සහ කාර්යය අවසන් කරන තෙක් ගෘහයට ක්රියා කරන මුද්රණ යන්ත්රයක් ඉතිරි කරයි.