Μετάβαση στο περιεχόμενο
EuroVPSEuroVPS
Περιοχή πελατών

Πώς ένα fabric EVPN ξέρει πού βρίσκεται ο server σας

Μια πρακτική περιήγηση στους τύπους διαδρομών BGP EVPN, τα anycast gateways και το ingress replication, με τις εντολές show που χρησιμοποιεί ένας μηχανικός για να εντοπίσει έναν host.

Από EuroVPS Engineering

5 λεπτά ανάγνωσης
Πώς ένα fabric EVPN ξέρει πού βρίσκεται ο server σας

Ένα κλασικό switched δίκτυο βρίσκει έναν server φωνάζοντας: πλημμυρίζει το frame παντού, βλέπει ποιος απαντά, θυμάται την πόρτα. Ένα fabric BGP EVPN τον βρίσκει επειδή του το λένε. Αυτή η μία διαφορά εξηγεί γιατί τα fabrics EVPN κλιμακώνουν, κάνουν failover γρήγορα και μπορούν να ελεγχθούν, και αξίζει να την καταλάβετε ακόμα κι αν δεν ρυθμίσετε ποτέ ένα μόνοι σας.

Το πρόβλημα με το flood and learn

Το παραδοσιακό Layer 2 μαθαίνει διευθύνσεις MAC από την κίνηση. Όταν ένα switch δεν ξέρει πού ζει ένας προορισμός, πλημμυρίζει το frame από κάθε πόρτα στο VLAN. Το spanning tree μετά μπλοκάρει αρκετές συνδέσεις ώστε η πλημμύρα να μην κάνει βρόχο για πάντα, που σημαίνει ότι καλό μέρος της καλωδίωσης που πληρώσατε κάθεται αδρανές. Απλώστε αυτό το VLAN σε πολλά racks και παίρνετε μεγάλα failure domains, αργή σύγκλιση και ένα δίκτυο που κανείς δεν μπορεί να περιγράψει πλήρως, επειδή η κατάστασή του ζει σε πίνακες που γεμίζουν και λήγουν μόνοι τους.

Το VXLAN από μόνο του λύνει το πρόβλημα μεταφοράς: τυλίγει Ethernet frames σε UDP ώστε ένα τμήμα Layer 2 να μπορεί να περάσει ένα routed underlay με όλες τις συνδέσεις ενεργές. Αλλά το σκέτο VXLAN πλημμυρίζει ακόμα για να μάθει. Το EVPN αντικαθιστά αυτή τη μάθηση με ένα control plane.

Τι διαφημίζει πραγματικά το EVPN

Το EVPN είναι ένα address family του BGP. Κάθε leaf switch που φιλοξενεί servers λειτουργεί ως VXLAN tunnel endpoint (VTEP) και λέει στα άλλα leaves τι ξέρει, χρησιμοποιώντας έναν μικρό αριθμό τύπων διαδρομών. Τρεις από αυτούς κάνουν το περισσότερο της δουλειάς:

  • Τύπος 2, διαφήμιση MAC και IP. Όταν ένας server στείλει το πρώτο του frame ή ARP, το τοπικό leaf μαθαίνει τη MAC του (και συνήθως την IP του) και τη διαφημίζει σε κάθε άλλο leaf με τη δική του διεύθυνση VTEP ως next hop. Κάθε leaf τώρα ξέρει πού είναι αυτός ο server χωρίς ούτε μία πλημμύρα.
  • Τύπος 3, inclusive multicast. Κάθε leaf ανακοινώνει σε ποια τμήματα συμμετέχει. Αυτό χτίζει τη λίστα των VTEPs που πρέπει να λαμβάνουν broadcast και unknown κίνηση για κάθε τμήμα. Με ingress replication το leaf που στέλνει φτιάχνει ένα unicast αντίγραφο για καθένα από αυτά, οπότε το underlay δεν χρειάζεται καθόλου multicast.
  • Τύπος 5, IP prefix. Routed subnets, για παράδειγμα ένα block δημόσιων διευθύνσεων πίσω από firewall πελάτη, διαφημίζονται ως prefixes μέσα σε ένα tenant VRF.

Τα route targets αποφασίζουν ποιος εισάγει τι. Οι διαδρομές ενός τμήματος φέρουν το route target του, και μόνο τα leaves που είναι ρυθμισμένα με αυτό το target τις εισάγουν. Εδώ επιβάλλεται πραγματικά η απομόνωση των tenants, και γι' αυτό η αρίθμηση τμημάτων και route targets αξίζει πραγματική πειθαρχία (περισσότερα παρακάτω).

Anycast gateways: ο ίδιος router παντού

Σε ένα fabric EVPN κάθε leaf που μεταφέρει ένα τμήμα μπορεί να είναι το default gateway του, χρησιμοποιώντας την ίδια IP και την ίδια εικονική MAC. Το πρώτο hop ενός server είναι πάντα το switch στο οποίο είναι συνδεδεμένος. Αν αυτό το leaf αποτύχει, το bond του server κάνει failover στο άλλο leaf του ζεύγους, το οποίο ήδη απαντά στην ίδια διεύθυνση gateway και MAC. Τίποτα στον server δεν αλλάζει, κανένα πρωτόκολλο gateway δεν χρειάζεται να εκλέξει κανέναν, και οι φόρτοι εργασίας μπορούν να μετακινούνται ανάμεσα σε racks κρατώντας το gateway τους.

