ΠΟΥΛΙ ή Κουάγκα;
IPv4 και IPv6
Σημαντική σημείωση
Αντιμετώπιση προβλημάτων
Η λειτουργικότητα του Vultr's Bring Your IP Space επιτρέπει άνευ προηγουμένου ελευθερία στην εκχώρηση των δικών σας πόρων IP σε διακομιστές στο νέφος Vultr. Γενικά συνιστούμε να χρησιμοποιείτε το BIRD για να ανακοινώσετε τον χώρο IP σας. Υπάρχουν μερικές σταθερές εναλλακτικές λύσεις για το BIRD σε περίπτωση που δεν μπορείτε να πετύχετε κάτι με το BIRD (αν και αυτό είναι πολύ σπάνιο) ή απλά θέλετε να χρησιμοποιήσετε άλλο λογισμικό.
Λόγω των διοικητικών και τεχνικών επιβαρύνσεων, αποθαρρύνουμε ιδιαίτερα τη χρήση του BIRD και του Quagga (ή οποιουδήποτε άλλου λογισμικού για αυτό το θέμα) στην ίδια υποδομή ή/και δίκτυο. Λάβετε υπόψη ότι η ακόλουθη διαμόρφωση θα σας δώσει ένα SPOF, καθώς το παράδειγμα που ανακοινώνει το επικαλυπτόμενο υποδίκτυό σας δεν είναι περιττό. Θα πρέπει να σημειώσετε, ωστόσο, ότι το Vultr έχει πολλούς δρομολογητές BGP σε κάθε rack.
Αν και αυτός ο οδηγός έχει γραφτεί με γνώμονα το CentOS 7 και έχει δοκιμαστεί μόνο σε αυτήν την έκδοση CentOS, πιθανότατα θα λειτουργήσει και σε παλαιότερες εκδόσεις όπως το CentOS 6. Ωστόσο, φυσικά, αποθαρρύνουμε έντονα τη χρήση απαρχαιωμένου λογισμικού και συνιστούμε ανεπιφύλακτα την ενημέρωση σε μια νεότερη, πιο πρόσφατη (και υποστηριζόμενη) έκδοση όπως το CentOS 7.
Δεν υπάρχει πρακτικό όριο για την ποσότητα των υποδικτύων ή το μέγεθός τους που μπορείτε να ανακοινώσετε από μία περίπτωση που εκτελεί το Quagga (ή οποιονδήποτε δρομολογητή BGP για αυτό το θέμα), αν και σε οποιαδήποτε τοπολογία δικτύου θα πρέπει να έχετε κάποιο είδος διασποράς κινδύνου. Αυτό σημαίνει ότι θα πρέπει να δημιουργήσετε είτε μια περιττή εγκατάσταση είτε να ανακοινώσετε διαφορετικά υποδίκτυα από διαφορετικούς διακομιστές ακολουθώντας τον παρακάτω οδηγό σε πολλούς διακομιστές.
Για να ακολουθήσετε αυτόν τον οδηγό, θα χρειαστείτε:
- Το ASN που θέλετε / πρέπει να χρησιμοποιήσετε.
- Ο χώρος IP (υποδίκτυο) που θέλετε να ανακοινώσετε.
- Το BGP ενεργοποιήθηκε στον λογαριασμό σας Vultr
ΠΟΥΛΙ ή Κουάγκα;
Για αρχή, η επιλογή μεταξύ BIRD ή Quagga μπορεί να είναι πολύ δύσκολη. Και τα δύο είναι γνωστά και έχουν αποδειχθεί πολύ σταθερά και στιβαρά για πολλές περιπτώσεις χρήσης, συμπεριλαμβανομένων περιβαλλόντων και υποδομών υψηλής επισκεψιμότητας όπου η αξιοπιστία παίζει βασικό ρόλο. Η κύρια διαφορά μεταξύ του BIRD και του Quagga είναι ότι η διαμόρφωση του BIRD διαχωρίζεται από τον δαίμονα και διακρίνεται περισσότερο σε μια δομή που μοιάζει με κώδικα.
Για παράδειγμα, με το BIRD, εάν θέλετε να επιτύχετε μια ρύθμιση ανακατεύθυνσης, θα χρησιμοποιήσετε το ακόλουθο μπλοκ στο bird.confαρχείο διαμόρφωσης:
export filter {
bgp_path.prepend(asnumber);
accept;
};
Όπως μπορείτε να δείτε, η διαμόρφωση μοιάζει κάπως με ένα μπλοκ κώδικα όπως θα εμφανιζόταν με μια γλώσσα προγραμματισμού. Με το Quagga, θα προσέθετε ή θα αλλάζατε ρυθμίσεις χρησιμοποιώντας ένα πρόγραμμα στον ίδιο τον δαίμονα.
Στο τέλος εξαρτάται κυρίως από τις προσωπικές προτιμήσεις και δεν υπάρχει «νικητής» ή λογισμικό που πρέπει να χρησιμοποιήσετε. Γενικά, το BIRD είναι πιο εύκολο στη ρύθμιση λόγω του εύκολου στην εκμάθηση τρόπου διαμόρφωσης του και υποστηρίζεται ευρέως από την κοινότητα.
Επιπλέον, υπέρ του Quagga, γενικά, σε ένα λειτουργικό περιβάλλον παραγωγής, το Quagga είναι ευκολότερο να διαμορφωθεί ξανά. Με το BIRD, θα χρειαστεί να επεξεργαστείτε τα κατάλληλα αρχεία διαμόρφωσης και να φορτώσετε ξανά τις ρυθμίσεις του δαίμονα. Με το Quagga, μπορείτε να εισαγάγετε το κέλυφός του, να διαμορφώσετε εκ νέου τις ρυθμίσεις χωρίς υπερβολική εργασία ή φασαρία. Η συνέχεια παίζει μεγάλο ρόλο εδώ, αλλά στην πράξη, τα γενικά έξοδα είναι ελάχιστα. Στις περισσότερες υποδομές, δεν θα χρειαστεί να επαναδιαμορφώσετε αυτές τις ρυθμίσεις πάρα πολύ, επομένως είναι πιθανώς καλή ιδέα να κρίνουμε από άλλες πτυχές του λογισμικού και όχι μόνο από αυτές τις λεπτομέρειες.
Ακριβώς όπως το BIRD, το Quagga είναι πολλαπλά συμβατό σε πολλαπλές διανομές. Εάν θελήσετε ποτέ να αλλάξετε τη διανομή(ες) που χρησιμοποιούνται για τους δρομολογητές, θεωρητικά θα μπορούσατε απλώς να μετακινηθείτε πάνω από τις διαμορφώσεις σας και τίποτα δεν θα πρέπει να αλλάξει ή να αλλάξει.
Σε αυτόν τον οδηγό, θα περιγράψουμε τη διαδικασία εγκατάστασης και διαμόρφωσης του Quagga. Σε περίπτωση που θέλετε να δοκιμάσετε και το BIRD, δοκιμάστε να ακολουθήσετε τον οδηγό " Διαμόρφωση BGP στο Vultr ".
Όπως αναφέρθηκε, υπάρχουν μερικές καλές άλλες εναλλακτικές λύσεις εκεί έξω, αλλά το μεγαλύτερο μέρος αυτών έχει κάποια ελαττώματα, που τις εμποδίζουν να χρησιμοποιηθούν σε περιβάλλον παραγωγής. Για παράδειγμα, η εφαρμογή BGP της XORP είναι σχετικά ξεπερασμένη, κάτι που γενικά δεν είναι μια καλή αρχή για τη δημιουργία μιας ολοκαίνουργιας υποδομής (αν και η εφαρμογή της BGP είναι σταθερή).
Σε σύγκριση με πολλές εναλλακτικές λύσεις, το BIRD έχει χαμηλό αποτύπωμα μνήμης και δεν απαιτεί πολύ πόρους. Από την άλλη πλευρά, η περιστροφή ή η αναβάθμιση σε μια πιο ισχυρή παρουσία του νέφους Vultr χρειάζονται μόνο μερικά κλικ από τον πίνακα ελέγχου του Vultr.
IPv4 και IPv6
Το Vultr υποστηρίζει την ανακοίνωση χώρου IP και IPv4 και IPv6. Η εφαρμογή BGP της Quagga είναι σχετικά ενημερωμένη, επιτρέποντας επίσης τη δυνατότητα ανακοίνωσης χώρου IPv6.
Αν και αυτός ο οδηγός στοχεύει στην ανακοίνωση του χώρου IPv4, θα μπορούσατε να χρησιμοποιήσετε την υλοποίηση IPv6 της Quagga και να χρησιμοποιήσετε τις οδηγίες αυτού του άρθρου. Ωστόσο, αυτό δεν τεκμηριώνεται ρητά, επομένως ανατρέξτε σε μια εναλλακτική πηγή για αυτό.
Σημαντική σημείωση
Για να μπορέσετε να επιβιώσετε χωρίς δρομολογητή BGP για τη διέλευση της κυκλοφορίας, ο καλύτερος τρόπος για να ανακοινώσετε τον χώρο IP σας είναι ο εξής:
- Ανακοινώστε το /24 (ή μεγαλύτερο) σας από μια αποκλειστική παρουσία Quagga.
- Ανακοινώστε μεμονωμένα /32 (ή μεγαλύτερα) από τις περιπτώσεις που η κυκλοφορία θα πρέπει να δρομολογηθεί στον εαυτό τους
Με αυτόν τον τρόπο, θα έχετε μια ρύθμιση παρουσίας για να ανακοινώσετε το επικαλυπτόμενο υποδίκτυο για όλες τις IP που σπάζετε σε μεμονωμένες /32 ή μεγαλύτερες. Χρησιμοποιώντας αυτό το σχέδιο, μπορείτε να ανακοινώνετε γρήγορα IP και να δρομολογείτε την κυκλοφορία στις σωστές παρουσίες.
Φυσικά, είστε ελεύθεροι να πειραματιστείτε με πολλαπλές προσεγγίσεις για να ανακοινώσετε τον χώρο IP σύμφωνα με τις προτιμήσεις σας. Θεωρητικά η χρήση είναι απεριόριστη και δεν γνωρίζει όρια. Σημειώστε ότι οι διακομιστές του Vultr είναι αυτοδιαχειριζόμενοι και δεν μπορούμε να σας βοηθήσουμε με τυχόν προβλήματα που μπορεί να προκύψουν. Πέρα από αυτό, δεν είναι κακό να χρησιμοποιήσετε μια λύση που υποστηρίζεται από το Vultr και την κοινότητα, οπότε αν προκύψουν προβλήματα, μπορείτε να εντοπίσετε γρήγορα τη βασική τους αιτία.
Βήμα 1: Απενεργοποίηση SELinux
Συνιστούμε ανεπιφύλακτα να απενεργοποιήσετε το SELinux για να αποτρέψετε τη λειτουργία του Quagga. Έχουμε έναν οδηγό για την απενεργοποίηση του SELinux, ακολουθήστε τον και επιστρέψτε σε αυτόν τον οδηγό μετά την απενεργοποίηση του SELinux : Απενεργοποίηση του SELinux στο CentOS 7 .
Βήμα 2: Εγκατάσταση του Quagga
Μπορούμε να προχωρήσουμε εγκαθιστώντας το Quagga χρησιμοποιώντας yum:
yum install quagga
Εάν λάβετε ένα σφάλμα, ειδικά σε μια νέα παρουσία, δοκιμάστε:
yum update
Ρυθμίστε τις παραμέτρους systemdώστε το Zebra (ο βασικός δαίμονας) να ξεκινά αυτόματα κατά την εκκίνηση:
systemctl enable zebra
Τέλος, ξεκινήστε το Zebra:
systemctl start zebra
Πρέπει να επαναλάβουμε τη διαδικασία για το BGPd, ως εξής:
systemctl start bgpd
systemctl enable bgpd
Zebra και BGPd
Το Quagga αποτελείται από μια ποικιλία δαιμόνων που επιτρέπουν τη δρομολόγηση. Καθώς θα κάνουμε χρήση του BGP, θα χρειαστεί να χρησιμοποιήσουμε τους δαίμονες Zebra και BGPd. Η Zebra και η BGPd συνεργάζονται. Όταν κάποιο από αυτά σταματήσει να λειτουργεί, οι διαδρομές σας δεν θα διαφημίζονται πλέον, καθιστώντας ουσιαστικά ολόκληρο τον χώρο IP σας μη διαθέσιμο.
Το Quagga υποστηρίζει πολλαπλά πρωτόκολλα δρομολόγησης, μεταξύ άλλων OSPF και BGP. Ο πυρήνας της τοπολογίας των υλοποιήσεών τους είναι το Zebra. Το Zebra είναι ο πυρήνας δαίμονας, ο οποίος είναι ένα επίπεδο που φροντίζει την επικοινωνία του πυρήνα του UNIX (TCP) με τους πελάτες Quagga. Στο backend η Zebra παρουσιάζει το Zserv API, το οποίο επιτρέπει σε αυτά τα πρωτόκολλα δρομολόγησης να επικοινωνούν ενημερώσεις δρομολόγησης. Μία από τις υλοποιήσεις με το Zserv API είναι το BGP.
Η προεπιλεγμένη έκδοση που χρησιμοποιείται από την Quagga για BGP είναι η BGPv4+, η οποία περιλαμβάνει υποστήριξη οικογένειας διευθύνσεων για multicast και IPv6.
Βήμα 3: Διαμόρφωση του δρομολογητή BGP
Για να διαμορφώσουμε τον δρομολογητή BGP σύμφωνα με τις προτιμήσεις σας, θα χρησιμοποιήσουμε το vtyshκέλυφος. Αρχικά, αντιγράψτε το δείγμα αρχείου διαμόρφωσης BGP:
cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf
Αφού αντιγραφεί το αρχείο, εισαγάγετε το κέλυφος:
vtysh
Σε ορισμένες παλαιότερες εκδόσεις Quagga μπορεί να βρείτε μια ρύθμιση με AS7675. Δεν το χρειαζόμαστε, καθώς θα έρχεται σε διένεξη μόνο με τις ρυθμίσεις μας, επομένως πρέπει να το διαγράψουμε εάν υπάρχει. Ελέγξτε εάν αυτή η διαμόρφωση υπάρχει στην εγκατάσταση του Quagga, εκτελώντας την ακόλουθη εντολή μέσα στο κέλυφος :
show running-config
Εάν αυτό επιστρέφει μια συμβολοσειρά με ή συμπεριλαμβανομένου του "router bgp 7675", διαγράψτε το εκτελώντας:
configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization
Θα πρέπει τώρα να εισαγάγετε τις πληροφορίες BGP που σας έχει δώσει η Vultr.
neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"
Πιθανότατα, χρειάζεστε έναν κωδικό πρόσβασης για να δημιουργήσετε τη συνεδρία BGP. Εισαγάγετε το:
neighbor NEIGHBORIP password YOURBGPPASSWORD
exit
Τέλος, εάν είστε βέβαιοι ότι θέλετε να γράψετε αυτές τις αλλαγές (ισχύει μόνο εάν εργάζεστε σε μια ρύθμιση παραγωγής), εκτελέστε τα εξής για να ισχύσουν οι αλλαγές:
write
Βεβαιωθείτε ότι οι αλλαγές ήταν επιτυχείς εκτελώντας:
show ip bgp summary
Θα έπρεπε τώρα να έχουμε δημιουργήσει με επιτυχία μια συνεδρία BGP.
Βήμα 4: Ανακοίνωση του χώρου IP σας
Παρόλο που έχουμε δημιουργήσει μια περίοδο λειτουργίας BGP, δεν ανακοινώνουμε ακόμη διαδρομές ή διευθύνσεις IP, επομένως αυτό δεν θα έχει καμία επίδραση στην πράξη. Ευτυχώς, η ρύθμιση του χώρου IP για ανακοίνωση είναι μια σχετικά εύκολη διαδικασία.
Στο vtysh, εκτελέστε τις ακόλουθες εντολές για να το πετύχετε:
configure terminal
router bgp YOURAS
Είστε τώρα στη διαμόρφωση. Βεβαιωθείτε ότι έχετε διαθέσιμο τον χώρο IP που θέλετε να ανακοινώσετε και εισαγάγετε τον:
network YOURSUBNET/CIDR
Για παράδειγμα, η έγκυρη είσοδος θα ήταν:
network 185.92.220.0/23
Φυσικά, αυτό δεν θα λειτουργήσει στη συγκεκριμένη ρύθμιση, καθώς ο παραπάνω χώρος IP ανήκει στο Vultr. Αντικαταστήστε το και όλα θα λειτουργήσουν καλά.
Βγείτε και αποθηκεύστε τις αλλαγές:
exit
write
Ελέγξτε εάν τα προθέματά σας έχουν ανακοινωθεί με επιτυχία:
show ip bgp neighbors NEIGHBORIP advertised-routes
Προσπαθήστε να κάνετε ping σε μια διεύθυνση IP από το υποδίκτυο και προσπαθήστε να εκτελέσετε μια ιχνηλάτηση εκτός του δικτύου.
Αντιμετώπιση προβλημάτων
Η αντιμετώπιση προβλημάτων του Quagga βρίσκεται σε μεγάλο βαθμό εκτός του πεδίου αυτού του άρθρου, αλλά εάν αντιμετωπίζετε δυσκολίες, θα μπορούσατε πάντα να προσπαθήσετε να διακόψετε την παρουσία του Quagga και να προσπαθήσετε να ανακοινώσετε ξανά τον χώρο IP μέσω του BIRD για να μπορέσετε να εξαιρέσετε μια σειρά από πιθανές αιτίες.
Όταν το BGP δεν λειτουργεί σωστά στο Quagga καθώς και στο BIRD, υπάρχει πιθανότητα το τείχος προστασίας σας να μην έχει ρυθμιστεί σωστά. Η θύρα 179 θα πρέπει να είναι ανοιχτή. Στο CentOS 7, προσπαθήστε να απενεργοποιήσετε προσωρινά το τείχος προστασίας:
systemctl stop firewalld
Εάν χρησιμοποιείτε iptables, δοκιμάστε:
service iptables stop
Στη συνέχεια, προσπαθήστε να ξεκινήσετε ξανά τη συνεδρία BGP. Εάν κολλάει στο "Idle", "Connect" ή "Active", υπάρχει πιθανότητα η θύρα να είναι ακόμα μπλοκαρισμένη. Με την κατάσταση "Εγκαταστάθηκε", η συνεδρία BGP έχει ρυθμιστεί με επιτυχία και εμφανίζονται οι διαφημισμένες διαδρομές.
Το Quagga έχει πλέον εγκατασταθεί στον διακομιστή σας και θα πρέπει να λειτουργεί. Κατά τις πρώτες ημέρες από την ανακοίνωση του δικού σας χώρου IP, θα πρέπει να παρακολουθείτε τη λειτουργικότητά του για να αποτρέψετε τη μη λειτουργία ολόκληρης της υποδομής σας.
Αυτό ολοκληρώνει το σεμινάριο Quagga, σας ευχαριστούμε που διαβάσατε. Για να μάθετε περισσότερα σχετικά με τη λειτουργία Bring Your IP Space του Vultr, μεταβείτε στη σελίδα BGP .