NMSstate: Ngwá Ọrụ Nhazi ịkparịta ụka n'Ịntanet


Usoro gburugburu Linux na-enye ọtụtụ ụzọ isi hazie ịkparịta ụka n'Ịntanet gụnyere nmtui GUI na-ewu ewu. Ntuziaka a na-ewebata ngwa ọrụ nhazi netwọkụ ọzọ mara dị ka NMState

NMState bụ onye njikwa netwọkụ na-ekwupụta maka ịhazi ịkparịta ụka n'Ịntanet na ndị ọbịa Linux. Ọ bụ ọbá akwụkwọ na-enye ngwá ọrụ ahịrị iwu nke na-ejikwa ntọala netwọkụ ndị ọbịa. Ọ na-achịkwa ịkparịta ụka n'Ịntanet site na API nkwupụta nke ugwu. N'oge edere ntuziaka a, NetworkManager daemon bụ naanị onye na-eweta NMState na-akwado.

N'ime ntuziaka a, anyị na-elele ụfọdụ n'ime ihe atụ ojiji nke ngwa NMSstate. Maka ntuziaka a, anyị ga-egosipụta nke a site na iji Fedora Linux.

Njikwa netwọk nwere ike were ụzọ abụọ - mkpa na nkwupụta. Na usoro dị mkpa, ị na-akọwapụta nke ọma ọnọdụ ịkparịta ụka n'Ịntanet nke interface site n'ịgba iwu na ọnụ. A na-elekwasị anya na 'otu'.

Dịka ọmụmaatụ, iji wetuo netwọkụ site na iji ụzọ dị mkpa, mee iwu:

$ sudo ifconfig enp0s3 down

N'aka nke ọzọ, usoro nkwupụta na-eji faịlụ YAML tinye mgbanwe na nhazi. Imirikiti ngwa ọrụ egwu DevOps dị ka Kubernetes na-eji ụzọ a iji buo ngwa pods site na iji faịlụ YAML.

Usoro a na-enye ihe a na-akpọkarị akụrụngwa dị ka Koodu (IaC) na okirikiri DevOps. Nke a na-eme ka akpaaka nke nhazi netwọk dị na onye ọbịa ahụ ma na-enye ụzọ ngwa ngwa na nke a pụrụ ịdabere na ya nke ime mgbanwe dị iche iche na ntanetị netwọk na obere njehie.

Ugbu a, ka anyị gbanwee ngwa ngwa wee hụ ka ị ga-esi jiri ngwa nhazi NMState hazie oghere netwọk gị na Linux.

Kwụpụ 1: Wụnye NMSstate Networking Config Tool

Anyị ga-agbagharị bọọlụ site na ịwụnye Nmstate. Nke mbụ, lelee ngwungwu dị na ebe nchekwa Fedora dị ka ndị a:

$ sudo dnf search nmstate

Site na mmepụta, anyị nwere ike ịhụ na onye njikwa netwọk dị na ebe nchekwa ọrụ.

Na-esote, wụnye NMstate dị ka ndị a. Nke a na-arụ ọrụ na Fedora 31 na nsụgharị ndị ọzọ.

$ sudo dnf install nmstate

Iwu ahụ na-etinye API njikwa netwọkụ NMSstate yana ndabere Python ndị ọzọ.

Ozugbo echichi mechara, nyochaa nmstate ngwugwu arụnyere dị ka ndị a.

$ rpm -qi nmstate

Maka Linux nke dabere na RHEL, buru ụzọ mee ka ebe nchekwa copr nwee ike.

$ sudo dnf copr enable nmstate/nmstate-stable

Wee tinye NMstate ka ndị a.

$ sudo dnf install nmstate

Lelee ntuziaka ndị ọzọ maka otu esi etinye NMSstate site na isi mmalite.

Ozugbo arụnyere, ị nwere ike ịlele ụdị NMstate arụnyere dị ka ndị a.

$ nmstatectl version

1.0.2

Iji NMSstate Nhazi Ngwá Ọrụ na Linux

Site na arụnyere NMstate, ka anyị gbadaa na Knitty-gritties nke otu ị ga-esi nweta ọtụtụ API njikwa netwọkụ.

Ka ilele nhazi netwọkụ dị ugbu a nke interface netwọk gị, mee iwu a. Nke a bụ nhazi nke interface enp0s3 gị.

$ nmstatectl show enp0s3

E kewara nsonazụ a na ngalaba anọ dị iche iche:

  • dns-resolver: Akụkụ a nwere nhazi aha nkesa maka otu interface.
  • ụkpụrụ ụzọ: Nke a na-akọwapụta iwu ngagharị.
  • ụzọ: Nke a gụnyere ma ụzọ dị ike na nke kwụ ọtọ.
  • Interface: Nkebi a na-akọwapụta ma ntọala ipv4 na ipv6.

Na-agbanwe nhazi netwọkụ na Linux

Ị nwere ike iji ngwá ọrụ nhazi NMSstate iji hazie ndị ọbịa gị na steeti achọrọ site na iji mmekọrịta mmekọrịta ma ọ bụ ụdị faịlụ.

  • Mmekọrịta: Nke a na-eji iwu ndezi nmstatectl na-edezi interface netwọk. Iwu a na-emepe ndezi ederede nke onye mgbanwe gburugburu EDITOR kọwapụtara. Ozugbo echekwara mgbanwe ndị a, NMSstate na-etinye nhazi ọhụrụ ozugbo ọ gwụla ma achọpụtara mperi syntax.
  • Dabere na faịlụ: N'ụdị dabere na faịlụ, a na-etinye nhazi interface site na iji faịlụ YAML ma ọ bụ JSON site na iji nmstatectl tinye iwu.

