Πώς λειτουργεί το BGP

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

Τι είναι λοιπόν το BGP; Το BGP είναι ένα δυναμικό πρωτόκολλο δρομολόγησης και είναι το μόνο πρωτόκολλο EGP (External Gateway Protocol). Αυτό το πρωτόκολλο χρησιμοποιείται για τη δημιουργία δρομολόγησης στο Διαδίκτυο. Ας δούμε πώς χτίζεται μια γειτονιά μεταξύ δύο δρομολογητών BGP.

Πώς λειτουργεί το BGP
Εξετάστε τη γειτονιά μεταξύ του Router1 και του Router3. Ας τις διαμορφώσουμε χρησιμοποιώντας τις παρακάτω εντολές:

router bgp 10
  network 192.168.12.0
  network 192.168.13.0
  neighbor 192.168.13.3 remote-as 10

router bgp 10
  network 192.168.13.0
  network 192.168.24.0
  neighbor 192.168.13.1 remote-as 10

Η γειτονιά σε ένα ενιαίο αυτόνομο σύστημα είναι AS 10. Μετά την εισαγωγή πληροφοριών σε έναν δρομολογητή, όπως ο Router1, αυτός ο δρομολογητής επιχειρεί να δημιουργήσει μια σχέση γειτνίασης με το Router3. Η αρχική κατάσταση όταν δεν συμβαίνει τίποτα ονομάζεται Idle. Μόλις το bgp ρυθμιστεί στο Router1, θα αρχίσει να ακούει τη θύρα TCP 179 - θα μεταβεί στην κατάσταση Connect, και όταν προσπαθήσει να ανοίξει μια περίοδο λειτουργίας με το Router3, θα μεταβεί στην κατάσταση Ενεργή.

Μετά τη δημιουργία της συνεδρίας μεταξύ του Router1 και του Router3, ανταλλάσσονται μηνύματα Open. Όταν αυτό το μήνυμα αποσταλεί από το Router1, θα καλείται αυτή η κατάσταση Άνοιγμα Απεσταλμένα. Και όταν λάβει ένα μήνυμα Open από το Router3, θα μεταβεί στην κατάσταση Ανοίξτε την Επιβεβαίωση. Ας ρίξουμε μια πιο προσεκτική ματιά στο μήνυμα Open:

Πώς λειτουργεί το BGP
Αυτό το μήνυμα μεταφέρει πληροφορίες σχετικά με το ίδιο το πρωτόκολλο BGP, το οποίο χρησιμοποιεί ο δρομολογητής. Με την ανταλλαγή μηνυμάτων Open, ο Router1 και ο Router3 επικοινωνούν μεταξύ τους πληροφορίες σχετικά με τις ρυθμίσεις τους. Μεταβιβάζονται οι ακόλουθες παράμετροι:

  • Εκδοχή: περιλαμβάνει την έκδοση BGP που χρησιμοποιεί ο δρομολογητής. Η τρέχουσα έκδοση του BGP είναι η έκδοση 4 η οποία περιγράφεται στο RFC 4271. Δύο δρομολογητές BGP θα προσπαθήσουν να διαπραγματευτούν μια συμβατή έκδοση, όταν υπάρχει αναντιστοιχία τότε δεν θα υπάρχει περίοδος λειτουργίας BGP.
  • Το AS μου: περιλαμβάνει τον αριθμό AS του δρομολογητή BGP, οι δρομολογητές θα πρέπει να συμφωνήσουν για τους αριθμούς AS και ορίζει επίσης εάν θα εκτελούν iBGP ή eBGP.
  • Κρατήστε το χρόνο: εάν το BGP δεν λάβει μηνύματα διατήρησης ή ενημέρωσης από την άλλη πλευρά για τη διάρκεια του χρόνου αναμονής, τότε θα δηλώσει την άλλη πλευρά "νεκρή" και θα καταργήσει τη συνεδρία BGP. Από προεπιλογή, ο χρόνος αναμονής έχει οριστεί στα 180 δευτερόλεπτα στους δρομολογητές Cisco IOS, το μήνυμα διατήρησης αποστέλλεται κάθε 60 δευτερόλεπτα. Και οι δύο δρομολογητές πρέπει να συμφωνήσουν για το χρόνο αναμονής, διαφορετικά δεν θα υπάρξει περίοδος λειτουργίας BGP.
  • Αναγνωριστικό BGP: αυτό είναι το τοπικό αναγνωριστικό δρομολογητή BGP που επιλέγεται ακριβώς όπως το OSPF:
    • Χρησιμοποιήστε το αναγνωριστικό δρομολογητή που διαμορφώθηκε με μη αυτόματο τρόπο με την εντολή bgp router-id.
    • Χρησιμοποιήστε την υψηλότερη διεύθυνση IP σε μια διεπαφή loopback.
    • Χρησιμοποιήστε την υψηλότερη διεύθυνση IP σε μια φυσική διεπαφή.
  • Προαιρετικές Παράμετροι: εδώ θα βρείτε ορισμένες προαιρετικές δυνατότητες του δρομολογητή BGP. Αυτό το πεδίο έχει προστεθεί ώστε να μπορούν να προστεθούν νέες δυνατότητες στο BGP χωρίς να χρειάζεται να δημιουργήσετε μια νέα έκδοση. Τα πράγματα που μπορείτε να βρείτε εδώ είναι:
    • υποστήριξη για MP-BGP (Multi Protocol BGP).
    • υποστήριξη για Ανανέωση διαδρομής.
    • υποστήριξη για αριθμούς AS 4 οκτάδων.

