NMSstate: ഒരു ഡിക്ലറേറ്റീവ് നെറ്റ്uവർക്കിംഗ് കോൺഫിഗറേഷൻ ടൂൾ


ജനപ്രിയ nmtui GUI യൂട്ടിലിറ്റി ഉൾപ്പെടെ നെറ്റ്uവർക്കിംഗ് കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള നിരവധി മാർഗങ്ങൾ Linux ഇക്കോസിസ്റ്റം നൽകുന്നു. ഈ ഗൈഡ് NMState എന്നറിയപ്പെടുന്ന മറ്റൊരു നെറ്റ്uവർക്ക് കോൺഫിഗറേഷൻ ടൂൾ അവതരിപ്പിക്കുന്നു

ലിനക്സ് ഹോസ്റ്റുകളിൽ നെറ്റ്uവർക്കിംഗ് കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള ഒരു ഡിക്ലറേറ്റീവ് നെറ്റ്uവർക്ക് മാനേജറാണ് എൻഎംഎസ്റ്റേറ്റ്. ഹോസ്റ്റ് നെറ്റ്uവർക്ക് ക്രമീകരണങ്ങൾ നിയന്ത്രിക്കുന്ന ഒരു കമാൻഡ്-ലൈൻ ടൂൾ നൽകുന്ന ഒരു ലൈബ്രറിയാണിത്. നോർത്ത്ബൗണ്ട് ഡിക്ലറേറ്റീവ് API വഴി ഇത് ഹോസ്റ്റ് നെറ്റ്uവർക്കിംഗ് നിയന്ത്രിക്കുന്നു. ഈ ഗൈഡ് എഴുതുമ്പോൾ, NMState പിന്തുണയ്ക്കുന്ന ഒരേയൊരു ദാതാവ് NetworkManager ഡെമൺ ആണ്.

ഈ ഗൈഡിൽ, NMState ടൂളിന്റെ ചില ഉദാഹരണ ഉപയോഗങ്ങൾ ഞങ്ങൾ നോക്കുന്നു. ഈ ഗൈഡിനായി, Fedora Linux ഉപയോഗിച്ച് ഞങ്ങൾ ഇത് പ്രദർശിപ്പിക്കും.

നെറ്റ്uവർക്ക് മാനേജ്uമെന്റിന് രണ്ട് സമീപനങ്ങൾ സ്വീകരിക്കാൻ കഴിയും - അനിവാര്യവും പ്രഖ്യാപനവും. നിർബന്ധിത സമീപനത്തിൽ, ടെർമിനലിൽ കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് ഇന്റർഫേസിന്റെ നെറ്റ്uവർക്കിംഗ് അവസ്ഥ നിങ്ങൾ വ്യക്തമായി നിർവചിക്കുന്നു. 'എങ്ങനെ' എന്നതിലാണ് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്.

ഉദാഹരണത്തിന്, നിർബന്ധിത സമീപനം ഉപയോഗിച്ച് ഒരു നെറ്റ്uവർക്ക് താഴെ കൊണ്ടുവരാൻ, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

$ sudo ifconfig enp0s3 down

മറുവശത്ത്, ഒരു കോൺഫിഗറേഷനിൽ മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് ഡിക്ലറേറ്റീവ് സമീപനം ഒരു YAML ഫയൽ ഉപയോഗിക്കുന്നു. ഒരു YAML ഫയൽ ഉപയോഗിച്ച് പോഡ്സ് ആപ്ലിക്കേഷനുകൾ വിന്യസിക്കാൻ Kubernetes പോലുള്ള മിക്ക DevOps ഓർക്കസ്ട്രേഷൻ ടൂളുകളും ഈ സമീപനം ഉപയോഗിക്കുന്നു.

ഈ സമീപനം DevOps സർക്കിളുകളിൽ സാധാരണയായി ഇൻഫ്രാസ്ട്രക്ചർ എന്ന് വിളിക്കപ്പെടുന്ന കോഡ് (IaC) നൽകുന്നു. ഇത് ഹോസ്റ്റിലെ നെറ്റ്uവർക്ക് കോൺഫിഗറേഷന്റെ ഓട്ടോമേഷൻ വർദ്ധിപ്പിക്കുകയും കുറഞ്ഞ പിശകുകളുള്ള ഒരു നെറ്റ്uവർക്ക് ഇന്റർഫേസിൽ ഒന്നിലധികം മാറ്റങ്ങൾ വരുത്തുന്നതിനുള്ള വേഗതയേറിയതും വിശ്വസനീയവുമായ മാർഗ്ഗം നൽകുകയും ചെയ്യുന്നു.

