Πώς να ρυθμίσετε τη σύνδεση/ομαδοποίηση δικτύου (NIC) στο Debian Linux


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

Αυτός ο οδηγός θα περιγράψει τη ομαδοποίηση δύο καρτών διασύνδεσης δικτύου σε ένα σύστημα Debian. Το λογισμικό γνωστό ως ifenslave θα χρησιμοποιηθεί για την προσάρτηση και την αποσύνδεση NIC από μια συνδεδεμένη συσκευή. Στη συνέχεια, η συσκευή bond γίνεται η συσκευή δικτύου που διασυνδέεται με τον πυρήνα, αλλά χρησιμοποιεί φυσικά την πραγματική συσκευή διεπαφής δικτύου (eth0, eth1, κ.λπ.).

Bonding στο Debian Linux

Το πρώτο πράγμα που πρέπει να κάνετε πριν από οποιεσδήποτε διαμορφώσεις, είναι να προσδιορίσετε τον τύπο σύνδεσης που πραγματικά χρειάζεται να εφαρμοστεί το σύστημα. Υπάρχουν έξι τρόποι σύνδεσης που υποστηρίζονται από τον πυρήνα του Linux από τη στιγμή που γράφεται αυτό το κείμενο. Ορισμένες από αυτές τις «λειτουργίες» σύνδεσης είναι απλές στη ρύθμιση και άλλες απαιτούν ειδικές διαμορφώσεις στους διακόπτες στους οποίους συνδέονται οι σύνδεσμοι.

Κατανόηση των τρόπων σύνδεσης

Bond Mode 0 – Balance-rr

Αυτή η μέθοδος ομαδοποίησης NIC ονομάζεται «Round-Robin», εξ ου και το «RR» στο όνομα. Με αυτήν τη μέθοδο δεσμού, τα πακέτα δικτύων περιστρέφονται μέσω καθεμιάς από τις κάρτες διασύνδεσης δικτύου που αποτελούν τη συνδεδεμένη διεπαφή.

Για παράδειγμα, ένα σύστημα με eth0, eth1 και eth2 είναι όλα υποτελή σε μια διεπαφή bond0. Αυτή η διεπαφή, όταν ενεργοποιηθεί με τη λειτουργία bond 0, θα στείλει το πρώτο πακέτο έξω eth0, το δεύτερο πακέτο έξω eth1, το τρίτο πακέτο eth1, το τρίτο πακέτο eth0eth2 και μετά ξεκινήστε πάλι στο eth0 με το τέταρτο πακέτο. Εδώ η λειτουργία παίρνει το όνομά της «round-robin».

Bond Mode 1 – Active-Backup

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

Bond Mode 2 – Balance XOR

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

Bond Mode 3 – Μετάδοση

Σε αυτήν τη μέθοδο, η συσκευή bond θα μεταδίδει δεδομένα από όλες τις υποτελείς διεπαφές, εξ ου και το όνομα «μετάδοση» αυτής της συγκεκριμένης μεθόδου σύνδεσης. Υπάρχουν πολύ λίγες χρήσεις για αυτή τη μέθοδο, αλλά παρέχει ένα επίπεδο ανοχής σε σφάλματα.

Bond Mode 4 – 802.3ad

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

Bond Mode 5 – Εξισορρόπηση φορτίου μετάδοσης

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

Bond Mode 6 – Προσαρμοστική εξισορρόπηση φορτίου

Στο ALB το bond θα φορτώσει το υπόλοιπο παρόμοιο με το Bond Mode 5 αλλά με την προστιθέμενη δυνατότητα φόρτωσης του υπολοίπου λήψης επίσης.

Ανάλογα με το ρόλο που θα παίξει το σύστημα, η επιλογή της κατάλληλης μεθόδου δεσμού είναι επιτακτική. Αυτό το σεμινάριο θα γίνει στο Debian Jessie με δύο διεπαφές δικτύου (eth0 και eth1) και θα ρυθμιστεί για λειτουργία δεσμού 1< ή ενεργό αντίγραφο ασφαλείας.

Ωστόσο, είναι πολύ απλό να κάνετε εναλλαγή μεταξύ των διαφορετικών λειτουργιών, καθώς πρόκειται απλώς για μια αλλαγή στο αρχείο διεπαφών δικτύου (υποθέτοντας ότι η λειτουργία δεσμού 4 δεν επιλέγεται καθώς απαιτεί διαμόρφωση διακόπτη).

Διαμόρφωση ομάδας NIC

Το πρώτο βήμα σε αυτή τη διαδικασία είναι να αποκτήσετε το κατάλληλο λογισμικό από τα αποθετήρια. Το λογισμικό για το Debian είναι γνωστό ως ifenslave και μπορεί να εγκατασταθεί με το 'apt'.

# apt-get install ifenslave-2.6

Μόλις εγκατασταθεί το λογισμικό, θα πρέπει να πει στον πυρήνα να φορτώσει το bonding module τόσο για αυτήν την τρέχουσα εγκατάσταση όσο και για μελλοντικές επανεκκινήσεις. Για να φορτώσετε τη λειτουργική μονάδα αυτή τη φορά, το βοηθητικό πρόγραμμα «modprobe» μπορεί να χρησιμοποιηθεί για τη φόρτωση των λειτουργικών μονάδων πυρήνα.

