NMstate: Zana ya Usanidi wa Mtandao unaotangaza


Mfumo ikolojia wa Linux hutoa njia nyingi za kusanidi mitandao ikijumuisha matumizi maarufu ya nmtui GUI. Mwongozo huu unatanguliza zana nyingine ya usanidi wa mtandao inayojulikana kama NMState

NMState ni meneja tangazo wa mtandao wa kusanidi mitandao kwenye wapangishi wa Linux. Ni maktaba ambayo hutoa zana ya mstari wa amri ambayo inasimamia mipangilio ya mtandao wa mwenyeji. Inasimamia mitandao ya mwenyeji kupitia API ya kutangaza inayoelekea kaskazini. Wakati wa kuandika mwongozo huu, daemoni ya NetworkManager ndiye mtoaji pekee anayeungwa mkono na NMState.

Katika mwongozo huu, tunaangalia baadhi ya mifano ya matumizi ya zana ya NMstate. Kwa mwongozo huu, tutaonyesha hii kwa kutumia Fedora Linux.

Usimamizi wa mtandao unaweza kuchukua njia mbili - muhimu na ya kutangaza. Katika mbinu ya lazima, unafafanua kwa uwazi hali ya mtandao ya kiolesura kwa kuendesha amri kwenye terminal. Mkazo ni juu ya 'jinsi gani'.

Kwa mfano, kuleta mtandao chini kwa kutumia mbinu ya lazima, endesha amri:

$ sudo ifconfig enp0s3 down

Kwa upande mwingine, mbinu ya kutangaza hutumia faili ya YAML kutumia mabadiliko kwenye usanidi. Zana nyingi za uimbaji za DevOps kama vile Kubernetes hutumia mbinu hii kusambaza programu za maganda kwa kutumia faili ya YAML.

Mbinu hii hutoa kile kinachojulikana kama Miundombinu kama Kanuni (IaC) katika miduara ya DevOps. Hii huongeza usanidi otomatiki wa mtandao kwenye seva pangishi na hutoa njia ya haraka na ya kuaminika zaidi ya kufanya mabadiliko mengi kwenye kiolesura cha mtandao na hitilafu ndogo.

Sasa, hebu tubadilishe gia na tuone jinsi unavyoweza kutumia zana ya usanidi ya NMState kusanidi violesura vya mtandao wako katika Linux.

Hatua ya 1: Sakinisha Zana ya Usanidi wa Mitandao ya NMState

Tutapata mpira unaozunguka kwa kusanikisha Nmstate. Kwanza, angalia upatikanaji wa kifurushi kutoka kwa hazina za Fedora kama ifuatavyo:

$ sudo dnf search nmstate

Kutoka kwa pato, tunaweza kuona kwamba meneja wa mtandao anapatikana kwenye hazina rasmi.

Ifuatayo, sakinisha NMstate kama ifuatavyo. Hii inafanya kazi kwenye Fedora 31 na matoleo ya baadaye.

$ sudo dnf install nmstate

Amri husakinisha API ya msimamizi wa mtandao wa NMState pamoja na tegemezi zingine za Python.

Mara tu usakinishaji ukamilika, thibitisha kifurushi cha nmstate kimewekwa kama ifuatavyo.

$ rpm -qi nmstate

Kwa Linux yenye msingi wa RHEL, wezesha hazina ya copr kwanza.

$ sudo dnf copr enable nmstate/nmstate-stable

Kisha sakinisha NMstate kama ifuatavyo.

$ sudo dnf install nmstate

Angalia maagizo ya ziada kuhusu jinsi ya kusakinisha NMstate kutoka kwa chanzo.

Mara tu ikiwa imesakinishwa, unaweza kuangalia toleo la NMstate lililosakinishwa kama ifuatavyo.

$ nmstatectl version

1.0.2

Kutumia Zana ya Usanidi ya NMState katika Linux

NMstate ikiwa imesakinishwa, hebu tuchunguze Knitty-gritties kuhusu jinsi unavyoweza kutumia vyema API ya kidhibiti cha Mtandao.

Ili kuona usanidi wa sasa wa mtandao wa kiolesura chako cha mtandao, endesha amri ifuatayo. Hapa, kuna usanidi wa kiolesura chako cha enp0s3.

$ nmstatectl show enp0s3

Pato limegawanywa katika sehemu 4 tofauti:

  • dns-resolver: Sehemu hii ina usanidi wa nameserver kwa kiolesura fulani.
  • kanuni za njia: Hii inabainisha sheria za uelekezaji.
  • njia: Hii inajumuisha njia badilika na tuli.
  • Violesura: Sehemu hii inabainisha mipangilio ya ipv4 na ipv6.

Kubadilisha Usanidi wa Mtandao katika Linux

Unaweza kutumia zana ya usanidi ya NMState ili kusanidi seva pangishi katika hali unayotaka kwa kutumia modi ingiliani au kulingana na faili.

  • Ingiliano: Hii inahariri kiolesura cha mtandao kwa kutumia nmstatectl hariri amri. Amri hii inafungua kihariri cha maandishi ambacho kinafafanuliwa na mabadiliko ya mazingira ya EDITOR. Mara tu mabadiliko yanapohifadhiwa, NMState itatumia usanidi mpya mara moja isipokuwa hitilafu za sintaksia ziligunduliwa.
  • Msingi wa faili: Katika hali ya msingi wa faili, usanidi wa kiolesura unatumika kwa kutumia faili ya YAML au JSON kwa kutumia amri ya nmstatectl apply.