Για να δημιουργηθεί μια γειτονιά, πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις:

  • Αριθμός έκδοσης. Η τρέχουσα έκδοση είναι 4.
  • Ο αριθμός AS πρέπει να ταιριάζει με αυτό που έχετε διαμορφώσει γείτονας 192.168.13.3 remote-as 10.
  • Το αναγνωριστικό δρομολογητή πρέπει να είναι διαφορετικό από το γείτονα.

Εάν κάποια από τις παραμέτρους δεν πληροί αυτές τις προϋποθέσεις, ο δρομολογητής θα στείλει Κοινοποίηση μήνυμα που υποδεικνύει το σφάλμα. Μετά την αποστολή και λήψη μηνυμάτων Open, η σχέση γειτονιάς μπαίνει στην κατάσταση ΚΑΘΙΕΡΩΜΕΝΟΣ. Μετά από αυτό, οι δρομολογητές μπορούν να ανταλλάσσουν πληροφορίες σχετικά με διαδρομές και να το κάνουν χρησιμοποιώντας Ενημέρωση μηνύματα. Αυτό είναι το μήνυμα ενημέρωσης που στάλθηκε από το Router1 στο Router3:

Πώς λειτουργεί το BGP

Εδώ μπορείτε να δείτε τα δίκτυα που αναφέρονται από τα χαρακτηριστικά Router1 και Path, τα οποία είναι ανάλογα με τις μετρήσεις. Θα μιλήσουμε για τα χαρακτηριστικά της διαδρομής με περισσότερες λεπτομέρειες. Τα μηνύματα Keepalive αποστέλλονται επίσης σε μια περίοδο λειτουργίας TCP. Μεταδίδονται, από προεπιλογή, κάθε 60 δευτερόλεπτα. Αυτό είναι ένα χρονόμετρο Keepalive. Εάν δεν ληφθεί μήνυμα Keepalive κατά τη διάρκεια του χρονοδιακόπτη αναμονής, αυτό θα σημαίνει απώλεια επικοινωνίας με τον γείτονα. Από προεπιλογή, είναι ίσο με 180 δευτερόλεπτα.

Χρήσιμο σημάδι:

Πώς λειτουργεί το BGP

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

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

Αναζητήστε μια διαδρομή στον τρέχοντα πίνακα δρομολόγησης IP του δρομολογητή που ταιριάζει ακριβώς με τις παραμέτρους της εντολής δικτύου. Εάν υπάρχει η διαδρομή IP, βάλτε το αντίστοιχο NLRI στον τοπικό πίνακα BGP.