ഇപ്പോൾ, നമുക്ക് ഗിയറുകൾ മാറാം, ലിനക്സിൽ നിങ്ങളുടെ നെറ്റ്uവർക്ക് ഇന്റർഫേസുകൾ കോൺഫിഗർ ചെയ്യുന്നതിന് NMState കോൺഫിഗറേഷൻ ടൂൾ എങ്ങനെ ഉപയോഗിക്കാം എന്ന് നോക്കാം.

ഘട്ടം 1: NMState നെറ്റ്uവർക്കിംഗ് കോൺഫിഗറേഷൻ ടൂൾ ഇൻസ്റ്റാൾ ചെയ്യുക

Nmstate ഇൻസ്റ്റാൾ ചെയ്യുന്നതിലൂടെ നമുക്ക് ബോൾ റോളിംഗ് ലഭിക്കും. ആദ്യം, ഫെഡോറ റിപ്പോസിറ്ററികളിൽ നിന്നുള്ള പാക്കേജിന്റെ ലഭ്യത ഇനിപ്പറയുന്ന രീതിയിൽ പരിശോധിക്കുക:

$ sudo dnf search nmstate

ഔട്ട്പുട്ടിൽ നിന്ന്, ഔദ്യോഗിക ശേഖരണങ്ങളിൽ നെറ്റ്വർക്ക് മാനേജർ ലഭ്യമാണെന്ന് നമുക്ക് കാണാൻ കഴിയും.

അടുത്തതായി, ഇനിപ്പറയുന്ന രീതിയിൽ NMstate ഇൻസ്റ്റാൾ ചെയ്യുക. ഇത് ഫെഡോറ 31-ലും പിന്നീടുള്ള പതിപ്പുകളിലും പ്രവർത്തിക്കുന്നു.

$ sudo dnf install nmstate

കമാൻഡ് മറ്റ് പൈത്തൺ ഡിപൻഡൻസികൾക്കൊപ്പം NMState നെറ്റ്uവർക്ക് മാനേജർ API ഇൻസ്റ്റാൾ ചെയ്യുന്നു.

ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, nmstate പാക്കേജ് ഇനിപ്പറയുന്ന രീതിയിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുക.

$ rpm -qi nmstate

RHEL-അധിഷ്ഠിത ലിനക്സിനായി, ആദ്യം copr ശേഖരം പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo dnf copr enable nmstate/nmstate-stable

തുടർന്ന് ഇനിപ്പറയുന്ന രീതിയിൽ NMstate ഇൻസ്റ്റാൾ ചെയ്യുക.

$ sudo dnf install nmstate

ഉറവിടത്തിൽ നിന്ന് NMState എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം എന്നതിനെക്കുറിച്ചുള്ള കൂടുതൽ നിർദ്ദേശങ്ങൾ പരിശോധിക്കുക.

ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ ഇൻസ്റ്റാൾ ചെയ്ത NMstate പതിപ്പ് പരിശോധിക്കാം.

$ nmstatectl version

1.0.2

ലിനക്സിൽ എൻഎംഎസ്റ്റേറ്റ് കോൺഫിഗറേഷൻ ടൂൾ ഉപയോഗിക്കുന്നു

NMstate ഇൻസ്റ്റാൾ ചെയ്uതാൽ, നെറ്റ്uവർക്ക് മാനേജർ API എങ്ങനെ പരമാവധി പ്രയോജനപ്പെടുത്താം എന്നതിന്റെ നിറ്റി-ഗ്രിറ്റികളിലേക്ക് നമുക്ക് ഇറങ്ങാം.

നിങ്ങളുടെ നെറ്റ്uവർക്ക് ഇന്റർഫേസിന്റെ നിലവിലെ നെറ്റ്uവർക്ക് കോൺഫിഗറേഷൻ കാണുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക. നിങ്ങളുടെ enp0s3 ഇന്റർഫേസിന്റെ കോൺഫിഗറേഷൻ ഇതാ.

$ nmstatectl show enp0s3

ഔട്ട്പുട്ട് 4 വ്യത്യസ്ത വിഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു:

  • dns-resolver: ഈ വിഭാഗത്തിൽ പ്രത്യേക ഇന്റർഫേസിനായുള്ള നെയിംസെർവർ കോൺഫിഗറേഷൻ അടങ്ങിയിരിക്കുന്നു.
  • റൂട്ട്-റൂൾസ്: ഇത് റൂട്ടിംഗ് നിയമങ്ങൾ വ്യവസ്ഥ ചെയ്യുന്നു.
  • വഴികൾ: ഇതിൽ ഡൈനാമിക്, സ്റ്റാറ്റിക് റൂട്ടുകൾ ഉൾപ്പെടുന്നു.
  • ഇന്റർഫേസുകൾ: ഈ വിഭാഗം ipv4, ipv6 ക്രമീകരണങ്ങൾ വ്യക്തമാക്കുന്നു.

