ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Αλγόριθμοι Δρομολόγησης στο Internet – IGP/BGP Β. Μάγκλαρης 22/11/2010
2 ΕΠΑΝΑΛΗΨΗ:ΤΟ ΔΙΚΤΥΟ ΤΟΥ Ε.Μ.Π. ntua.gr ( /16, ASN 3323) ΕΠΑΝΑΛΗΨΗ: ΤΟ ΔΙΚΤΥΟ ΤΟΥ Ε.Μ.Π. ntua.gr ( /16, ASN 3323)
3 ΔΡΟΜΟΛΟΓΗΣΗ ΕΠΙΠΕΔΟΥ ΔΙΚΤΥΟΥ Layer 3 Routing Interior Gateway Protocols (IGP): Μια έξοδος προς επόμενο Interface για κάθε τελικό προορισμό (δίκτυο) –RIP: Bellman Ford –OSPF (Open Shortest Path First): Dijkstra, ιεραρχικό με stub areas) –IS-IS Exterior (Border) Gateway Protocols (EGP/BGP): Πολλές εναλλακτικές διαδρομές με βάρη προς όλα τα γνωστά δίκτυα (περίπου σήμερα) μεταξύ ακραίων (border) routers αυτονόμων συστημάτων (Autonomous Systems, AS, περίπου σήμερα). –Η διαδρομή καταγράφεται στον BGP Table των ακραίων δρομολογητών (border gateways) ενός AS ανά δίκτυο προορισμού και την σειρά των AS’s της προτεινόμενης διαδρομής (μαζί με το βάρος της) –Οι πίνακες BGP φυλάσσονται στην ηλεκτρονική μνήμη των border gateways και ανανεώνονται δυναμικά όποτε υπάρχουν αλλαγές στο Internet με ευθύνη των γειτονικών δρομολογητών (border gateways) που ανακοινώνουν τα δίκτυα των αυτονόμων κοινοτήτων (AS’s) που γνωρίζουν (advertising)
ΔΡΟΜΟΛΟΓΗΣΗ ΕΠΙΠΕΔΟΥ ΔΙΚΤΥΟΥ: Interior Gateway Protocols(IGP) ΔΡΟΜΟΛΟΓΗΣΗ ΕΠΙΠΕΔΟΥ ΔΙΚΤΥΟΥ: Interior Gateway Protocols (IGP) Άμεση δρομολόγηση (direct) –Κόμβος (PC, router) στέλνει πακέτα IP σε interface κόμβου του ίδιου υποδικτύου Έμμεση δρομολόγηση (indirect) –Ο κόμβος στέλνει πακέτα IP σε κόμβο του ίδιου δικτύου, χρησιμοποιώντας δρομολογητές (routers) –Ο κόμβος πρέπει να γνωρίζει τη διεύθυνση του interface δρομολογητή (gateway) & την διεύθυνση L2 (MAC) μέσω ARP Οι τελικοί κόμβοι στέλνουν πακέτα με διεύθυνση προορισμού εκτός του δικτύου τους σε default gateway (π.χ ) Ο δρομολογητής πρέπει να γνωρίζει τη διαδρομή (επόμενο interface δρομολογητή) προς το δίκτυο – υποδίκτυο προορισμού
ΠΙΝΑΚΑΣ ΔΟΡΜΟΛΟΓΗΣΗΣ ΣΕ HOST Host Routing Table Εγγραφές του τύπου (N, R) –N: Δίκτυο προορισμού –R: Επόμενο interface δρομολογητή (gateway) Host routing table σε λειτουργικό Windows από το μηχάνημα με IP > netstat -nr Routing Table: Network Destination Netmask Gateway Interface Metric Προς το ίδιο τοπικό υποδίκτυο /24 σαν gateway ορίζεται κατευθείαν (direct) το τοπικό interface –Προς destination dolly.netmode.ntua.gr ( ) gateway θα είναι το τοπικό interface Προς όλα τα άλλα δίκτυα σαν gateway ορίζεται το (default gateway: router.netmode.ntua.gr) Προς local host /8 (π.χ. για δοκιμή δικτυακών εφαρμογών τοπικά) ή προς το ίδιο το /32 «προωθούνται» στο «interface» Προς διεύθυνση broadcast /32 σαν gateway ορίζεται κατευθείαν (direct) το τοπικό interface (η διεύθυνση δεν ισχύει στο δίκτυο του ΕΜΠ) Προς διευθύνσεις multicast /4 σαν gateway ορίζεται κατευθείαν (direct) το τοπικό interface
ΔΡΟΜΟΛΟΓΗΣΗ ΜΕΤΑΞΥ ΔΡΟΜΟΛΟΓΗΤΩΝ (Links between Routers) Για ομοιομορφία της δρομολόγησης, κάθε γραμμή ορίζεται (συνήθως) σαν δίκτυο με 4 τουλάχιστον διευθύνσεις (/30) Παράδειγμα: Μεταξύ ΕΜΠ /16 & Παν. Αθηνών /18 ορίζεται το «δίκτυο» /30 –Υποδίκτυο: /30 –Άκρο ΕΜΠ: /30 –Άκρο Παν. Αθηνών: /30 –Broadcast: /30
ΑΛΓΟΡΙΘΜΟΙ ΕΥΡΕΣΗΣ ΔΡΟΜΩΝ ΣΤΟ INTERNET DV: Distance Vector (αλγόριθμος Bellman-Ford) –IGP: RIP (Routing Information Protocol) –EGP: BGP (Border Gateway Protocol) LS: Link State (αλγόριθμος Dijkstra) –IGP: OSPF (Open Shortest Path First): Link State Data Base + αλγόριθμος Dijkstra στον κορμό Αυτόνομου Δικτύου (Core of an Autonomous System, AS) –Κόστος γραμμών δικτύου: Ανάλογα με την ταχύτητα ή οριζόμενα από τον Διαχειριστή Ανανέωση κόστους γραμμών: κάθε 240 sec (default) ή λόγω μεταβολής κατάστασης Στα περιφερειακά υποδίκτυα (stub areas): Default G/W
ΑΛΓΟΡΙΘΜΟΙ DISTANCE VECTOR ΑΛΓΟΡΙΘΜΟΙ DISTANCE VECTOR IGP RIP - BGP Κάθε κόμβος υπολογίζει την επόμενη «βέλτιστη» στάση προς όλες τις κατευθύνσεις, σύμφωνα με την εικόνα που έχει τοπικά (πραγματικά κατανεμημένος αλγόριθμος) Χρειάζεται γνώση του «κόστους» των άμεσων συνδέσεων (interfaces) και το εκτιμώμενο «κόστος» από τους άμεσους γείτονες προς όλους τους προορισμούς (π.χ. όλα τα δίκτυα στο Internet που ανακοινώνουν - announce – σε έναν ακραίο δρομολογητή μιας αυτόνομης κοινότητας - AS - οι γειτονικές του αυτόνομες κοινότητες στο πρωτόκολλο BGP) Βασίζεται στον δυναμικό προγραμματισμό (με πιθανές επεκτάσεις για την ανακάλυψη εναλλακτικών δρόμων στο BGP) Οι κόμβοι εντοπίζουν τους βέλτιστους δρόμους (shortest paths) προς όλους τους κόμβους εκτελώντας αλγόριθμο βασισμένο στον δυναμικό προγραμματισμό (dynamic programming) που εισήγαγε ο Bellman Αρχικά παρουσίασε αστάθειες (π.χ. δρόμους με κύκλους - loops) αλλά σήμερα το πρωτόκολλο EGP BGP είναι η καρδιά του Internet Το πρωτόκολλο IGP RIP σήμερα έχει αντικατασταθεί από το OPSF
ΑΛΓΟΡΙΘΜΟΣ LINK STATE ΑΛΓΟΡΙΘΜΟΣ LINK STATE IGP OSPF Κάθε δρομολογητής μιας περιοχής OSPF (core area) έχει πλήρη εικόνα της περιοχής του – τοπολογία, κόστη συνδέσεων Όλοι οι δρομολογητές εκτελούν τον αλγόριθμο Dijkstra για εντοπισμό όλων των δρόμων ελαχίστου κόστους (shortest paths) σε ρόλο κεντρικού συστήματος ελέγχου, περιοδικά (default 240 sec) ή όποτε αντιληφθούν ότι άλλαξε η κατάσταση του δικτύου – θεωρητικά όλοι έχουν την ίδια εικόνα Θεωρείται ευσταθής αλγόριθμος, επαρκής για IGP: Μια αυτόνομη κοινότητα ιεραρχείται εσωτερικά σε περιοχές OSPF (μία ή περισσότερες) + περιφερειακές stub areas με static routing (στο δίκτυο του ΕΜΠ, OSPF τρέχουν μόνο 2 δρομολογητές) Γενίκευση του OSPF: Αλγόριθμος IS-IS (Intermediate System to Intermediate System)
ΕΝΔΕΙΚΤΙΚΗ ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ Bellman Ford & Dijkstra Δίκτυο (γράφος) αναφοράς Τα κόστη των γραμμών αφορούν και στις 2 κατευθύνσεις Στα παραδείγματα που ακολουθούν υπολογίζονται δένδρα ελαχίστων δρόμων (shortest path trees) από όλους προς την ρίζα {6} (Bellman Ford) και από την ρίζα {1} προς όλους (Dijkstra) ΠΡΟΣΟΧΗ: Η επιλογή του ρόλου της ρίζας του δένδρου (πηγή ή προορισμός) έγινε αυθαίρετα. Δεν εξαρτάται από τους αλγόριθμους που ισχύουν κατ’ αναλογία για αντίστροφους ρόλους ρίζας
ΑΛΓΟΡΙΘΜΟΣ Bellman-Ford Distance Vector (1/2) Υπολογισμός Δένδρου Ελαχίστων Δρόμων (Shortest Path Tree) προς τον κόμβο {6} από τους κόμβους {1, 2, 3, 4, 5} D i (h) : Κόστος από κόμβο (j) προς προορισμό (destination) 6 στο βήμα h d ij (h) : Κόστος (βάρος) γραμμής (i,j) στο βήμα h L(j) = D i (h) Εκτίμηση ελαχίστου κόστους (label) από τον {j} προς τον {6} στο βήμα h P(j) : Επόμενος κόμβος από τον {j} προς τον {6} στο βήμα h D 6 (0) = 0, D j (0) = ∞, j = 1,2,3,4,5
ΑΛΓΟΡΙΘΜΟΣ Bellman-Ford Distance Vector (2/2) 10 3
ΑΛΓΟΡΙΘΜΟΣ Dijkstra Link State 1/2 Υπολογισμός Δένδρου Ελαχίστων Δρόμων (Shortest Path Tree) από τον κόμβο {1} από τους κόμβους {2, 3, 4, 5, 6} P : Σύνολο από permanent labels D j : Κόστος από πηγή (source) {1} προς κόμβο {j} d ij : Κόστος (βάρος) γραμμής (i,j) L(j) = D i (h) Εκτίμηση ελαχίστου κόστους (label) από τον {1} προς τον {j} στο βήμα h P(j) : Προηγούμενος κόμβος από τον {1} προς τον {j} στο βήμα h
ΑΛΓΟΡΙΘΜΟΣ Dijkstra Link State 2/2
Internet inter-AS routing: BGP BGP (Border Gateway Protocol): the de facto standard BGP δίνει σε κάθε AS τον τρόπο για να: 1.Μαθαίνει πληροφορίες πρόσβασης (subnet reachability information) από γειτονικά AS/δρομολογητές. 2.Προώθηση reachability information σε όλους τους εσωτερικούς AS-internal δρομολογητές. 3.Καθορισμός “καλών” routes προς υποδίκτυα με βάση reachability information και policy. Επιτρέπει σε subnet να ανακοινώσουν την ύπαρξη τους στο υπόλοιπο Internet: “Είμαι εδώ”
Ανακοίνωση Δικτύου /16 μέσω BGP Distance Vector Ανακοίνωση Δικτύου /16 μέσω BGP Distance Vector (από παρουσίαση του Timothy G. Griffin, AT&T Research, Paris 2002)
Το πλαίσιο BGP Ζεύγη από Border routers (BGP peers) ανταλλάσουν πληροφορίες δρομολόγησης (routing info) πάνω από ημι-σταθερές συνδέσεις TCP: BGP sessions –BGP sessions δεν χρειάζεται να αντιστοιχίζονται σε φυσικές συνδέσεις links. Όταν το AS2 ανακοινώνει ένα πρόθεμα (prefix) προς AS1: –Το AS2 υπόσχεται ότι θα προωθεί πακέτα με διεύθυνση προορισμού το δεδομένο prefix. –Το AS2 μπορεί να συναθροίσει (aggregate) prefixes στις ανακοινώσεις του 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c eBGP session iBGP session
Διανομή reachability info Με χρήση eBGP σύνδεσης μεταξύ 3a και 1c, AS3 στέλνει prefix reachability info στο AS1. –1c μπορεί να χρησιμοποιήσει iBGP για διανομή νέων prefix info σε όλους τους δρομολογητές του AS1 –1b μπορεί να ξανα-ανακοινώσει νέο reachability info στο AS2 πάνω από 1b-to-2a σύνδεση eBGP Ένας δρομολογητής όταν μαθαίνει νέο prefix, δημιουργεί routing entry στο πίνακα προώθησης. 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c eBGP session iBGP session
Path attributes και BGP routes Ανακοινούμενο prefix περιλαμβάνει BGP attributes. –prefix + attributes = “route” Δύο σημαντικά attributes: –AS-PATH: διαδρομή ASs μέσα από την οποία έχει περάσει η ανακοίνωση του prefix advertisement: π.χ., AS 67, AS 17 –NEXT-HOP: δείχνει την διεύθυνση IP (εσωτερική-στο_AS για το επόμενο hop στο γειτονικό AS (BGP-NEXT-HOP) Η λήψη ανακοινώσεων δρομολόγησης (route advertisement) φιλτράρεται από import policy για αποδοχή/ απόρριψη ανακοινώσεων.
BGP – επιλογή routes Είναι δυνατή η λήψη του ιδίου route prefix από πολλούς γειτονικούς border routers. Ο δρομολογητής πρέπει να επιλέξει τον border router και το πώς θα τον προσεγγίσει. Κανόνες επιλογής: 1.local preference value attribute: policy decision 2.Μικρότερο AS-PATH 3.πλησιέστερος NEXT-HOP router: hot potato routing 4.επιπλέον criteria
BGP Control Messages BGP control messages διακινούνται με πρωτόκολλο TCP για flow control BGP control messages: –OPEN: ανοίγει TCP σύνδεση στο γείτονα (peer) και προαιρετικά ταυτοποιεί το απέναντι άκρο –UPDATE: ανακοινώνει νέα path ή αποσύρει (withdraws) παλαιότερα –KEEPALIVE κρατάει την σύνδεση ανοιχτή σε περίπτωση που δεν υπάρχουν UPDATES ή ACK σε αίτηση OPEN –NOTIFICATION: ανακοίνωση σφαλμάτων σε προηγούμενα μηνύματα ή για να κλείσει η σύνδεση
BGP routing policy – πολιτική πελάτη r A,B,C είναι Δίκτυα Παρόχων (ISPs) r X,W,Y είναι πελάτες (των ΙSPs) r W,Y είναι single homed r X είναι dual-homed: συνδεδεμένο σε δύο δίκτυα m X δεν επιθυμεί την δρομολόγηση από το Β μέσω X προς το C m.. έτσι X δεν θα ανακοινώσει στον B a route προς το C A B C W X Y Ορολογία : Δίκτυο Παρόχου Δίκτυο Πελάτη
BGP routing policy – πολιτική παρόχου r A ανακοινώνει path AW στον B r B ανακοινώνει path BAW στον X r Πρέπει ο B να ανακοινώσει path BAW στον C? m Αδιανόητο! B δεν έχει “έσοδα” για δρομολόγηση CBAW εφόσον ούτε W ούτε ο C είναι πελάτες του B m B επιθυμεί να πιέσει τον C για δρομολόγηση προς w μέσω A m B επιθυμεί να δρομολογήσει μόνο από/πρός τους πελάτες ΤΟΥ! A B C W X Y Ορολογία : Δίκτυο Πελάτη Δίκτυο Παρόχου
24 Το «ΕΜΠΟΡΙΚΟ» Internet Το «ΕΜΠΟΡΙΚΟ» Internet There is no Free Lunch 1.AOL Transit Data Network 2. AT&T 3. Global Crossing 4.Level 3 5.Verizon Business 6.NTT Com. 7.Qwest 8.SAVVIS 9.SprintLink Οι 9 Tier 1 ISP’s με πρόσβαση στα 300,000 δίκτυα - γνωστούς προορισμούς του Internet :