Τώρα ας αυξήσουμε το BGP σε όλα τα υπόλοιπα και ας δούμε πώς επιλέγεται η διαδρομή σε ένα AS. Αφού ο δρομολογητής BGP λάβει διαδρομές από τον γείτονά του, αρχίζει να επιλέγει τη βέλτιστη διαδρομή. Εδώ πρέπει να καταλάβετε τι είδους γείτονες μπορεί να υπάρχουν - εσωτερικούς και εξωτερικούς. Καταλαβαίνει ο δρομολογητής από τη διαμόρφωση εάν ο διαμορφωμένος γείτονας είναι εσωτερικός ή εξωτερικός; Αν σε ομάδα:

neighbor 192.168.13.3 remote-as 10 

η παράμετρος remote-as καθορίζει το AS, το οποίο έχει ρυθμιστεί στον ίδιο τον δρομολογητή στην εντολή bgp 10 του δρομολογητή. Οι διαδρομές που προέρχονται από το εσωτερικό AS θεωρούνται εσωτερικές και οι διαδρομές από το εξωτερικό AS θεωρούνται εξωτερικές. Και για τον καθένα λειτουργεί μια διαφορετική λογική λήψης και αποστολής. Εξετάστε αυτήν την τοπολογία:

Πώς λειτουργεί το BGP

Κάθε δρομολογητής έχει μια διεπαφή loopback ρυθμισμένη με ip: xxxx 255.255.255.0 - όπου x είναι ο αριθμός του δρομολογητή. Στο Router9 έχουμε μια διεπαφή loopback με τη διεύθυνση - 9.9.9.9 255.255.255.0. Θα το ανακοινώσουμε μέσω BGP και θα δούμε πώς θα εξαπλωθεί. Αυτή η διαδρομή θα μεταδοθεί στο Router8 και στο Router12. Από το Router8, αυτή η διαδρομή θα πάει στο Router6, αλλά στο Router5 δεν θα βρίσκεται στον πίνακα δρομολόγησης. Επίσης στο Router12 αυτή η διαδρομή θα εμφανίζεται στον πίνακα, αλλά στο Router11 δεν θα υπάρχει ούτε εκεί. Ας προσπαθήσουμε να το καταλάβουμε αυτό. Ας εξετάσουμε ποια δεδομένα και παραμέτρους μεταδίδει το Router9 στους γείτονές του, αναφέροντας αυτή τη διαδρομή. Το παρακάτω πακέτο θα σταλεί από το Router9 στο Router8.

Πώς λειτουργεί το BGP
Οι πληροφορίες διαδρομής αποτελούνται από χαρακτηριστικά διαδρομής.

Τα χαρακτηριστικά διαδρομής χωρίζονται σε 4 κατηγορίες:

  1. Γνωστό υποχρεωτικό - Όλοι οι δρομολογητές που εκτελούν BGP πρέπει να αναγνωρίζουν αυτά τα χαρακτηριστικά. Πρέπει να υπάρχει σε όλες τις ενημερώσεις.
  2. Γνωστός διακριτικός - Όλοι οι δρομολογητές που εκτελούν BGP πρέπει να αναγνωρίζουν αυτά τα χαρακτηριστικά. Μπορεί να είναι παρόντες σε ενημερώσεις, αλλά δεν απαιτείται η παρουσία τους.
  3. Προαιρετικό μεταβατικό - ενδέχεται να μην αναγνωρίζεται από όλες τις υλοποιήσεις BGP. Εάν ο δρομολογητής δεν αναγνωρίζει το χαρακτηριστικό, επισημαίνει την ενημέρωση ως μερική και την προωθεί στους γείτονές του, αποθηκεύοντας το μη αναγνωρισμένο χαρακτηριστικό.
  4. Προαιρετικό μη μεταβατικό - ενδέχεται να μην αναγνωρίζεται από όλες τις υλοποιήσεις BGP. Εάν ο δρομολογητής δεν αναγνωρίζει το χαρακτηριστικό, τότε το χαρακτηριστικό αγνοείται και απορρίπτεται όταν μεταβιβάζεται στους γείτονες.