Hebu sasa tuchafue mikono yetu na tuangalie jinsi unavyoweza kurekebisha usanidi wa mtandao kwa kutumia NMState.

Mfumo wetu wa Fedora una miingiliano miwili ya mtandao inayotumika na usanidi ufuatao:

$ 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 

Tutatumia hali ya mwingiliano kubadilisha MTU (Kitengo cha Juu cha Usambazaji) cha kiolesura cha mtandao cha enp0s3. Kwa chaguo-msingi, hii imewekwa hadi 1500 kama inavyoonyeshwa.

$ ifconfig

Tutabadilisha hii hadi 4000. Tutafanya hivyo kwa kutumia nmstatectl edit amri kama ifuatavyo.

$ sudo nmstatectl edit enp0s3

Hii inafungua usanidi katika kihariri cha maandishi. Kwa kesi yetu, inafungua katika vim hariri. Ifuatayo, sogeza chini kabisa na utafute kigezo cha mtu. Tutabadilisha thamani hadi 4000, kama vile tungehariri faili katika vim. Kisha tutahifadhi mabadiliko.

Unapohifadhi na kutoka kwa faili, utaona matokeo yaliyochanganuliwa kwenye terminal kwani NMstate huhifadhi mabadiliko. Hakuna kuingilia kati kunahitajika hivyo, kaa tu tuli.

Hebu sasa tuthibitishe kwamba mabadiliko yalifanywa.

$ ifconfig

Kutoka kwa pato la terminal, tunaweza kuona kwamba tumefanikiwa kubadilisha MTU hadi 4000 kutoka kwa thamani ya 1500 ya msingi.

Wacha sasa turekebishe usanidi kwa kutumia hali ya msingi wa faili. Katika mfano huu, tutazima IPv6 kwa kiolesura cha mtandao cha enp0s8. Hatua ya kwanza ni kuunda faili ya YAML ambayo itabainisha hali inayotakiwa ya kiolesura cha mtandao cha enp0s8.

$ sudo nmstatectl show enp0s8 > enp0s8.yml

Ifuatayo, tutahariri faili ya YAML kama ifuatavyo.

$ sudo vim enp0s8.yml

Tembeza chini hadi sehemu ya ipv6. Ili kuzima IPv6, weka kigezo kilichowashwa kuwa sivyo na ufute mistari ambayo imeboreshwa.

Hifadhi usanidi na utumie hali mpya kwa kutumia faili ya YAML kama ifuatavyo.

$ sudo nmstatectl apply enp0s8.yml

Sasa endesha amri iliyoonyeshwa ili kuthibitisha kuwa IPv6 imezimwa. Toleo linaloonyeshwa linaonyesha kuwa IPv6 ya kiolesura cha mtandao cha enp0s8 ni tupu, ikimaanisha kuwa tumefanikiwa kulemaza IPv6 kwenye kiolesura.

$ ip -br a 

Utendaji mwingine muhimu sana ambao NMstate hutoa ni uwezo wa kusanidi kwa muda hali ya mtandao inayotakikana. Mara baada ya kuridhika na usanidi, unaweza kuendelea na kufanya mabadiliko ya kudumu. Vinginevyo, mabadiliko yaliyofanywa yatarejeshwa kwa mipangilio ya awali mara tu muda wa kuisha utakapoisha. Muda chaguomsingi wa kuisha ni sekunde 60.

Ili kuonyesha hili, tutaweka kwa muda IP tuli kwenye kiolesura cha enp0s3 na kuzima DHCP. Kwa mara nyingine tena, fikia faili kwa kutumia kihariri cha maandishi.

$ sudo vim enp0s3.yml

Tembeza hadi sehemu ya ipv4. Taja IP tuli - kwa upande wetu 192.168.2.150 na ufute mistari ambayo imepigwa. Kwa kuongeza, hakikisha kuweka parameter ya dhcp kwa uongo.

Hifadhi faili na ufanye mabadiliko kwa muda kama ifuatavyo.

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

Chaguo la --no-commit linatumika kwa muda mabadiliko kwa muda uliobainishwa na chaguo la --timeout ambalo, katika mfano huu, ni sekunde 20.

Ili kuthibitisha utumizi wa muda wa mabadiliko, tutaangalia usanidi wa IP katika muda wa sekunde 20.

$ ip -br a 

Kutoka kwa towe, unaweza kuona kwamba usanidi wa IP wa kiolesura ulirejeshwa kwa DHCP baada ya muda wa sekunde 20. Anwani ya IP ilirejea 192.168.2.104 kutoka IP iliyosanidiwa mapema ambayo ilikuwa 192.168.2.150.

Hakika, zana ya NMState ni zana rahisi ya kusanidi miingiliano ya mtandao wako. Ni zana ya kutangaza ambayo inatumia hali inayohitajika ya usanidi wa kiolesura cha mwenyeji kwa kutumia NetworkManager API.

Hali inafafanuliwa kwa urahisi kwa kutumia mbinu shirikishi au kutumia mbinu ya msingi ya faili inayotumia faili ya YAML iliyosanidiwa awali. Hii huongeza otomatiki ya kazi za usanidi na kupunguza makosa wakati wa usanidi.