Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 07/01/2009 ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΑΛΓΟΡΙΘΜOI ΔΡΟΜΟΛΟΓΗΣΗΣ (Ταξινόμηση, VLANs, IGP, BGP) Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 07/01/2009
ΤΑΞΙΝΟΜΗΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΡΟΜΟΛΟΓΗΣΗΣ Διαχειριστικός Έλεγχος Συγκεντρωτικός: Δημόσια Δίκτυα Μεταγωγής Πακέτου Χ.25/Χ.75 Κατανεμημένος: Internet Δρομολόγηση με ή χωρίς Εναλλακτικούς Δρόμους Single choice: Δρομολόγηση Επιπέδου 3 στο Internet - IGP (OSPF, IS-IS) Δρομολόγηση Επιπέδου 2 - Bridged Ethernet LANs Alternate routing: Δρομολόγηση Επιπέδου 3 στο Internet - BGP Δρομολόγηση Επιπέδου 2 ½ - MPLS/TE Τηλεφωνικά Δίκτυα PSTN (Public Switched Telephone Networks) Διαχειριστική Δυναμική Στατική δρομολόγηση: Direct Routing στο Internet - Default Gateway Υπολογισμός εναλλακτικών δρόμων με σταθερά βάρη γραμμών (Χ.25/Χ.75) Δυναμική δρομολόγηση: Μεταβαλλόμενα βάρη γραμμών (ARPANet) Μεταβολές ανάλογα με διαθεσιμότητα γραμμών (Internet IGP, BGP)
ΕΠΑΝΑΛΗΨΗ: ΔΡΟΜΟΛΟΓΙΣΗ ΜΕ VLANs (IEEE 802.1Q) VLAN “Red” (VID 00d) Switch Ports 1 & 9 Subnet 147.102.13.0/24 Default Gateway 147.102.13.200 VLAN “Blue” (VID 003) Switch Ports 4 & 12 IP Subnet 147.102.3.0/24 Default Gateway 147.102.3.200 Trunk Switch Port 5 IP ROUTER warp.core.ntua.gr 00:08:7c:63:e4:00 147.102.13.200 147.102.3.200 ETHERNET SWITCH ΦΥΣΙΚΗ ΣΥΝΔΕΣΗ: ΛΟΓΙΚΗ ΔΙΑΣΥΝΔΕΣΗ: matrix.netmode.ntua.gr 147.102.13.60 00:13:a9:34:dd:aa DG: 147.102.13.200 00:08:7c:63:e4:00 DNS ARP 147.102.3.1 00:13:72:f6:5f:83 DG: 147.102.3.200 00:08:7c:63:e4:00 147.102.13.38 00:50:da:51:95:10 DG: 147.102.13.200 00:08:7c:63:e4:00 147.102.3.90 00:16:17:72:72:76 DG: 10.2.0.200 00:08:7c:63:e4:00 802.1Q Framing Add-On’s TPID: Tag Protocol ID PCP: Priority Code Point CFI: Canonical Format Identifier VID: VLAN ID (< 4096) MAC Address ETHERNET II TPID PCP CFI VID 16 bits 3 bits 1 bit 12 bits IP, TCP/UDP, Data
ΑΝΤΙΣΤΟΙΧΙΣΗ ΔΙΕΥΘΥΝΣΕΩΝ ΕΠΙΠΕΔΩΝ 2 & 3 Address Resolution Protocol (ARP) Διατηρεί τοπικό πίνακα δρομολόγησης με αντιστοιχίες μεταξύ διευθύνσεων IP (4 bytes) & διευθύνσεων MAC (6 bytes) Αν η διεύθυνση IP προορισμού υπάρχει στον πίνακα ARP, το ζευγάρι των διευθύνσεων χρησιμοποιείται για την αποστολή των δεδομένων Αν η διεύθυνση IP προορισμού δεν υπάρχει στο πίνακα, το ARP την ανακαλύπτει με κατάλληλα μηνύματα ελέγχου (σηματοδοσία ARP, control plane broadcasts)
ΠΑΡΑΔΕΙΓΜΑ ΠΙΝΑΚΑ ARP ~> arp -a Net to Media Table Device IP Address Mask Flags Phys Addr ------ -------------------- --------------- ----- --------------- le0 irina.netmode.ece.ntua.gr 255.255.255.255 08:00:20:79:bc:8c le0 dolly.netmode.ece.ntua.gr 255.255.255.255 08:00:20:7c:79:16 le0 aris.netmode.ece.ntua.gr 255.255.255.255 00:00:c0:54:50:d3 le0 router.netmode.ece.ntua.gr 255.255.255.255 08:00:8f:10:c8:b8 le0 eleni.netmode.ece.ntua.gr 255.255.255.255 SP 08:00:20:22:1b:da
ΚΡΥΦΕΣ ΔΙΕΥΘΥΝΣΕΙΣ ΣΤΟ IPv4 Network Address Translation - NAT RFC 1918: Address allocation for private intranets (2/96) 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix) NAT Tables: Αντιστοίχηση εσωτερικών – δημοσίων διευθύνσεων χρηστών δικτύου Intranet + μηχανισμοί ασφαλείας σε εξυπηρετητή “Firewall” Web, ftp, smtp servers μπορεί να είναι έξω από το ΝΑΤ με δημόσιες διευθύνσεις (συνήθης πρακτική σε εταιρικά Intranets)
ΤΟ ΥΠΟΔΙΚΤΥΟ ΤΩΝ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ PC LAB - maria.netmode.ntua.gr
ΕΠΑΝΑΛΗΨΗ: ΔΡΟΜΟΛΟΓΗΣΗ ΕΠΙΠΕΔΟΥ 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)
ΔΡΟΜΟΛΟΓΗΣΗ ΕΠΙΠΕΔΟΥ 3 Interior Gateway Protocols (IGP) Άμεση δρομολόγηση (direct) Κόμβος (Host, PC) στέλνει πακέτα IP σε interface κόμβου του ίδιου υποδικτύου Ο κόμβος (host) μπορεί να έχει πάνω από μια διεύθυνση IP στο interface του, χωρίς να έχει την δυνατότητα routing ανάμεσα τους Έμμεση δρομολόγηση (indirect) Ο κόμβος στέλνει πακέτα IP σε κόμβο του ίδιου δικτύου, χρησιμοποιώντας δρομολογητές (routers) Ο κόμβος πρέπει να γνωρίζει τη διεύθυνση του interface δρομολογητή (gateway) & την διεύθυνση L2 (MAC) μέσω ARP Οι τελικοί κόμβοι στέλνουν πακέτα με διεύθυνση προορισμού εκτός του δικτύου τους σε default gateway (π.χ. 147.102.13.200) Ο δρομολογητής προωθεί πακέτα σε διαφορετικό IP. Πρέπει να γνωρίζει τη διαδρομή (επόμενο interface δρομολογητή) προς το δίκτυο – υποδίκτυο προορισμού μέσω πινάκων δρομολόγησης IGP
ΕΠΑΝΑΛΗΨΗ: ΠΙΝΑΚΑΣ ΔΟΡΜΟΛΟΓΗΣΗΣ ΣΕ 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
ΤΟ ΔΙΚΤΥΟ ΤΟΥ Ε.Μ.Π. ntua.gr (147.102.0.0/16, ASN 3323)
ΕΠΑΝΑΛΗΨΗ: ΔΡΟΜΟΛΟΓΗΣΗ ΜΕΤΑΞΥ ΔΡΟΜΟΛΟΓΗΤΩΝ 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
ΑΝΑΚΟΙΝΩΣΗ ΔΙΚΤΥΟΥ 135.207.0.0/16 ΜΕΣΩ BGP Distance Vector (από παρουσίαση του Timothy G. Griffin, AT&T Research, Paris 2002) BGP 4: RFC 4271 Signaling (ανακοινώσεις) over TCP Port 179 e-BGP (External BGP) Inter-AS peering: Signaling μεταξύ AS’s μεταξύ των άμεσα συνδεμένων border routers i-BGP (Internal BGP) Συγχρονισμός πινάκων Inter-AS peering μεταξύ των n border routers εντός μιας AS με IGP fully meshed signaling: χρειάζονται n(n-1)/2 TCP connections ή via a reflector (client-server): χρειάζονται n TCP connections
ΠΙΝΑΚΑΣ BGP ΔΡΟΜΟΛΟΓΗΤΗ Ε.Μ.Π. 147.102.224.241 BGP table version is 413471, local router ID is 147.102.224.241 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 32.239.186.0/24 147.102.224.34 115 0 8643 5408 2686 ? *> 195.251.24.70 120 0 5408 2686 ? * 32.239.187.0/24 147.102.224.34 115 0 8643 5408 2686 ? *> 195.251.24.70 120 0 5408 2686 ? * 32.239.188.0/24 147.102.224.34 115 0 8643 5408 2686 ? * 32.239.189.0/24 147.102.224.34 115 0 8643 5408 2686 ? *> 195.251.24.70 120 0 5408 2686 ? * 57.90.96.0/20 147.102.224.34 115 0 8643 5408 4004 i *> 195.251.24.70 120 0 5408 4004 i * 62.1.0.0/16 147.102.224.34 115 0 8643 5408 1241 i *> 195.251.24.70 120 0 5408 1241 i * 62.38.0.0/16 147.102.224.34 115 0 8643 5408 3329 i *> 195.251.24.70 120 0 5408 3329 i * 62.38.3.0/24 147.102.224.34 115 0 8643 5408 3329 i *> 195.251.24.70 120 0 5408 3329 i * 62.38.102.0/23 147.102.224.34 115 0 8643 5408 3329 i * 62.38.138.0/23 147.102.224.34 115 0 8643 5408 3329 28969 i *> 195.251.24.70 120 0 5408 3329 28969 i * 62.38.144.0/20 147.102.224.34 115 0 8643 5408 3329 i *> 195.251.24.70 120 0 5408 3329 i * 62.38.160.0/19 147.102.224.34 115 0 8643 5408 3329 i *> 195.251.24.70 120 0 5408 3329 I http://www.ris.ripe.net/bgplay/ ΚΑΝΟΝΕΣ ΠΡΟΤΙΜΗΣΗΣ 1. Μικρότερο Path 2. Μεγαλύτερο Local Preference (default 100) 3. Μεγαλύτερο Weight (default 0)
ΕΠΑΝΑΛΗΨΗ: ΑΛΓΟΡΙΘΜΟΙ ΕΥΡΕΣΗΣ ΔΡΟΜΩΝ ΣΤΟ ΕΠΙΠΕΔΟ 3 ΤΟΥ 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-Ford Distance 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-Ford Distance Vector (2/2) 10 3
ΕΠΑΝΑΛΗΨΗ: ΑΛΓΟΡΙΘΜΟΣ Dijkstra Link 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
ΕΠΑΝΑΛΗΨΗ: ΑΛΓΟΡΙΘΜΟΣ Dijkstra Link State 2/2