Παραδείγματα χαρακτηριστικών BGP:

  • Γνωστό υποχρεωτικό:
    • Διαδρομή αυτόνομου συστήματος
    • Επόμενο άλμα
    • Προέλευση

  • Γνωστός διακριτικός:
    • Τοπική προτίμηση
    • Ατομικό συσσωμάτωμα
  • Προαιρετικό μεταβατικό:
    • Συσσωρευτής
    • Κοινοτήτων
  • Προαιρετικό μη μεταβατικό:
    • Διάκριση πολλαπλών εξόδων (MED)
    • Αναγνωριστικό εκδότη
    • Λίστα συμπλέγματος

Σε αυτή την περίπτωση, προς το παρόν θα μας ενδιαφέρουν τα Origin, Next-hop, AS Path. Εφόσον η διαδρομή μεταδίδεται μεταξύ Router8 και Router9, δηλαδή εντός ενός AS, θεωρείται εσωτερική και θα δώσουμε προσοχή στο Origin.

Χαρακτηριστικό προέλευσης - υποδεικνύει πώς λήφθηκε η διαδρομή στην ενημέρωση. Πιθανές τιμές χαρακτηριστικών:

  • 0 - IGP: NLRI που ελήφθη εντός του αρχικού αυτόνομου συστήματος.
  • 1 - EGP: Το NLRI μαθαίνεται χρησιμοποιώντας το πρωτόκολλο εξωτερικής πύλης (EGP). Προκάτοχος του BGP, δεν χρησιμοποιείται
  • 2 - Ελλιπής: Το NLRI μαθεύτηκε με κάποιον άλλο τρόπο

Στην περίπτωσή μας, όπως φαίνεται από το πακέτο, είναι ίσο με 0. Όταν αυτή η διαδρομή μεταδίδεται στο Router12, αυτός ο κωδικός θα έχει κωδικό 1.

Επόμενο, Next-hop. Χαρακτηριστικό Next-hop

  • Αυτή είναι η διεύθυνση IP του δρομολογητή eBGP μέσω της οποίας περνά η διαδρομή προς το δίκτυο προορισμού.
  • Το χαρακτηριστικό αλλάζει όταν το πρόθεμα αποστέλλεται σε άλλο AS.

Στην περίπτωση του iBGP, δηλαδή εντός ενός AS, το Next-hop θα υποδεικνύεται από αυτόν που έμαθε ή είπε για αυτήν τη διαδρομή. Στην περίπτωσή μας, θα είναι 192.168.89.9. Αλλά όταν αυτή η διαδρομή μεταδίδεται από το Router8 στο Router6, το Router8 θα το αλλάξει και θα το αντικαταστήσει με το δικό του. Το επόμενο hop θα είναι 192.168.68.8. Αυτό μας οδηγεί σε δύο κανόνες:

  1. Εάν ένας δρομολογητής προωθεί μια διαδρομή στον εσωτερικό γείτονά του, δεν αλλάζει την παράμετρο Next-hop.
  2. Εάν ένας δρομολογητής μεταδίδει μια διαδρομή στον εξωτερικό του γείτονα, αλλάζει το Next-hop στην ip της διεπαφής από την οποία εκπέμπει αυτός ο δρομολογητής.

Αυτό μας οδηγεί να κατανοήσουμε το πρώτο πρόβλημα - Γιατί δεν θα υπάρχει διαδρομή στον πίνακα δρομολόγησης στο Router5 και στο Router11. Ας ρίξουμε μια πιο προσεκτική ματιά. Έτσι, το Router6 έλαβε πληροφορίες σχετικά με τη διαδρομή 9.9.9.0/24 και τις πρόσθεσε με επιτυχία στον πίνακα δρομολόγησης:

Router6#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      9.0.0.0/24 is subnetted, 1 subnets
B        9.9.9.0 [20/0] via 192.168.68.8, 00:38:25<source>
Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить  <b>9.9.9.0 [20/0] via 192.168.68.8</b> , но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

<source><b>Router5#show ip bgp
BGP table version is 1, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 * i 9.9.9.0/24       192.168.68.8             0    100      0 45 i</b>