Ka anyị tinye aka anyị ugbu a ma lelee ka ị ga-esi gbanwee nhazi netwọk site na iji NMState.

Sistemụ Fedora anyị nwere interface netwọkụ na-arụ ọrụ abụọ nwere nhazi ndị a:

$ 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 

Anyị ga-eji ọnọdụ mmekọrịta iji gbanwee MTU (Igbo Nnyefe Kachasị) nke interface netwọk enp0s3. Site na ndabara, atọrọ nke a ka ọ bụrụ 1500 dịka egosiri.

$ ifconfig

Anyị ga-agbanwe nke a na 4000. Anyị ga-eji iwu nmstatectl edit dị ka ndị a.

$ sudo nmstatectl edit enp0s3

Nke a na-emepe nhazi na nchịkọta ederede. Maka ikpe anyị, ọ na-emepe na vim editọ. Na-esote, pịgharịa gaa na ala wee chọta paramita mtu. Anyị ga-agbanwe uru gaa na 4000, dịka anyị ga-edezi faịlụ na vim. Mgbe ahụ, anyị ga-echekwa mgbanwe.

Mgbe ịchekwaa wee pụọ na faịlụ ahụ, ị ga-ahụ ụfọdụ mpụta srambled na ọnụ ka NMstate na-echekwa mgbanwe ndị ahụ. Ọ nweghị enyemaka achọrọ, yabụ nọdụ ala.

Ka anyị gosi ugbu a na e mere mgbanwe ahụ.

$ ifconfig

Site na mmepụta njedebe, anyị nwere ike ịhụ na anyị agbanweela MTU nke ọma na 4000 site na uru 1500 ndabara.

Ka anyị jiri ọnọdụ dabere na faịlụ gbanwee nhazi ahụ ugbu a. Na ihe atụ a, anyị na-aga gbanyụọ IPv6 maka enp0s8 netwọk interface. Nzọụkwụ mbụ bụ ịmepụta faịlụ YAML nke ga-akọwapụta ọnọdụ achọrọ nke interface netwọk enp0s8.

$ sudo nmstatectl show enp0s8 > enp0s8.yml

Ọzọ, anyị ga-edezi faịlụ YAML dị ka ndị a.

$ sudo vim enp0s8.yml

Pịgharịa gaa na ngalaba ipv6. Iji gbanyụọ IPv6, tọọ paramita enyere ka ọ bụrụ ụgha ma hichapụ ahịrị ndị emetụtara.

Chekwaa nhazi ma tinye steeti ọhụrụ site na iji faịlụ YAML dị ka ndị a.

$ sudo nmstatectl apply enp0s8.yml

Ugbu a gbaa iwu egosiri iji chọpụta na agbanyụrụ IPv6. Nsonaazụ gosipụtara na-egosi na IPv6 maka interface netwọk enp0s8 bụ oghere, na-egosi na anyị agbanyụla IPv6 nke ọma na interface ahụ.

$ ip -br a 

Ọrụ ọzọ dị mma nke NMstate na-enye bụ ikike ịhazi ọnọdụ netwọk chọrọ nwa oge. Ozugbo ị nwere afọ ojuju na nhazi ahụ, ị nwere ike ịga n'ihu ma mee mgbanwe ndị ahụ na-adịgide adịgide. Ma ọ bụghị ya, mgbanwe ndị emere ga-atụgharị na ntọala mbụ ozugbo oge agwụla. Oge ndabara bụ 60 sekọnd.

Iji gosi nke a, anyị ga-edobe IP static nwa oge na interface enp0s3 wee gbanyụọ DHCP. Ọzọkwa, nweta faịlụ site na iji editọ ederede.

$ sudo vim enp0s3.yml

Pịgharịa gaa na ngalaba ipv4. Ezipụta IP static - n'ọnọdụ anyị 192.168.2.150 ma hichapụ ahịrị ndị etinyere. Na mgbakwunye, jide n'aka na ịtọọ paramita dhcp na ụgha.

Chekwaa faịlụ ma mee mgbanwe nwa oge dịka ndị a.

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

Nhọrọ --no-commit na-etinye mgbanwe maka oge akọwapụtara site na nhọrọ --timeout nke, na ọmụmaatụ a, bụ 20 sekọnd.

Iji nyochaa ngwa nwa oge nke mgbanwe ndị a, anyị ga-elele nhazi IP n'ime oge nke 20 sekọnd.

$ ip -br a 

Site na mmepụta, ị nwere ike ịhụ na nhazi IP interface ahụ laghachiri na DHCP mgbe oge nke 20 sekọnd gasịrị. Adreesị IP ahụ laghachiri na 192.168.2.104 site na IP ahaziri na mbụ nke bụ 192.168.2.150.

N'ezie, ngwá ọrụ NMState bụ ngwa dị mma maka ịhazi oghere netwọk gị. Ọ bụ ngwá ọrụ nkwupụta nke na-etinye ọnọdụ nhazi achọrọ nke interface nke onye ọbịa site na iji NetworkManager API.

A na-akọwapụta steeti ahụ n'ụzọ dị mfe site na iji ụzọ mmekọrịta ma ọ bụ jiri usoro dabere na faịlụ nke na-eji faịlụ YAML ahaziri mbụ. Nke a na-eme ka akpaaka nke ọrụ nhazi na mbelata njehie n'oge nhazi.