Proxmox-ൽ LXC അല്ലെങ്കിൽ VM-ൽ WireGuard: അത് എവിടെ പ്രവർത്തിക്കണം?
WireGuard Proxmox ഹോസ്റ്റിൽ, ഒരു കണ്ടെയ്നറിൽ അല്ലെങ്കിൽ VM-ൽ പ്രവർത്തിക്കാം. നിർണ്ണായക ഘടകങ്ങൾ കേർണൽ ഉടമസ്ഥത, ഇന്റർഫേസ് നിയന്ത്രണം, വീണ്ടെടുക്കൽ എന്നിവയാണ്.
WireGuard-ന് അതിന്റെ ഇന്റർഫേസ് സ്വന്തമാക്കാൻ കൃത്യമായി ഒരു കേർണൽ വേണം, ആ വസ്തുത പ്രകടനം സംഭാഷണത്തിൽ വരുന്നതിന് മുമ്പുതന്നെ Proxmox സ്ഥാനനിർണ്ണയത്തിലെ മിക്ക തർക്കവും തീർക്കുന്നു. LXC കണ്ടെയ്നർ ഹോസ്റ്റ് കേർണലിന്റെ നെയിംസ്പേസ് കാഴ്ചയാണ്, VM തന്റേതായ കേർണൽ ബൂട്ട് ചെയ്യുന്നു. അതിനാൽ ഉപയോഗപ്രദമായ ചോദ്യം ഏത് ഓപ്ഷൻ ഭാരം കുറഞ്ഞതാണ് എന്നല്ല, മറിച്ച് ഏത് കേർണൽ മാറ്റാൻ നിങ്ങൾ തയ്യാറാണ്, ഏത് വീണ്ടെടുക്കൽ പാതയോടൊപ്പം ജീവിക്കാം എന്നതാണ്. അതിന് ഉത്തരം നൽകുക, ഹോസ്റ്റ്, കണ്ടെയ്നർ അല്ലെങ്കിൽ VM എന്ന തിരഞ്ഞെടുപ്പ് സാധാരണയായി സ്വയം നടക്കും.
LXC അതിഥി ഹോസ്റ്റ് കേർണലിനുള്ളിൽ പ്രവർത്തിക്കുന്നു
കണ്ടെയ്നറിനുള്ളിൽ wireguard-tools ഇൻസ്റ്റാൾ ചെയ്യുന്നത് നിയന്ത്രണ പ്രോഗ്രാം നൽകുന്നു, സ്വകാര്യ കേർണൽ അല്ല. നിങ്ങൾ സൃഷ്ടിക്കുന്ന wg0 ഇന്റർഫേസ് ഹോസ്റ്റിന്റെ നെറ്റ്വർക്ക് സ്റ്റാക്കിൽ രജിസ്റ്റർ ചെയ്യുന്നു, ഹോസ്റ്റിന്റെ മൊഡ്യൂൾ പട്ടികയിൽ കാണപ്പെടുന്നു. അതിനാലാണ് ഒരു കണ്ടെയ്നറിന് എല്ലാ പാക്കേജ് പരിശോധനകളും കടക്കാമെങ്കിലും ഹോസ്റ്റ് കേർണലിൽ മൊഡ്യൂൾ ഇല്ലാത്തപ്പോൾ ആദ്യ wg കമാൻഡിൽ പരാജയപ്പെടാം. കൂടാതെ Proxmox കണ്ടെയ്നർ റഫറൻസ് ആ പങ്കിട്ട കേർണൽ മാതൃകയും നിങ്ങൾ പ്രവർത്തിക്കുന്ന നെയിംസ്പേസ്, പ്രിവിലേജ് അതിരുകളും രേഖപ്പെടുത്തുന്നു.
അധികാരമാണ് രണ്ടാം നിയന്ത്രണം. ഒരു ഇന്റർഫേസ് ഉയർത്തി അതിൽ വിലാസങ്ങൾ ചേർക്കാൻ അതിനെ സ്വന്തമാക്കുന്ന നെയിംസ്പേസിനുള്ളിലെ നെറ്റ്വർക്ക് അഡ്മിനിസ്ട്രേഷൻ അവകാശങ്ങൾ ആവശ്യമാണ്, പ്രിവിലേജില്ലാത്ത കണ്ടെയ്നർ ആ അവകാശങ്ങൾ നേരിട്ട് സൂക്ഷിക്കുന്നതിനുപകരം തന്റെ ഉപയോക്തൃ നെയിംസ്പേസിലൂടെ മാപ്പ് ചെയ്യുന്നു. ആദ്യ ഉത്തരമായി ഒരിക്കലും പൂർണ്ണ പ്രിവിലേജിലേക്ക് പോകരുത്; കണ്ടെയ്നറിൽ നിന്ന് യഥാർത്ഥത്തിൽ എന്താണ് ആവശ്യപ്പെടുന്നതെന്ന് നോക്കി അത് നൽകുക.
ഹോസ്റ്റ് കേർണലും പങ്കിട്ട ആശ്രിതത്വമാണ്. Proxmox കേർണൽ അപ്ഡേറ്റ് എല്ലാ കണ്ടെയ്നറുകളുടെയും കീഴിലുള്ള WireGuard നടപ്പാക്കലിനെ ഒരുമിച്ച് മാറ്റുന്നു, ഇത് ഒരു അപ്ഡേറ്റും കണ്ടെയ്നറിന്റെ പ്രതീക്ഷകളും ഒത്തുപോകാത്തതുവരെ സൗകര്യപ്രദമാണ്.
ഹോസ്റ്റ്, കണ്ടെയ്നർ, VM: ഓരോ സ്ഥാനനിർണ്ണയവും യഥാർത്ഥത്തിൽ സ്വന്തമാക്കുന്നത്
ഹോസ്റ്റിലെ സ്ഥാനനിർണ്ണയം VPN-നെ ഹൈപ്പർവൈസറിന്റെ സ്വന്തം നെറ്റ്വർക്കിൽ ഇടുന്നു. റൂട്ടുകൾ, ഫയർവാൾ നിയമങ്ങൾ, ടണൽ എന്നിവ ഹോസ്റ്റ് വീണ്ടെടുക്കലിന്റെ ഭാഗമാകുന്നു, അവിടത്തെ ഒരു തെറ്റ് മാനേജ്മെന്റ് ഇന്റർഫേസിനെയും കൊണ്ടുപോകാം. കൺസോളിലൂടെ എത്താവുന്ന ഹോസ്റ്റിലെ അടിസ്ഥാന സൗകര്യ റൂട്ടിംഗിന് ഇത് സ്വീകാര്യമാണ്, ബാൻഡിന് പുറത്തുള്ള പ്രവേശനമില്ലാത്ത വിദൂര യന്ത്രത്തിൽ വേദനാജനകവുമാണ്.
കണ്ടെയ്നർ സേവനത്തെ പാക്കേജ് ചെയ്ത് പുനരാരംഭിക്കാവുന്നതായി സൂക്ഷിക്കുന്നു, അതേസമയം ഹോസ്റ്റ് കേർണൽ കടം വാങ്ങുന്നു. ബോധപൂർവ്വം പങ്കിട്ട കേർണൽ സേവനത്തിന് ഇത് യോജിക്കുന്നു, പുനർനിർമ്മാണത്തിന് ചെറിയ യൂണിറ്റ് നൽകുന്നു. സ്വതന്ത്ര കേർണൽ നൽകുന്നില്ല, അതിനാൽ പ്രത്യേക മൊഡ്യൂൾ ബിൽഡ് ആവശ്യമുള്ളതെല്ലാം ഈ ഓപ്ഷനിൽ നിന്ന് അകലെ ചൂണ്ടുന്നു.
| Placement | Kernel owner | Typical failure mode |
|---|---|---|
| Proxmox host | Hypervisor | A routing change breaks host management access |
| LXC container | Host kernel, container namespace | Missing capability or missing module at wg0 creation |
| Virtual machine | Guest kernel | Extra maintenance and a second patch cycle |
VM-ന് കൂടുതൽ മെമ്മറിയും പാച്ച് ചെയ്യാനുള്ള മറ്റൊരു സിസ്റ്റവും വേണം, പകരമായി ടണലിന് സ്വന്തം കേർണൽ, സ്വന്തം റൂട്ടിംഗ് ടേബിൾ, ഒരു സ്നാപ്പ്ഷോട്ട് അതിർത്തി ലഭിക്കുന്നു. മോശം മാറ്റത്തിന് ശേഷം VPN ആണ് നിങ്ങൾ പിന്നോട്ട് തിരിക്കുന്നതെങ്കിൽ, ആ സ്നാപ്പ്ഷോട്ട് അധിക ഭാരത്തിന് അർഹമാണ്.
നിങ്ങൾക്കുവേണ്ടി തിരഞ്ഞെടുക്കുന്ന മൂന്ന് വ്യവസ്ഥകൾ
ടണലിന് Proxmox ഹോസ്റ്റ് നൽകാത്ത ഒരു കേർണൽ പതിപ്പോ WireGuard സവിശേഷതയോ ആവശ്യമെങ്കിൽ, ഇവിടെ നിർത്തി VM ഉപയോഗിക്കുക. ഒരു കണ്ടെയ്നറിൽ പുതിയ കേർണൽ ഇൻസ്റ്റാൾ ചെയ്യാനാവില്ല, ഒരു അതിഥിയെ തൃപ്തിപ്പെടുത്താൻ ഹൈപ്പർവൈസർ കേർണൽ മാറ്റരുത്.
യഥാർത്ഥ LAN പ്രിഫിക്സുകൾക്കുള്ള സൈറ്റിന്റെ ഗേറ്റ്വേയാണ് ടണൽ എങ്കിൽ, മടക്ക റൂട്ട് ഇതിനകം ആർക്കാണ് എന്ന് ചോദിക്കുക. കണ്ടെയ്നറിന് ട്രാഫിക് റൂട്ട് ചെയ്യാം, പക്ഷേ അതിന്റെ ഇന്റർഫേസുകൾ ഹോസ്റ്റിന്റെ സ്റ്റാക്കിൽ ഇരിക്കുന്നു, അതിനാൽ ഹോസ്റ്റ് ഒടുവിൽ കോൺഫിഗറേഷന്റെ ഒരു ഭാഗം വഹിക്കുന്നു, നിങ്ങൾ അത് ആസൂത്രണം ചെയ്തോ ഇല്ലയോ. ഹോസ്റ്റിലെ സ്ഥാനനിർണ്ണയം ഇക്കാര്യത്തിൽ സത്യസന്ധമാണ്; കണ്ടെയ്നറിലെ സ്ഥാനനിർണ്ണയം പലപ്പോഴും അല്ല.
തുടർന്ന് ഒരു തെറ്റിന്റെ ആഘാത ആരം തൂക്കുക. കണ്ടെയ്നർ പുനരാരംഭിക്കുന്നത് വിലകുറഞ്ഞതാണ്, VM സ്നാപ്പ്ഷോട്ട് പുനഃസ്ഥാപിക്കുന്നത് പ്രവചനീയമാണ്, ഹോസ്റ്റ് നെറ്റ്വർക്കിംഗ് നന്നാക്കാൻ ഭൗതികമോ കൺസോൾ പ്രവേശനമോ വേണ്ടിവരാം. ശരിയായ തിരഞ്ഞെടുപ്പ്, അത് സംഭവിക്കുന്ന അതേ മണിക്കൂറിൽ ഏറ്റവും മോശം സാഹചര്യത്തിൽ നിന്ന് യഥാർത്ഥത്തിൽ വീണ്ടെടുക്കാവുന്നതാണ്.
നാലാം ചോദ്യം അപൂർവ്വമായി മാത്രം നിർണ്ണായകമാണ്, പക്ഷേ പറയേണ്ടതുണ്ട്: ഹോസ്റ്റിലെ മറ്റെന്തെങ്കിലും ടണൽ ഇന്റർഫേസ് കാണണോ? ഉണ്ടെങ്കിൽ, ഹോസ്റ്റിലോ കണ്ടെയ്നറിലോ ഉള്ള സ്ഥാനനിർണ്ണയം ആ ദൃശ്യത സ്ഥലീയമായി നിലനിർത്തുന്നു, അതേസമയം VM അതിഥിക്കും ഹോസ്റ്റിനും ഇടയിൽ റൂട്ട് ചെയ്യാൻ നിർബന്ധിക്കുന്നു.
ട്രാഫിക് അതിലൂടെ കടത്തിവിടുന്നതിന് മുമ്പ് സ്ഥാനനിർണ്ണയം തെളിയിക്കുക
ഇൻസ്റ്റാളേഷന് ശേഷം, ഏത് കേർണൽ ആണ് യഥാർത്ഥത്തിൽ ഇന്റർഫേസിന് സേവനം നൽകുന്നതെന്നും അത് നിലനിർത്താൻ കണ്ടെയ്നറിന് മതിയായ അധികാരം ലഭിച്ചിട്ടുണ്ടോയെന്നും സ്ഥിരീകരിക്കുക:
$ pct config 101 | grep -E 'unprivileged|features'
unprivileged: 1
$ pct exec 101 -- wg show
interface: wg0
listening port: 51820
$ pct exec 101 -- ip -4 addr show wg0
inet 10.60.0.2/24 scope global wg0
തുടർന്ന് ഹോസ്റ്റിൽ നിന്ന് ഫോർവേഡിംഗ് ഭാഗം പരിശോധിക്കുക, കാരണം ഒരു ഹാൻഡ്ഷേക്ക് മാത്രം ടണൽ ഉയർന്നിട്ടുണ്ടെന്ന് മാത്രമേ തെളിയിക്കുന്നുള്ളൂ. ക്ലയന്റ് വിലാസത്തിന് ip route get ഉപയോഗിക്കുക, അടുത്ത ഹോപ്പും ഇന്റർഫേസും ഡിസൈനുമായി ഒത്തുപോകുന്നുവെന്നും വിദൂര ഭാഗത്ത് മടക്ക പാത നിലവിലുണ്ടെന്നും സ്ഥിരീകരിക്കുക.
വിന്യാസം എഴുതപ്പെട്ട ഉടമയോടെ വിടുക: ഏത് കേർണൽ നടപ്പാക്കലിനെ വഹിക്കുന്നു, ഏത് നെയിംസ്പേസ് ഇന്റർഫേസ് സൂക്ഷിക്കുന്നു, ഏത് പ്രിഫിക്സുകൾ ഗേറ്റ്വേയ്ക്ക് ഫോർവേഡ് ചെയ്യാം. ആ ഒരു വാക്യം മൂന്ന് സ്ഥാനനിർണ്ണയങ്ങളുടെ ഏത് ബെഞ്ച്മാർക്ക് താരതമ്യത്തേക്കാളും കൂടുതൽ സംഭവങ്ങൾ തടയുന്നു.