Η ίδια κατάσταση θα συμβεί μεταξύ Router11-Router12. Για να αποφύγετε αυτήν την κατάσταση, πρέπει να διαμορφώσετε το Router6 ή το Router12, όταν μεταβιβάζετε τη διαδρομή στους εσωτερικούς τους γείτονες, για να αντικαταστήσετε τη διεύθυνση IP τους ως Next-hop. Αυτό γίνεται χρησιμοποιώντας την εντολή:

neighbor 192.168.56.5 next-hop-self

Μετά από αυτήν την εντολή, ο Router6 θα στείλει ένα μήνυμα Ενημέρωση, όπου η ip της διεπαφής Gi0/0 Router6 θα καθοριστεί ως Next-hop για διαδρομές - 192.168.56.6, μετά την οποία αυτή η διαδρομή θα συμπεριληφθεί ήδη στον πίνακα δρομολόγησης.

Ας πάμε παρακάτω και ας δούμε αν αυτή η διαδρομή εμφανίζεται στο Router7 και στο Router10. Δεν θα βρίσκεται στον πίνακα δρομολόγησης και μπορεί να πιστεύουμε ότι το πρόβλημα είναι το ίδιο με το πρώτο με την παράμετρο Next-hop, αλλά αν δούμε την έξοδο της εντολής show ip bgp, θα δούμε ότι το Η διαδρομή δεν ελήφθη εκεί ακόμη και με λάθος Next-hop, πράγμα που σημαίνει ότι η διαδρομή δεν μεταδόθηκε καν. Και αυτό θα μας οδηγήσει στην ύπαρξη ενός άλλου κανόνα:

Οι διαδρομές που λαμβάνονται από εσωτερικούς γείτονες δεν διαδίδονται σε άλλους εσωτερικούς γείτονες.

Εφόσον το Router5 έλαβε τη διαδρομή από το Router6, δεν θα μεταδοθεί στον άλλο εσωτερικό γείτονά του. Για να πραγματοποιηθεί η μεταφορά, πρέπει να διαμορφώσετε τη λειτουργία Ανακλαστήρας διαδρομής, ή να διαμορφώσετε πλήρως συνδεδεμένες σχέσεις γειτονιάς (Full Mesh), δηλαδή, ο Router5-7 όλοι θα είναι γείτονες με όλους. Σε αυτή την περίπτωση θα χρησιμοποιήσουμε Route Reflector. Στο Router5 πρέπει να χρησιμοποιήσετε αυτήν την εντολή:

neighbor 192.168.57.7 route-reflector-client

Το Route-Reflector αλλάζει τη συμπεριφορά του BGP όταν περνάει μια διαδρομή σε έναν εσωτερικό γείτονα. Εάν ο εσωτερικός γείτονας ορίζεται ως διαδρομή-ανακλαστήρας-πελάτης, τότε οι εσωτερικές διαδρομές θα διαφημίζονται σε αυτούς τους πελάτες.

Η διαδρομή δεν εμφανίστηκε στο Router7; Μην ξεχάσετε ούτε το Next-hop. Μετά από αυτούς τους χειρισμούς, η διαδρομή θα πρέπει επίσης να πάει στο Router7, αλλά αυτό δεν συμβαίνει. Αυτό μας φέρνει σε έναν άλλο κανόνα:

Ο κανόνας του επόμενου άλματος λειτουργεί μόνο για εξωτερικές διαδρομές. Για εσωτερικές διαδρομές, το χαρακτηριστικό next-hop δεν αντικαθίσταται.

Και έχουμε μια κατάσταση στην οποία είναι απαραίτητο να δημιουργηθεί ένα περιβάλλον χρησιμοποιώντας στατική δρομολόγηση ή πρωτόκολλα IGP για την ενημέρωση των δρομολογητών για όλες τις διαδρομές εντός του AS. Ας καταχωρήσουμε στατικές διαδρομές στο Router6 και στο Router7 και μετά θα πάρουμε την επιθυμητή διαδρομή στον πίνακα του δρομολογητή. Στο AS 678, θα το κάνουμε λίγο διαφορετικά - θα καταχωρήσουμε στατικές διαδρομές για 192.168.112.0/24 στο Router10 και 192.168.110.0/24 στο Router12. Στη συνέχεια, θα δημιουργήσουμε τη σχέση γειτονιάς μεταξύ του Router10 και του Router12. Θα διαμορφώσουμε επίσης το Router12 ώστε να στέλνει το επόμενο βήμα του στο Router10:

