സർവർ ആദ്യം എന്തെങ്കിലും അയച്ചതിനു ശേഷം മാത്രമേ ടണൽ പ്രവർത്തിക്കുന്നതായി തോന്നുന്നുള്ളൂ. ക്ലയന്റിൽ നിന്ന് ആരംഭിക്കുമ്പോൾ ഒന്നും സംഭവിക്കുന്നില്ല, കുറച്ച് സെക്കൻഡ് കാത്തിരുന്ന് വീണ്ടും ശ്രമിക്കുമ്പോൾ വിജയിക്കുന്നു. സാധാരണ രോഗനിർണയം തകർന്ന NAT ആണ്, ആ സാധാരണ രോഗനിർണയം തെറ്റാണ്. മാറിയത് എന്തെന്നാൽ ഒരു പിയർ മറ്റൊന്ന് എവിടെയാണെന്ന് പഠിച്ചു എന്നതാണ്.

എൻഡ്‌പോയിന്റ് അറിവ്, എത്തിച്ചേരാനുള്ള കഴിവല്ല

WireGuard പിയർ എവിടേക്ക് അയക്കണമെന്ന് അറിയുന്നതുവരെ ഹാൻഡ്‌ഷേക്ക് ആരംഭിക്കില്ല. കോൺഫിഗറേഷൻ അതിനെ വിലാസവും പോർട്ടും ഉള്ള എൻഡ്‌പോയിന്റായി നൽകുന്നു, പ്രവർത്തിക്കുന്ന അവസ്ഥ ഇപ്പോൾ അത് വിശ്വസിക്കുന്ന എൻഡ്‌പോയിന്റ് പിന്തുടരുന്നു.

wg show ആ ചിത്രത്തിന്റെ ഇരുവശങ്ങളും അച്ചടിക്കുന്നു, ഔട്ട്‌പുട്ടിൽ എൻഡ്‌പോയിന്റില്ലാത്ത പിയറിന് അതിന്റെ പൊതു കീയും അനുവദിച്ച പ്രിഫിക്സുകളും എത്ര ശരിയായാലും ഒന്നും ആരംഭിക്കാനാവില്ല. ഏതെങ്കിലും നിയമം മാറ്റുന്നതിന് മുൻപ് ക്ലയന്റിന്റെ കാഴ്ചപ്പാട് സർവറുമായി താരതമ്യം ചെയ്യുക, കാരണം ആർക്ക് എന്ത് അറിയാം എന്നതിൽ ഇരുവരും പലപ്പോഴും യോജിക്കുന്നില്ല.

പിയർ എൻഡ്‌പോയിന്റ് എങ്ങനെ പഠിക്കുന്നു

WireGuard ബോധപൂർവം നിശ്ശബ്ദമാണ്. ശരിയായി പ്രാമാണീകരിച്ച പാക്കറ്റ് പിയർ പ്രതീക്ഷിക്കാത്ത വിലാസത്തിൽ നിന്ന് എത്തുമ്പോൾ, നടപ്പാക്കൽ ആ പിയറിന്റെ എൻഡ്‌പോയിന്റ് പുതിയ ഉറവിടത്തിലേക്ക് പുതുക്കുന്നു, നെറ്റ്‌വർക്കുകൾ മാറുന്ന ലാപ്‌ടോപ്പിൽ റോമിംഗ് ഇങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത്. ആ സ്വഭാവം ദിശാസംബന്ധിയായ ആശ്രിതത്വം വിശദീകരിക്കുന്നു: സർവർ ആദ്യം അയച്ച് അതിന്റെ പാക്കറ്റ് ക്ലയന്റിലെത്തിയാൽ, ക്ലയന്റ് സർവറിന്റെ നിലവിലെ വിലാസം പഠിച്ച് മറുപടി നൽകാം. അതുവരെ അതിന് അയക്കാൻ ഇടമില്ല. ഈ സംവിധാനം ആദ്യ ഉപയോഗത്തിലെ വിശ്വാസത്തിന്റെ കുറുക്കുവഴിയല്ല, പ്രാമാണീകരിച്ച റോമിംഗാണ്, കാരണം എൻഡ്‌പോയിന്റ് നീങ്ങുന്നതിന് മുൻപ് പാക്കറ്റ് സാധുവായിരിക്കേണ്ടതായിരുന്നു.

wg എന്നതിനുള്ള ഉപകരണ രേഖകൾ ആ പുതുക്കൽ വിവരിക്കുന്നു, അതിനെ ചുറ്റിപ്പറ്റി രൂപകൽപ്പന ചെയ്യാൻ പോകുന്നെങ്കിൽ ഒരിക്കൽ വായിക്കുന്നത് മൂല്യവത്താണ്.

അവസ്ഥയുള്ള വിവർത്തനം സ്വന്തം ദിശ ചേർക്കുന്നു

UDP വിവർത്തനം ചെയ്യുന്ന ഗേറ്റ്‌വേയിലൂടെ കടക്കുമ്പോൾ, ഗേറ്റ്‌വേ താൻ ആദ്യം കാണുന്ന പാക്കറ്റിന് അവസ്ഥ സൃഷ്ടിക്കുന്നു. RFC 4787 ആ സ്വഭാവവും ഒടുവിൽ മാപ്പിംഗ് നീക്കം ചെയ്യുന്ന സമയപരിധികളും വിവരിക്കുന്നു. നിഷ്ക്രിയ മാപ്പിംഗ് കാലഹരണപ്പെടുന്നു, തുടർന്ന് ദൂരെ വശത്തുനിന്ന് വരുന്ന ഇൻബൗണ്ട് പാക്കറ്റ് ഹോസ്റ്റിലെത്തുന്നതിന് മുൻപ് ഗേറ്റ്‌വേ ഉപേക്ഷിക്കുന്നു. രാവിലെ മുഴുവൻ പ്രവർത്തിച്ച ടണൽ ഉച്ചയ്ക്ക് ശേഷം മറുപടി നൽകുന്നത് നിർത്തുന്നത് ഈ കാരണത്താലാണ്.

ഇത് അതേ ദിശാസംബന്ധിയായ ലക്ഷണം ഉണ്ടാക്കുന്ന രണ്ടാമത്തെയും സ്വതന്ത്രവുമായ സംവിധാനമാണ്. എൻഡ്‌പോയിന്റ് അറിവും വിവർത്തന അവസ്ഥയും രണ്ടും ശരിയായിരിക്കണം, ഒന്ന് ശരിയാക്കുന്നത് മറ്റൊന്നിനെ ശരിയാക്കുന്നില്ല.

യഥാർത്ഥത്തിൽ നിങ്ങൾക്ക് വേണ്ട ദിശ കോൺഫിഗർ ചെയ്യുക

കണക്ഷൻ ആരംഭിക്കേണ്ട ക്ലയന്റിന്, സർവറിന്റെ എൻഡ്‌പോയിന്റ് ക്ലയന്റിന്റെ പിയർ വിഭാഗത്തിൽ വെച്ച് അവിടെ തന്നെ നിലനിർത്തുക. സർവർ ആദ്യം അയക്കുമെന്ന് ആശ്രയിക്കുന്നത് ശാന്തമായ നെറ്റ്‌വർക്കിൽ മാറുന്ന ട്രാഫിക് ക്രമത്തിലെ യാദൃച്ഛികതയെ ആശ്രയിക്കുന്നതാണ്. കോൺഫിഗറേഷൻ ഉദ്ദേശിച്ച ദിശ പ്രഖ്യാപിക്കണം, അത് കണ്ടെത്തരുത്.

വിവർത്തനത്തിന് പിന്നിലുള്ളതും എത്തിച്ചേരാനാകേണ്ടതുമായ പിയറിന്, ആ വശത്ത് സ്ഥിരമായ keepalive പ്രവർത്തനക്ഷമമാക്കുക. ഓരോ 25 സെക്കൻഡിലും keepalive സാധാരണ പ്രാരംഭ മൂല്യമാണ്, അതിന്റെ ഉദ്ദേശ്യം ടണൽ പരിശോധിക്കലല്ല, മാപ്പിംഗ് തുറന്ന് നിലനിർത്തലാണ്. അത് വഹിക്കാൻ ഒരു വശം തിരഞ്ഞെടുക്കുക, കാരണം ഇരുവശത്തും പ്രവർത്തനക്ഷമമാക്കിയാൽ ഫലം മെച്ചപ്പെടുത്താതെ ട്രാഫിക്കും ലോഗ് ശബ്ദവും ഇരട്ടിയാകും.

ട്രിഗറിന് മുൻപും ശേഷവുമുള്ള അവസ്ഥ താരതമ്യം ചെയ്യുക

അത് പരാജയപ്പെടുന്ന നിമിഷത്ത് രണ്ട് കാഴ്ചകളും പകർത്തുക, തുടർന്ന് സർവർ അയച്ചതിനു ശേഷം വീണ്ടും. ആദ്യ കമാൻഡ് എൻഡ്‌പോയിന്റുകളും ഹാൻഡ്‌ഷേക്കിന്റെ പ്രായവും കാണിക്കുന്നു. രണ്ടാമത്തേത് പോർട്ടിന് വിവർത്തന എൻട്രി ഉണ്ടോ എന്ന് കാണിക്കുന്നു. പകർപ്പ് ഏത് ദിശ യഥാർത്ഥത്തിൽ കമ്പിയിലൂടെ കടന്നുവെന്ന് കാണിക്കുന്നു, റൂട്ട് പരിശോധന ക്ലയന്റ് ആ ട്രാഫിക് തികച്ചും മറ്റൊരിടത്തേക്ക് അയക്കുന്നില്ലെന്ന് ഉറപ്പാക്കുന്നു.

wg show
conntrack -L -p udp 2>/dev/null | grep 51820
tcpdump -ni any -c 20 'udp port 51820'
ip route get 198.51.100.7

എൻഡ്‌പോയിന്റ് കോളവും വിവർത്തന എൻട്രിയും ഒരുമിച്ച് രേഖപ്പെടുത്തുക. എൻഡ്‌പോയിന്റില്ലാത്ത പിയറും മാപ്പിംഗില്ലാത്ത ഗേറ്റ്‌വേയും രണ്ട് വ്യത്യസ്ത തകരാറുകളാണ്. അവയിൽ ഒന്നിനെ മാത്രമാണ് keepalive ശരിയാക്കുന്നത്.

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