Πώς να δημιουργήσετε NIC Teaming ή Bonding στο CentOS 8/RHEL 8


Η ομαδοποίηση NIC είναι η συγκέντρωση ή η σύνδεση δύο ή περισσότερων συνδέσεων δικτύου σε έναν ενιαίο λογικό σύνδεσμο για την παροχή πλεονασμού και υψηλής διαθεσιμότητας. Η λογική διεπαφή/σύνδεσμος είναι γνωστή ως διεπαφή ομάδας. Σε περίπτωση που ο ενεργός φυσικός σύνδεσμος διακοπεί, ένας από τους εφεδρικούς ή δεσμευμένους συνδέσμους ενεργοποιείται αυτόματα και εξασφαλίζει αδιάλειπτη σύνδεση με τον διακομιστή.

Ομαδική ορολογία

Πριν σηκώσουμε τα μανίκια μας, είναι σημαντικό να εξοικειωθείτε με τις ακόλουθες ορολογίες:

  • Teamd – Αυτός είναι ο nic teaming daemon που χρησιμοποιεί τη βιβλιοθήκη libteam για να επικοινωνεί με τις συσκευές της ομάδας μέσω του πυρήνα Linux.
  • Teamdctl– Αυτό είναι ένα βοηθητικό πρόγραμμα που επιτρέπει στους χρήστες να ελέγχουν μια παρουσία του teamd. Μπορείτε να ελέγξετε και να αλλάξετε την κατάσταση της θύρας, καθώς και να κάνετε εναλλαγή μεταξύ εφεδρικής και ενεργής κατάστασης.
  • Runner – Πρόκειται για μονάδες κώδικα γραμμένες σε JSON και χρησιμοποιούνται για την υλοποίηση διαφόρων εννοιών ομαδοποίησης NIC. Παραδείγματα λειτουργιών δρομέα περιλαμβάνουν Round robbin, εξισορρόπηση φορτίου, μετάδοση και ενεργό αντίγραφο ασφαλείας.

Για αυτόν τον οδηγό, θα διαμορφώσουμε τη ομαδοποίηση NIC χρησιμοποιώντας τη λειτουργία ενεργής δημιουργίας αντιγράφων ασφαλείας. Αυτό είναι όπου ένας σύνδεσμος παραμένει ενεργός ενώ οι υπόλοιποι είναι σε αναμονή και δεσμεύονται ως εφεδρικοί σύνδεσμοι σε περίπτωση που ο ενεργός σύνδεσμος πέσει.

Σε αυτήν την σελίδα

  • Εγκαταστήστε το teamd Daemon στο CentOS
  • Διαμόρφωση ομάδας NIC στο CentOS
  • Δοκιμή πλεονασμού ομαδικότητας δικτύου
  • Διαγραφή διεπαφής ομαδοποίησης δικτύου

Χωρίς πολλά άλλα, ας ξεκινήσουμε.

Βήμα 1: Εγκαταστήστε το teamd Daemon στο CentOS

Το Teamd είναι ο δαίμονας που είναι υπεύθυνος για τη δημιουργία μιας ομάδας δικτύου που θα λειτουργεί ως η λογική διεπαφή κατά τη διάρκεια του χρόνου εκτέλεσης. Από προεπιλογή, έρχεται εγκατεστημένο με CentOS/RHEL 8. Αν όμως, για οποιονδήποτε λόγο, δεν είναι εγκατεστημένο, εκτελέστε την ακόλουθη εντολή dnf για να το εγκαταστήσετε.

sudo dnf install teamd

Αφού εγκατασταθεί, επαληθεύστε ότι το teamd είναι εγκατεστημένο εκτελώντας την εντολή rpm:

rpm -qi teamd

Βήμα 2: Διαμορφώστε το NIC Teaming στο CentOS

Για να διαμορφώσουμε τη ομαδοποίηση NIC, θα χρησιμοποιήσουμε το εύχρηστο εργαλείο nmcli που μπορεί να χρησιμοποιηθεί για τη διαχείριση της υπηρεσίας NetworkManager. Στο σύστημά μου, έχω 2 κάρτες NIC τις οποίες πρόκειται να συνδέσω ή να τις συνδυάσω για να δημιουργήσω μια λογική διεπαφή ομάδας: enp0s3 και enp0s8. Αυτό μπορεί να είναι διαφορετικό στην περίπτωσή σας.

Για να επιβεβαιώσετε ότι εκτελούνται οι ενεργές διεπαφές δικτύου:

nmcli device status

Η έξοδος επιβεβαιώνει την ύπαρξη 2 ενεργών συνδέσεων δικτύου. Για να συγκεντρώσετε περισσότερες πληροφορίες σχετικά με τις διεπαφές όπως UUID, εκτελέστε την εντολή:

nmcli connection show

Για να δημιουργήσουμε έναν σύνδεσμο ή μια διεπαφή ομαδοποίησης δικτύου, που θα είναι ο λογικός μας σύνδεσμος, θα διαγράψουμε τις υπάρχουσες διεπαφές δικτύου. Στη συνέχεια θα δημιουργήσουμε υποτελείς διεπαφές χρησιμοποιώντας τις διαγραμμένες διεπαφές και στη συνέχεια θα τις συσχετίσουμε με τον σύνδεσμο ομαδοποίησης.

Χρησιμοποιώντας τα αντίστοιχα UUID τους, εκτελέστε τις παρακάτω εντολές για να διαγράψετε τους συνδέσμους:

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

