10.2.1 Πρωτόκολλο BGP
Το πρωτόκολλο Border
Gateway Protocol, BGP,
έκδοση 4, που καθορίζεται στο RFC 1771 (βλ. επίσης [RFC 1772, RFC 1773]) είναι
το ντε φάκτο πρότυπο πρωτόκολλο διατομεακής
δρομολόγησης στο Διαδίκτυο σήμερα. Συνήθως αναφέρεται
ως BGP4 ή απλώς ως BGP. Ως ένα πρωτόκολλο δρομολόγησης διαυτόνομου
συστήματος, παρέχει την δυνατότητα δρομολόγησης ανάμεσα σε αυτόνομα
συστήματα (ΑΣ).Η Εικόνα 10.6 δείχνει τα πρωτόκολλα ενδο-ΑΣ
και δια-ΑΣ που χρησιμοποιούνται μέσα στο AS2 το BGP χρησιμοποιείται για να
καθορίσει οδούς προς προορισμούς που βρίσκονται έξω από το AS2, ενώ το OSPF
χρησιμοποιείται για να καθορίσει οδούς προς προορισμούς μέσα στο AS2.
Εικόνα 10.6: Χρήση
του BGP για διατομεακή
δρομολόγηση
Ενώ το BGP έχει την ίδια γενική υφή
με το πρωτόκολλο διανύσματος , χαρακτηρίζεται πιο κατάλληλα ως πρωτόκολλο
διανύσματος διαδρομής. Αυτό συμβαίνει επειδή οι γειτονικοί δρομολογητές
BGP, γνωστοί σαν ομότιμοι BGP, ανταλλάσσουν αναλυτικές πληροφορίες διαδρομών
(όπως τη λίστα των ΑΣ επάνω στη διαδρομή προς ένα δεδομένο προορισμό), αντί
πληροφοριών κόστους. Όπως συμβαίνει στο πρωτογενές πρωτόκολλο διανύσματος
απόστασης, το BGP είναι ένα κατανεμημένο πρωτόκολλο κατά το ότι οι δρομολογητές BGP επικοινωνούν μόνο με εκείνούς τους δρομολογητές BGP με τους οποίους είναι απευθείας
συνδεδεμένοι. Καθολικές πληροφορίες για οδούς προς απομακρυσμένους προορισμούς
διαδίδονται με έναν τρόπο ΑΙ προς ΑΣ, μέσω της ανταλλαγής πληροφοριών
δρομολόγησης BGP, ανάμεσα σε ζεύξη απευθείας συνδεδεμένων ομότιμων BGP.
Επίσης παρατηρούμε ότι το BGP δρομολογεί προς δίκτυα προορισμού (με την έννοια
της διευθυνσιοδότησης) και όχι προς συγκεκριμένους
υπολογιστές υπηρεσίας ή δρομολογητές. Όταν ένα δεδομενόγραμμα φτάσει στο δίκτυο προορισμού, τότε η
δρομολόγηση ενδο-ΑΙ συστήματος αυτού του δικτύου θα
χρησιμοποιηθεί για δρομολόγηση του δεδομενογράμματος
προς τον τελικό του προορισμό. Στο BGP, ένα αυτόνομο σύστημα προσδιορίζεται
από τον καθολικά μοναδικό του αριθμό αυτόνομου συστήματος (autonomous system number, ASN) [RFC 1930].
Στον πυρήνα του
BGP υπάρχουν οι δημοσιοποιήσεις οδών. Μια δημοσιοποίηση οδού στέλνεται από ένα
ομότιμο BGP σε ένα άλλο, επάνω σε μια σύνδεση από σημείου προς σημείο. Μια
δημοσιοποίηση αποτελείται από μια διεύθυνση δικτύου προορισμού τύπου CΙDR (για
παράδειγμα 128.119.40/24) και ένα σύνολο ιδιοτήτων που σχετίζονται με τη
διαδρομή προς αυτό το δίκτυο προορισμού. Δύο από τις σημαντικότερες ιδιότητες
είναι η ιδιότητα διαδρομής (μια ρητή λίστα με όλα τα ΑΣ. επάνω στην διαδρομή
προς το καθορισμένο δίκτυο προορισμού) και η ταυτότητα του δρομολογητή
επόμενου άλματος επάνω σε αυτή τη διαδρομή προς το δίκτυο προορισμού. Για μια
πλήρη συζήτηση περί των ιδιοτήτων οδού, δείτε [Griffin
2002, Stewart 1999, Halabi
2000].
Η λειτουργία του BGP περιστρέφεται
γύρω από τρεις δραστηριότητες, όπου όλες περιλαμβάνουν δημοσιοποιήσεις οδών:
Ø
Λήψη και φιλτράρισμα δημοσιοποιήσεων οδών από απευθείας συνδεδεμένους
γειτονικούς δρομολογητές. Ένας δρομολογητής BGP
θα δέχεται δημοσιοποιήσεις οδών από ένα ομότιμο BGP. Μπορούμε να φανταστούμε
μια λαμβανόμενη δημοσιοποίηση οδού BGP σαν μια "υπόσχεση". Ένας
ομότιμος BGP που δημοσιοποιεί μια οδό σε ένα ΑΣ. προορισμού υπόσχεται ότι αν
ένα γειτονικό ΑΣ. προωθήσει ένα δεδομενόγραμμα που
προορίζεται για αυτό το ΑΣ., τότε θα μπορέσει να προωθήσει το δεδομενόγραμμα περαιτέρω επάνω σε μια διαδρομή προς αυτό
τον προορισμό. Ένας δρομολογητής BGP μπορεί επίσης να φιλτράρει (να απορρίψει)
λαμβανόμενες δημοσιοποιήσεις οδών. Για παράδειγμα, ένας δρομολογητής BGP θα
αγνοήσει δημοσιοποιήσεις που περιέχουν τον δικό του αριθμό ΑΣ. στην διαδρομή
ΑΣ., εφόσον αυτή η διαδρομή θα έχει σαν αποτέλεσμα ένα βρόχο δρομολόγησης, αν
χρησιμοποιηθεί. Επειδή καθορίζεται η πλήρης διαδρομή
ΑΣ, ένας διαχειριστής δικτύου μπορεί να ασκήσει σημαντικό έλεγχο ως προς το πού
δρομολογούνται τα δεδομενογράμματά του.
Ø Επιλογή οδού. Ένας δρομολογητής
BGP μπορεί να δεχθεί αρκετές δημοσιοποιήσεις οδών προς το ίδιο ΑΣ. προορισμού
και πρέπει να επιλέξει ποια οδό θα χρησιμοποιήσει ανάμεσα σε όλες τις δημοσιοποιούμενες. Το ΑΣ. προορισμού και το επόμενο άλμα
για την επιλεγμένη διαδρομή πρέπει κατόπιν να εγκατασταθεί στους πίνακες
προώθησης του δρομολογητή. Ένας δρομολογητής BGP
μπορεί να γνωρίζει πολλές οδούς προς ένα δεδομένο προορισμό, αλλά τυπικά θα
εγκαθιστά μόνο ένα δρομολογητή επόμενου άλματος για αυτό τον προορισμό, στον
πίνακα προώθησης.
Πώς όμως επιλέγει
ένας δρομολογητής BGP ανάμεσα σε πολλαπλές διαδρομές; Το BGP κάνει μια σαφή
διάκριση ανάμεσα στον μηχανισμό δρομολόγησης και στην πολιτική δρομολόγησης.
Συγκεκριμένα, το BGP δεν καθορίζει πώς ένα ΑΣ. πρέπει να επιλέξει
μια διαδρομή ανάμεσα σε αυτές που έχουν δημοσιοποιηθεί. Αυτή είναι μια απόφαση πολιτικής
που επαφίεται στον διαχειριστή του δικτύου ΑΣ. Ένας διαχειριστής δικτύου
μπορεί να καθορίσει τις καλούμενες τοπικές προτιμήσεις, για παράδειγμα, να
δηλώσει ότι δρομολόγηση μέσω του γειτονικού ΑΣ Α είναι πάντα προτιμότερη σε
σχέση με τη δρομολόγηση μέσω του γειτονικού ΑΣ Β, όταν υπάρχει επιλογή. Αν δεν
υπάρχουν τοπικές προτιμήσεις, τότε η οδός που επιλέγεται είναι αυτή με τη βραχύτερη διαδρομή ΑΣ (δηλαδή, αυτή που περνά από τον
μικρότερο αριθμό ΑΣ. επάνω στη διαδρομή προς τον προορισμό).
Ø Αποστολή
δημοσιοποιήσεων οδών σε γειτονικούς δρομολογητές. Όπως ένας δρομολογητής
BGP δέχεται δημοσιοποιήσεις οδών από τους γείτονές του, θα δημοσιοποιήσει
επίσης οδούς προς τους γείτονές του. Πάλι, το BGP παρέχει ένα μηχανισμό, αλλά
όχι πολιτική, για τέτοιες δημοσιοποιήσεις. Αυτό επιτρέπει στον διαχειριστή του
δικτύου να έχει ένα σημαντικό βαθμό ελέγχου επί της κίνησης που θα
δρομολογείται μέσα στο δίκτυό του.
Οι ομότιμοι BGP επικοινωνούν
χρησιμοποιώντας το πρωτόκολλο TCP και τον αριθμό θύρας 179. Το TCP λοιπόν
παρέχει τη δυνατότητα αξιόπιστης και ελεγμένης για συμφόρηση ανταλλαγής μηνυμάτων,
ανάμεσα σε δύο ομότιμους BGP. Το πρωτόκολλο BGP ορίζει τους τέσσερις τύπους
μηνυμάτων ΟΡΕΝ, UPDATE, KEEPALIVE και NOTIFICATION.
Ø ΟΡΕΝ. Όταν ένας
δρομολογητής BGP θέλει να έλθει σε επαφή για πρώτη φορά με ένα ομότιμο BGP (για
παράδειγμα, μόλις έχει εκκινήσει ο ίδιος ο δρομολογητής ή μια ζεύξη σύνδεσης),
ένα μήνυμα ΟΡΕΝ στέλνεται στον ομότιμο. Το μήνυμα ΟΡΕΝ επιτρέπει σε ένα δρομολογητή BGP να ταυτοποιήσει
και να πιστοποιήσει τον εαυτό του και να δώσει πληροφορίες χρονομετρητή.
Αν το ΟΡΕΝ γίνει δεκτό από τον ομότιμο, αυτός θα στείλει πίσω ένα μήνυμα KEEPALΙVE.
Ø UΡDΑΤΕ. Ένας δρομολογητής BGP χρησιμοποιεί
το μήνυμα UΡDΑΤΕ
για να δημοσιοποιήσει μια διαδρομή προς ένα δεδομένο προορισμό στον ομότιμο
BGP. Το μήνυμα UΡDΑΤΕ μπορεί επίσης να χρησιμοποιηθεί για να αποσύρει
μια διαδρομή που έχει δημοσιοποιηθεί προηγουμένως (δηλαδή, να πει σε ένα
ομότιμο ότι μια διαδρομή που έχει δημοσιοποιηθεί προηγουμένως δεν είναι πλέον
έγκυρη). Μια διαδρομή BGP θεωρείται έγκυρη μέχρι να αποσυρθεί ρητά.
Ø KEEPALΙVE. Αυτό το μήνυμα BGP
χρησιμοποιείται για να δηλώνει σε ένα ομότιμο ότι ο αποστολέας είναι ενεργός,
αλλά δεν έχει άλλες πληροφορίες να στείλει. Επίσης λειτουργεί σαν γνωστοποίηση
σε ένα λαμβανόμενο μήνυμα ΟΡΕΝ.
Ø NOTIFICATION. Αυτό το μήνυμα BGP χρησιμοποιείται
για να πληροφορήσει ένα ομότιμο ότι έχει ανιχνευθεί ένα σφάλμα (για παράδειγμα
σε ένα προηγουμένως μεταδοθέν μήνυμα BGP) ή ότι ο
αποστολέας είναι έτοιμος να κλείσει τη σύνοδο BGP.