OpenVPN: പ്രാദേശിക വിലാസവും ടണൽ വിലാസവും — രണ്ട് വ്യത്യസ്ത സോക്കറ്റുകൾ
സർവറുമായി ബന്ധപ്പെടുന്ന വിലാസം ടണലിനുള്ളിലെ വിലാസമല്ല. local, remote, nobind എന്നിവ വെവ്വേറെ റോളുകളായി വായിക്കുന്നത് മിക്ക ബൈൻഡ് പിശകുകളും വിശദീകരിക്കുന്നു.
ക്ലൈന്റ് ആരംഭിക്കാൻ വിസമ്മതിക്കുകയും പ്രാദേശിക വിലാസം ബൈൻഡ് ചെയ്യാൻ കഴിയില്ലെന്ന് പരാതിപ്പെടുകയും ചെയ്യുന്നു, പ്രത്യക്ഷമായ പരിഹാരം അത് പ്രതീക്ഷിക്കുന്ന ടണൽ വിലാസത്തിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്നതായി തോന്നുന്നു. അതിന് പ്രവർത്തിക്കാൻ കഴിയില്ല, കാരണം മനസ്സിലാക്കാൻ യോഗ്യമാണ്: ടണൽ നിലവിൽ വരുന്നതിന് മുമ്പ് ഉള്ളിലെ വിലാസമില്ല, സർവറുമായി ബന്ധപ്പെടുന്ന സോക്കറ്റ് ആദ്യം ഉണ്ടായിരിക്കണം. ഇവിടെ രണ്ട് വ്യത്യസ്ത വിലാസങ്ങളുണ്ട്, അവയിൽ ഒന്ന് മാത്രമേ പ്രാദേശികമായി തിരഞ്ഞെടുക്കാൻ കഴിയൂ.
ബൈൻഡ് പിശക് ഒരു പ്രാദേശിക വിലാസത്തെ പേരിടുന്നു
OpenVPN പ്രാദേശിക വിലാസം ബൈൻഡ് ചെയ്യാൻ കഴിയില്ലെന്ന് റിപ്പോർട്ട് ചെയ്യുമ്പോൾ, അത് ട്രാൻസ്പോർട്ട് സോക്കറ്റിനെക്കുറിച്ചാണ് സംസാരിക്കുന്നത്: എൻക്രിപ്റ്റ് ചെയ്ത കണക്ഷൻ പിയറിലേക്ക് കൊണ്ടുപോകുന്ന UDP അല്ലെങ്കിൽ TCP അന്തിമ പോയിന്റ്.
വ്യക്തമായ local നിർദ്ദേശം ഡീമണിനോട് ആ സോക്കറ്റ് ഒരു നിർദ്ദിഷ്ട പ്രാദേശിക വിലാസത്തിലേക്ക് ബൈൻഡ് ചെയ്യാൻ ആവശ്യപ്പെടുന്നു. പ്രോസസ് പ്രവർത്തിക്കുന്ന നെറ്റ്വർക്ക് നാമസ്ഥലത്ത് വിലാസം ഉണ്ടായിരിക്കണം, ക്ലൈന്റ് ആരംഭിക്കുന്ന നിമിഷത്തിൽ അത് അനുവദിക്കാവുന്നതായിരിക്കണം.
റൗട്ടറിലോ ക്ലൗഡ് അതിരിലോ വിവർത്തനം ചെയ്യുന്ന പൊതു വിലാസം ഡീമണിന് ബൈൻഡ് ചെയ്യാവുന്ന പ്രാദേശിക വിലാസമല്ല, സർവർ കാണുന്നത് അതേ വിലാസമാണെങ്കിലും. ഒരു പ്രൊഫൈൽ വീട്ടിൽ പ്രവർത്തിച്ച് ക്ലൗഡ് ഇൻസ്റ്റൻസിൽ പരാജയപ്പെടുന്നതിന്റെ കാരണം ഈ വ്യത്യാസമാണ്. പൊതു വിലാസം ലൂപ്പ്ബാക്ക് ഇന്റർഫേസിലേക്ക് ചേർക്കുന്നത് സഹായിക്കാത്തതും ഇതേ കാരണത്താലാണ്, കാരണം അപ്പോൾ ട്രാൻസ്പോർട്ട് നെറ്റ്വർക്കിന് മറുപടി നൽകാൻ കഴിയാത്ത വിലാസത്തിൽ നിന്ന് പുറപ്പെടും. പ്രൊഫൈൽ തിരുത്തുന്നതിന് മുമ്പ് ഇന്റർഫേസ് പട്ടിക വായിക്കുക.
local ഉം remote ഉം യഥാർത്ഥത്തിൽ തിരഞ്ഞെടുക്കുന്നത്
remote ബന്ധപ്പെടേണ്ട പിയറിനെ പേരിടുന്നു. local അതേ സോക്കറ്റിന്റെ അടുത്ത അറ്റം ബൈൻഡ് ചെയ്യുന്നു. nobind പ്രാദേശിക വിലാസവും പോർട്ടും ഒരുമിച്ച് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തെ തിരഞ്ഞെടുക്കാൻ അനുവദിക്കുന്നു, അതിനാൽ വീട്ടിലെ റൗട്ടറുകൾക്ക് പിന്നിലെ ക്ലൈന്റുകൾ സാധാരണയായി രണ്ട് നിർദ്ദേശങ്ങളും ഇല്ലാതെ പ്രവർത്തിക്കുന്നു.
ആ രണ്ട് നിർദ്ദേശങ്ങൾക്കും ടണലിനുള്ളിലെ വിലാസവുമായി യാതൊരു ബന്ധവുമില്ല.
കണ്ടെയ്നറിലോ നെറ്റ്വർക്ക് നാമസ്ഥലത്തോ അതേ നിയമം ചെറിയ അതിരുകളോടെ ബാധകമാണ്: ഹോസ്റ്റിന്റെ വിലാസങ്ങൾ ഉള്ളിൽ ഇല്ല, അതിനാൽ ഹോസ്റ്റ് കോൺഫിഗറേഷനിൽ നിന്ന് പകർത്തിയ local വരി തെറ്റായ വിലാസത്തിൽ നിന്ന് തികച്ചും വ്യത്യസ്തമായ കാരണത്താൽ പരാജയപ്പെടുന്നു.
ip -brief address show
ip route get 203.0.113.10ഉള്ളിലെ വിലാസം സർവറിൽ നിന്ന് വരുന്നു
ടണലിനുള്ളിലെ വിലാസം നിയന്ത്രണ ചാനൽ സ്ഥാപിച്ചതിന് ശേഷം ചർച്ച ചെയ്യുകയോ അനുവദിക്കുകയോ ചെയ്യുന്നു. ഡൈനാമിക് പൂളിൽ സർവർ അത് കണക്ഷൻ സമയത്ത് തീരുമാനിക്കുന്നു, ക്ലൈന്റ്-നിർദ്ദിഷ്ട കോൺഫിഗറേഷനിൽ അത് ഓരോ ഐഡന്റിറ്റിക്കും സ്ഥിരമായിരിക്കാം.
ഉള്ളിലെ വിലാസത്തോടെ local എഴുതുന്നത് ആ വിലാസം അനുവദിക്കാൻ സർവറിനോട് ആവശ്യപ്പെടുന്നില്ല. ഏറ്റവും നല്ല സാഹചര്യത്തിൽ ബൈൻഡ് പരാജയപ്പെടുന്നു; ഏറ്റവും മോശം സാഹചര്യത്തിൽ ക്ലൈന്റ് അതേ മൂല്യമുള്ള ബന്ധമില്ലാത്ത ഹോസ്റ്റ് വിലാസം കണ്ടെത്തി അത് ട്രാൻസ്പോർട്ടിന് ഉപയോഗിക്കാൻ തുടങ്ങുന്നു.
വായിക്കേണ്ട ഇന്റർഫേസുകളും വ്യത്യസ്തമാണ്. ifconfig പാരാമീറ്ററുകളും പൂൾ കോൺഫിഗറേഷനും ഉള്ളിലെ ഭാഗം വിവരിക്കുന്നു, remote, local, proto, nobind എന്നിവ പുറത്തെ ഭാഗം വിവരിക്കുന്നു. രണ്ട് പട്ടികകളും വെവ്വേറെ സൂക്ഷിക്കുന്നത് ഫോറത്തിൽ കാണുന്ന ഏതാണ്ടെല്ലാ ആശയക്കുഴപ്പമുള്ള ഉദാഹരണങ്ങളും വിശദീകരിക്കുന്നു. OpenVPN 2.6 കൈപ്പുസ്തകം ഇതേ കാരണത്താൽ അവ വെവ്വേറെ വിഭാഗങ്ങളിൽ രേഖപ്പെടുത്തുന്നു.
കെണി: സ്വന്തം ട്രാൻസ്പോർട്ടിനെ പിടിക്കുന്ന പൂർണ ടണൽ
ടണൽ ഉയർന്ന് ഡിഫോൾട്ട് റൂട്ട് വഹിക്കുമ്പോൾ, അതിനെ നിലനിർത്തുന്ന പാക്കറ്റുകൾ അതിലേക്ക് റൂട്ട് ചെയ്യരുത്. ഇത് വിലാസത്തിന്റെ പ്രശ്നമല്ല, റൂട്ടിംഗിന്റെ പ്രശ്നമാണ്, ഡീമൺ അത് യഥാർത്ഥ ഗേറ്റ്വേയിലൂടെ സർവറിന്റെ സ്വന്തം വിലാസത്തിലേക്ക് കൂടുതൽ നിർദ്ദിഷ്ട റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്ത് പരിഹരിക്കുന്നു.
ട്രാൻസ്പോർട്ട് ഒരു നിർദ്ദിഷ്ട പ്രാദേശിക വിലാസത്തിൽ പിൻ ചെയ്ത് പിന്നീട് ആ വിലാസം ഉപയോഗിക്കുന്ന വഴി മാറ്റിയാൽ, ഉള്ളിലെ ഭാഗം കോൺഫിഗർ ചെയ്തിരിക്കുമ്പോൾ തന്നെ പുറത്തെ കണക്ഷൻ വഴി തെറ്റിയേക്കാം. ഉള്ളിലെ ഭാഗം കുഴപ്പമില്ലാത്തതിനാൽ ടണൽ ബന്ധിപ്പിച്ചിരിക്കുന്നുവെന്ന് റിപ്പോർട്ട് ചെയ്യുന്നത് തുടരുന്നു. ട്രാൻസ്പോർട്ട് മാത്രമാണ് തകർന്നത്, അതുകൊണ്ടാണ് ലോഗുകൾ വൈരുദ്ധ്യങ്ങളായി വായിക്കപ്പെടുന്നത്.
അപ്പോൾ ലക്ഷണങ്ങൾ ബന്ധിപ്പിച്ച് ഫ്രീസ് ചെയ്യുന്ന ടണലിനെപ്പോലെയോ, ഉപയോഗപ്രദമായ പിശകില്ലാതെ ലൂപ്പിൽ വീണ്ടും ബന്ധിപ്പിക്കുന്ന ടണലിനെപ്പോലെയോ തോന്നും. ടണലിനുള്ളിൽ എന്തും പരിശോധിക്കുന്നതിന് മുമ്പ് പിയറിന്റെ വിലാസത്തിലേക്കുള്ള റൂട്ട് പരിശോധിക്കുക, നിങ്ങൾ ബൈൻഡ് ചെയ്ത പ്രാദേശിക വിലാസം ഇപ്പോഴും പ്രതീക്ഷിച്ച ഇന്റർഫേസിനുള്ളതാണെന്ന് ഉറപ്പാക്കുക.
ആശയക്കുഴപ്പം തടയുന്ന ഒരു ശീലം
പ്രൊഫൈലിലെ ഓരോ വിലാസവും വായിച്ച് തിരുത്തുന്നതിന് മുമ്പ് അത് ഏത് പാളിയുടേതാണെന്ന് തീരുമാനിക്കുക.
അത് ട്രാൻസ്പോർട്ടിന്റെ അകലെയുള്ള അറ്റത്തെ പേരിടുന്നുവെങ്കിൽ അല്ലെങ്കിൽ അതിന്റെ അടുത്ത അറ്റം ബൈൻഡ് ചെയ്യുന്നുവെങ്കിൽ, അത് പുറത്തെ വിലാസമാണ്, ആരംഭിക്കുന്നതിന് മുമ്പ് അത് ഉണ്ടായിരിക്കണം. ടണലിനുള്ളിൽ എന്ത് സംഭവിക്കുന്നു എന്ന് വിവരിക്കുന്നുവെങ്കിൽ, അത് സർവറിൽ നിന്നോ ടോപ്പോളജിയിൽ നിന്നോ വരുന്നു, ഒരു പ്രാദേശിക നിർദ്ദേശത്തിനും അതിനെ മാറ്റിസ്ഥാപിക്കാൻ കഴിയില്ല.
രണ്ട് പട്ടികകളും പ്രൊഫൈലിന് സമീപമുള്ള വിന്യാസ കുറിപ്പുകളിൽ എഴുതുക. അടുത്ത പ്രശ്നപരിഹാര സെഷൻ അപ്പോൾ ഊഹത്തിൽ നിന്നല്ല, പാളിയിൽ നിന്ന് ആരംഭിക്കും.