Το αίτημα φτάνει ως αλλαγή μιας γραμμής: κάνε blackhole μία διεύθυνση. Προσθέτεις μια διαδρομή host προς Null0 μέσα στο context του tenant, το πρόθεμα εξαφανίζεται από τον τοπικό πίνακα όπως αναμενόταν και τότε αρχίζουν οι ερωτήσεις. Έφυγε η διαδρομή από τη συσκευή; Απέρριψαν τα απομακρυσμένα VTEP ή απλώς έχασαν τη δυνατότητα πρόσβασης; Επηρεάζεται τώρα ένας δεύτερος tenant;

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

Τι πρέπει πραγματικά να παραγάγει η αλλαγή

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

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

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

Η τοπική δήλωση κάνει μόνο το πρώτο μέρος

Για NX-OS στη σειρά 10.4(x), η null route βρίσκεται μέσα στο context VRF του tenant και όχι σε μία εντολή που ονομάζει το VRF. Το απόσπασμα είναι σύντομο και σίγουρα δεν είναι πλήρης διαμόρφωση EVPN.

vrf context TENANT_A
  ip route 192.0.2.10/32 Null0

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

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

Η τοπική απόρριψη επηρεάζει και νόμιμη κίνηση προς τον ίδιο προορισμό. Αν η πρόθεση είναι να σταματήσεις μία καταχρηστική πηγή ενώ οι πραγματικοί χρήστες εξακολουθούν να χρειάζονται τη διεύθυνση, η null route είναι το λάθος εργαλείο και θα το μάθεις από το πρώτο τηλεφώνημα υποστήριξης.

Εξαγωγή και εισαγωγή είναι ξεχωριστές συμφωνίες

Η αναδιανομή είναι εκεί όπου αποφασίζεται το εύρος. Περιόρισε τα κατάλληλα προθέματα στο εγκεκριμένο μέτρο, κράτησέ το μέσα στον tenant και περιόρισε τους peers προέλευσης σε εκείνους του σχεδίου. Το να αναδιανέμεις κάθε στατική διαδρομή επειδή μία επισημασμένη διαδρομή host πρέπει να ταξιδέψει είναι ο τρόπος με τον οποίο μια αλλαγή συντήρησης γίνεται συμβάν δρομολόγησης.

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

Η πλευρά που λαμβάνει χρειάζεται τη δική της διαμόρφωση. Στο NX-OS, οι null routes τύπου 5 απαιτούν επεξεργασία route-map στο VTEP για να επιλεγεί η συμπεριφορά απόρριψης, κάτι που τεκμηριώνεται μαζί με τα βήματα εξαγωγής. Μια συσκευή αποστολής που σημαίνει σωστά και ένας δέκτης που αγνοεί τη σήμανση παράγουν μια αλλαγή που φαίνεται εφαρμοσμένη και προωθεί την κίνηση παρ’ όλα αυτά.

Έλεγξε το route-map για παρενέργειες όσο βρίσκεσαι εκεί. Μια νέα περιοριστική πολιτική μπορεί να καταστείλει νόμιμη προσβασιμότητα για άσχετα προθέματα, και αυτή η ζημιά εμφανίζεται αργότερα από το blackhole και είναι δυσκολότερο να αποδοθεί σε αυτό.

Γράψε την απόσυρση πριν την εισαγωγή

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

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

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

Αποδέξου με στοιχεία, όχι με την έξοδο της εντολής

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

Στη συνέχεια απέσυρε και επαλήθευσε ότι η κανονική διαδρομή και η υπηρεσία επιστρέφουν. Ο οδηγός null route του NX-OS EVPN για την έκδοση 10.4(x) τεκμηριώνει τη σήμανση, την αναδιανομή και την πολιτική λήψης που περιγράφονται εδώ, και είναι η αναφορά με την οποία πρέπει να συγκρίνεις τη δική σου έκδοση.

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