Οι συνεδρίες παραμένουν ενεργές, το IGP είναι σταθερό και όμως μερικές διαδρομές L2VPN δεν εμφανίζονται ποτέ σε δύο από τις τέσσερις άκρες παρόχου. Αυτό το μοτίβο ανήκει σε πρόβλημα ανάκλασης και όχι μεταφοράς, επειδή μια σπασμένη συνεδρία αποτυγχάνει ολοσχερώς, ενώ ένα επαναχρησιμοποιημένο όριο ανάκλασης αποτυγχάνει επιλεκτικά. Ο φυσικός δακτύλιος δεν έχει καμία σχέση· το λογικό γράφημα κατανομής είναι το σημείο όπου σταμάτησαν αυτές οι διαδρομές. Η εύρεση αυτού του σημείου δεν απαιτεί ανοικοδόμηση του επιπέδου ελέγχου.

Η απώλεια είναι επιλεκτική, κάτι που περιορίζει την αναζήτηση

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

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

Τι αλλάζει πραγματικά η ανάκλαση

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

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

Τα επαναχρησιμοποιημένα αναγνωριστικά συμπλέγματος είναι ο τρόπος με τον οποίο εξαφανίζονται οι διαδρομές

Ένα μικρό δίκτυο προσκαλεί σε μια συντόμευση: δώστε σε κάθε δρομολογητή αναγνωριστικό συμπλέγματος ίσο με το loopback του, προσθέστε αργότερα άλλον έναν ανακλαστήρα και επαναχρησιμοποιήστε ένα υπάρχον loopback επειδή είναι βολικά διαθέσιμο. Αν αυτό το αναγνωριστικό εμφανιστεί τώρα σε δύο ανεξάρτητα στάδια ανάκλασης, το δεύτερο στάδιο βλέπει το δικό του ID στο CLUSTER_LIST και απορρίπτει τη διαδρομή. Τίποτα δεν καταγράφει σφάλμα, γιατί η απόρριψη είναι η σωστή απάντηση σε έναν βρόχο.

Οι πλεονάζοντες ανακλαστήρες που εξυπηρετούν ένα σύμπλεγμα είναι η νόμιμη εξαίρεση: μοιράζονται σκόπιμα ένα ID ώστε οποιοσδήποτε από τους δύο να μπορεί να εξυπηρετεί τους ίδιους πελάτες. Το αναγνωριστικό πρέπει να ταιριάζει με τον σχεδιασμό ανάκλασης και όχι να ξεχωρίζει ονόματα σασί.

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

Αντισταθείτε στον πειρασμό να κάνετε κάθε γείτονα πελάτη

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

Ένα μικρό δίκτυο συνήθως χρειάζεται μία από δύο μορφές. Ένα πλήρες πλέγμα iBGP είναι έξι συνεδρίες για τέσσερις δρομολογητές χωρίς καμία ανάκλαση, και ένα καθορισμένο ζεύγος ανακλαστήρων που εξυπηρετεί τις υπόλοιπες άκρες είναι η άλλη. Και οι δύο είναι ευκολότερο να τις σκεφτεί κανείς από ένα μερικό πλέγμα όπου κάθε δρομολογητής ανακλά λίγο. Διαλέξτε τη μορφή με βάση την κλίμακα και τη συμπεριφορά αστοχίας, όχι το διάγραμμα καλωδίωσης.

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

Μια συνεδρία TCP στη θύρα 179 αποδεικνύει ότι οι δύο ομιλητές μπορούν να μιλήσουν και τίποτα για το αν η οικογένεια διευθύνσεων VPN αντάλλαξε έστω μία διαδρομή. Καθορίστε την κατάσταση της συνεδρίας, μετά την οικογένεια και μετά το μεμονωμένο πρόθεμα.

vtysh -c "show bgp summary"
vtysh -c "show bgp l2vpn evpn summary"
vtysh -c "show bgp l2vpn evpn"

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

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

Σχετικά άρθρα