ആദ്യ സ്റ്റാർട്ട് /dev/net/tun അല്ലെങ്കിൽ തുറക്കാൻ കഴിയാത്ത TUN/TAP ഉപകരണത്തെക്കുറിച്ചുള്ള സന്ദേശത്തോടെ പരാജയപ്പെടുന്നു. സർട്ടിഫിക്കറ്റുകൾ ഇതുവരെ വായിച്ചിട്ടില്ല, അതിനാൽ പ്രൊഫൈലിൽ യാതൊന്നും കുറ്റപ്പെടുത്താനില്ല. ഈ ഗെസ്റ്റിന് ഇല്ലാത്ത ഒരു വസ്തു കേർണലിനോട് ഡീമൺ ആവശ്യപ്പെടുകയാണ്.

ആ വസ്തു tun മൊഡ്യൂൾ നൽകുന്ന ഒരു പ്രതീക ഉപകരണമാണ്. അത് നിർമ്മിക്കാൻ കഴിയുമോ എന്നത് കേർണൽ ആർക്കുള്ളതാണ് എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു.

ഡീമൺ കേർണലിനോട് എന്താണ് ആവശ്യപ്പെടുന്നത്

OpenVPN /dev/net/tun തുറന്ന് ഡ്രൈവറിനോട് ഇന്റർഫേസ് ആവശ്യപ്പെടുന്നു. ഡ്രൈവർ tun മൊഡ്യൂളും, ഉപകരണ നോഡ് ഉപയോക്തൃ സ്ഥലം അതിൽ എത്താൻ ഉപയോഗിക്കുന്ന ഹാൻഡിളും ആണ്. മൊഡ്യൂൾ ലോഡ് ചെയ്തിട്ടില്ലെങ്കിൽ നോഡ് ഇല്ലാതിരിക്കാം അല്ലെങ്കിൽ തുറക്കൽ പരാജയപ്പെടാം. രണ്ട് അവസ്ഥയും server.conf എഡിറ്റ് ചെയ്ത് ശരിയാകില്ല.

ഈ പിശക് ആദ്യം പ്ലാറ്റ്ഫോമിനെക്കുറിച്ചുള്ള ചോദ്യമായി വായിക്കുക. കോൺഫിഗ് പിശക് ഉപകരണം തുറന്നതിന് ശേഷമാണ് പ്രത്യക്ഷപ്പെടുന്നത്, അതിന് മുമ്പല്ല.

VM അല്ലെങ്കിൽ കേർണൽ പങ്കിടുന്ന ഗെസ്റ്റ്

KVM, Xen അല്ലെങ്കിൽ മറ്റൊരു പൂർണ്ണ വെർച്വൽ മെഷീനിൽ കേർണൽ നിങ്ങളുടെ നിയന്ത്രണത്തിലാണ്. മൊഡ്യൂളുകൾ ലോഡ് ചെയ്ത് നോഡ് നിർമ്മിക്കാം. OpenVZ, Virtuozzo അല്ലെങ്കിൽ LXC ശൈലിയിലുള്ള കണ്ടെയ്നറിൽ ഗെസ്റ്റ് ഹോസ്റ്റ് കേർണൽ പങ്കിടുന്നു, അതിനാൽ അതിനുള്ളിലെ root-ന് ഹോസ്റ്റ് ലോഡ് ചെയ്യാത്ത മൊഡ്യൂൾ ലോഡ് ചെയ്യാനാവില്ല.

അതിനാൽ ഒരേ പരാജയത്തിന് വളരെ വ്യത്യസ്തരായ രണ്ട് ഉടമകളുണ്ട്. ആദ്യ സന്ദർഭത്തിൽ ഇൻസ്റ്റൻസിനുള്ളിൽ നിന്ന് ഇത് ശരിയാക്കാം. രണ്ടാമത്തേതിൽ ഹോസ്റ്റിനോ ദയാക്ഷനോ എന്തെങ്കിലും വെളിപ്പെടുത്താൻ ആവശ്യപ്പെടുകയാണ്.

ഏത് സന്ദർഭത്തിലാണെന്ന് തീരുമാനിക്കുന്നതിന് മുമ്പ് ls -l /dev/net/tun, lsmod | grep tun, ip -brief link show പ്രവർത്തിപ്പിക്കുക.

VM-ൽ ബൂട്ട് സമയത്ത് മൊഡ്യൂൾ ലോഡ് ചെയ്യുക

വെർച്വൽ മെഷീനിൽ modprobe tun സാധാരണയായി ഉപകരണ നോഡ് നിർമ്മിക്കുന്നു. അത് പ്രത്യക്ഷപ്പെട്ടുവെന്ന് പരിശോധിച്ച ശേഷം, ഒരിക്കൽ ടൈപ്പ് ചെയ്ത കമാൻഡിനെ ആശ്രയിക്കാതെ, ഡിസ്ട്രിബ്യൂഷന്റെ മൊഡ്യൂൾ കോൺഫിഗ് വഴി ലോഡ് സ്ഥിരമാക്കുക. റീബൂട്ടിന് ശേഷം മായുന്ന നോഡ് അടുത്ത മാസം അതേ ടിക്കറ്റായി മാറും.

