ഓരോ OpenVPN നോഡിലും ഒരു സേവന IP: അത് ചെയ്യാത്ത കാര്യങ്ങൾ
ഓരോ നോഡിലും സ്വകാര്യ /32 റിസർവ് ചെയ്യുക, ക്ലയന്റ് തിരഞ്ഞെടുത്ത സെർവറിൽ എത്താൻ. ആ വിലാസം ഫെയിൽഓവർ ചെയ്യുന്നില്ല, സെഷനുകൾ നീക്കുന്നില്ല, ആരോഗ്യമുള്ള നോഡ് തിരഞ്ഞെടുക്കുന്നുമില്ല.
ഒരു ക്ലയന്റ് പല OpenVPN സെർവറുകളിലൊന്നിലേക്ക് കണക്ട് ചെയ്യുന്നു, പിന്നീട് ആ നോഡിൽ പ്രവർത്തിക്കുന്ന ഒരു ചെറിയ സേവനം ആവശ്യമാകുന്നു: ഒരു സ്റ്റാറ്റസ് പേജ്, ഒരു മെട്രിക് എൻഡ്പോയിന്റ്, ഒരു ബാക്കപ്പ് ഏജന്റ്. ഓരോ നോഡിനും ഒരേ സ്വകാര്യ സേവന വിലാസം നൽകിയാൽ, ഏത് സെർവറിൽ എത്തിയാലും ക്ലയന്റിന്റെ കോൺഫിഗറേഷൻ ഒരുപോലെയാകും. ആ സൗകര്യം യഥാർത്ഥമാണ്, അതിനെ അമിതമായി വായിക്കാനും എളുപ്പമാണ്: പങ്കിട്ട വിലാസം നിങ്ങൾ ഏത് നോഡിൽ എത്തി എന്ന് പറയുന്നു, എന്തെങ്കിലും അധികമാണ് എന്നല്ല.
ഒരേ വിലാസം ഓരോ നോഡിലും പ്രവർത്തിക്കുന്നത് എന്തുകൊണ്ട്
ഓരോ നോഡും വിലാസം പ്രാദേശികമായി സ്വന്തമാക്കി അതിന് ഉത്തരം നൽകുന്നു, അതിനാൽ തന്റെ നിലവിലെ ടണലിലൂടെ അതിൽ എത്തുന്ന ക്ലയന്റിന് ആ ടണലിന്റെ മറുവശത്ത് സേവനം ലഭിക്കുന്നു. നോഡുകൾക്കിടയിൽ ഒന്നും ഏകോപിപ്പിക്കപ്പെടുന്നില്ല, ഒരു നോഡിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ട്രാഫിക് കടക്കുന്നുമില്ല.
വിലാസം പകർത്തപ്പെടുന്നതല്ല, ആവർത്തിക്കപ്പെടുന്ന ഒരു പ്രാദേശിക ലേബലാണ്. ഓരോ നോഡും സ്വന്തത്തിനുവേണ്ടി മാത്രം ഉത്തരം നൽകുന്നു, അവയൊന്നും മറ്റൊരു നോഡിന്റെ പേരിൽ വിലാസത്തിനുള്ള ട്രാഫിക് കൈമാറുന്നില്ല. ഇതാണ് സെർവറുകൾ സ്വതന്ത്രമായിരിക്കെ ഒരു ക്ലയന്റ് കോൺഫിഗറേഷൻ സാധുവായി നിലനിർത്തുന്നത്. നോഡുകൾക്കിടയിൽ ഏതെങ്കിലും ഏകോപനം ഡിസൈനിന് ആവശ്യമില്ല എന്നതിനും ഇതാണ് കാരണം.
അതുകൊണ്ടാണ് അവയ്ക്കിടയിൽ റൗട്ടിംഗ് പ്രോട്ടോക്കോൾ ഇല്ലാതെ അതേ കോൺഫിഗറേഷൻ എല്ലാ സെർവറുകളിലും പ്രവർത്തിക്കുന്നത്. ആരോഗ്യത്തെക്കുറിച്ച് ഡിസൈൻ ഒന്നും പറയാത്തതിനും ഇതാണ് കാരണം: വിലാസം ഹോസ്റ്റിനോട് ബന്ധിപ്പിച്ചിരിക്കുന്നതിനാൽ, സേവനം ഉപയോഗപ്രദമാണോ എന്നതിനോടല്ല, രോഗിയായ നോഡിലും ആരോഗ്യമുള്ള നോഡിലുള്ളതുപോലെ തന്നെ അത് നിലനിൽക്കുന്നു.
അത് ടണലിനല്ല, ലൂപ്പ്ബാക്കിന് നൽകുക
വിലാസം ഒരു ലൂപ്പ്ബാക്ക് ഇന്റർഫേസിൽ വെക്കുന്നത് ഏതെങ്കിലും ടണൽ ഉപകരണത്തിന്റെ ആയുസ്സിൽ നിന്ന് അതിനെ വേർപെടുത്തുന്നു, അതിനാൽ വീണ്ടും കണക്ട് ചെയ്യുന്നതോ കോൺഫിഗറേഷൻ വീണ്ടും ലോഡ് ചെയ്യുന്നതോ അതിനെ നീക്കുന്നില്ല. ഹോസ്റ്റ് ഉള്ളിടത്തോളം വിലാസം നിലനിൽക്കുന്നു.
lo യിലുള്ള വിലാസം ഒരു ഫിൽട്ടറല്ല. സേവനം ഇപ്പോഴും അതിൽ കേൾക്കണം, കൂടാതെ ഹോസ്റ്റിന്റെ ഫയർവാൾ ഇപ്പോഴും യഥാർത്ഥ ഇൻബൗണ്ട് പാത്ത് വിലയിരുത്തുന്നു, അത് ടണൽ ഇന്റർഫേസിൽ എത്തുന്നു. ലൂപ്പ്ബാക്ക് എന്നാൽ പ്രാദേശികം മാത്രം എന്ന് കരുതുന്നവർ അവസാനം നിയമാനുസൃത ക്ലയന്റുകളെ തടയുകയോ ഉദ്ദേശിക്കാത്ത എന്തെങ്കിലും വെളിപ്പെടുത്തുകയോ ചെയ്യും.
അനുവദനീയത hook-ൽ നിന്ന് വീണ്ടും ചേർക്കുന്നതിനുപകരം ഹോസ്റ്റിന്റെ നെറ്റ്വർക്ക് കോൺഫിഗറേഷനിലൂടെ സ്ഥിരമാക്കുക. ടണൽ ഉയർന്നിട്ടില്ലാത്ത നോഡിൽ സെറ്റപ്പ് hook പ്രവർത്തിക്കില്ല, സേവന വിലാസം ടണൽ പ്രവർത്തനത്തെ ആശ്രയിക്കരുത്. നിങ്ങളുടെ ഡിസ്ട്രിബ്യൂഷൻ കൈകാര്യം ചെയ്യുന്ന ഇന്റർഫേസ് കോൺഫിഗറേഷനിൽ വിലാസം ഇടുക, പിന്നീട് ഒരിക്കൽ റീബൂട്ട് ചെയ്ത് പരിശോധിക്കുക. പിന്നീടുള്ള ഒരു കോൺഫിഗറേഷൻ മാറ്റത്തെ അതിജീവിക്കുന്ന ഏക പരിശോധന റീബൂട്ട് മാത്രമാണ്.
ip address show dev lo | grep 10.250.0.1
ip address add 10.250.0.1/32 dev loഒരു റൂട്ട് തള്ളുക, ഒരു ലക്ഷ്യസ്ഥാനം ഉദ്ദേശിക്കുക
ക്ലയന്റിന് വിലാസത്തിനായി ഒരു ഹോസ്റ്റ് റൂട്ട് വേണം, അത് അത് കണക്ട് ചെയ്യുന്ന സെർവർ നൽകുന്നു. ഓരോ സെർവറും ഒരേ ലക്ഷ്യസ്ഥാനം നൽകുന്നതിനാൽ, ക്ലയന്റ് നീങ്ങുമ്പോൾ പ്രൊഫൈൽ മാറുന്നില്ല.
സേവനത്തെ കുറ്റപ്പെടുത്തുന്നതിന് മുൻപ് ക്ലയന്റ് എന്ത് ഇൻസ്റ്റാൾ ചെയ്തു എന്ന് പരിശോധിക്കുക.
ip route get 10.250.0.1ഒരു HTTP സേവനത്തിന് വിലാസത്തിന് ഒരു പേരും ആ പേരിന് ഒരു സർട്ടിഫിക്കറ്റും നൽകുക. പങ്കിട്ട IP ഒരു ഐഡന്റിറ്റിയല്ല, അത് TLS പരിശോധന നീക്കുന്നില്ല, ഒരു സ്വകാര്യ കീ എല്ലാ നോഡുകളിലേക്കും പകർത്തുന്നത് ന്യായീകരിക്കുന്നുമില്ല. പങ്കിട്ട വിലാസത്തിലേക്ക് റിസോൾവ് ചെയ്യുന്ന പേര് സർട്ടിഫിക്കറ്റ് കഥ സാധാരണമായി നിർത്തുകയും ആവശ്യമെങ്കിൽ നോഡ് തലത്തിലുള്ള ഐഡന്റിറ്റി നിലനിർത്താൻ അനുവദിക്കുകയും ചെയ്യുന്നു.
പങ്കിട്ട വിലാസം ചെയ്യാൻ കഴിയാത്തത്
അത് പരാജയസമയത്ത് കൈമാറ്റം നൽകുന്നില്ല. തിരഞ്ഞെടുത്ത നോഡ് മരിച്ചാൽ വിലാസവും അതിനൊപ്പം മരിക്കും, ക്ലയന്റ് മറ്റെവിടെയെങ്കിലും വീണ്ടും കണക്ട് ചെയ്യണം.
അത് ജീവനുള്ള ഒരു TCP സെഷൻ മൈഗ്രേറ്റ് ചെയ്യുന്നില്ല, കാരണം പുതിയ കണക്ഷൻ പഴയതിനെക്കുറിച്ച് ഒന്നുമറിയാത്ത മറ്റൊരു ഹോസ്റ്റിൽ അവസാനിക്കുന്നു.
അത് ആരോഗ്യമുള്ള ഒരു നോഡ് തിരഞ്ഞെടുക്കുന്നില്ല, ലോഡ് സന്തുലിതമാക്കുന്നില്ല, നോഡുകൾക്കിടയിൽ ഡാറ്റ സമന്വയിപ്പിക്കുന്നുമില്ല. അവയോരോന്നും സ്വന്തം പരാജയരീതികളുള്ള വെവ്വേറെ സംവിധാനങ്ങളാണ്, വിലാസ തന്ത്രം അവയെ മൂടുന്നു എന്ന് നടിക്കുന്നതാണ് ലളിതമായ ഒരു ഡിസൈൻ അർഹിക്കാത്ത പ്രതിരോധശേഷിയുടെ പേര് നേടുന്ന വഴി. ഒരേ സമയം രണ്ട് ടണലുകൾ സജീവമാണെങ്കിൽ ലക്ഷ്യസ്ഥാനത്തിന്റെ അർത്ഥം അവ്യക്തമാകും, അതിനാൽ ഒരു സജീവ ടണൽ എന്ന അനുമാനം വ്യക്തമായി നിലനിർത്തുക.
സേവനത്തിന്റെ ഐഡന്റിറ്റി പേരിനൊപ്പം നിലനിർത്തുക
വിലാസത്തിന്റെ അർത്ഥം എഴുതി വെക്കുക: ക്ലയന്റ് ഇപ്പോൾ കണക്ട് ചെയ്തിരിക്കുന്ന നോഡിലെ സേവനത്തിൽ എത്തുന്നു എന്നതാണ് അത്. ആ ഒരു വാക്യം ഈ മാതൃക ആകർഷിക്കുന്ന മിക്കവാറും തെറ്റിദ്ധാരണ തടയുന്നു.
പിന്നീട് ഭാഗങ്ങൾ ഒരുമിച്ച് രേഖപ്പെടുത്തുക: വിലാസം, അത് ജീവിക്കുന്ന ഇന്റർഫേസ്, സെർവർ തള്ളുന്ന റൂട്ട്, സേവനം അവതരിപ്പിക്കുന്ന പേരും സർട്ടിഫിക്കറ്റും. ഭാവിയിലെ ഒരു വായനക്കാരന് പരിശോധിക്കാവുന്ന നാല് ചെറിയ വസ്തുതകൾ, അയാൾ അവ പരിശോധിക്കുന്ന ക്രമത്തിൽ.
ആവശ്യകത നോഡ്-പ്രാദേശിക സേവനത്തിനുള്ള സ്ഥിരമായ ഒരു ലക്ഷ്യസ്ഥാനമാണെങ്കിൽ, ഈ മാതൃക യോജിക്കുന്നു, ഏതാണ്ട് ഒന്നും ചെലവാകുന്നുമില്ല.
ആവശ്യകത ലഭ്യതയാണെങ്കിൽ ഒരു പാളി മുകളിലേക്ക് പോകുക: ഒരു ലോഡ് ബാലൻസർ, ആരോഗ്യ പരിശോധനകളുള്ള സേവന നാമം, അല്ലെങ്കിൽ ഒരു നോഡ് എങ്ങനെ മാറ്റിസ്ഥാപിക്കാമെന്ന് ഇതിനകം അറിയുന്ന ഓർക്കസ്ട്രേഷൻ സംവിധാനം.
അത് നേരത്തെ തീരുമാനിക്കുന്നത് പങ്കിട്ട വിലാസത്തെ അതായിരിക്കുന്നതിൽ, ഒരു സൗകര്യപ്രദമായ ലേബലായി നിലനിർത്തുന്നു, ഒരിക്കലും രൂപകൽപ്പന ചെയ്യാത്ത ജോലി നിശബ്ദമായി പ്രതീക്ഷിക്കുന്ന ഒരു ഘടകമായി അല്ല.