Otu esi emepụta NIC Teaming ma ọ bụ bonding na CentOS 8/RHEL 8


Njikọ NIC bụ nchịkọta ma ọ bụ njikọ nke njikọ netwọk abụọ ma ọ bụ karịa n'ime otu njikọ ezi uche dị na ya iji nye redundancy na nnukwu nnweta. A maara interface/njikọ ezi uche dị ka otu interface. Ọ bụrụ na njikọ anụ ahụ na-arụ ọrụ na-agbada, otu n'ime nkwado ndabere na mpaghara ma ọ bụ echekwabara na-amalite na-akpaghị aka ma hụ na njikọ na-adịghị akwụsị akwụsị na nkesa.

Tupu anyị atụgharịa aka anyị, ọ dị mkpa ịmara onwe gị na okwu ndị a:

  • Teamd - Nke a bụ daemon otu dị mma nke na-eji ọba akwụkwọ libteam na-ekwurịta okwu na ngwaọrụ otu site na Linux kernel.
  • Teamdctl- Nke a bụ akụrụngwa na-enye ndị ọrụ ohere ijikwa ihe atụ nke otu. Ị nwere ike ịlele ma gbanwee ọkwa ọdụ ụgbọ mmiri, yana gbanwee n'etiti nkwado ndabere na mpaghara nọ n'ọrụ.
  • Onye na-agba ọsọ - Ndị a bụ nkeji nke koodu edere na JSON ma jiri ya mee ihe maka mmejuputa echiche NIC dị iche iche. Ọmụmaatụ nke ụdị ndị ọgba ọsọ gụnyere Round robbin, ndozi ibu, mgbasa ozi, na nkwado ndabere na-arụ ọrụ.

Maka ntuziaka a, anyị ga-ahazi otu NIC site na iji ọnọdụ ndabere na-arụ ọrụ. Nke a bụ ebe otu njikọ na-anọgide na-arụ ọrụ mgbe ndị ọzọ nọ na njikere ma debe ya dị ka njikọ ndabere ma ọ bụrụ na njikọ na-arụ ọrụ na-agbada.

Na ibe a

  • Wụnye Daemon otu na CentOS
  • Hazie NIC Teaming na CentOS
  • Nnwale Njikọta netwọkụ mbelata
  • Ihichapụ Interface otu netwọk

Na-enweghị nnukwu mmasị, ka anyị malite.

Teamd bụ daemon nke na-ahụ maka ịmepụta otu netwọkụ ga-eme dị ka ihe ezi uche dị na ya n'oge oge. Site na ndabara, ọ na-abịa na CentOS/RHEL 8. Ma ọ bụrụ na, n'ihi ihe ọ bụla, ọ bụghị arụnyere, mebie iwu dnf na-esonụ iji wụnye ya.

$ sudo dnf install teamd

Ozugbo arụnyere, chọpụta na arụnyere teamd site na iji iwu rpm:

$ rpm -qi teamd

Iji hazie otu NIC, anyị ga-eji ngwa nmcli aka nke enwere ike iji maka njikwa ọrụ NetworkManager. N'ime sistemụ m, enwere m kaadị NIC 2 nke m ga-ejikọta ma ọ bụ jikọta iji mepụta interface otu ezi uche: enp0s3 na enp0s8. Nke a nwere ike ịdị iche na nke gị.

Iji gosi na interface netwọk na-arụ ọrụ na-agba ọsọ:

$ nmcli device status

Nsonaazụ gosipụtara ịdị adị nke njikọ netwọkụ na-arụ ọrụ 2. Iji kpokọta ozi ndị ọzọ gbasara oghere dị ka UUID, mee iwu:

$ nmcli connection show

Iji mepụta njikọ njikọta netwọkụ ma ọ bụ interface, nke ga-abụ njikọ ezi uche dị na ya, anyị ga-ehichapụ oghere netwọkụ dị adị. Mgbe nke ahụ gasịrị, anyị ga-emepụta oghere ohu site na iji oghere ndị ehichapụ wee jikọta ha na njikọ njikọ.

Iji UUID nke ha na-eme iwu ndị dị n'okpuru ka ihichapụ njikọ ndị a:

$ nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29
$ nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807

Oge a mgbe ị na-elele oghere ndị ahụ, ị ga-achọpụta na ekewapụrụ ha ma ọ nweghị njikọ na ihe nkesa ahụ. N'ụzọ bụ isi, ihe nkesa gị ga-anọpụ iche na netwọk ndị ọzọ.

