WireGuard: രണ്ട് പകുതി റൂട്ടുകളും wg-quick-ലെ 0.0.0.0/0-ഉം
രണ്ട് /1 ശ്രേണികൾ /0 പോലെ അതേ വിലാസങ്ങൾ ഉൾക്കൊള്ളുന്നു, എന്നാൽ wg-quick അവ വ്യത്യസ്തമായി റൂട്ട് ചെയ്യുന്നു. എഡിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് നയ നിയമങ്ങൾ, മാർക്കുകൾ, എൻഡ്പോയിന്റ് പാത എന്നിവ പരിശോധിക്കുക.
രണ്ട് /1 പ്രിഫിക്സുകൾ ഒരു /0 പോലെ അതേ IPv4 വിലാസങ്ങൾ ഉൾക്കൊള്ളുന്നു, ആ സമത്വം പിയറിന്റെ അനുവദനീയ പ്രിഫിക്സ് പട്ടികയ്ക്കുള്ളിൽ മാത്രമേ സാധുവാകൂ. സെറ്റപ്പ് ഉപകരണം എങ്ങനെ റൂട്ട് ചെയ്യണം എന്ന് തീരുമാനിക്കുന്ന നിമിഷം അത് സാധുതയില്ലാതാകുന്നു, കാരണം Linux-ലെ wg-quick ഡിഫോൾട്ട് പ്രിഫിക്സിനെ ഗണിതമായല്ല, പ്രത്യേക കേസായാണ് കൈകാര്യം ചെയ്യുന്നത്. പ്രത്യേക ശാഖ ഒരു സമർപ്പിത പട്ടിക, രണ്ട് നയ നിയമങ്ങൾ, ഒരു സോക്കറ്റ് മാർക്ക്, റിവേഴ്സ് പാത ക്രമീകരണങ്ങൾ എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുന്നു, അവ പകുതി റൂട്ടുകളുടെ ജോടിക്ക് ഒരിക്കലും ലഭിക്കുന്നില്ല. അതിനാൽ എഡിറ്റിന് ശേഷം പ്രോക്സിയോ ബ്രൗസറോ പ്രവർത്തനം നിർത്തുമ്പോൾ, പ്രിഫിക്സുകളാണ് മാറ്റത്തിന്റെ ഏറ്റവും കുറഞ്ഞ താൽപ്പര്യമുള്ള ഭാഗം.
പ്രിഫിക്സ് പട്ടിക മുഴുവൻ കോൺഫിഗറേഷനല്ല
AllowedIPs ഒരേ സമയം രണ്ട് ജോലികൾ ചെയ്യുന്നു, അവയിൽ ഒന്ന് മാത്രമാണ് കവറേജിനെക്കുറിച്ച്. WireGuard-ന് തന്നെ ഈ പട്ടിക ക്രിപ്റ്റോകീ റൂട്ടിംഗ് ആണ്: ഏത് ലക്ഷ്യസ്ഥാനങ്ങൾ പിയറിലേക്ക് എൻക്രിപ്റ്റ് ചെയ്യപ്പെടുന്നു, ആ പിയറിന് ഏത് ഉറവിട വിലാസങ്ങൾ ഉപയോഗിക്കാം എന്നിവ അത് തീരുമാനിക്കുന്നു. wg-quick-ന് അതേ പട്ടിക റൂട്ട് സ്പെസിഫിക്കേഷനായും പ്രവർത്തിക്കുന്നു, അത് ഉണ്ടാക്കുന്ന റൂട്ട് പട്ടിക യാദൃച്ഛികമായി ഏത് ശാഖയുമായി ഒത്തുപോകുന്നു എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു. അതിനാൽ രണ്ട് വ്യത്യസ്ത പട്ടിക രൂപങ്ങളിൽ ഒരേ കവറേജ് ഉണ്ടായിരിക്കുന്നത് ഒരേ ഹോസ്റ്റ് അവസ്ഥയെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല.
ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ ആ തീരുമാനം നിങ്ങളുടെ കൈയിൽ നിന്ന് എടുക്കുന്നു, കാരണം Table സ്വതവേ സ്വയമേവയാണ്, റൂട്ടുകൾ എവിടെ ഇറങ്ങണം എന്ന് ഉപകരണം തന്നെ തിരഞ്ഞെടുക്കുന്നു. മറ്റൊരു നെറ്റ്വർക്ക് മാനേജർ, വിതരണ റാപ്പർ അല്ലെങ്കിൽ ഇഷ്ടാനുസൃത Table മൂല്യം ഫലം വീണ്ടും മാറ്റുന്നു, അതുകൊണ്ടാണ് ഒരു ഹോസ്റ്റിനായി എഴുതിയ ഉപദേശം അടുത്തതിൽ തെറ്റായി തോന്നാം.
ഡിഫോൾട്ട് ശാഖ ഒരു റൂട്ടിന് പുറമേ എന്ത് ചേർക്കുന്നു
/0 എൻട്രി wg-quick-നെ അതിന്റെ ഡിഫോൾട്ട് റൂട്ട് പാതയിലേക്ക് അയക്കുന്നു: ഒരു പ്രത്യേക റൂട്ടിംഗ് പട്ടിക ഡിഫോൾട്ട് സ്വീകരിക്കുന്നു, ഒരു നയ നിയമം അടയാളമില്ലാത്ത ട്രാഫിക് അങ്ങോട്ട് അയക്കുന്നു, രണ്ടാമത്തെ നിയമം പ്രധാന പട്ടികയിലെ കൂടുതൽ നിർദ്ദിഷ്ട റൂട്ടുകൾ അധികാരമുള്ളതായി നിലനിർത്തുന്നു, ഇന്റർഫേസിന് സ്വന്തം സോക്കറ്റിൽ ഒരു ഫയർവാൾ മാർക്ക് ലഭിക്കുന്നു. ആ മാർക്കാണ് ലൂപ്പ് കാവൽക്കാരൻ. ടണൽ ട്രാഫിക് വഹിക്കുന്ന എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റാഗ്രാമുകൾ മാർക്ക് ഇട്ട് പുറത്തുപോകുന്നു, അതിനാൽ ബാക്കിയെല്ലാം ടണലിലേക്ക് തിരിക്കുന്ന നിയമം ടണലിന്റെ സ്വന്തം ഗതാഗത പാക്കറ്റുകളെ വിഴുങ്ങുകയില്ല.
പകരം /1 എൻട്രികളുടെ ജോടി സാധാരണ റൂട്ട് പാത സ്വീകരിക്കുന്നു. കോൺഫിഗർ ചെയ്ത പട്ടികയിൽ രണ്ട് റൂട്ടുകൾ ഇറങ്ങുന്നു, ചുറ്റുമുള്ള യന്ത്രത്തിന്റെ ഒരു ഭാഗവും പ്രത്യക്ഷപ്പെടുന്നില്ല, അത് അനാവശ്യമായതുകൊണ്ടല്ല, ആ കോഡ് പാതയിൽ ഒരിക്കലും പ്രവേശിച്ചിട്ടില്ലാത്തതുകൊണ്ടാണ്.
രണ്ട് ക്രമീകരണങ്ങൾ വേർതിരിയുന്നിടം
വ്യത്യാസം ആദ്യം ആവർത്തനമായി കാണപ്പെടുന്നു. പ്രധാന പട്ടികയിൽ പകുതി റൂട്ടുകൾ ഉള്ളപ്പോൾ, പിയറിന്റെ സ്വന്തം ഗതാഗത വിലാസം ടണൽ പ്രിഫിക്സിനുള്ളിൽ വീഴുന്നു, അതിനാൽ ടണൽ വഹിക്കേണ്ട പാക്കറ്റ് ടണലിനുള്ളിലേക്ക് ചൂണ്ടുന്ന റൂട്ടുമായി ഒത്തുപോകുന്നു. എന്തെങ്കിലും അതിനെ ഒഴിവാക്കണം: നിലവിലെ എൻഡ്പോയിന്റിനുള്ള ഹോസ്റ്റ് റൂട്ട്, കൈകൊണ്ട് പ്രയോഗിച്ച മാർക്ക്, അല്ലെങ്കിൽ ഇന്റർഫേസ്-നിർദ്ദിഷ്ട നിയമം. എൻഡ്പോയിന്റ് വിലാസം മാറുന്നതുവരെ ഹോസ്റ്റ് റൂട്ട് പ്രവർത്തിക്കുന്നു, DNS അടിസ്ഥാനമാക്കിയ എൻഡ്പോയിന്റുകൾ, സഞ്ചരിക്കുന്ന ക്ലയന്റുകൾ, ഒന്നിലധികം പിയറുകളുള്ള കോൺഫിഗറേഷനുകൾ എന്നിവയിൽ ഇത് സംഭവിക്കുന്നു.
രണ്ടാമതായി, മാർക്കുകളെക്കുറിച്ച് വിചാരം ചെയ്യുന്ന എല്ലാം പെരുമാറ്റം മാറ്റുന്നു. കണക്ഷനുകൾ പ്രാദേശികമായി റീഡയറക്ട് ചെയ്യുന്ന സുതാര്യ പ്രോക്സി പുതിയ സോക്കറ്റുകൾ സൃഷ്ടിക്കുന്നു, അവയുടെ മാർക്കുകളും ഉറവിടങ്ങളും യഥാർത്ഥ ക്ലയന്റ് പ്രവാഹത്തിൽ നിന്ന് വ്യത്യസ്തമാണ്, ഡിഫോൾട്ട് ശാഖ സൃഷ്ടിക്കുന്ന നയ നിയമങ്ങൾ ആ പ്രവാഹങ്ങളെ വേർതിരിച്ചതിന്റെ ഭാഗമായിരുന്നു. പ്രോക്സിയുടെ സ്വന്തം പുറംകണക്ഷൻ വായിക്കുന്നത് യഥാർത്ഥ ലക്ഷ്യം എത്താനാകുമോ എന്ന് പരിശോധിക്കുന്നതിൽ നിന്ന് വ്യത്യസ്തമായ വ്യായാമമാണ്.
എഡിറ്റ് ചെയ്യുന്നതിന് മുമ്പ് നിയമങ്ങളും മാർക്കുകളും വായിക്കുക
ടണൽ ആരോഗ്യകരമായിരിക്കുമ്പോൾ നിലവിലെ അവസ്ഥ പകർത്തുക, പിന്നീട് മാറ്റത്തിന് ശേഷം വീണ്ടും, കോൺഫിഗറേഷൻ ഫയലിൽ നിന്ന് വിചാരിക്കുന്നതിന് പകരം രണ്ട് ഡംപുകളും താരതമ്യം ചെയ്യുക. നയ നിയമങ്ങൾ, ഓരോ പട്ടികയും, ഇന്റർഫേസ് മാർക്കും, രേഖപ്പെടുത്തിയ എൻഡ്പോയിന്റുകളും ഉൾപ്പെടുത്തുക.
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
ഔട്ട്പുട്ടിന്റെ ആദ്യ വരി അടയാളമില്ലാത്ത ട്രാഫിക്കിന്റെ നിയമം നഷ്ടപ്പെട്ടതും സമർപ്പിത പട്ടിക ശൂന്യമാണെങ്കിൽ, ഡിഫോൾട്ട് ശാഖ പ്രവർത്തിക്കുന്നില്ല, ഏതെങ്കിലും പ്രിഫിക്സ് ഗണിതം അതിന്റെ ഫലങ്ങൾ തിരികെ കൊണ്ടുവരില്ല. മുമ്പ് മാർക്ക് ഉണ്ടായിരുന്ന ഇന്റർഫേസിൽ പൂജ്യ മാർക്ക് അതേ സൂചനയാണ്, ഒരു മൂല്യത്തിൽ കാണാം.
പുറത്തിറക്കുന്നതിന് മുമ്പ് ടണൽ നഷ്ടം പരിശീലിക്കുക
പകുതി റൂട്ട് ക്രമീകരണമാണ് ബോധപൂർവമായ തിരഞ്ഞെടുപ്പെങ്കിൽ, കാണാത്ത ഭാഗങ്ങൾ അത് വ്യക്തമായി നൽകണം: വിലാസ മാറ്റങ്ങളെ അതിജീവിക്കുന്ന എൻഡ്പോയിന്റ് പാത, ടണൽ വീഴുമ്പോൾ ഉദ്ദേശിച്ച പെരുമാറ്റം, IPv6-നുള്ള തുല്യമായ കൈകാര്യം. തടസ്സസമയത്ത് കണ്ടെത്തുന്നതിന് പകരം അവ ആവശ്യകതകളായി എഴുതിവയ്ക്കുക. തുടർന്ന് പരാജയം പരിശീലിക്കുക, കാരണം ഭൗതിക അപ്ലിങ്കിലേക്ക് നിശ്ശബ്ദമായി മടങ്ങുന്ന പൂർണ ടണൽ പ്രവർത്തനം നിർത്തുന്ന ടണലിനേക്കാൾ മോശമാണ്.
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
റൂട്ട് അന്വേഷണം ടണൽ കടക്കാതെ ഭൗതിക ഇന്റർഫേസിൽ നിന്ന് എൻഡ്പോയിന്റ് പരിഹരിക്കണം, ഇന്റർഫേസ് താഴ്ത്തുന്നത് ഹോസ്റ്റിനെ ഡിസൈൻ വാഗ്ദാനം ചെയ്ത അവസ്ഥയിൽ വിടണം. പകരം വയ്ക്കലിന് ശേഷം പ്രവർത്തിക്കുന്ന പ്രോക്സി സൃഷ്ടിച്ച ഹോസ്റ്റ് അവസ്ഥ പ്രധാനമായിരുന്നു എന്ന് തെളിയിക്കുന്നു; ലൂപ്പ് തടയലും ഓഫ് അവസ്ഥയിലെ പെരുമാറ്റവും എഡിറ്റിൽ നിന്ന് അതിജീവിച്ചു എന്ന് അത് തെളിയിക്കുന്നില്ല.