neighbor 192.168.110.10 next-hop-self

Το αποτέλεσμα θα είναι ότι το Router10 θα λάβει τη διαδρομή 9.9.9.0/24, θα ληφθεί τόσο από το Router7 όσο και από το Router12. Ας δούμε τι επιλογή κάνει το Router10:

Router10#show ip bgp
BGP table version is 3, local router ID is 6.6.6.6
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network              Next Hop            Metric LocPrf Weight Path
 *>i 9.9.9.0/24       192.168.112.12           0    100       0      45 i

                               192.168.107.7                                0     123 45 i  

Όπως μπορούμε να δούμε, δύο διαδρομές και ένα βέλος (>) σημαίνουν ότι έχει επιλεγεί η διαδρομή μέσω 192.168.112.12.
Ας δούμε πώς λειτουργεί η διαδικασία επιλογής διαδρομής:

  1. Το πρώτο βήμα κατά τη λήψη μιας διαδρομής είναι να ελέγξετε τη διαθεσιμότητα του Next-hop. Αυτός είναι ο λόγος για τον οποίο, όταν λάβαμε μια διαδρομή στο Router5 χωρίς να ορίσουμε Next-hop-self, αυτή η διαδρομή δεν υποβλήθηκε σε περαιτέρω επεξεργασία.
  2. Ακολουθεί η παράμετρος Weight. Αυτή η παράμετρος δεν είναι Χαρακτηριστικό διαδρομής (PA) και δεν αποστέλλεται σε μηνύματα BGP. Έχει ρυθμιστεί τοπικά σε κάθε δρομολογητή και χρησιμοποιείται μόνο για τον χειρισμό της επιλογής διαδρομής στον ίδιο τον δρομολογητή. Ας δούμε ένα παράδειγμα. Ακριβώς από πάνω μπορείτε να δείτε ότι το Router10 έχει επιλέξει μια διαδρομή για 9.9.9.0/24 μέσω του Router12 (192.168.112.12). Για να αλλάξετε την παράμετρο Wieght, μπορείτε να χρησιμοποιήσετε το χάρτη διαδρομής για να ορίσετε συγκεκριμένες διαδρομές ή να αντιστοιχίσετε ένα βάρος στον γείτονά του χρησιμοποιώντας την εντολή:
     neighbor 192.168.107.7 weight 200       

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

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Configured from console by console
    BGP table version is 2, local router ID is 6.6.6.6
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight      Path
     *>  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    Όπως μπορείτε να δείτε, η διαδρομή μέσω του Router7 είναι πλέον επιλεγμένη, αλλά αυτό δεν θα έχει καμία επίδραση στους άλλους δρομολογητές.

  3. Στην τρίτη θέση έχουμε το Local Preference. Αυτή η παράμετρος είναι ένα γνωστό διακριτικό χαρακτηριστικό, που σημαίνει ότι η παρουσία της είναι προαιρετική. Αυτή η παράμετρος ισχύει μόνο σε ένα AS και επηρεάζει την επιλογή διαδρομής μόνο για εσωτερικούς γείτονες. Γι' αυτό μεταδίδεται μόνο σε μηνύματα ενημέρωσης που προορίζονται για τον εσωτερικό γείτονα. Δεν υπάρχει στα μηνύματα ενημέρωσης για εξωτερικούς γείτονες. Ως εκ τούτου, ταξινομήθηκε ως Γνωστό διακριτικό. Ας προσπαθήσουμε να το εφαρμόσουμε στο Router5. Στο Router5 θα πρέπει να έχουμε δύο διαδρομές για 9.9.9.0/24 - μία μέσω Router6 και η δεύτερη μέσω Router7.

    Εμείς κοιτάμε:

    Router5#show bgp
    BGP table version is 2, local router ID is 5.5.5.5
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight Path
     *>i 9.9.9.0/24       192.168.56.6             0    100      0 45 i

    Αλλά όπως βλέπουμε μια διαδρομή μέσω του Router6. Πού είναι η διαδρομή μέσω του Router7; Ίσως δεν το έχει ούτε ο Router7; Ας κοιτάξουμε:

    Router#show bgp
    BGP table version is 10, local router ID is 7.7.7.7
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network                Next Hop            Metric LocPrf  Weight    Path
     *>i 9.9.9.0/24       192.168.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    Περίεργο, όλα φαίνονται καλά. Γιατί δεν μεταδίδεται στο Router5; Το θέμα είναι ότι το BGP έχει έναν κανόνα:

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

    Το Router7 χρησιμοποιεί μια διαδρομή μέσω του Router5, επομένως η διαδρομή μέσω του Router10 δεν θα μεταδοθεί. Ας επιστρέψουμε στην Τοπική προτίμηση. Ας ορίσουμε την τοπική προτίμηση στο Router7 και ας δούμε πώς αντιδρά ο Router5 σε αυτό:

    route-map BGP permit 10
     match ip address 10
     set local-preference 250
    access-list 10 permit any
    router bgp 123
     neighbor 192.168.107.10 route-map BGP in</b>

    Έτσι, δημιουργήσαμε έναν χάρτη διαδρομής που περιέχει όλες τις διαδρομές και είπαμε στον Router7 να αλλάξει την παράμετρο Local Preference σε 250 όταν ληφθεί, η προεπιλογή είναι 100. Ας δούμε τι συνέβη στο Router5:

    Router5#show bgp
    BGP table version is 8, local router ID is 5.5.5.5
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight        Path
     *>i 9.9.9.0/24       192.168.57.7             0          250      0 678 45 i

    Όπως μπορούμε να δούμε τώρα το Router5 προτιμά τη διαδρομή μέσω του Router7. Η ίδια εικόνα θα είναι και στο Router6, αν και είναι πιο κερδοφόρο για αυτόν να επιλέξει μια διαδρομή μέσω του Router8. Προσθέτουμε επίσης ότι η αλλαγή αυτής της παραμέτρου απαιτεί επανεκκίνηση της γειτονιάς για να τεθεί σε ισχύ η αλλαγή. Ανάγνωση εδώ. Τακτοποιήσαμε το Local Preference. Ας προχωρήσουμε στην επόμενη παράμετρο.

  4. Προτιμήστε τη διαδρομή με την παράμετρο Next hop 0.0.0.0, δηλαδή τοπικές ή συγκεντρωτικές διαδρομές. Σε αυτές τις διαδρομές εκχωρείται αυτόματα μια παράμετρος Βάρος ίση με το μέγιστο—32678—μετά την εισαγωγή της εντολής δικτύου:
    Router#show bgp
    BGP table version is 2, local router ID is 9.9.9.9
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight    Path
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. Η συντομότερη διαδρομή μέσω AS. Επιλέγεται η συντομότερη παράμετρος AS_Path. Όσο λιγότερα AS διανύει μια διαδρομή, τόσο καλύτερη είναι. Εξετάστε τη διαδρομή προς 9.9.9.0/24 στο Router10:
    Router10#show bgp
    BGP table version is 2, local router ID is 6.6.6.6
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight Path
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     *>i                     192.168.112.12           0    100       0       45 i

    Όπως μπορείτε να δείτε, ο Router10 επέλεξε τη διαδρομή μέσω του 192.168.112.12 γιατί για αυτή τη διαδρομή η παράμετρος AS_Path περιέχει μόνο 45 και σε μια άλλη περίπτωση 123 και 45. Διαισθητικά σαφής.

  6. Η επόμενη παράμετρος είναι το Origin. Το IGP (διαδρομή που λαμβάνεται με τη χρήση BGP) είναι καλύτερη από την EGP (διαδρομή που λαμβάνεται χρησιμοποιώντας τον προκάτοχο του BGP, δεν χρησιμοποιείται πλέον) και το EGP είναι καλύτερο από το Μη ολοκληρωμένο; (που λαμβάνεται με κάποια άλλη μέθοδο, για παράδειγμα με ανακατανομή).
  7. Η επόμενη παράμετρος είναι MED. Είχαμε το Wieght που λειτουργούσε μόνο τοπικά στο δρομολογητή. Υπήρχε το Local Preference, το οποίο λειτουργούσε μόνο σε ένα αυτόνομο σύστημα. Όπως μπορείτε να μαντέψετε, το MED είναι μια παράμετρος που θα μεταδοθεί μεταξύ αυτόνομων συστημάτων. Πολύ καλά άρθρο σχετικά με αυτήν την παράμετρο.