നിങ്ങൾ ബൂട്ട് ചെയ്ത കേർണലിൽ ആ മൊഡ്യൂൾ ഉണ്ടോ എന്നും പരിശോധിക്കുക. ചുരുക്കിയ വെണ്ടർ കേർണലിൽ അത് ഇല്ലായിരിക്കാം.

നോഡ് ഉണ്ടെങ്കിലും തുറക്കൽ പരാജയപ്പെടുന്നുവെങ്കിൽ, അടുത്ത സംശയങ്ങൾ അനുമതികളും ഉപകരണത്തിന്റെ major/minor നമ്പറുകളുമാണ്. അവ പ്രാദേശിക പരിഹാരങ്ങളാണ്, ദയാക്ഷനോടുള്ള അഭ്യർത്ഥനകളല്ല.

കണ്ടെയ്നറിൽ ഉപകരണം ഹോസ്റ്റിന്റേതാണ്

കണ്ടെയ്നറിൽ ഉപകരണവും കഴിവും രണ്ട് വേറിട്ട ആവശ്യകതകളാണ്. റൺടൈം /dev/net/tun കടത്തിവിടണം, കൂടാതെ ഇന്റർഫേസ് നിർമ്മിക്കാൻ കണ്ടെയ്നറിന് നെറ്റ്വർക്ക് കഴിവ് വേണം. രണ്ടും നൽകാത്ത rootless റൺടൈം പ്രൊഫൈൽ എങ്ങനെ എഴുതിയാലും അതേ തുറക്കൽ പിശക് തുടരും. പല OpenVZ ഹോസ്റ്റുകളും ഉപഭോക്തൃ പാനലിൽ TUN/TAP ടോഗിൾ നൽകുന്നു, അത് ഓണാക്കി റീസ്റ്റാർട്ട് ചെയ്യുന്നത് പലപ്പോഴും മുഴുവൻ പരിഹാരമാണ്.

ദയാക്ഷനോട് രണ്ട് കൃത്യമായ ചോദ്യങ്ങൾ ചോദിക്കുക: ഹോസ്റ്റിൽ tun മൊഡ്യൂൾ ലോഡ് ചെയ്തിട്ടുണ്ടോ, ഈ ഇൻസ്റ്റൻസിനുള്ളിൽ ഉപകരണം ലഭ്യമാണോ? അവ്യക്തമായ ടിക്കറ്റിന് അവ്യക്തമായ ഉത്തരമേ ലഭിക്കൂ.

മൊഡ്യൂൾ വീണ്ടും നിർമ്മിക്കുന്നത് അപൂർവമായി മാത്രം സഹായിക്കുന്നത് എന്തുകൊണ്ട്

ഗെസ്റ്റിനുള്ളിൽ മൊഡ്യൂൾ നിർമ്മിക്കുന്നത് അപൂർവമായി മാത്രം സഹായിക്കും. കംപൈൽ ചെയ്യാൻ ഓടുന്ന കേർണലിന്റെ കൃത്യമായ കോൺഫിഗ് വേണം, /proc/config.gz ഓപ്ഷണലാണ്, ചെറിയ ഇമേജുകളിൽ അത് പലപ്പോഴും ഇല്ല. പ്രവർത്തിക്കുന്ന മൊഡ്യൂൾ പോലും കണ്ടെയ്നർ ഉടമസ്ഥതയില്ലാത്ത കേർണലിൽ ചേർക്കാനാവില്ല.

ഉപകരണം പ്രത്യക്ഷപ്പെട്ട ശേഷം സേവനം റീസ്റ്റാർട്ട് ചെയ്ത്, ട്രാഫിക് പരിശോധിക്കുന്നതിന് മുമ്പ് ഇന്റർഫേസ് സ്ഥിരീകരിക്കുക. tun0 കാണുന്നത് ഡീമൺ ഉപകരണം തുറന്നുവെന്ന് കാണിക്കുന്നു. ഫോർവേഡിംഗ്, ഫയർവാൾ നിയമങ്ങൾ, ക്ലയന്റുകൾക്ക് ലഭിക്കുന്ന റൂട്ടുകൾ എന്നിവയെക്കുറിച്ച് അത് ഇതുവരെ ഒന്നും പറയുന്നില്ല.

ഇവ വെവ്വേറെ തെളിവുള്ള വെവ്വേറെ ചോദ്യങ്ങളാണ്. ഉപകരണം ഇല്ലാതിരിക്കുന്നത് മുൻവ്യവസ്ഥയുടെ പരാജയമാണ്; ഉണ്ടായിരുന്നിട്ടും ഒന്നും കടത്തിവിടാത്ത ടണൽ നയത്തിന്റെ പരാജയമാണ്.

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