ലിനക്സിൽ നെറ്റ്uവർക്ക് കോൺഫിഗറേഷൻ മാറ്റുന്നു

ഇന്ററാക്ടീവ് അല്ലെങ്കിൽ ഫയൽ അധിഷ്ഠിത മോഡുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ഹോസ്റ്റുകളെ ആവശ്യമുള്ള അവസ്ഥയിലേക്ക് കോൺഫിഗർ ചെയ്യാൻ നിങ്ങൾക്ക് NMState കോൺഫിഗറേഷൻ ടൂൾ ഉപയോഗിക്കാം.

  • ഇന്ററാക്ടീവ്: ഇത് nmstatectl എഡിറ്റ് കമാൻഡ് ഉപയോഗിച്ച് ഒരു നെറ്റ്uവർക്ക് ഇന്റർഫേസ് എഡിറ്റ് ചെയ്യുന്നു. ഈ കമാൻഡ് എഡിറ്റർ എൻവയോൺമെന്റ് വേരിയബിൾ നിർവചിക്കുന്ന ഒരു ടെക്സ്റ്റ് എഡിറ്റർ തുറക്കുന്നു. മാറ്റങ്ങൾ സംരക്ഷിച്ചുകഴിഞ്ഞാൽ, വാക്യഘടന പിശകുകൾ കണ്ടെത്തിയില്ലെങ്കിൽ ഉടൻ തന്നെ NMSstate പുതിയ കോൺഫിഗറേഷൻ പ്രയോഗിക്കുന്നു.
  • ഫയൽ അടിസ്ഥാനമാക്കിയുള്ളത്: ഫയൽ അധിഷ്ഠിത മോഡിൽ, nmstatectl apply കമാൻഡ് ഉപയോഗിച്ച് YAML അല്ലെങ്കിൽ JSON ഫയൽ ഉപയോഗിച്ച് ഇന്റർഫേസ് കോൺഫിഗറേഷൻ പ്രയോഗിക്കുന്നു.

NMState ഉപയോഗിച്ച് നിങ്ങൾക്ക് എങ്ങനെ നെറ്റ്uവർക്ക് കോൺഫിഗറേഷൻ പരിഷ്uക്കരിക്കാമെന്ന് ഇപ്പോൾ നമുക്ക് നോക്കാം.

ഞങ്ങളുടെ ഫെഡോറ സിസ്റ്റത്തിന് ഇനിപ്പറയുന്ന കോൺഫിഗറേഷനുള്ള രണ്ട് സജീവ നെറ്റ്uവർക്ക് ഇന്റർഫേസുകളുണ്ട്:

$ ip -br -4 a
lo               UNKNOWN        127.0.0.1/8 
enp0s3           UP             192.168.2.104/24 
enp0s8           UP             192.168.2.103/24 

enp0s3 നെറ്റ്uവർക്ക് ഇന്റർഫേസിന്റെ MTU (പരമാവധി ട്രാൻസ്മിഷൻ യൂണിറ്റ്) മാറ്റാൻ ഞങ്ങൾ ഇന്ററാക്ടീവ് മോഡ് ഉപയോഗിക്കും. സ്ഥിരസ്ഥിതിയായി, ഇത് കാണിച്ചിരിക്കുന്നതുപോലെ 1500 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു.

$ ifconfig

ഞങ്ങൾ ഇത് 4000 ആയി മാറ്റും. താഴെ പറയുന്ന രീതിയിൽ nmstatectl എഡിറ്റ് കമാൻഡ് ഉപയോഗിച്ച് ഞങ്ങൾ അങ്ങനെ ചെയ്യും.

$ sudo nmstatectl edit enp0s3

ഇത് ടെക്സ്റ്റ് എഡിറ്ററിൽ കോൺഫിഗറേഷൻ തുറക്കുന്നു. ഞങ്ങളുടെ കാര്യത്തിൽ, ഇത് വിം എഡിറ്ററിൽ തുറക്കുന്നു. അടുത്തതായി, താഴേക്ക് സ്ക്രോൾ ചെയ്ത് mtu പാരാമീറ്റർ കണ്ടെത്തുക. വിമ്മിൽ ഒരു ഫയൽ എഡിറ്റ് ചെയ്യുന്നതുപോലെ ഞങ്ങൾ മൂല്യം 4000 ആയി മാറ്റും. അപ്പോൾ ഞങ്ങൾ മാറ്റങ്ങൾ സംരക്ഷിക്കും.

