WireGuard: സബ്നെറ്റ് മാറ്റത്തിന് ശേഷം പിയറിലേക്ക് റൂട്ട് ഇല്ല — രണ്ട് വഴികൾ
സബ്നെറ്റ് മാറ്റം WireGuard-നെ രണ്ടിടത്ത് തകർക്കുന്നു: AllowedIPs, തിരിച്ചുള്ള പാത. സ്ഥലത്ത് തന്നെ പുനർനമ്പർ ചെയ്യുന്നതും ഇന്റർഫേസ് പുനർനിർമ്മിക്കുന്നതും താരതമ്യം ചെയ്യുക.
wg show-ൽ ഹാൻഡ്ഷേക്ക് പുതിയതാണ്, എൻഡ്പോയിന്റ് ശരിയാണ്, കീകൾ ഒരിക്കലും മാറിയിട്ടില്ല — എന്നിട്ടും ping പറയുന്നത് പിയറിലേക്ക് റൂട്ട് ഇല്ല എന്നാണ്. ഒരു മണിക്കൂർ മുൻപ് ടണലിന്റെ സബ്നെറ്റ് മാറ്റിയിരുന്നു. ആ ലക്ഷണം കീയുടെ പ്രശ്നമല്ല, പ്രിഫിക്സ് പൊരുത്തക്കേടിന്റെ അടയാളമാണ്: WireGuard ഹാൻഡ്ഷേക്ക് പൂർത്തിയാക്കി, പിന്നീട് സ്വീകരിക്കുന്ന പിയർ അംഗീകരിക്കുന്നതുമായി ഉറവിട വിലാസം ഇനി ഒത്തുപോകാത്തതിനാൽ ഡാറ്റ ഉപേക്ഷിച്ചു. സബ്നെറ്റ് മാറ്റം നടപ്പാക്കാൻ രണ്ട് ന്യായമായ വഴികളുണ്ട്, അവ വ്യത്യസ്തയിടങ്ങളിൽ പരാജയപ്പെടുന്നു.
മാറ്റം നടപ്പാക്കാനുള്ള രണ്ട് വഴികളും ഓരോന്നിന്റെയും ചെലവും
ഓപ്ഷൻ A സ്ഥലത്ത് തന്നെ പുനർനമ്പർ ചെയ്യലാണ്: ഇന്റർഫേസ് വിലാസം, പിയർ ശ്രേണികൾ, റൂട്ടുകൾ, കോൺഫിഗിന്റെ ഓരോ പകർപ്പും തിരുത്തി വീണ്ടും ലോഡ് ചെയ്യുക. ഓപ്ഷൻ B പുതിയ പ്രിഫിക്സിൽ പഴയതിന് സമീപം രണ്ടാം ഇന്റർഫേസ് നിർമ്മിച്ച്, പിയറുകൾ മാറ്റി, ട്രാഫിക് യഥാർത്ഥത്തിൽ നീങ്ങിയ ശേഷം പഴയ ഇന്റർഫേസ് നീക്കം ചെയ്യലാണ്.
| A: renumber in place | B: parallel interface | |
|---|---|---|
| Downtime | The reload window, per host | None if peers are added to both |
| Rollback | Re-apply the previous files | Point peers back at the old interface |
| Risk | Half-applied change: new address, old ranges | Two live interfaces with overlapping intent |
| Effort | Small, if the deployment has one owner | Higher, and needs a cleanup step |
| Fits | Two or three peers you control | Many peers, remote sites, or no maintenance window |
ഓപ്ഷൻ A അപകടകരമാക്കുന്നത് പകുതി പ്രയോഗിച്ച അവസ്ഥയാണ്, കാരണം അത് തകർന്നതായി തോന്നുന്നില്ല. ഇന്റർഫേസ് ഉയരുന്നു, ഹാൻഡ്ഷേക്ക് വിജയിക്കുന്നു, ഡാറ്റ പാത മാത്രം പരാജയപ്പെടുന്നു. ഓപ്ഷൻ B കൂടുതൽ ജോലി ആവശ്യപ്പെടുന്നു, പക്ഷേ ഓരോ റഫറൻസും കണ്ടെത്തുന്നതുവരെ പ്രവർത്തിക്കുന്ന പാതയെ ജീവനോടെ നിർത്തുന്നു.
നിങ്ങളുടെ ഭാഗത്ത് എന്ത് ഒരുമിച്ച് നീങ്ങണം
ലോക്കൽ ഹോസ്റ്റിലെ നാല് കാര്യങ്ങൾ ഒരേ സബ്നെറ്റിനെ വിവരിക്കുന്നു, ഒന്ന് മാറ്റുന്നത് എല്ലാം മാറ്റുന്നതാണ്: ഇന്റർഫേസ് വിലാസം, ഓരോ പിയറിന്റെയും AllowedIPs, ആ ലക്ഷ്യങ്ങൾക്ക് സിസ്റ്റം ഉപയോഗിക്കുന്ന റൂട്ട്, മാനേജർ നിങ്ങൾക്കുവേണ്ടി ഇൻസ്റ്റാൾ ചെയ്യുന്നത്. wg-quick-ൽ അവസാന രണ്ടും ഇന്റർഫേസ് ഉയരുമ്പോഴെല്ലാം കോൺഫിഗിൽ നിന്ന് നിർമ്മിക്കുന്നു, അതിനാൽ പഴയ പകർപ്പ് പഴയ പ്രിഫിക്സ് നിശബ്ദമായി വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യുന്നു.
ഒന്നിനെ വിശ്വസിക്കുന്നതിനുപകരം കോൺഫിഗർ ചെയ്തതിനെ ജീവനുള്ളതുമായി താരതമ്യം ചെയ്യുക:
wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5റൂട്ട് അന്വേഷണമാണ് ആളുകൾ ഒഴിവാക്കുന്ന ഘട്ടം. ഒരു ലക്ഷ്യത്തിന് കെർണൽ യഥാർത്ഥത്തിൽ എന്ത് ചെയ്യുമെന്ന് അത് ഉത്തരം നൽകുന്നു, മാനേജറോ കണ്ടെയ്നർ റൺടൈമോ വിട്ട കൂടുതൽ നിർദ്ദിഷ്ട റൂട്ട് ഉൾപ്പെടെ. ടണലിൽ നിന്ന് വ്യത്യസ്തമായ ഇന്റർഫേസ് റിപ്പോർട്ട് ചെയ്താൽ, കോൺഫിഗ് പ്രശ്നമല്ല.
പ്രവർത്തിക്കുന്ന ഇന്റർഫേസിന്, ടണൽ പൊളിക്കാതെ തിരുത്തിയ ഫയൽ പ്രയോഗിക്കുക:
wg syncconf wg0 <(wg-quick strip wg0)അത് പിയറുകളും ശ്രേണികളും സ്ഥലത്ത് തന്നെ അപ്ഡേറ്റ് ചെയ്യുന്നു. ഇന്റർഫേസ് വിലാസമോ റൂട്ടുകളോ അപ്ഡേറ്റ് ചെയ്യുന്നില്ല, കാരണം അവ WireGuard ക്രമീകരണങ്ങളല്ല — അതിനാൽ പുനർനമ്പറിംഗിന് ഇപ്പോഴും ഇന്റർഫേസ് വീണ്ടും നിർമ്മിക്കുകയോ ip ഉപയോഗിച്ച് വിലാസം മാറ്റുകയോ ചെയ്ത്, പിന്നീട് റൂട്ടിംഗ് വീണ്ടും പരിശോധിക്കണം.
വിദൂര അറ്റത്ത് എന്ത് ഒരുമിച്ച് നീങ്ങണം
സാധാരണയായി സബ്നെറ്റ് മാറ്റം മരിക്കുന്നത് ഇവിടെയാണ്. AllowedIPs ഒരു റൂട്ടിംഗ് സൂചന മാത്രമല്ല; പിയർ അവതരിപ്പിക്കാൻ അനുവദിക്കുന്ന ഉറവിട വിലാസങ്ങളുടെ പട്ടികയുമാണ്. ക്ലയന്റുകൾ പുനർനമ്പർ ചെയ്ത് സെർവറിന്റെ AllowedIPs പഴയ പ്രിഫിക്സിൽ വിട്ടാൽ, സെർവർ ഹാൻഡ്ഷേക്ക് സ്വീകരിക്കുന്നു, എൻക്രിപ്റ്റ് ചെയ്ത പാക്കറ്റുകൾ സ്വീകരിക്കുന്നു, എന്നിട്ട് അവ ഉപേക്ഷിക്കുന്നു, കാരണം ആന്തരിക ഉറവിടം ആ പിയറുമായി ബന്ധിപ്പിക്കുന്ന ഒരു ശ്രേണിയുമായും ഒത്തുപോകുന്നില്ല. പിശക് ലോഗ് ചെയ്യപ്പെടുന്നില്ല, ക്ലയന്റ് സമയപരിധി കാണുന്നു.
അതിനാൽ സ്വീകരിക്കുന്ന ഭാഗം ബോധപൂർവം അപ്ഡേറ്റ് ചെയ്യുക: സെർവറിലെ പിയർ എൻട്രി പുതിയ ക്ലയന്റ് പ്രിഫിക്സ് ലിസ്റ്റ് ചെയ്യണം, സെർവറിന്റെ സ്വന്തം തിരിച്ചുള്ള റൂട്ട് ആ പ്രിഫിക്സിന് ടണലിലേക്ക് ചൂണ്ടണം, സെർവറിന് പിന്നിലുള്ള ഏത് താഴ്ന്ന നെറ്റ്വർക്കും പുതിയ വഴി പഠിക്കണം. പഴയ ശ്രേണി പേരിട്ട ഫയർവാൾ നയത്തിനും അതേ ചികിത്സ വേണം, ഉറവിടാധാരിത തിരഞ്ഞെടുപ്പ് ചെയ്യുന്ന എല്ലാത്തിനും.
രണ്ട് പരാജയങ്ങളെ വേർതിരിക്കുന്ന ഡയഗ്നോസ്റ്റിക്സ് വിലകുറഞ്ഞതാണ്. പുതിയ ഹാൻഡ്ഷേക്ക് ഉണ്ട്, ഡാറ്റ ഇല്ല എന്നത് ടണൽ ഉയർന്നിരിക്കുന്നു, ആന്തരിക വിലാസീകരണം ഒത്തുപോകുന്നില്ല എന്നാണ്. ഹാൻഡ്ഷേക്ക് ഒട്ടുമില്ലെങ്കിൽ നിങ്ങൾ എത്തിച്ചേരൽ അല്ലെങ്കിൽ കീകൾ നോക്കുകയാണ്. പ്രിഫിക്സ് പ്രശ്നത്തിന് കീകൾ കറക്കരുത്; അത് പ്രവർത്തിച്ചിരുന്ന ഒരേയൊരു കാര്യം പുനഃസജ്ജമാക്കുന്നു.
നിങ്ങളുടെ തിരുത്തലിനെ അതിജീവിക്കുന്ന പഴയ പകർപ്പുകൾ
ഫയൽ തിരുത്തുന്നത് പ്രവർത്തിക്കുന്ന സിസ്റ്റം മാറ്റുന്നതിന് തുല്യമല്ല, പകർപ്പുകൾ ആളുകൾ പ്രതീക്ഷിക്കുന്നതിലധികമുണ്ട്: ഇന്റർഫേസിന്റെ ഉടമയായ യൂണിറ്റ് അല്ലെങ്കിൽ മാനേജർ, മറ്റൊരു ഡയറക്ടറിയിൽ അതേ പേരുള്ള രണ്ടാം പ്രൊഫൈൽ, ഇമേജിൽ കോൺഫിഗ് ബേക്ക് ചെയ്ത കണ്ടെയ്നർ, സ്വന്തം തിരുത്തിയ പതിപ്പ് സൂക്ഷിക്കുന്ന റൗട്ടർ UI, ആരംഭിക്കുമ്പോൾ സേവ് ചെയ്ത ടണൽ വീണ്ടും ഇമ്പോർട്ട് ചെയ്യുന്ന ക്ലയന്റ് ആപ്പ്. നിങ്ങളുടെ മാറ്റം പൂർത്തിയായതായി തോന്നിയ ശേഷവും ഇവയിലേതെങ്കിലും പഴയ പ്രിഫിക്സ് പുനഃസ്ഥാപിക്കാം.
പേരുകളും യാത്ര ചെയ്യുന്നു. സംഖ്യാ റൂട്ട് പ്രവർത്തിച്ച് ഹോസ്റ്റ്നെയിം പരാജയപ്പെട്ടാൽ, ആന്തരിക DNS റെക്കോർഡോ സേവന കോൺഫിഗോ ഇപ്പോഴും പഴയ ടണൽ വിലാസത്തിലേക്ക് ചൂണ്ടുന്നു. ഓരോ പിയർ ശ്രേണിയും വിശാലമാക്കുന്നതിനുപകരം റഫറൻസ് ശരിയാക്കുക, കാരണം അത് യഥാർത്ഥ പ്രശ്നം മറയ്ക്കുകയും അതേസമയം ഉറവിട ACL വലുതാക്കുകയും ചെയ്യും.
ജോലി ചെയ്യുമ്പോൾ ഒരു വീണ്ടെടുപ്പ് വഴി തുറന്നിടുക: ഹോസ്റ്റിലേക്ക് പ്രവേശിക്കാനുള്ള രണ്ടാം വഴി, സീരിയൽ കൺസോൾ, അല്ലെങ്കിൽ കോൺഫിഗ് ഫയലുകളുടെ ഷെഡ്യൂൾ ചെയ്ത റോൾബാക്ക്. നിങ്ങൾ മാറ്റുന്ന യന്ത്രത്തിൽ നിന്ന് നിങ്ങളെ പുറത്താക്കുന്ന ടണൽ മാറ്റമാണ് ഈ ജോലി ഒരു വൈകുന്നേരമാക്കി മാറ്റുന്ന ഏറ്റവും സാധാരണ വഴി.
രണ്ടിൽ നിന്ന് തിരഞ്ഞെടുക്കൽ, മാറ്റം പരിശോധിക്കൽ
ഓരോ പിയറും നിങ്ങളുടേതാണെങ്കിൽ, എണ്ണം കുറവാണെങ്കിൽ, ചെറിയ തടസ്സം സ്വീകാര്യമാണെങ്കിൽ A തിരഞ്ഞെടുക്കുക. പിയറുകൾ നിങ്ങൾ നിയന്ത്രിക്കാത്ത വിദൂര കൈകളാണെങ്കിൽ, സൈറ്റ്-ടു-സൈറ്റ് ലിങ്ക് ഉയർന്നിരിക്കണമെങ്കിൽ, അല്ലെങ്കിൽ ഓരോ പകർപ്പും ഒരൊറ്റ ഘട്ടത്തിൽ അപ്ഡേറ്റ് ചെയ്യുമെന്ന് ഉറപ്പിക്കാനാകില്ലെങ്കിൽ B തിരഞ്ഞെടുക്കുക. അങ്ങനെയെങ്കിൽ പുതിയ പ്രിഫിക്സ് രണ്ട് ഇന്റർഫേസുകളിലും ചേർക്കുക, പിയറുകൾ ഓരോന്നായി മാറ്റുക, പുതിയതിൽ ട്രാഫിക് നിരീക്ഷിക്കുക, അതിനുശേഷം മാത്രം പഴയ ഇന്റർഫേസും അതിന്റെ റൂട്ടുകളും നീക്കം ചെയ്യുക.
ഏത് ഓപ്ഷനിലും, നാല് പരിശോധനകൾ കടന്നാൽ മാറ്റം പൂർത്തിയാകുന്നു: ഹാൻഡ്ഷേക്ക് പുതിയതാണ്, പുതിയ പ്രിഫിക്സിലെ ലക്ഷ്യത്തിനുള്ള റൂട്ട് അന്വേഷണം ടണൽ പേരിടുന്നു, കുറച്ച് നൂറ് ബൈറ്റ് പേലോഡ് രണ്ട് ദിശകളിലും കടക്കുന്നു, ഹോസ്റ്റോ മാനേജറോ പുനരാരംഭിച്ച ശേഷവും അത് തന്നെ. ഇതിനായി wg(8) മാനുവൽ ഓരോ ദിശയിലും AllowedIPs എന്താണ് അർത്ഥമാക്കുന്നതെന്നതിന് റഫറൻസാണ്, ലക്ഷണം മായ്ക്കാൻ ശ്രേണി വിശാലമാക്കുന്നതിന് മുൻപ് അത് വീണ്ടും വായിക്കുന്നത് ഉചിതമാണ്.
- ഹാൻഡ്ഷേക്ക് പുതിയതും ഡാറ്റ ഇല്ലയും: കീകളിൽ തൊടുന്നതിന് മുൻപ് സ്വീകരിക്കുന്നയാളുടെ AllowedIPs നോക്കുക.
- റൂട്ട് അന്വേഷണം തെറ്റായ ഇന്റർഫേസ് ചൂണ്ടുന്നു: റൂട്ടിന്റെ ഉടമ മാനേജറോ കണ്ടെയ്നറോ ആണ്, നിങ്ങളുടെ ഫയലല്ല.
- സംഖ്യാ വിലാസം കൊള്ളാം, ഹോസ്റ്റ്നെയിം തകർന്നു: പഴയ റഫറൻസ്, റൂട്ടിംഗ് ലൂപ്പല്ല.
- പുനരാരംഭിച്ച ശേഷവും പുതിയ പ്രിഫിക്സ് ഉപയോഗിക്കുമ്പോൾ മാത്രമേ മാറ്റം പൂർത്തിയാകൂ.