$ nmcli device status

Na-esote, anyị ga-emepụta interface otu a na-akpọ team0 na ọnọdụ ịgba ọsọ na-arụ ọrụ. Dịka ekwuru na mbụ, ọnọdụ onye na-agba ọsọ ndabere na-arụ ọrụ na-eji otu interface na-arụ ọrụ ma na-edobe ndị ọzọ maka redundancy ma ọ bụrụ na njikọ na-arụ ọrụ na-agbada.

$ nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'

Ka ilele àgwà ndị e kenyere na interface team0 mee iwu:

$ nmcli connection show team0

Zuru oke! N'ebe a, anyị nwere naanị otu interface elu, nke bụ team0 interface dị ka egosiri.

$ nmcli connection show

Ọzọ, hazie adreesị IP maka interface team0 dị ka egosiri n'iji iwu nmcli. Jide n'aka na ị ga-ekenye IP dị ka subnet netwọk gị na atụmatụ adreesị IP.

$ nmcli con mod team0 ipv4.addresses 192.168.2.100/24
$ nmcli con mod team0 ipv4.gateway 192.168.2.1
$ nmcli con mod team0 ipv4.dns 8.8.8.8
$ nmcli con mod team0 ipv4.method manual
$ nmcli con mod team0 connection.autoconnect yes

Mgbe nke ahụ gasịrị, mepụta njikọ ohu ma jikọta ndị ohu na njikọ otu:

$ nmcli con add type team-slave con-name team0-slave0 ifname enp0s3 master team0
$ nmcli con add type team-slave con-name team0-slave1 ifname enp0s8 master team0

Lelee ọnọdụ nke njikọ ahụ ọzọ, ị ga-ahụkwa na njikọ ohu na-arụ ọrụ ugbu a.

$ nmcli connection show

Na-esote, gbanyụọ ma rụọ ọrụ njikọ otu. Nke a na-eme ka njikọ dị n'etiti njikọ ohu na njikọ otu.

$ nmcli connection down team0 && nmcli connection up team0

Na-esote, nyochaa steeti njikọ njikọ otu otu dị ka egosiri.

$ ip addr show dev team0

Anyị nwere ike ịhụ na njikọ ahụ dị na adreesị IP ziri ezi nke anyị haziri na mbụ.

Ka iweghachite nkọwa ndị ọzọ gbasara njikọ otu, mee iwu a:

$ sudo teamdctl team0 state

Site na mmepụta, anyị nwere ike ịhụ na njikọ abụọ ahụ (enp0s3 na enp0s8) dị elu yana na njikọ na-arụ ọrụ bụ enp0s8.

Iji nwalee ụdị nkwado nkwado anyị na-arụ ọrụ, anyị ga-ewepụ njikọ na-arụ ọrụ ugbu a - enp0s3 - wee lelee ma njikọ nke ọzọ abanyela.

$ nmcli device disconnect enp0s3
$ sudo teamdctl team0 state

Mgbe ị na-elele ọkwa nke interface otu, ị ga-ahụ na njikọ enp0s8 abanyela ma na-eje ozi njikọ na sava ahụ. Nke a na-egosi na nhazi anyị na-arụ ọrụ!

Ọ bụrụ na-ịchọrọ ihichapụ otu interface/njikọ wee laghachi na ndabara netwọk ntọala, buru ụzọ wetuo njikọ otu:

$ nmcli connection down team0

Na-esote, hichapụ ndị ohu.

$ nmcli connection delete team0-slave0 team0-slave1

N'ikpeazụ, hichapụ interface otu.

$ nmcli connection delete team0

N'oge a, oghere niile dị ala na nkesa gị enweghị ike iru. Iji mee ka oghere netwọk gị rụọ ọrụ wee nwetaghachi njikọ, gbanye iwu ndị a:

$ sudo ifconfig enp0s3 up
$ sudo ifconfig enp0s8 up
$ sudo systemctl restart NetworkManager

Njikọ NIC na-enye ihe ngwọta dị mma maka nkwụsị netwọk. Site na netwọkụ netwọkụ 2 ma ọ bụ karịa, ị nwere ike hazie otu interface na-agba ọsọ na ọnọdụ ọ bụla na-agba ọsọ iji hụ na enwere ike dị elu na ihe omume otu njikọ na-agbada na mberede. Anyị nwere olile anya na ịchọta ntuziaka a nyere aka. Kpọtụrụ anyị ka anyị mara ka ahụmịhe gị siri dị.