Δεν θα χρησιμοποιηθούν άλλα χαρακτηριστικά, αλλά εάν δύο διαδρομές έχουν τα ίδια χαρακτηριστικά, τότε χρησιμοποιούνται οι ακόλουθοι κανόνες:

  1. Επιλέξτε τη διαδρομή μέσω του πλησιέστερου γείτονα IGP.
  2. Επιλέξτε την παλαιότερη διαδρομή για τη διαδρομή eBGP.
  3. Επιλέξτε τη διαδρομή μέσω του γείτονα με το μικρότερο αναγνωριστικό δρομολογητή BGP.
  4. Επιλέξτε μια διαδρομή μέσω του γείτονα με τη χαμηλότερη διεύθυνση IP.

Τώρα ας δούμε το θέμα της σύγκλισης BGP.

Ας δούμε τι θα συμβεί αν το Router6 χάσει τη διαδρομή 9.9.9.0/24 μέσω του Router9. Ας απενεργοποιήσουμε τη διεπαφή Gi0/1 του Router6, η οποία θα καταλάβει αμέσως ότι η συνεδρία BGP με το Router8 έχει τερματιστεί και ο γείτονας έχει εξαφανιστεί, πράγμα που σημαίνει ότι η διαδρομή που ελήφθη από αυτό δεν είναι έγκυρη. Το Router6 στέλνει αμέσως μηνύματα Ενημέρωση, όπου υποδεικνύει το δίκτυο 9.9.9.0/24 στο πεδίο Αποσυρμένες διαδρομές. Μόλις το Router5 λάβει ένα τέτοιο μήνυμα, θα το στείλει στο Router7. Αλλά επειδή το Router7 έχει μια διαδρομή μέσω του Router10, θα ανταποκριθεί αμέσως με μια Ενημέρωση με μια νέα διαδρομή. Εάν δεν είναι δυνατός ο εντοπισμός της πτώσης ενός γείτονα με βάση την κατάσταση της διεπαφής, τότε θα πρέπει να περιμένετε να ενεργοποιηθεί το Hold Timer.

