NMState: Deklaratiw torlaýyn konfigurasiýa guraly


Linux ekosistemasy, meşhur nmtui GUI kömekçi programmasyny goşmak bilen seti düzmegiň köp usullaryny hödürleýär. Bu gollanma, NMState diýlip atlandyrylýan başga bir tor konfigurasiýa guraly bilen tanyşdyrýar

NMState, Linux hostlarynda tor gurmak üçin deklaratiw tor dolandyryjysy. Bu, host ulgam sazlamalaryny dolandyrýan buýruk setirini üpjün edýän kitaphanadyr. Demirgazykda ýerleşýän deklaratiw API arkaly host ulgamyny dolandyrýar. Bu gollanmany ýazan wagtyňyz NetworkManager daemon, NMState tarapyndan goldanýan ýeke-täk üpjün ediji.

Bu gollanmada, NMState guralynyň käbir mysal ulanylyşyna seredýäris. Bu gollanma üçin muny Fedora Linux ulanyp görkezeris.

Tor dolandyryşy iki çemeleşip biler - Imperator we deklaratiw. Hökmany çemeleşmede, terminalda buýruklary işledip, interfeýsiň set ýagdaýyny aç-açan kesgitleýärsiňiz. Esasy üns “nädip”.

Mysal üçin, hökmany çemeleşmäni ulanyp, bir ulgamy ýykmak üçin buýrugy işlediň:

$ sudo ifconfig enp0s3 down

Beýleki tarapdan, deklaratiw çemeleşme üýtgeşmeleri konfigurasiýa ulanmak üçin YAML faýly ulanýar. Kubernetes ýaly DevOps orkestr gurallarynyň köpüsi, YAML faýly ulanyp, pod programmalaryny ýerleşdirmek üçin bu çemeleşmäni ulanýar.

Bu çemeleşme, DevOps töwereklerinde köplenç infrastruktura diýilýän zady kod (IaC) bilen üpjün edýär. Bu, öý eýesindäki tor konfigurasiýasynyň awtomatlaşdyrylmagyny güýçlendirýär we minimal ýalňyşlyklar bilen tor interfeýsine birnäçe üýtgeşme girizmegiň çalt we ygtybarly usulyny üpjün edýär.

Indi, dişli çalyşalyň we Linux interfeýslerini sazlamak üçin NMState konfigurasiýa guralyny nädip ulanyp boljakdygyny göreliň.

1-nji ädim: NMState Networking Config Tool guruň

Nmstate gurup, topuň aýlanmagyny alarys. Ilki bilen, Fedora ammarlaryndan bukjanyň elýeterliligini aşakdaky ýaly barlaň:

$ sudo dnf search nmstate

Çykyşdan, tor ammarynyň resmi ammarlarda elýeterlidigini görüp bileris.

Ondan soň NMstate-i aşakdaky ýaly guruň. Bu “Fedora 31” we soňraky wersiýalarynda işleýär.

$ sudo dnf install nmstate

Buýruk, beýleki Python baglylyklary bilen birlikde NMState tor dolandyryjysy API gurýar.

Gurmak gutaransoň, nmstate paketiniň aşakdaky ýaly gurlandygyny barlaň.

$ rpm -qi nmstate

RHEL esasly Linux üçin ilki bilen ammar ammaryny işlediň.

$ sudo dnf copr enable nmstate/nmstate-stable

Soňra NMstate-i aşakdaky ýaly guruň.

$ sudo dnf install nmstate

Çeşmeden NMState nädip gurmalydygy barada goşmaça görkezmeleri gözden geçiriň.

Gurlandan soň, NMstate gurnalan wersiýasyny aşakdaky ýaly barlap bilersiňiz.

$ nmstatectl version

1.0.2

Linux-da NMState konfigurasiýa guralyny ulanmak

NMstate gurlansoň, Network Manager API-den nädip peýdalanyp boljakdygyňyzy Knitty-gritties-e geçeliň.

Tor interfeýsiňiziň häzirki tor konfigurasiýasyny görmek üçin aşakdaky buýrugy işlediň. Ine, enp0s3 interfeýsiňiziň konfigurasiýasy.

$ nmstatectl show enp0s3

Çykyş 4 aýratyn bölüme bölünýär:

  • dns-çözüji: Bu bölümde belli bir interfeýs üçin at serweriniň konfigurasiýasy bar.
  • marşrut düzgünleri: Bu marşrut düzgünlerini göz öňünde tutýar.
  • ugurlar: Bu hem dinamiki, hem statiki ugurlary öz içine alýar.
  • Interfeýsler: Bu bölümde ipv4 we ipv6 sazlamalary görkezilýär.

Linux-da tor konfigurasiýasyny üýtgetmek

Öý eýeleriňizi interaktiw ýa-da faýl esasly re usingimleri ulanyp, islenýän ýagdaýa düzmek üçin NMState konfigurasiýa guralyny ulanyp bilersiňiz.

  • Interaktiw: Bu nmstatectl redaktirleme buýrugyny ulanyp, tor interfeýsini redaktirleýär. Bu buýruk, EDITOR gurşaw üýtgeýjisi bilen kesgitlenýän tekst redaktoryny açýar. Üýtgeşmeler ýatda saklanandan soň, sintaksis ýalňyşlary ýüze çykarylmasa, NMState täze konfigurasiýany derrew ulanýar.
  • Faýl esasly: Faýl esasly tertipde, nmstatectl amaly buýrugyny ulanyp, interfeýs konfigurasiýasy YAML ýa-da JSON faýly ulanylýar.

