OpenVPN AF_INET മുന്നറിയിപ്പ്: നിരുപദ്രവകരമായ ഫോൾബാക്കോ പരാജയപ്പെട്ട സോക്കറ്റോ?
AF_INET ഫോൾബാക്കിനെ തുടർന്നുള്ള സോക്കറ്റ് നിർമ്മാണ പരാജയത്തിൽ നിന്ന് വേർതിരിക്കുക: കൃത്യമായ വരി വായിക്കുക, തുടർന്ന് ശ്രോതാവിനെയും അടുത്ത പിശകിനെയും പരിശോധിക്കുക.
OpenVPN ന്റെ രണ്ട് ലോഗ് വരികൾ ഒരേ വാക്കുകളിൽ തുടങ്ങുന്നു, അവയിൽ ഒന്ന് മാത്രമാണ് പ്രശ്നം റിപ്പോർട്ട് ചെയ്യുന്നത്. Could not determine IPv4/IPv6 protocol. Using AF_INET ഒരു ഫോൾബാക്ക് അറിയിപ്പാണ്: പ്രൊഫൈൽ വിലാസ കുടുംബം തുറന്നിട്ടു, അതിനാൽ ഡീമൺ ഒന്ന് തിരഞ്ഞെടുത്ത് തുടർന്നു. പരാജയ ശാഖ സോക്കറ്റ് സൃഷ്ടിച്ചിട്ടില്ലെന്ന് റിപ്പോർട്ട് ചെയ്ത് പുനരാരംഭം ആവശ്യപ്പെടുന്നു. പൊതുവായ പ്രിഫിക്സിനു ശേഷമുള്ള എല്ലാം അവയെ വേർതിരിക്കുന്നു, അതിനാൽ എന്തെങ്കിലും മാറ്റുന്നതിന് മുമ്പ് അതിനപ്പുറം വായിക്കുക.
ഫോൾബാക്ക് അറിയിപ്പ് എന്താണ് റിപ്പോർട്ട് ചെയ്യുന്നത്
OpenVPN proto udp4 അല്ലെങ്കിൽ proto udp6 വഴി വ്യക്തമായ കുടുംബം സ്വീകരിക്കുന്നു, സ്റ്റാർട്ടപ്പിൽ കുടുംബം കണ്ടെത്തേണ്ടതുണ്ടെങ്കിൽ proto udp സ്വീകരിക്കുന്നു. രണ്ടാമത്തെ കേസിൽ ഡീമൺ പ്രാദേശിക ബൈൻഡ് വിവരങ്ങൾ പരിശോധിച്ച് തിരഞ്ഞെടുക്കുന്നു.
ആ കണ്ടെത്തൽ പ്രവർത്തിക്കുമ്പോൾ, മുന്നറിയിപ്പ് ഏത് ദിശയിലേക്കാണ് പോയതെന്ന് പറയുന്നു, പ്രക്രിയ സോക്കറ്റ് സൃഷ്ടിക്കുന്നത് തുടരുന്നു. ഡ്യുവൽ-സ്റ്റാക്ക് ഹോസ്റ്റിൽ proto udp ഉള്ള സെർവർ പലപ്പോഴും ഇങ്ങനെ IPv4-ൽ എത്തുന്നു. ആ പാതയിൽ ഒന്നും പിശകല്ല, ആക്രമണമോ കാണാത്ത വെബ് സെർവറോ നിരസിച്ച അക്കൗണ്ടോ എന്ന് സൂചിപ്പിക്കുന്നതുമില്ല. വരി ഉപയോഗപ്രദമാകുന്നത്, പിന്നീടുള്ള പരിശോധനകൾ അത് പേരിടുന്ന കുടുംബവുമായി താരതമ്യം ചെയ്യേണ്ടതിനാലാണ്.
ഇതിനെ ഒരു ചോദ്യത്തിനുള്ള ഉത്തരമായി കാണുക, രോഗനിർണയമായി അല്ല. ഈ പ്രക്രിയ ഏത് കുടുംബം തിരഞ്ഞെടുത്തു എന്ന് പറയുന്നു, ക്ലയന്റിന് എന്തുകൊണ്ട് കണക്റ്റ് ചെയ്യാൻ കഴിയില്ല എന്നതിനെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല.
പരാജയ ശാഖ എങ്ങനെയിരിക്കും
പിന്നീട് അതേ സോക്കറ്റ് കോഡിൽ സോക്കറ്റ് തന്നെയില്ലാത്ത ഒരു ശാഖയുണ്ട്. ചെറിയ വിലാസ-കുടുംബ സന്ദേശം ലോഗ് ചെയ്ത് പുനരാരംഭം ആവശ്യപ്പെടുന്നു, തുടരാൻ ഒന്നും ബാക്കിയില്ലാത്തതിനാൽ. തുടക്കത്തിലെ വാക്കുകൾ ഫോൾബാക്കുമായി ഒത്തുപോകുന്നു; ഫലം ഒത്തുപോകുന്നില്ല.
തുടർന്ന് വരുന്നതനുസരിച്ച് അവയെ വേർതിരിക്കുക. ഡീമൺ പ്രവർത്തിക്കുകയും അതിന്റെ ശ്രോതാവിനെ റിപ്പോർട്ട് ചെയ്യുകയും ചെയ്താൽ, ആ വരി വിവരമായിരുന്നു. അത് പുറത്തുപോകുകയോ ലൂപ്പിൽ പുനരാരംഭിക്കുകയോ ചെയ്താൽ, ഇപ്പോൾ സംഭാഷണം ബൈൻഡിനെക്കുറിച്ചാണ്.
grep-ൽ കണ്ടെത്തിയതും ശാഖയുടെ തിരിച്ചറിയലല്ല. ഈ പദസമൂഹം തിരിഞ്ഞ സംഗ്രഹങ്ങളിലും മടക്കിയ വരികളിലും ആളുകൾ രണ്ടാം കൈയിൽ നിന്ന് പേസ്റ്റ് ചെയ്യുന്ന ലോഗ് ഭാഗങ്ങളിലും കാണപ്പെടുന്നു, അതിനാൽ ഒറ്റ പൊരുത്തത്തിനുപകരം സമീപ വരികളും ടൈംസ്റ്റാമ്പ് ക്രമവും വായിക്കുക.
മുന്നറിയിപ്പിനുപകരം ശ്രോതാവിനെ പരിശോധിക്കുക
പ്രവർത്തിക്കുന്ന സെർവർ ലോഗ് ടെക്സ്റ്റിൽ നിന്ന് അനുമാനിക്കാതെ കുടുംബ ചോദ്യത്തിന് നേരിട്ട് ഉത്തരം നൽകുന്നു.
ss -lunp | grep openvpn
ss -ltnp | grep openvpnകുടുംബം, വിലാസം, പോർട്ട് എന്നിവ പ്രൊഫൈലുമായി ഒത്തുനോക്കുക. 0.0.0.0:1194 വരി IPv4 മാത്രമാണ്, ഡ്യുവൽ-സ്റ്റാക്ക് ഹോസ്റ്റിലെ [::]:1194 വരി bindv6only ക്രമീകരണത്തെ ആശ്രയിച്ച് രണ്ട് കുടുംബങ്ങളെയും സ്വീകരിച്ചേക്കാം. പ്രൊഫൈൽ udp എന്ന് പറയുകയും സോക്കറ്റ് IPv4 ആകുകയും ചെയ്താൽ, റിസോൾവർ AAAA റെക്കോർഡ് മാത്രം നൽകുന്ന ക്ലയന്റുകൾ ടണൽ ചർച്ച ചെയ്യുന്നതിന് മുമ്പുതന്നെ പരാജയപ്പെടും.
തുടർന്ന് നിങ്ങളുടെ ഉപയോക്താക്കളോട് സാമ്യമുള്ള ഒരു ക്ലയന്റിൽ നിന്ന് പരീക്ഷിക്കുക: അതേ റിസോൾവർ പാത, അതേ തരം നെറ്റ്വർക്ക്. സെർവറിൽ നിന്നുള്ള പ്രാദേശിക കണക്ഷൻ NAT ഉപകരണമോ മറ്റേ കുടുംബത്തിനായി എഴുതിയ ഫയർവാൾ നിയമമോ കടന്നുപോകുന്ന ട്രാഫിക്കിനെക്കുറിച്ച് വളരെ കുറച്ച് മാത്രമേ തെളിയിക്കുന്നുള്ളൂ.
കുടുംബം നിർബന്ധമാക്കുന്നത് എപ്പോൾ ശരി
proto udp4 പിൻ ചെയ്യുന്നത് IPv4-മാത്രം വിന്യാസത്തിന് അനുയോജ്യമാണ്: A മാത്രമുള്ള DNS പേര്, ഒരു v4 വിലാസത്തിനുള്ള ഫയർവാൾ നിയമങ്ങൾ, v4 വിലാസങ്ങൾ മാത്രം നൽകുന്ന ഓപ്പറേറ്റർമാരുടെ പിന്നിലുള്ള ക്ലയന്റുകൾ. ഇത് അവ്യക്തത നീക്കി അടുത്ത ലോഗ് വരി കൂട്ടത്തെ പ്രവചനീയമാക്കുന്നു.
അതേ വാദം IPv6 ആദ്യം വരുന്ന പരിസ്ഥിതിക്ക് വിപരീത ദിശയിൽ പ്രവർത്തിക്കുന്നു, A മാത്രമുള്ള ക്ലയന്റ് അടിത്തറയുടെ മുന്നിൽ udp6 സ്വയം സൃഷ്ടിച്ച തടസ്സമാണ്. നിരുപദ്രവകരമായ ഒരു മുന്നറിയിപ്പ് നിശബ്ദമാക്കാൻ മാത്രം കുടുംബം നിർബന്ധമാക്കുന്നത് ഈ തെറ്റിന്റെ ക്ലാസിക് രൂപമാണ്, കാരണം ശാന്തമായ ലോഗിന് പകരമായി ആർക്ക് കണക്റ്റ് ചെയ്യാമെന്ന് നിങ്ങൾ മാറ്റിയിരിക്കുന്നു.
അന്തിമ പോയിന്റുകളും അവയിൽ എത്തേണ്ട ക്ലയന്റുകളും അടിസ്ഥാനമാക്കി തിരഞ്ഞെടുക്കുക. OpenVPN 2.6 കൈപ്പുസ്തകം ഗതാഗത രൂപങ്ങൾ രേഖപ്പെടുത്തുന്നു, സന്ദേശം ആ തിരഞ്ഞെടുപ്പിന്റെ ഔട്ട്പുട്ടാണ്, അതിന്റെ ഇൻപുട്ടല്ല.
രേഖ ഇടുങ്ങിയതായി സൂക്ഷിക്കുക
കൃത്യമായ വരി അതിന്റെ ടൈംസ്റ്റാമ്പിനൊപ്പം, പ്രവർത്തിക്കുന്ന പ്രൊഫൈലിന്റെ ഫലപ്രദമായ ഗതാഗത ക്രമീകരണം, കെർണൽ റിപ്പോർട്ട് ചെയ്യുന്ന സോക്കറ്റ്, പരാജയപ്പെട്ട അടുത്ത ഘട്ടം എന്നിവ എഴുതിവയ്ക്കുക. ആ നാല് കാര്യങ്ങൾ സന്ദേശം ഉയർത്തുന്ന മിക്കവാറും എല്ലാ ചോദ്യങ്ങളും തീർക്കുന്നു, അവയൊന്നും ബന്ധമില്ലാത്ത സേവനങ്ങളെക്കുറിച്ച് ഊഹിക്കേണ്ടതില്ല. കൈമാറ്റത്തിലും അവ നിലനിൽക്കുന്നു, grep ന്റെ സ്ക്രീൻഷോട്ട് അങ്ങനെ ചെയ്യുന്നില്ല.
ഈ മുന്നറിയിപ്പിനൊപ്പം വരുന്ന പാക്കേജ് നിർദ്ദേശങ്ങൾ, ഏതെങ്കിലും പിശക് കാണാത്ത എക്സിക്യൂട്ടബിളിനെ പേരിടുന്നതുവരെ ബന്ധമില്ലാത്തവയാണ്.
ifconfig യഥാർത്ഥത്തിൽ ഇല്ലെങ്കിൽ, സ്ക്രിപ്റ്റ് അതിനെ വിളിക്കുമ്പോൾ ഡീമൺ പേരെടുത്ത് പറയുന്നു, അത് സ്വന്തം അന്വേഷണത്തിന് അർഹമാണ്. AF_INET വരിയും കാണാത്ത യൂട്ടിലിറ്റിയും വ്യത്യസ്ത പരാജയങ്ങളാണ്, മുന്നറിയിപ്പ് മാറുന്നുണ്ടോ എന്ന് കാണാൻ സാധനങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് വൃത്തിയുള്ള ഹോസ്റ്റ് വൃത്തികെട്ടതാകുന്ന വഴിയാണ്.