Συνομοσπονδία.

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

Πώς λειτουργεί το BGP

Εδώ είναι ένας σύνδεσμος για αυτό labuΚαι εδώ διαμόρφωση για το GNS3.

Για παράδειγμα, με αυτήν την τοπολογία θα έπρεπε να συνδέσουμε όλους τους δρομολογητές στο AS 2345 μεταξύ τους, αλλά χρησιμοποιώντας το Confederation, μπορούμε να δημιουργήσουμε σχέσεις γειτνίασης μόνο μεταξύ δρομολογητών που συνδέονται άμεσα μεταξύ τους. Ας μιλήσουμε για αυτό λεπτομερώς. Αν είχαμε μόνο AS 2345, τότε laForge έχοντας λάβει μια πορεία από Picard θα το έλεγε στους ρούτερ ημερομηνία и Worf, αλλά δεν θα το έλεγαν στον δρομολογητή Συντρίβων . Επίσης διαδρομές που διανέμονται από το ίδιο το router laForge, δεν θα είχε μεταφερθεί Συντρίβων ή Worf-Ωχ όχι ημερομηνία.

Θα πρέπει να διαμορφώσετε ένα Route-Reflector ή μια πλήρως συνδεδεμένη σχέση γειτονιάς. Διαιρώντας ένα AS 2345 σε 4 υπο-AS (2,3,4,5) για κάθε δρομολογητή, καταλήγουμε σε διαφορετική λογική λειτουργίας. Όλα περιγράφονται τέλεια εδώ.

Πηγές:

  1. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
  2. Τοποθεσία xgu.ru
  3. Τοποθεσία GNS3Vault.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο