WireGuard ഡാറ്റ അയയ്ക്കുന്നു പക്ഷേ ഒന്നും തിരികെ ലഭിക്കുന്നില്ല: ഏത് വശം?
കൂടുന്ന ട്രാൻസ്മിറ്റ് കൗണ്ടർ ഒരു ദിശയാണ്, രോഗനിർണയമല്ല. എന്തെങ്കിലും മാറ്റുന്നതിന് മുമ്പ് അഭ്യർത്ഥന ഒരിക്കലും ടണലിൽ നിന്ന് പുറത്തുപോയില്ലേ അതോ മറുപടി ഒരിക്കലും തിരികെ വന്നില്ലേ എന്ന് തീരുമാനിക്കുക.
റിസീവ് കൗണ്ടർ പൂജ്യത്തിൽ നിൽക്കുമ്പോൾ ട്രാൻസ്മിറ്റ് കൗണ്ടർ കൂടുന്നത് ദിശയെ വിവരിക്കുന്നു, രോഗനിർണയത്തെയല്ല. പിയർ ഒരിക്കലും ഹാൻഡ്ഷേക്ക് പൂർത്തിയാക്കാത്തപ്പോൾ, ലക്ഷ്യസ്ഥാനം തെറ്റായ പിയർ തിരഞ്ഞെടുത്തപ്പോൾ, അകലെയുള്ള വശത്തിന് തിരികെയുള്ള റൂട്ട് ഇല്ലാത്തപ്പോൾ, ഒരു ഫിൽട്ടർ വീട്ടിലേക്കുള്ള വഴിയിൽ മറുപടി ഉപേക്ഷിക്കുമ്പോൾ ഇതേ വായന കാണാം. ഇവ ഓരോന്നും വ്യത്യസ്ത സ്ഥലങ്ങളിൽ പരിഹരിക്കുന്നു.
ജോലി ചുരുക്കുന്ന താരതമ്യം ടണലിൽ നിന്ന് ഒരിക്കലും പുറത്തുപോകാത്ത അഭ്യർത്ഥനയും ഒരിക്കലും തിരികെ വരാത്ത മറുപടിയും തമ്മിലാണ്. ശരിയായ ഇന്റർഫേസിൽ ഒരു ക്യാപ്ചർ ഇവയ്ക്കിടയിൽ തീരുമാനിക്കുന്നു.
കൗണ്ടറുകൾ അളവിനെ വിവരിക്കുന്നു, തകരാറിന്റെ ദിശയെയല്ല
WireGuard കൗണ്ടറുകൾ ഇന്റർഫേസ് പിയറിന് എന്ത് നൽകി, അതിൽ നിന്ന് എന്ത് സ്വീകരിച്ചു എന്ന് രേഖപ്പെടുത്തുന്നു. ഏത് ലക്ഷ്യസ്ഥാനം, ഏത് പിയർ, അല്ലെങ്കിൽ കൈമാറ്റത്തിന്റെ ഏത് പകുതി പരാജയപ്പെട്ടു എന്ന് അവ പറയുന്നില്ല. പശ്ചാത്തല ട്രാഫിക് ആകെത്തുകകളെ കൂടുതൽ വിവരരഹിതമാക്കുന്നു, കാരണം ചില ബൈറ്റുകൾ കണക്ഷൻ നിലനിർത്തുന്ന സന്ദേശങ്ങളോ ബന്ധമില്ലാത്ത പ്രവാഹങ്ങളോ ആകാം. ഇന്റർഫേസ് സജീവമാണെന്ന സൂചനയായി അവ വായിക്കുക, തുടർന്ന് അവയെ തെളിവായി കണക്കാക്കുന്നത് നിർത്തുക.
ആദ്യത്തെ ഉപയോഗപ്രദമായ വസ്തുത ഹാൻഡ്ഷേക്ക് നിലവിലുണ്ടോ എന്നതാണ്. അതില്ലാതെ ഈ പിയറിനായി ഒന്നും എൻക്രിപ്റ്റ് ചെയ്തിട്ടില്ല, റിസീവ് കൗണ്ടറിന് ചലിക്കാൻ കാരണവുമില്ല.
പിയർ തിരഞ്ഞെടുപ്പോ മറുപടിയുടെ വഴിയോ: രണ്ട് വിശദീകരണങ്ങൾ
ആദ്യ വിശദീകരണം, റൂട്ട് മറ്റൊരിടത്തേക്ക് ചൂണ്ടിയതിനാലോ പിയറിന്റെ അനുവദിച്ച പ്രിഫിക്സുകൾ ലക്ഷ്യസ്ഥാനം ഉൾക്കൊള്ളാത്തതിനാലോ പാക്കറ്റ് ഉദ്ദേശിച്ച പിയറിൽ എത്തിയില്ല എന്നതാണ്. രണ്ടാമത്തേത്, പാക്കറ്റ് എത്തി പക്ഷേ മറുപടിക്ക് തിരികെ വരാൻ കഴിഞ്ഞില്ല എന്നതാണ്, ഇത് അകലെയുള്ള അറ്റത്തുള്ള റൂട്ടിംഗ് പ്രശ്നമാണ്. ഓരോ ബിന്ദുവിലും നിങ്ങൾ എന്ത് നിരീക്ഷിക്കും എന്നതിന്റെ അടിസ്ഥാനത്തിൽ പട്ടിക അവയെ വേർതിരിക്കുന്നു.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
പട്ടിക മുകളിൽ നിന്ന് വായിക്കുക. ഹാൻഡ്ഷേക്ക് ഇല്ലെങ്കിൽ അത് നിങ്ങളെ കീകൾ, എൻഡ്പോയിന്റുകൾ, പുറം വഴി എന്നിവയിലേക്ക് അയയ്ക്കുന്നു, കാരണം പരിശോധിക്കാൻ ഇനി മറ്റൊന്നുമില്ല. അഭ്യർത്ഥന സെർവറിൽ കാണാവുന്ന നിലവിലുള്ള ഹാൻഡ്ഷേക്ക് പ്രശ്നം തിരികെ വരുന്ന ദിശയിലേക്ക് മാറ്റുന്നു, അവിടെ ലക്ഷ്യസ്ഥാനത്തിന്റെ സ്വന്തം റൂട്ട് പട്ടിക തീരുമാനിക്കുന്നു. സെർവറിൽ ഒരിക്കലും പ്രത്യക്ഷപ്പെടാത്ത അഭ്യർത്ഥന തിരഞ്ഞെടുപ്പ് പ്രശ്നമാണ്, രണ്ട് പിയറുകളിലെയും അനുവദിച്ച പ്രിഫിക്സുകളാണ് ആദ്യം താരതമ്യം ചെയ്യേണ്ടത്.
ഈ നാല് വരികളിൽ രണ്ടെണ്ണം ക്ലയന്റിലും രണ്ടെണ്ണം സെർവറിലും പരിഹരിക്കുന്നു. നിങ്ങൾ ഏത് ജോടിയിലാണെന്ന് അറിയുന്നതാണ് ജോലിയുടെ വലിയ ഭാഗം.
മറുപടികൾ എവിടെ അപ്രത്യക്ഷമാകുന്നു
മറുപടി ലക്ഷ്യസ്ഥാനം വിട്ട്, സെർവറിന്റെ ടണൽ ഇന്റർഫേസിലെത്തി, അനുവദിച്ച വിലാസങ്ങൾ ക്ലയന്റിന്റെ ആന്തരിക വിലാസവുമായി ഒത്തുപോകുന്ന പിയറിനായി എൻക്രിപ്റ്റ് ചെയ്യുന്നു. ആ പൊരുത്തം പരാജയപ്പെട്ടാൽ, മറുപടി നിശബ്ദമായി ഉപേക്ഷിക്കുന്നു, ഇത് ക്ലയന്റിന്റെ ഭാഗത്ത് നിന്ന് കൃത്യമായി നെറ്റ്വർക്ക് തകരാറുപോലെ കാണാം. മറുപടി എൻക്രിപ്റ്റ് ചെയ്തതും ക്ലയന്റിന്റെ സ്വന്തം ഫിൽട്ടർ അത് നിരസിക്കുന്നതുമാണെങ്കിൽ, ലക്ഷണം വീണ്ടും അതേതാണ്. രണ്ട് സാഹചര്യങ്ങൾക്കും കൗണ്ടറല്ല, ക്യാപ്ചർ ആവശ്യമാണ്.
ഈ പിഴവിന്റെ ഏറ്റവും ശക്തമായ രൂപം ക്ലയന്റിനായി പാക്കറ്റുകൾ കൈമാറുന്ന, പക്ഷേ ക്ലയന്റിന്റെ ആന്തരിക ശ്രേണിയിലേക്ക് തിരികെയുള്ള റൂട്ട് ഇല്ലാത്ത സെർവറാണ്. അത് അഭ്യർത്ഥന സ്വീകരിക്കുന്നു, മറുപടി അതിന്റെ സ്ഥിര ഗേറ്റ്വേയിലേക്ക് അയയ്ക്കുന്നു, ടണൽ അത് ഒരിക്കലും കാണുന്നില്ല. സെർവറിൽ ചേർത്ത വിശാലമായ വിവർത്തന നിയമം റൂട്ട് പരിഹരിക്കുന്നതിന് പകരം ആ തകരാറ് മറയ്ക്കുന്നു.
ഒരു ലക്ഷ്യസ്ഥാനം ആരംഭം മുതൽ അവസാനം വരെ പരിശോധിക്കുക
പിയറിന്റെ ശ്രേണിക്കുള്ളിൽ ഒരു ലക്ഷ്യസ്ഥാനം മാത്രം തിരഞ്ഞെടുത്ത്, ഹാൻഡ്ഷേക്ക് വ്യക്തമായി നിലവിലുള്ളപ്പോൾ അത് പരിശോധിക്കുക. താഴെയുള്ള കമാൻഡുകൾ പിയറിന്റെ അവസ്ഥ, തിരഞ്ഞെടുത്ത റൂട്ട്, കൈമാറ്റത്തിന്റെ ഇരു വശങ്ങൾ എന്നിവ വായിക്കുന്നു. എൻക്രിപ്റ്റ് ചെയ്ത പാക്കറ്റുകൾ യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന ഇന്റർഫേസിൽ ക്യാപ്ചർ പ്രവർത്തിപ്പിക്കുക.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
ടണൽ ഇന്റർഫേസിൽ അഭ്യർത്ഥന കാണിച്ച് ഒന്നും തിരികെ വരാത്ത ക്യാപ്ചർ സെർവർ ഭാഗത്തുനിന്നുള്ള മറുപടിയാണ്, ലക്ഷ്യസ്ഥാനത്തിന്റെ റൂട്ട് പട്ടികയാണ് അടുത്തതായി നോക്കേണ്ട സ്ഥലം. ഒന്നും പ്രത്യക്ഷപ്പെട്ടില്ലെങ്കിൽ പാക്കറ്റ് മറ്റൊരു വഴി സ്വീകരിച്ചു, അതിനാൽ പ്രാദേശിക റൂട്ടാണ് സംശയാസ്പദം. രണ്ട് ക്യാപ്ചറുകളിലും കാണാവുന്ന, പക്ഷേ ആപ്ലിക്കേഷനിൽ പുരോഗതിയില്ലാത്ത കൈമാറ്റം ചോദ്യത്തെ പാക്കറ്റ് വലുപ്പത്തിലേക്കോ ഇന്റർഫേസ് സ്ഥിതിവിവരങ്ങൾ ഒരിക്കലും കാണിക്കാത്ത ഫിൽട്ടറിലേക്കോ മാറ്റുന്നു. പരിശോധനയിൽ ഒരു ലക്ഷ്യസ്ഥാനവും ഒരു ക്ലയന്റും നിലനിർത്തുക, കാരണം രണ്ടാമത്തെ ചരം തെളിവിനെ വീണ്ടും ധാരണയായി മാറ്റുന്നു.
അനുവദിച്ച വിലാസം പ്രവർത്തിക്കുമ്പോൾ പേരുകൾ പരാജയപ്പെടുന്നുവെങ്കിൽ, ഉത്തരം ടണലിലല്ല, DNS-ൽ ആണ്. വലിയ കൈമാറ്റങ്ങൾ മാത്രം കുടുങ്ങുന്നുവെങ്കിൽ, പാക്കറ്റ് വലുപ്പം പ്രത്യേകം പരിശോധിക്കുക.