റൂട്ടർ 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-ൽ ഗേറ്റ്വേ ടണലായ firewall നിയമം. 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 ഗേറ്റ്വേയോ കാണിക്കുന്നു; രണ്ടും ഒരുപോലെ തോന്നിയാൽ മാർക്കോ ടേബിളോ നിയമം പറയുന്നത് ചെയ്യുന്നില്ല. പരിശോധനയ്ക്ക് പുതിയ കണക്ഷനുകൾ ഉപയോഗിക്കുക.

പിന്നെ റീബൂട്ട് ചെയ്യുക. പ്രവർത്തിക്കുന്ന പോളിസി തകരുന്ന സ്ഥലമാണ് ബൂട്ട് ക്രമം, കാരണം എത്തിച്ചേരാനാവാത്ത റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് മുൻപ് ക്ലയന്റ് ഉയർന്നിരിക്കണം, പഴയ നിയമ കൂട്ടം പുനഃസ്ഥാപിക്കുന്ന സേവ് ചെയ്ത സ്നാപ്പ്ഷോട്ട് നിങ്ങളുടെ ടേബിൾ മേലെഴുതും. ഓരോ നിയമവും സേവ് ചെയ്ത കോൺഫിഗറേഷനിലുണ്ടെന്നും അടയാളപ്പെടുത്തിയ ഡിഫോൾട്ട് ബൂട്ടിന് ശേഷം നിലനിൽക്കുന്നുവെന്നും ടൈപ്പ് ചെയ്തതിന് ശേഷം മാത്രമല്ല, പരിശോധിക്കുക.

എന്തെങ്കിലും പരാജയപ്പെട്ടാൽ ആദ്യം മാർക്ക് നീക്കി സാധാരണ ട്രാഫിക് തിരികെ വരുന്നുണ്ടോ എന്ന് നോക്കുക, പിന്നെ ടേബിൾ നീക്കുക. ആ ക്രമം നിങ്ങൾ റൂട്ടിംഗ് പ്രശ്നമാണോ firewall പ്രശ്നമാണോ പിന്തുടരുന്നതെന്ന് പറയുന്നു, ജോലി തീരുന്നതുവരെ വീട്ടിൽ പ്രവർത്തിക്കുന്ന ഒരു പ്രിന്ററും വിടുന്നു.

അനുബന്ധ ലേഖനങ്ങൾ