EBGP vs IBGP
Τόσο EBGP όσο και IBGP είναι όροι που χρησιμοποιούνται με το πρωτόκολλο δρομολόγησης BGP. Σε θεωρητικούς όρους, η κύρια διαφορά μεταξύ των δύο είναι οι εκτελούνται EBGP μεταξύ δύο δρομολογητών BGP σε διαφορετικό Αυτόνομο Σύστημα (AS), ωστόσο, το IBGP εκτελείται μεταξύ δύο δρομολογητών BGP στο ίδιο AS. Πριν συζητήσουμε τις διαφορές μεταξύ EBGP και IBGP, ας έχουμε μια βασική κατανόηση του EBGP και του IBGP.
Τι είναι το EBGP;
Το BGP εκτελείται μεταξύ δρομολογητών σε διαφορετικά αυτόνομα συστήματα. Από προεπιλογή, στο EBGP (peering σε δύο διαφορετικά AS), το IP TTL έχει οριστεί σε 1, πράγμα που σημαίνει ότι οι ομότιμοι θεωρούνται απευθείας συνδεδεμένοι.
Σε αυτήν την περίπτωση, όταν το πακέτο διασχίζει έναν δρομολογητή, το TTL γίνεται 0 και, στη συνέχεια, το πακέτο θα απορριφθεί πέρα από αυτό. Σε περιπτώσεις όπου οι δύο γείτονες δεν συνδέονται άμεσα, για παράδειγμα, peering με διεπαφές loopback ή peering όταν οι συσκευές βρίσκονται σε απόσταση πολλαπλών αναπηδήσεων, πρέπει να προσθέσουμε την εντολή "neighbor x.x.x.x ebgp-multihop"
Διαφορετικά, η γειτονιά BGP δεν θα δημιουργηθεί. Επιπλέον, το EBGP peer θα διαφημίσει όλες τις καλύτερες διαδρομές που γνωρίζει ή έχει μάθει από τους ομοτίμους του (είτε EBGP peer είτε IBGP peer), κάτι που δεν είναι, στην περίπτωση του IBGP.
Τι είναι το IBGP;
Στο IBGP, δεν υπάρχει περιορισμός ότι οι γείτονες πρέπει να συνδέονται απευθείας. Ωστόσο, ένας ομότιμος IBGP δεν θα διαφημίσει το πρόθεμα που έμαθε από έναν ομότιμο IBGP σε άλλο ομότιμο του IBGP. Αυτός ο περιορισμός υπάρχει για την αποφυγή βρόχων εντός του ίδιου AS. Για να διευκρινιστεί αυτό, όταν μια διαδρομή μεταβιβάζεται σε έναν ομότιμο EBGP, ο τοπικός αριθμός AS προστίθεται στο πρόθεμα στο as-path, οπότε αν λάβουμε το ίδιο πακέτο πίσω δηλώνοντας το AS μας σε ως διαδρομή, γνωρίζουμε ότι είναι βρόχο, και αυτό το πακέτο απορρίπτεται. Ωστόσο, όταν μια διαδρομή διαφημίζεται σε ένα ομότιμο IBGP, ο τοπικός αριθμός AS δεν προστίθεται στο as-path, καθώς οι ομότιμοι είναι στο ίδιο AS.
Για να αποφύγετε τους βρόχους στο ίδιο AS, χρησιμοποιούνται δύο μέθοδοι.
1. Τοπολογία Full Meshed: Σε αυτό, όλοι οι δρομολογητές στο ίδιο AS πρέπει να συνδέονται μεταξύ τους. Για παράδειγμα, εάν έχουμε N δρομολογητές, τότε πρέπει να έχουμε N (N-1)/2 συνεδρίες IBGP. Μπορούμε να το αποφύγουμε αυτό εισάγοντας Route Reflectors.
2. Χρήση Route-Reflectors: Είναι μια εναλλακτική μέθοδος για να ξεπεραστεί το σενάριο πλήρους πλέγματος. Σε αυτή την περίπτωση, οι συνεδρίες IBGP καθιερώνονται με κεντρικό σημείο. Αυτό το κεντρικό σημείο ονομάζεται Route Reflector και οι άλλοι δρομολογητές IBGP ονομάζονται προγράμματα-πελάτες ανακλαστήρα διαδρομής.
Ποια είναι η διαφορά μεταξύ eBGP και iBGP;
1. Το EBGP κάνει peering μεταξύ δύο διαφορετικών AS, ενώ το IBGP είναι μεταξύ του ίδιου AS (Αυτόνομο Σύστημα).
2. Οι διαδρομές που μαθαίνονται από το eBGP peer θα διαφημίζονται σε άλλους ομοτίμους (BGP ή IBGP). Ωστόσο, οι διαδρομές που μαθαίνονται από το IBGP peer δεν θα διαφημίζονται σε άλλους IBGP peer.
3. Από προεπιλογή, οι ομότιμοι EBGP ορίζονται με TTL=1, που σημαίνει ότι οι γείτονες θεωρείται ότι συνδέονται άμεσα, κάτι που δεν συμβαίνει στην περίπτωση του IBGP. Μπορούμε να αλλάξουμε αυτήν τη συμπεριφορά για το EBGP χρησιμοποιώντας την εντολή "γείτονας x.x.x.x ebgp-multihop". Multihop είναι ο όρος που χρησιμοποιείται μόνο στο EBGP.
4. Οι διαδρομές EBGP έχουν διοικητική απόσταση 20, ενώ το IBGP έχει 200.
5. Το επόμενο hop παραμένει αμετάβλητο όταν η διαδρομή διαφημίζεται στο IBGP peer. Ωστόσο, αλλάζει όταν διαφημίζεται σε EBGP peer από προεπιλογή.
Αυτή η προεπιλεγμένη συμπεριφορά του IBGP μπορεί να αλλάξει με την εντολή "neighbor x.x.x.x next-hop-self". αυτό αλλάζει το επόμενο άλμα, ενώ διαφημίζεται, ως τοπική διαδρομή.