നിങ്ങൾ ഫയൽ സംരക്ഷിച്ച് പുറത്തുകടക്കുമ്പോൾ, മാറ്റങ്ങൾ NMstate സംരക്ഷിക്കുന്നതിനാൽ ടെർമിനലിൽ ചില സ്ക്രാംബിൾ ഔട്ട്പുട്ട് നിങ്ങൾ കാണും. ഇടപെടൽ ആവശ്യമില്ല, അതിനാൽ വെറുതെ ഇരിക്കുക.

മാറ്റം വരുത്തിയതായി നമുക്ക് ഇപ്പോൾ സ്ഥിരീകരിക്കാം.

$ ifconfig

ടെർമിനൽ ഔട്ട്പുട്ടിൽ നിന്ന്, സ്ഥിരസ്ഥിതി 1500 മൂല്യത്തിൽ നിന്ന് MTU 4000 ആക്കി മാറ്റിയതായി നമുക്ക് കാണാൻ കഴിയും.

നമുക്ക് ഇപ്പോൾ ഫയൽ അടിസ്ഥാന മോഡ് ഉപയോഗിച്ച് കോൺഫിഗറേഷൻ പരിഷ്കരിക്കാം. ഈ ഉദാഹരണത്തിൽ, enp0s8 നെറ്റ്uവർക്ക് ഇന്റർഫേസിനായി ഞങ്ങൾ IPv6 പ്രവർത്തനരഹിതമാക്കാൻ പോകുന്നു. enp0s8 നെറ്റ്uവർക്ക് ഇന്റർഫേസിന്റെ ആവശ്യമുള്ള അവസ്ഥ വ്യക്തമാക്കുന്ന ഒരു YAML ഫയൽ സൃഷ്uടിക്കുക എന്നതാണ് ആദ്യപടി.

$ sudo nmstatectl show enp0s8 > enp0s8.yml

അടുത്തതായി, ഞങ്ങൾ YAML ഫയൽ ഇനിപ്പറയുന്ന രീതിയിൽ എഡിറ്റ് ചെയ്യും.

$ sudo vim enp0s8.yml

ipv6 വിഭാഗത്തിലേക്ക് താഴേക്ക് സ്ക്രോൾ ചെയ്യുക. IPv6 പ്രവർത്തനരഹിതമാക്കുന്നതിന്, പ്രാപ്തമാക്കിയ പരാമീറ്റർ തെറ്റ് ആയി സജ്ജീകരിക്കുകയും അതിലൂടെ അടിച്ച വരികൾ ഇല്ലാതാക്കുകയും ചെയ്യുക.

ഇനിപ്പറയുന്ന രീതിയിൽ YAML ഫയൽ ഉപയോഗിച്ച് കോൺഫിഗറേഷൻ സംരക്ഷിച്ച് പുതിയ അവസ്ഥ പ്രയോഗിക്കുക.

$ sudo nmstatectl apply enp0s8.yml

IPv6 അപ്രാപ്തമാക്കിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ ഇപ്പോൾ കാണിച്ചിരിക്കുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക. enp0s8 നെറ്റ്uവർക്ക് ഇന്റർഫേസിനായുള്ള IPv6 ശൂന്യമാണെന്ന് പ്രദർശിപ്പിച്ചിരിക്കുന്ന ഔട്ട്uപുട്ട് കാണിക്കുന്നു, ഇത് ഞങ്ങൾ ഇന്റർഫേസിൽ IPv6 വിജയകരമായി പ്രവർത്തനരഹിതമാക്കിയതായി സൂചിപ്പിക്കുന്നു.

$ ip -br a 

ആവശ്യമുള്ള നെറ്റ്uവർക്കിംഗ് അവസ്ഥ താൽക്കാലികമായി കോൺഫിഗർ ചെയ്യാനുള്ള കഴിവാണ് NMstate നൽകുന്ന മറ്റൊരു യഥാർത്ഥ പ്രവർത്തനം. കോൺഫിഗറേഷനിൽ നിങ്ങൾ തൃപ്തരായിക്കഴിഞ്ഞാൽ, നിങ്ങൾക്ക് മുന്നോട്ട് പോകാനും മാറ്റങ്ങൾ ശാശ്വതമാക്കാനും കഴിയും. അല്ലെങ്കിൽ, കാലഹരണപ്പെടൽ കാലഹരണപ്പെടുമ്പോൾ വരുത്തിയ മാറ്റങ്ങൾ പ്രാരംഭ ക്രമീകരണങ്ങളിലേക്ക് തിരികെ പോകും. ഡിഫോൾട്ട് ടൈംഔട്ട് 60 സെക്കൻഡാണ്.