Σε συνδυασμό με ζεύγη leaves που τρέχουν virtual port-channels, αυτό δίνει σε κάθε host δύο φυσικά switches πίσω από ένα λογικό bond. Στο NX-OS ένα ελάχιστο anycast gateway μοιάζει έτσι:

fabric forwarding anycast-gateway-mac 0000.2222.3333
interface Vlan210
  vrf member TENANT-A
  ip address 192.0.2.1/26
  fabric forwarding mode anycast-gateway

Εντοπισμός ενός host: οι εντολές που μετράνε

Όταν κάτι δεν φτάνει εκεί που πρέπει, αυτές είναι οι εντολές με τις οποίες ξεκινάμε σε Cisco Nexus, περίπου με αυτή τη σειρά:

show nve peers                         ! are the other VTEPs up?
show nve vni                           ! is the segment up, control plane learning?
show l2route evpn mac all              ! which MACs are local, which are remote, and from which peer
show bgp l2vpn evpn <mac-or-ip>        ! the actual route, its RD, RT and next hop
show ip arp suppression-cache detail   ! is ARP being answered locally?
show vpc consistency-parameters vlans  ! do both leaves of the pair agree?

Η ιστορία που λένε αυτές είναι συνήθως σύντομη. Μια MAC που είναι τοπική σε ένα leaf αλλά δεν εμφανίζεται ποτέ στο BGP στα άλλα δείχνει στην τοπική μάθηση ή στη ρύθμιση του τμήματος. Μια διαδρομή που υπάρχει αλλά δεν εισάγεται δείχνει στα route targets. Ένα VTEP που λείπει από το show nve peers δείχνει στο underlay. Το να διαβάζετε την κατάσταση του fabric έτσι είναι δυνατό μόνο επειδή το EVPN κρατά αυτή την κατάσταση στο BGP, όπου είναι ορατή και συνεπής, αντί σε πίνακες που μαθεύτηκαν με πλημμύρα.

Η αρίθμηση είναι έλεγχος ασφάλειας

Κάθε τμήμα χρειάζεται ένα VXLAN network identifier (VNI) και route targets, και το fabric θα δεχτεί όποιον αριθμό πληκτρολογήσετε. Δύο τμήματα που κατά λάθος μοιράζονται έναν αναγνωριστικό γεφυρώνονται μεταξύ τους, σιωπηλά, και ένα λάθος πληκτρολογημένο VNI που τυχαίνει να ανήκει σε άλλο τμήμα φαίνεται απολύτως νόμιμο σε κάθε οθόνη.

Η άμυνα είναι ένας κανόνας και μια μηχανή που τον ελέγχει. Διαλέξτε μια σταθερή παραγωγή, για παράδειγμα VNI ίσον ένα σταθερό offset συν τον τοπικό αριθμό VLAN, με τα route targets να παράγονται από το VNI, και μετά επαληθεύστε το αυτόματα:

  • Διαβάστε τον χάρτη VLAN προς VNI από κάθε leaf σε πρόγραμμα.
  • Επιβεβαιώστε ότι κάθε εγγραφή υπακούει στον κανόνα.
  • Επιβεβαιώστε ότι κάθε leaf που πρέπει να μεταφέρει τα ίδια τμήματα έχει πανομοιότυπους χάρτες.
  • Συγκρίνετε ένα fingerprint ολόκληρου του χάρτη με μια υπογεγραμμένη γραμμή αναφοράς σε version control, ώστε μια σκόπιμη αλλαγή να χρειάζεται συνειδητή επανυπογραφή με συντάκτη, και μια ακούσια να ειδοποιεί έναν μηχανικό.

Τρέχουμε ακριβώς αυτόν τον έλεγχο στο fabric μας κάθε ώρα. Κοστίζει λίγα δευτερόλεπτα read-only πρόσβασης και μετατρέπει μια κατηγορία αόρατων λαθών σε συναγερμό.

Τι να ρωτήσετε για το δικό σας fabric

  • Είναι τα gateways σας anycast σε κάθε leaf, ή τα κατέχει ένα ζεύγος switches;
  • Είναι κάθε host dual-homed σε ζεύγος leaves, ή μόνο οι ακριβοί;
  • Κάνουν οι bonded hosts hash σε layer 3 και layer 4, με την πλευρά του switch να ταιριάζει, ώστε και οι δύο συνδέσεις να μεταφέρουν πραγματικά κίνηση;
  • Υπάρχει γραπτός κανόνας για την αρίθμηση VNI και route targets, και τον επιβάλλει κάτι;
  • Μπορεί ένας μηχανικός να σας δείξει, με εντολές σαν τις παραπάνω, ακριβώς πού ζει ο server σας και πώς η κίνησή του φεύγει από το rack;

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

CTA

Μιλήστε με έναν μηχανικό

Related

Σχετικά: Fabric του datacenter: EVPN/VXLAN σε Cisco Nexus · Πώς αλλάζουμε πράγματα: πειθαρχία αλλαγών δικτύου · Μεταφορά σε εμάς χωρίς αλλαγή διευθύνσεων: επέκταση Layer 2

Δημοσιεύθηκε 14 Αυγούστου 2026.

Όλες οι σημειώσεις