# modprobe bonding

Και πάλι, για να διασφαλιστεί ότι αυτός ο δεσμός είναι ενεργός στις επανεκκινήσεις του συστήματος, το αρχείο ‘/etc/modules’ πρέπει να τροποποιηθεί για να ενημερώσει τον πυρήνα να φορτώσει τις μονάδες σύνδεσης κατά την εκκίνηση.

# echo 'bonding' >> /etc/modules 

Τώρα που ο πυρήνας έχει ενημερωθεί για τις απαραίτητες μονάδες για τη σύνδεση NIC, ήρθε η ώρα να δημιουργήσετε την πραγματική συνδεδεμένη διεπαφή. Αυτό γίνεται μέσω του αρχείου διεπαφών που βρίσκεται στη διεύθυνση ‘/etc/network/interfaces’ και είναι επεξεργάσιμο με οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου.

# nano /etc/network/interfaces

Αυτό το αρχείο περιέχει τις ρυθμίσεις διεπαφής δικτύου για όλες τις συσκευές δικτύου που έχει συνδέσει το σύστημα. Αυτό το παράδειγμα έχει δύο κάρτες δικτύου (eth0 και eth1). Σε αυτό το αρχείο θα πρέπει να δημιουργηθεί η κατάλληλη διεπαφή bond για την υποδούλωση των δύο φυσικών καρτών δικτύου σε μία λογική διεπαφή. Αυτό είναι ένα πολύ απλοϊκό αρχείο διεπαφών, αλλά κάνει ό,τι είναι απαραίτητο για να δημιουργήσει μια διεπαφή δεσμού εργασίας.

Η πρώτη στροφή (κόκκινο πλαίσιο παραπάνω) είναι η τυπική διαμόρφωση διεπαφής loopback. Το ‘auto lo’ ενημερώνει τον πυρήνα να φέρει τον προσαρμογέα αυτόματα κατά την εκκίνηση. Το iface lo inet loopback λέει στο σύστημα ότι αυτή η διεπαφή είναι η διεπαφή επαναφοράς του συστήματος ή πιο συχνά αναφέρεται ως 127.0.0.1.

Η δεύτερη στροφή (κίτρινο πλαίσιο παραπάνω) είναι η πραγματική διεπαφή δεσμού που θα χρησιμοποιηθεί. Το «auto bond0» λέει στο σύστημα να προετοιμάσει αυτόματα τη δέσμευση κατά την εκκίνηση του συστήματος. Το iface bond0 inet dhcp μπορεί να είναι προφανές, αλλά σε κάθε περίπτωση, αυτή η στροφή δηλώνει ότι η διεπαφή με το όνομα bond0 θα πρέπει να λάβει τις πληροφορίες του δικτύου της μέσω DHCP (Πρωτόκολλο Dynamic Host Control Protocol).

Το «bond-mode 1» είναι αυτό που χρησιμοποιείται για να προσδιοριστεί ποια λειτουργία δεσμού χρησιμοποιείται από τη συγκεκριμένη συνδεδεμένη διεπαφή. Σε αυτήν την περίπτωση, η λειτουργία bond-mode 1 υποδεικνύει ότι αυτή η σύνδεση είναι μια ενεργή εφεδρική ρύθμιση με την επιλογή «bond-primary» που υποδεικνύει την κύρια διεπαφή για χρήση του δεσμού. Το slaves eth0 eth1 δηλώνει ποιες φυσικές διεπαφές αποτελούν μέρος αυτής της συγκεκριμένης συνδεδεμένης διεπαφής.

Οι επόμενες δύο γραμμές είναι σημαντικές για τον προσδιορισμό του πότε ο δεσμός θα πρέπει να μεταβεί από την κύρια διεπαφή σε μία από τις εξαρτημένες διεπαφές σε περίπτωση αποτυχίας σύνδεσης. Το Miimon είναι μία από τις διαθέσιμες επιλογές για την παρακολούθηση της κατάστασης των συνδέσμων ομολόγων με την άλλη επιλογή να είναι η χρήση αιτημάτων arp.

Αυτός ο οδηγός θα χρησιμοποιεί miimon. Το ‘bond-miimon 100’ λέει στον πυρήνα να επιθεωρεί τη σύνδεση κάθε 100 ms. Το «bond-downdelay 400» σημαίνει ότι το σύστημα θα περιμένει 400 ms προτού καταλήξει στο συμπέρασμα ότι η τρέχουσα ενεργή διεπαφή είναι όντως εκτός λειτουργίας.

Το «bond-updelay 800» χρησιμοποιείται για να πει στο σύστημα να περιμένει χρησιμοποιώντας τη νέα ενεργή διεπαφή έως 800 ms μετά την εμφάνιση του συνδέσμου. Μια σημείωση σχετικά με την updelay και την downdelay, και οι δύο αυτές τιμές πρέπει να είναι πολλαπλάσια της τιμής miimon διαφορετικά το σύστημα θα στρογγυλοποιηθεί προς τα κάτω.