ഇത് തെളിയിക്കാൻ, enp0s3 ഇന്റർഫേസിൽ ഞങ്ങൾ ഒരു സ്റ്റാറ്റിക് ഐപി താൽക്കാലികമായി സജ്ജമാക്കുകയും DHCP പ്രവർത്തനരഹിതമാക്കുകയും ചെയ്യും. ഒരിക്കൽ കൂടി, ഒരു ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് ഫയൽ ആക്സസ് ചെയ്യുക.

$ sudo vim enp0s3.yml

ipv4 വിഭാഗത്തിലേക്ക് സ്ക്രോൾ ചെയ്യുക. സ്റ്റാറ്റിക് ഐപി വ്യക്തമാക്കുക - ഞങ്ങളുടെ കാര്യത്തിൽ 192.168.2.150 കൂടാതെ അടിച്ച വരികൾ ഇല്ലാതാക്കുക. കൂടാതെ, dhcp പരാമീറ്റർ തെറ്റ് എന്ന് സജ്ജീകരിക്കുന്നത് ഉറപ്പാക്കുക.

ഫയൽ സംരക്ഷിച്ച് താൽക്കാലികമായി ഇനിപ്പറയുന്ന രീതിയിൽ മാറ്റങ്ങൾ വരുത്തുക.

$ sudo nmstatectl apply --no-commit --timeout 20 enp0s3.yml

--no-commit ഓപ്uഷൻ, ഈ ഉദാഹരണത്തിൽ 20 സെക്കൻഡ് ആയ --timeout ഓപ്uഷൻ നിർവ്വചിച്ചിരിക്കുന്ന കാലയളവിലേക്കുള്ള മാറ്റങ്ങൾ താൽക്കാലികമായി ബാധകമാക്കുന്നു.

മാറ്റങ്ങളുടെ താൽക്കാലിക പ്രയോഗം പരിശോധിക്കാൻ, ഞങ്ങൾ 20 സെക്കൻഡ് സമയ ഇടവേളയിൽ IP കോൺഫിഗറേഷൻ പരിശോധിക്കും.

$ ip -br a 

ഔട്ട്uപുട്ടിൽ നിന്ന്, 20 സെക്കൻഡിന്റെ സമയ ഇടവേളയ്ക്ക് ശേഷം ഇന്റർഫേസ് ഐപി കോൺഫിഗറേഷൻ ഡിഎച്ച്സിപിയിലേക്ക് പുനഃസ്ഥാപിച്ചതായി നിങ്ങൾക്ക് കാണാൻ കഴിയും. 192.168.2.150 ആയിരുന്ന നേരത്തെ സ്റ്റാറ്റിക്കലി കോൺഫിഗർ ചെയ്ത IP-യിൽ നിന്ന് IP വിലാസം 192.168.2.104-ലേക്ക് പോയി.

നിങ്ങളുടെ നെറ്റ്uവർക്ക് ഇന്റർഫേസുകൾ കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള സൗകര്യപ്രദമായ ഉപകരണമാണ് എൻഎംഎസ്റ്റേറ്റ് ടൂൾ എന്ന് സമ്മതിക്കാം. NetworkManager API ഉപയോഗിച്ച് ഹോസ്റ്റിന്റെ ഇന്റർഫേസിന്റെ ആവശ്യമുള്ള കോൺഫിഗറേഷൻ നില പ്രയോഗിക്കുന്ന ഒരു ഡിക്ലറേറ്റീവ് ടൂളാണിത്.

സംവേദനാത്മക സമീപനം ഉപയോഗിച്ചോ അല്ലെങ്കിൽ മുൻകൂട്ടി ക്രമീകരിച്ച YAML ഫയൽ ഉപയോഗിക്കുന്ന ഫയൽ അടിസ്ഥാനമാക്കിയുള്ള രീതി ഉപയോഗിച്ചോ സംസ്ഥാനം എളുപ്പത്തിൽ നിർവചിക്കാനാകും. ഇത് കോൺഫിഗറേഷൻ ടാസ്ക്കുകളുടെ ഓട്ടോമേഷൻ വർദ്ധിപ്പിക്കുകയും കോൺഫിഗറേഷൻ സമയത്ത് പിശകുകൾ കുറയ്ക്കുകയും ചെയ്യുന്നു.