Indi ellerimizi hapalap, NMState ulanyp, tor konfigurasiýasyny nädip üýtgedip boljakdygyny barlalyň.

Fedora ulgamymyzda aşakdaky konfigurasiýa bilen iki sany işjeň ulgam interfeýsi bar:

$ 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 tor interfeýsiniň MTU-ny (Maksimum geçiriş bölümi) üýtgetmek üçin interaktiw re modeimi ulanarys. Düzgüne görä, bu görkezilişi ýaly 1500-e düzüldi.

$ ifconfig

Muny 4000-e üýtgederis. Nmstatectl redaktirleme buýrugyny aşakdaky ýaly ulanarys.

$ sudo nmstatectl edit enp0s3

Bu konfigurasiýany tekst redaktorynda açýar. Biziň üçin, vim redaktorynda açylýar. Ondan soň, aşaklygyna aýlaň we mtu parametrini tapyň. Vim faýly redaktirleýşimiz ýaly bahany 4000-e üýtgederis. Soňra üýtgeşmeleri ýatda saklarys.

Faýly ýatda saklanyňyzda we çykanyňyzda, NMstate üýtgeşmeleri tygşytlaýarka, terminalda käbir gysylan çykyşlary görersiňiz. Şonuň üçin hiç hili gatyşma zerur däl, oturyň.

Üýtgeşmäniň edilendigini indi tassyklalyň.

$ ifconfig

Terminalyň çykyşyndan, MTU-ny üstünlikli 1500 bahasyndan 4000-e üstünlikli üýtgedendigimizi görüp bileris.

Indi faýl esasly re usingimi ulanyp konfigurasiýany üýtgedeliň. Bu mysalda, enp0s8 tor interfeýsi üçin IPv6-y öçüreris. Birinji ädim, enp0s8 tor interfeýsiniň islenýän ýagdaýyny görkezjek YAML faýly döretmekdir.

$ sudo nmstatectl show enp0s8 > enp0s8.yml

Ondan soň, YAML faýlyny aşakdaky ýaly redaktirläris.

$ sudo vim enp0s8.yml

Ipv6 bölümine aşak aýlaň. IPv6-y öçürmek üçin, işledilen parametri ýalňyş düzüň we urlan setirleri pozuň.

Sazlamany ýazdyryň we YAML faýlyny aşakdaky ýaly ulanyp täze ýagdaýy ulanyň.

$ sudo nmstatectl apply enp0s8.yml

Indi IPv6-yň ýapykdygyny barlamak üçin görkezilen buýrugy işlediň. Görkezilen çykyş, enp0s8 tor interfeýsi üçin IPv6-nyň boşdygyny görkezýär, bu bolsa interfeýsde IPv6-ny üstünlikli öçürendigimizi görkezýär.

$ ip -br a 

NMstate-iň berýän başga bir amatly funksiýasy, islenýän ulgam ýagdaýyny wagtlaýyn düzmek ukybydyr. Sazlama bilen kanagatlananyňyzdan soň, üýtgeşmeleri hemişelik edip bilersiňiz. Otherwiseogsam, edilen üýtgeşmeler möhleti gutarandan soň başlangyç sazlamalara gaýdyp geler. Bellenen wagt gutarmagy 60 sekunt.

Muny görkezmek üçin enp0s3 interfeýsinde wagtlaýyn statiki IP gurarys we DHCP-i öçüreris. Textene bir gezek tekst redaktoryny ulanyp faýla giriň.

$ sudo vim enp0s3.yml

Ipv4 bölümine aýlaň. Statik IP-ni kesgitläň - biziň ýagdaýymyzda 192.168.2.150 we çyzylan setirleri pozuň. Mundan başga-da, dhcp parametrini ýalňyş diýip belläň.

Faýly ýazdyryň we üýtgeşmeleri wagtlaýyn ýerine ýetiriň.

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

- ýerine ýetirmezlik opsiýasy --timeout opsiýasy bilen kesgitlenen döwürdäki üýtgeşmeleri wagtlaýyn ulanýar, bu mysalda 20 sekunt.

Üýtgeşmeleriň wagtlaýyn ulanylyşyny barlamak üçin, IP konfigurasiýasyny 20 sekunt aralygynda barlarys.

$ ip -br a 

Çykyşdan, interfeýs IP konfigurasiýasynyň wagt aralygy 20 sekuntdan soň DHCP-e gaýdyp gelendigini görüp bilersiňiz. IP adresi, 192.168.2.150 bolan öňki statiki düzülen IP-den 192.168.2.104-e gaýdyp geldi.

Elbetde, NMState guraly tor interfeýsleriňizi düzmek üçin amatly guraldyr. NetworkManager API ulanyp, öý eýesiniň interfeýsiniň islenýän konfigurasiýa ýagdaýyny ulanýan deklaratiw gural.

Döwlet interaktiw çemeleşme ýa-da öňünden düzülen YAML faýlyny ulanýan faýl esasly usuly ulanmak arkaly aňsat kesgitlenýär. Bu konfigurasiýa meseleleriniň awtomatlaşdyrylmagyny we konfigurasiýa wagtynda ýalňyşlyklaryň azalmagyny güýçlendirýär.