ZeroTier എക്സിറ്റ് നോഡ് പ്രവർത്തിക്കുന്നില്ലേ? റൂട്ട്, NAT, ക്ലയന്റ് പരിശോധിക്കുക
ക്ലയന്റിലെ 0.0.0.0/0 റൂട്ട് എക്സിറ്റ് അല്ല. നോഡ് ഫോർവേഡ് ചെയ്ത് വിവർത്തനം ചെയ്യണം, നെറ്റ്വർക്ക് റൂട്ട് പ്രഖ്യാപിക്കണം, ക്ലയന്റ് അത് സ്വീകരിക്കണം.
റൂട്ട് ടേബിൾ ZeroTier ഇന്റർഫേസിലൂടെ ഒരു ഡിഫോൾട്ട് റൂട്ട് കാണിക്കുന്നു, നെറ്റ്വർക്ക് ഓൺലൈൻ എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു, എന്നിട്ടും ബ്രൗസർ ഇപ്പോഴും പ്രാദേശിക ISP വിലാസത്തിൽ നിന്ന് പുറത്തുപോകുന്നു. ഈ സംയോജനം സാധാരണമാണ്, ഇത് ക്ലയന്റിലെ ബഗ് അല്ല. ഡിഫോൾട്ട് റൂട്ട് പാക്കറ്റുകൾ എവിടെ പോകണം എന്ന് മാത്രം പറയുന്നു; മറുവശത്ത് എന്തെങ്കിലും അവ ഫോർവേഡ് ചെയ്ത് വിവർത്തനം ചെയ്യണം. എക്സിറ്റ് നോഡ് പ്രവർത്തിക്കാൻ മൂന്ന് വേറിട്ട ഭാഗങ്ങൾ ശരിയാകണം.
റൂട്ട് ഉണ്ട്, പക്ഷേ ഒന്നും പുറത്തുപോകുന്നില്ല
ആദ്യം ക്ലയന്റിന്റെ റൂട്ട് ടേബിൾ പരിശോധിക്കുക. default via 10.147.20.5 dev zt0 പോലുള്ള ഒരു വരി റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്തു എന്ന് തെളിയിക്കുന്നു, ലക്ഷ്യസ്ഥാനം ട്രാഫിക് സ്വീകരിക്കും എന്നല്ല. അടുത്ത ഹോപ്പ് അത് ഫോർവേഡ് ചെയ്യാൻ തയ്യാറും പ്രാപ്തനുമായ ഒരു അംഗമായിരിക്കണം.
അതേ അഭ്യർത്ഥന ഇപ്പോഴും ഫിസിക്കൽ ഇന്റർഫേസിലൂടെ പുറത്തുപോകുന്നുവെങ്കിൽ, ക്ലയന്റ് റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല, അല്ലെങ്കിൽ പ്രാദേശിക ഡിഫോൾട്ടിനോട് തോറ്റ ഒരു മെട്രിക് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്തു. റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്തതിന് ശേഷം അഭ്യർത്ഥന അപ്രത്യക്ഷമാകുന്നുവെങ്കിൽ, എക്സിറ്റ് അംഗം പാക്കറ്റുകൾ സ്വീകരിക്കുന്നുണ്ട്, പക്ഷേ അവ ഫോർവേഡ് ചെയ്യാനോ വിവർത്തനം ചെയ്യാനോ കഴിയുന്നില്ല. ഫിസിക്കൽ ഡിഫോൾട്ട് നിലനിർത്തുന്ന ക്ലയന്റ് എക്സിറ്റിലേക്ക് ഒരു പാക്കറ്റും അയക്കുന്നില്ല.
ഈ വ്യത്യാസമാണ് എവിടെ പ്രവർത്തിക്കണം എന്ന് തീരുമാനിക്കുന്നത്. മാറ്റത്തിന് മുമ്പും ശേഷവും ഒരു പൊതു വിലാസം താരതമ്യം ചെയ്യുന്നത് ഒരിക്കലും ഉപയോഗിക്കാത്ത റൂട്ടിനെ ഉപയോഗിച്ച് ഉപേക്ഷിച്ചതിൽ നിന്ന് വേർതിരിക്കുന്നു, മുഴുവൻ കോൺഫിഗറേഷൻ അവലോകനം ചെയ്യുന്നതിന് പകരം ഒരു കമാൻഡ് മതി. മറ്റെന്തെങ്കിലും മാറ്റുന്നതിന് മുമ്പ് താരതമ്യം ചെയ്യുക, രണ്ട് ഫലങ്ങളും ഒരേ പ്രാരംഭ അവസ്ഥയിൽ നിന്ന് വരട്ടെ.
എല്ലാം ശരിയാകേണ്ട മൂന്ന് ഭാഗങ്ങൾ
എക്സിറ്റ് ഒരു ശൃംഖലയാണ്, ഏറ്റവും ദുർബലമായ കണ്ണിയാണ് ലക്ഷണം നിർണ്ണയിക്കുന്നത്. താഴെയുള്ള പട്ടിക കണ്ണികളെ സാധാരണയായി പരാജയപ്പെടുന്ന ക്രമത്തിൽ പട്ടികപ്പെടുത്തുന്നു.
| Part | Where it lives | What a failure looks like |
|---|---|---|
| Forwarding and NAT | Exit node kernel and firewall | Traffic arrives, no reply |
| Managed default route | ZeroTier network controller | No default via the tunnel on the member |
| Client acceptance | Member's per-network setting | Route offered but not installed |
| DNS behavior | Client resolver configuration | Pages fail by name, IP works |
ആദ്യ വരി ഓപ്ഷന്റെ പേര് മറയ്ക്കുന്ന ഭാഗമാണ്. ഒരു അംഗം എക്സിറ്റ് ആകുന്നത് അതിന്റെ കേർണൽ ZeroTier ഇന്റർഫേസിനും ഇന്റർനെറ്റിന് അഭിമുഖമായ ഇന്റർഫേസിനും ഇടയിൽ പാക്കറ്റുകൾ ഫോർവേഡ് ചെയ്യുമ്പോഴും, പ്രതികരണ പാത തുരങ്കത്തിലേക്ക് തിരികെ വിവർത്തനം ചെയ്യുമ്പോഴും മാത്രമാണ്. ആ ഫോർവേഡിംഗ് ഇല്ലാതെ, അംഗം ഒരു സമക്ഷമാണ്, ഗേറ്റ്വേ അല്ല.
കൺട്രോളറുടെ വരി അധികാരമാണ്, കോൺഫിഗറേഷൻ അല്ല. ഒരു അംഗത്തിലൂടെ 0.0.0.0/0 പ്രഖ്യാപിക്കുന്നത് ഓരോ ക്ലയന്റിനോടും എക്സിറ്റ് എവിടെയെന്ന് പറയുന്നു; അത് ആ അംഗത്തെ ട്രാഫിക് വഹിക്കാൻ പ്രാപ്തമാക്കുന്നില്ല. അംഗത്തിന് ഇന്റർനെറ്റിലേക്ക് പ്രവർത്തിക്കുന്ന പാതയുണ്ടോ എന്നും അത് പരിശോധിക്കുന്നില്ല. ZeroTier-ന്റെ എക്സിറ്റ് നോഡ് ഡോക്യുമെന്റേഷൻ നോഡ്, റൂട്ട്, ക്ലയന്റ് എന്നിവയ്ക്കിടയിലുള്ള അതേ വിഭജനം ഉൾക്കൊള്ളുന്നു.
ഫോർവേഡിംഗിനും വിവർത്തനത്തിനുമായി എക്സിറ്റ് നോഡ് ക്രമീകരിക്കുക
IPv4 ഫോർവേഡിംഗ് സ്ഥിരമായി പ്രവർത്തനക്ഷമമാക്കുക, തുടർന്ന് WAN ഇന്റർഫേസ് വിടുന്ന ട്രാഫിക്കിന് സോഴ്സ് NAT ചേർക്കുക. ഫിൽട്ടർ നിയമങ്ങൾ ഫോർവേഡ് ചെയ്ത ഫ്ലോ രണ്ട് ദിശകളിലും അനുവദിക്കണം, കാരണം ഫോർവേഡിംഗും വിവർത്തനവും അനുമതിയിൽ നിന്ന് വേറിട്ടതാണ്:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o zt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTzt0, eth0 എന്നിവ ഹോസ്റ്റിലെ പേരുകൾ കൊണ്ട് മാറ്റുക; ഉദാഹരണ ഇന്റർഫേസിനായി സേവ് ചെയ്ത നിയമം യഥാർത്ഥ ഇന്റർഫേസിൽ പാക്കറ്റുകളെ പിന്തുടരുന്നില്ല. നിയമങ്ങൾ സ്വന്തമാക്കിയ ഫയർവാൾ മാനേജർ വഴി മാറ്റങ്ങൾ സ്ഥിരമാക്കുക, കാരണം ഇന്ററാക്ടീവ് ഷെല്ലിലെ കമാൻഡ് അടുത്ത റീബൂട്ടിൽ അപ്രത്യക്ഷമാകും.
ഹോസ്റ്റ് UFW അല്ലെങ്കിൽ firewalld പോലുള്ള ഫയർവാൾ മാനേജർ പ്രവർത്തിപ്പിക്കുന്നുവെങ്കിൽ, അരികിൽ iptables വരികൾ കൂട്ടുന്നതിന് പകരം ആ മാനേജർ വഴി നിയമങ്ങൾ ചേർക്കുക. ഒരേ ശൃംഖലകൾ എഡിറ്റ് ചെയ്യുന്ന രണ്ട് ഉടമകൾ ബൂട്ട് ക്രമത്തെ ആശ്രയിക്കുന്ന നയം സൃഷ്ടിക്കുന്നു. മാനേജർ സ്വന്തം ശൃംഖലകൾ സൃഷ്ടിക്കുമ്പോൾ ക്രമം പ്രധാനമാണ്. മാനേജർ വീണ്ടും ലോഡ് ചെയ്ത ശേഷം ക്ലയന്റിൽ നിന്ന് പരീക്ഷിക്കുക, അതിന് മുമ്പല്ല.
റൂട്ട് പ്രഖ്യാപിച്ച് ക്ലയന്റിൽ അത് സ്വീകരിക്കുക
നെറ്റ്വർക്ക് കൺട്രോളറിൽ 0.0.0.0/0 ന് ഒരു മാനേജ്ഡ് റൂട്ട് ചേർക്കുക, അതിന്റെ അടുത്ത ഹോപ്പ് എക്സിറ്റ് അംഗത്തിന്റെ ZeroTier വിലാസമായിരിക്കണം. തുടർന്ന് അത് ഉപയോഗിക്കേണ്ട അംഗത്തിൽ ആ നെറ്റ്വർക്കിനുള്ള ഓവർറൈഡ് അനുവദിക്കുക. അനുമതി പ്രാദേശികമാണ്: അത് മറ്റ് അംഗങ്ങളെ വീണ്ടും കോൺഫിഗർ ചെയ്യുന്നില്ല, കൺട്രോളറിനെ മാറ്റുന്നുമില്ല.
zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1അവസാന കമാൻഡ് ZeroTier ഇന്റർഫേസും എക്സിറ്റ് അംഗത്തിന്റെ വിലാസവും റിപ്പോർട്ട് ചെയ്യണം. അത് ഇപ്പോഴും ഫിസിക്കൽ ഇന്റർഫേസ് റിപ്പോർട്ട് ചെയ്യുന്നുവെങ്കിൽ, റൂട്ട് ഇല്ല അല്ലെങ്കിൽ എതിരാളിയായ ഡിഫോൾട്ടിന് മികച്ച മെട്രിക് ഉണ്ട്.
സെറ്റിംഗ് അത് ആവശ്യമുള്ള നെറ്റ്വർക്കിൽ മാത്രം പരിമിതപ്പെടുത്തുക. ഡിഫോൾട്ട് റൂട്ട് സ്വീകാര്യത ആഗോളമായി, അല്ലെങ്കിൽ സ്വകാര്യ സബ്നെറ്റ് മാത്രം നൽകേണ്ട നെറ്റ്വർക്കിൽ പ്രവർത്തനക്ഷമമാക്കുന്നത്, അതിനായി ഒരിക്കലും അളക്കാത്ത എക്സിറ്റിലൂടെ ട്രാഫിക് അയക്കുന്നു.
എക്സിറ്റ് പരിശോധിച്ച് മറ്റ് വിലാസ കുടുംബങ്ങൾ നോക്കുക
ഉറവിടം റിപ്പോർട്ട് ചെയ്യുന്ന ഒരു സേവനത്തിൽ നിന്ന് പൊതു വിലാസം ആവശ്യപ്പെടുക, അത് എക്സിറ്റ് നോഡിന്റെ WAN വിലാസവുമായി താരതമ്യം ചെയ്യുക. തുടർന്ന് DNS ഇപ്പോഴും പരിഹരിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ പേരുള്ള ഒരു സൈറ്റ് ലോഡ് ചെയ്യുക, ബ്രൗസർ മാത്രമല്ല, ഒരു പ്രധാന അപ്ലിക്കേഷൻ പരീക്ഷിക്കുക.
ഡ്യുവൽ-സ്റ്റാക്ക് ക്ലയന്റിന് IPv4 ZeroTier വഴി പുറത്തുപോകുമ്പോൾ സ്വന്തം സ്വാഭാവിക IPv6 പാത ഉപയോഗിക്കാം. എല്ലാ ട്രാഫിക്കും മറയ്ക്കുകയോ നിയന്ത്രിക്കുകയോ ചെയ്യുകയാണ് ലക്ഷ്യമെങ്കിൽ, വേറിട്ട ::/0 റൂട്ടും എക്സിറ്റിൽ IPv6 ഫോർവേഡിംഗും ആവശ്യമാണ്, IPv4 പരിശോധന അവയെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല.
Linux-ന്റെ റിവേഴ്സ്-പാത്ത് ഫിൽട്ടറിംഗ് ക്ലയന്റിൽ സാധുവായ എക്സിറ്റ് ട്രാഫിക്കും വീഴ്ത്തിയേക്കാം. ZeroTier പങ്കെടുക്കുന്ന അംഗങ്ങൾക്കായി rp_filter പരിഗണന രേഖപ്പെടുത്തുന്നു; ആ ക്രമീകരണം ബോധപൂർവ്വം, റൂട്ടും NAT ഉം സ്ഥിരീകരിച്ചതിന് ശേഷം മാത്രം മാറ്റുക, ആദ്യ പരീക്ഷണമായി അല്ല.
NAS-ലേക്കോ ഒരു ഓഫീസ് സബ്നെറ്റിലേക്കോ ആണ് ആവശ്യമെങ്കിൽ, ആ പ്രിഫിക്സിനുള്ള മാനേജ്ഡ് റൂട്ട് പൂർണ്ണ എക്സിറ്റിനേക്കാൾ ചെറിയതും സുരക്ഷിതവുമായ മാറ്റമാണ്. എല്ലാ ബ്രൗസിംഗും മറ്റൊരു ഉപകരണത്തിലൂടെ അയക്കുന്നത് ഒരു സ്വകാര്യ വിഭവത്തിൽ എത്തുന്നതിൽ നിന്ന് വ്യത്യസ്തമായ തീരുമാനമാണ്, അത് പ്രത്യേക അവലോകനത്തിന് അർഹമാണ്.