Β. Μάγκλαρης [email protected] netmode.ntua.gr 05 /12/2011
description
Transcript of Β. Μάγκλαρης [email protected] netmode.ntua.gr 05 /12/2011
ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝΑλγόριθμοι Δρομολόγησης στο Internet – Distance
Vector (Bellman Ford, BGP) & Link State (Dijkstra, OSPF)
Β. Μάγκλαρης[email protected]
www.netmode.ntua.gr
05/12/2011
2
ΕΠΑΝΑΛΗΨΗ: ΤΟ ΔΙΚΤΥΟ ΤΟΥ Ε.Μ.Π.ntua.gr (147.102.0.0/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): Πολλές εναλλακτικές διαδρομές με βάρη προς όλα τα γνωστά δίκτυα (περίπου 250.000 σήμερα) μεταξύ ακραίων (border) routers αυτονόμων συστημάτων (Autonomous Systems, AS, περίπου 40.000 σήμερα).
– Η διαδρομή καταγράφεται στον BGP Table των ακραίων δρομολογητών (border gateways) ενός AS ανά δίκτυο προορισμού και την σειρά των AS’s της προτεινόμενης διαδρομής (μαζί με το βάρος της)
– Οι πίνακες BGP φυλάσσονται στην ηλεκτρονική μνήμη των border gateways και ανανεώνονται δυναμικά όποτε υπάρχουν αλλαγές στο Internet με ευθύνη των γειτονικών δρομολογητών (border gateways) που ανακοινώνουν τα δίκτυα των αυτονόμων κοινοτήτων (AS’s) που γνωρίζουν (advertising)
ΔΡΟΜΟΛΟΓΗΣΗ ΕΠΙΠΕΔΟΥ ΔΙΚΤΥΟΥ:
Interior Gateway Protocols (IGP)
• Άμεση δρομολόγηση (direct)– Κόμβος (PC, router) στέλνει πακέτα IP σε interface κόμβου του
ίδιου υποδικτύου
• Έμμεση δρομολόγηση (indirect)– Ο κόμβος στέλνει πακέτα IP σε κόμβο του ίδιου δικτύου,
χρησιμοποιώντας δρομολογητές (routers)– Ο κόμβος πρέπει να γνωρίζει τη διεύθυνση του interface
δρομολογητή (gateway) & την διεύθυνση L2 (MAC) μέσω ARP
• Οι τελικοί κόμβοι στέλνουν πακέτα με διεύθυνση προορισμού εκτός του δικτύου τους σε default gateway (π.χ. 147.102.13.200)
• Ο δρομολογητής πρέπει να γνωρίζει τη διαδρομή (επόμενο interface δρομολογητή) προς το δίκτυο – υποδίκτυο προορισμού
ΠΙΝΑΚΑΣ ΔΟΡΜΟΛΟΓΗΣΗΣ ΣΕ HOST Host Routing Table
• Εγγραφές του τύπου (N, R)– N: Δίκτυο προορισμού– R: Επόμενο interface δρομολογητή (gateway)
• Host routing table σε λειτουργικό Windows από το μηχάνημα με IP 147.102.13.32
> netstat -nr
Routing Table: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 147.102.13.200 147.102.13.32 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 147.102.13.0 255.255.255.0 147.102.13.32 147.102.13.32 20 147.102.13.32 255.255.255.255 127.0.0.1 127.0.0.1 20 147.102.255.255 255.255.255.255 147.102.13.32 147.102.13.32 20 224.0.0.0 240.0.0.0 147.102.13.32 147.102.13.32 20
• Προς το ίδιο τοπικό υποδίκτυο 147.102.13.0/24 σαν gateway ορίζεται κατευθείαν (direct) το τοπικό interface 147.102.13.32– Προς destination dolly.netmode.ntua.gr (147.102.13.10) gateway θα είναι το τοπικό
interface 147.102.13.32
• Προς όλα τα άλλα δίκτυα 0.0.0.0 σαν gateway ορίζεται το 147.102.13.200 (default gateway: router.netmode.ntua.gr)
• Προς local host 127.0.0.0/8 (π.χ. για δοκιμή δικτυακών εφαρμογών τοπικά) ή προς το ίδιο το 147.102.13.32/32 «προωθούνται» στο «interface» 127.0.0.1
• Προς διεύθυνση broadcast 147.102.255.255/32 σαν gateway ορίζεται κατευθείαν (direct) το τοπικό interface 147.102.13.32 (η διεύθυνση δεν ισχύει στο δίκτυο του ΕΜΠ)
• Προς διευθύνσεις multicast 224.0.0.0/4 σαν gateway ορίζεται κατευθείαν (direct) το τοπικό interface 147.102.13.32
ΔΡΟΜΟΛΟΓΗΣΗ ΜΕΤΑΞΥ ΔΡΟΜΟΛΟΓΗΤΩΝ (Links between Routers)
• Για ομοιομορφία της δρομολόγησης, κάθε γραμμή ορίζεται (συνήθως) σαν δίκτυο με 4 τουλάχιστον διευθύνσεις (/30)
• Παράδειγμα: Μεταξύ ΕΜΠ 147.102.0.0/16 & Παν. Αθηνών 195.134.64.0/18 ορίζεται το «δίκτυο» 147.102.224.32/30
– Υποδίκτυο: 147.102.224.32/30– Άκρο ΕΜΠ: 147.102.224.33/30– Άκρο Παν. Αθηνών: 147.102.224.34/30– Broadcast: 147.102.224.35/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 IGP RIP - BGP
• Κάθε κόμβος υπολογίζει την επόμενη «βέλτιστη» στάση προς όλες τις κατευθύνσεις, σύμφωνα με την εικόνα που έχει τοπικά (πραγματικά κατανεμημένος αλγόριθμος)
• Χρειάζεται γνώση του «κόστους» των άμεσων συνδέσεων (interfaces) και το εκτιμώμενο «κόστος» από τους άμεσους γείτονες προς όλους τους προορισμούς (π.χ. όλα τα δίκτυα στο Internet που ανακοινώνουν - announce – σε έναν ακραίο δρομολογητή μιας αυτόνομης κοινότητας - AS - οι γειτονικές του αυτόνομες κοινότητες στο πρωτόκολλο BGP)
• Βασίζεται στον δυναμικό προγραμματισμό (με πιθανές επεκτάσεις για την ανακάλυψη εναλλακτικών δρόμων στο BGP)
• Οι κόμβοι εντοπίζουν τους βέλτιστους δρόμους (shortest paths) προς όλους τους κόμβους εκτελώντας αλγόριθμο βασισμένο στον δυναμικό προγραμματισμό (dynamic programming) που εισήγαγε ο Bellman
• Αρχικά παρουσίασε αστάθειες (π.χ. δρόμους με κύκλους - loops) αλλά σήμερα το πρωτόκολλο EGP BGP είναι η καρδιά του Internet
• Το πρωτόκολλο IGP RIP σήμερα έχει αντικατασταθεί από το OPSF
ΑΛΓΟΡΙΘΜΟΣ 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-FordDistance Vector (1/2)
Υπολογισμός Δένδρου Ελαχίστων Δρόμων (Shortest Path Tree)
προς τον κόμβο {6} από τους κόμβους {1, 2, 3, 4, 5}
Di (h) : Κόστος από κόμβο (j) προς προορισμό (destination) 6 στο βήμα h
dij (h) : Κόστος (βάρος) γραμμής (i,j) στο βήμα h
L(j) = Di (h) Εκτίμηση ελαχίστου κόστους (label) από τον {j} προς τον {6} στο βήμα
h
P(j) : Επόμενος κόμβος από τον {j} προς τον {6} στο βήμα h
D6 (0) = 0, Dj (0) = ∞, j = 1,2,3,4,5
ΑΛΓΟΡΙΘΜΟΣ Bellman-FordDistance Vector (2/2)
10 3
ΑΛΓΟΡΙΘΜΟΣ DijkstraLink State 1/2
Υπολογισμός Δένδρου Ελαχίστων Δρόμων (Shortest Path Tree)
από τον κόμβο {1} από τους κόμβους {2, 3, 4, 5, 6}
P : Σύνολο από permanent labels
Dj : Κόστος από πηγή (source) {1} προς κόμβο {j}
dij : Κόστος (βάρος) γραμμής (i,j)
L(j) = Di (h) Εκτίμηση ελαχίστου κόστους (label) από τον {1} προς τον {j} στο
βήμα h
P(j) : Προηγούμενος κόμβος από τον {1} προς τον {j} στο βήμα h
ΑΛΓΟΡΙΘΜΟΣ DijkstraLink 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: “Είμαι εδώ”
Ανακοίνωση Δικτύου 135.207.0.0/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
1c2aAS3
AS1
AS21a
2c
2b
1b
3ceBGP session
iBGP session
Πίνακες Δρομολόγησης BGP
• Ο (μερικός) πίνακας BGP στο Ε.Μ.Π. (147.102.0.0/16, AS 3323) περιλαμβάνει 869 Δίκτυα του Ελληνικού Internet (λόγω GRiX)
• Έως τρείς επιλογές ανά prefix: – Κύρια σύνδεση Ε.Μ.Π. Ζωγράφου με ΕΔΕΤ 194.177.209.117– 1η Εναλλακτική μέσω Ε.Μ.Π. Πατησίων 195.251.24.69– 2η Εναλλακτική μέσω Πανεπιστημίου Αθηνών - Καισαριανή
147.102.224.34
• Τα λοιπά δίκτυα (300.000 +) default free (μέσω ΕΔΕT, GEANT
18
Ο Πίνακας Δρομολόγησης του Ε.Μ.Π. - Summary
#sh ip bgp sum
BGP router identifier 147.102.224.241, local AS number 3323
BGP table version is 282065, main routing table version 282065
869 network entries using 101673 bytes of memory
5171 path entries using 268892 bytes of memory
87155/152 BGP path/bestpath attribute entries using 13944800 bytes of memory
25770 BGP AS-PATH entries using 1115438 bytes of memory
4254 BGP community entries using 530996 bytes of memory
8 BGP extended community entries using 224 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 15962023 total bytes of memory
2579 received paths for inbound soft reconfiguration
BGP activity 205802/188024 prefixes, 2036057/1948774 paths, scan interval 60 secs
19
Τμήμα του Πίνακα Δρομολόγησης του Ε.Μ.Π.sh ip bgp
BGP table version is 282065, local router ID is 147.102.224.241
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 2.84.0.0/16 147.102.224.34 115 0 8643 5408 6799 i
* 195.251.24.69 116 0 5408 6799 i
*> 194.177.209.117 120 0 5408 6799 i
* 2.84.0.0/14 147.102.224.34 115 0 8643 5408 6799 i
* 195.251.24.69 116 0 5408 6799 i
*> 194.177.209.117 120 0 5408 6799 i
* 2.85.0.0/16 147.102.224.34 115 0 8643 5408 6799 i
* 195.251.24.69 116 0 5408 6799 i
*> 194.177.209.117 120 0 5408 6799 i
* 2.86.0.0/16 147.102.224.34 115 0 8643 5408 6799 i
* 195.251.24.69 116 0 5408 6799 i
*> 194.177.209.117 120 0 5408 6799 i 20
Διανομή 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
1c2aAS3
AS1
AS21a
2c
2b
1b
3ceBGP 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 – πολιτική πελάτη
A,B,C είναι Δίκτυα Παρόχων (ISPs) X,W,Y είναι πελάτες (των ΙSPs) W,Y είναι single homed X είναι dual-homed: συνδεδεμένο σε δύο δίκτυα
X δεν επιθυμεί την δρομολόγηση από το Β μέσω X προς το C .. έτσι X δεν θα ανακοινώσει στον B a route προς το C
A
B
C
W X
Y
Ορολογία:
Δίκτυο Παρόχου
Δίκτυο Πελάτη
BGP routing policy – πολιτική παρόχου
A ανακοινώνει path AW στον B B ανακοινώνει path BAW στον X Πρέπει ο B να ανακοινώσει path BAW στον C?
Αδιανόητο! B δεν έχει “έσοδα” για δρομολόγηση CBAW εφόσον ούτε W ούτε ο C είναι πελάτες του B
B επιθυμεί να πιέσει τον C για δρομολόγηση προς w μέσω A B επιθυμεί να δρομολογήσει μόνο από/πρός τους πελάτες ΤΟΥ!
A
B
C
W X
Y
Ορολογία:
Δίκτυο Πελάτη
Δίκτυο Παρόχου
27
Το «ΕΜΠΟΡΙΚΟ» InternetThere is no Free Lunch
Site 2Site 1
Site 3
Tier 1 ISP “A” Tier 1 ISP “B”
Tier 2 ISP “A2”Tier 2 ISP “A1” Tier 2 ISP “B3”
Internet Exchange
User
Global Peering
Local Peering
Upstream Feed5 – 30 €/Mbps/
month + connectivity
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 :