Αυτή τη φορά, όταν ελέγχετε τις διεπαφές, θα παρατηρήσετε ότι είναι αποσυνδεδεμένες και δεν παρέχουν σύνδεση με τον διακομιστή. Βασικά, ο διακομιστής σας θα απομονωθεί από το υπόλοιπο δίκτυο.

nmcli device status

Στη συνέχεια, θα δημιουργήσουμε μια διεπαφή ομάδας που ονομάζεται team0 σε λειτουργία ενεργού εφεδρικού προγράμματος εκτέλεσης. Όπως αναφέρθηκε προηγουμένως, η ενεργή εφεδρική λειτουργία εκτέλεσης χρησιμοποιεί μια ενεργή διεπαφή και διατηρεί τις άλλες για πλεονασμό σε περίπτωση που η ενεργή σύνδεση πέσει.

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

Για να δείτε τα χαρακτηριστικά που έχουν εκχωρηθεί στη διεπαφή team0 εκτελέστε την εντολή:

nmcli connection show team0

Τέλειος! Σε αυτό το σημείο, έχουμε μόνο μία διεπαφή επάνω, η οποία είναι η διεπαφή team0 όπως φαίνεται.

nmcli connection show

Στη συνέχεια, διαμορφώστε τη διεύθυνση IP για τη διεπαφή team0 όπως φαίνεται χρησιμοποιώντας την εντολή nmcli. Βεβαιωθείτε ότι έχετε αντιστοιχίσει τις IP σύμφωνα με το υποδίκτυο και το σχήμα διευθύνσεων 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

Στη συνέχεια, δημιουργήστε slave συνδέσμους και συσχετίστε τους slaves με τον σύνδεσμο της ομάδας:

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

Ελέγξτε ξανά την κατάσταση των συνδέσμων και θα παρατηρήσετε ότι οι υποτελείς σύνδεσμοι είναι πλέον ενεργοί.

nmcli connection show

Στη συνέχεια, απενεργοποιήστε και ενεργοποιήστε τη σύνδεση της ομάδας. Αυτό ενεργοποιεί τη σύνδεση μεταξύ των υποτελών συνδέσμων και του συνδέσμου ομάδας.

nmcli connection down team0 && nmcli connection up team0

Στη συνέχεια, επαληθεύστε την κατάσταση της σύνδεσης της σύνδεσης ομάδας όπως φαίνεται.

ip addr show dev team0

Μπορούμε να δούμε ότι ο σύνδεσμος έχει τη σωστή διεύθυνση IP που ρυθμίσαμε νωρίτερα.

Για να ανακτήσετε πρόσθετες λεπτομέρειες σχετικά με τον σύνδεσμο της ομάδας, εκτελέστε την εντολή:

sudo teamdctl team0 state

Από την έξοδο, μπορούμε να δούμε ότι και οι δύο σύνδεσμοι (enp0s3 και enp0s8) είναι επάνω και ότι ο ενεργός σύνδεσμος είναι enp0s8.

Βήμα 3: Δοκιμή πλεονασμού ομαδικότητας δικτύου

Για να δοκιμάσουμε τη λειτουργία ενεργής εφεδρικής ομαδοποίησης, θα αποσυνδέσουμε τον ενεργό σύνδεσμο – enp0s3 – και θα ελέγξουμε αν ο άλλος σύνδεσμος ενεργοποιείται.

nmcli device disconnect enp0s3
sudo teamdctl team0 state

Όταν ελέγχετε την κατάσταση της διεπαφής ομαδοποίησης, θα διαπιστώσετε ότι ο σύνδεσμος enp0s8 έχει ξεκινήσει και εξυπηρετεί συνδέσεις στον διακομιστή. Αυτό επιβεβαιώνει ότι η ρύθμιση μας λειτουργεί!

Βήμα 4: Διαγραφή διεπαφής ομαδοποίησης δικτύου

Εάν θέλετε να διαγράψετε τη διεπαφή/σύνδεσμο ομαδοποίησης και να επιστρέψετε στις προεπιλεγμένες ρυθμίσεις δικτύου, κατεβάστε πρώτα τον σύνδεσμο ομαδοποίησης:

nmcli connection down team0

Στη συνέχεια, διαγράψτε τους σκλάβους.

nmcli connection delete team0-slave0 team0-slave1

Τέλος, διαγράψτε τη διεπαφή ομαδοποίησης.

nmcli connection delete team0

Σε αυτό το σημείο, όλες οι διεπαφές είναι απενεργοποιημένες και ο διακομιστής σας δεν είναι προσβάσιμος. Για να ενεργοποιήσετε τις διεπαφές δικτύου σας και να ανακτήσετε τη συνδεσιμότητα, εκτελέστε τις εντολές:

sudo ifconfig enp0s3 up
sudo ifconfig enp0s8 up
sudo systemctl restart NetworkManager
συμπέρασμα

Η ομαδοποίηση NIC προσφέρει μια εξαιρετική λύση για πλεονασμό δικτύου. Με 2 ή περισσότερες διεπαφές δικτύου, μπορείτε να διαμορφώσετε μια διεπαφή ομαδοποίησης σε οποιαδήποτε λειτουργία δρομέα για να διασφαλίσετε υψηλή διαθεσιμότητα σε περίπτωση που ένας σύνδεσμος πέσει κατά λάθος. Ελπίζουμε ότι βρήκατε αυτόν τον οδηγό χρήσιμο. Ενημερώστε μας και πείτε μας πώς ήταν η εμπειρία σας.