Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Πληροφορικής Στα πλαίσια του Διπλωματική Εργασία Μεταπτυχιακού Διπλώματος Ειδίκευσης Επικοινωνιακά Συστήματα & Τεχνολογίες ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ Νικοπολιτίδης Πέτρος Λέκτορας Θεσσαλονίκη, Ιανουάριος 2007
Ευχαριστίες.4 Παρουσίαση θέματος Διάρθρωση Εργασίας.5 1. Εισαγωγή.7 2. Routing Protocols..9 2.1 Interior Routing Protocols 10 2.1.1 Routing Information Protocol (RIP)..10 2.1.2 Open Shortest Path First (OSPF) 14 2.1.3 Interior Gateway Routing Protocol (IGRP).19 2.1.4 Enhanced Interior Gateway Routing Protocol (EIGRP) 22 2.2 Exterior Routing Protocols.25 2.2.1 Border Gateway Protocol (BGP) 25 3. Metrics...32 4. Routing Algorithm.. 34 4.1 Dijkstra Algorithm. 34 5. Static Routing.49 6. Dynamic Routing.51 6.1 Distance-Vector Routing 53 6.2 Link-state Routing 54 Σύγκριση Static & Dynamic Routing 55.. 56 2
7. Configure a router...61 7.1 Router Modes.62 7.2 Logging to the router.63 7.3 Router banner MOTD..64 7.4 Setting host name.. 65 7.5 Interface configuration.66 7.6 Setting console password 67 7.7 Setting telnet password. 68 7.8 Copy active configuration...69 7.9 CDP configuration...70 7.10 Show CDP neighbours...71 7.11 Shutdown an interface...72 7.12 Show Commands..72 7.13 Configuring, and Testing a Loopback Interface...74 7.14 Configuration example : Basic Router Configuration..75 8. RIP Routing Configuration Scenario 77 9. EIGRP Routing Configuration Scenario.82 10. OSPF Routing Configuration Scenario.88 APPENDIX A : Supported commands.93..95 3
ΕΥΧΑΡΙΣΤΙΕΣ Πριν ξεκινήσει η παρουσίαση αυτής της διπλωματικής εργασίας, θα ήθελα να ευχαριστήσω τον Επιβλέποντα Καθηγητή κ. Πέτρο Νικοπολιτίδη για την συνεργασία αλλά και τη βοήθεια που μου πρόσφερε για την ολοκλήρωση αυτής της εργασίας. Αφιερώνω τη μεταπτυχιακή μου εργασία στους πολυαγαπημένους μου γονείς, Ηλία και Νίκη και στην αδερφή μου Κατερίνα που με στήριξαν οικονομικά, αλλά πρωτίστως ψυχολογικά με την υπομονή, την κατανόηση και την αγάπη τους. Για όλα όσα μου προσέφεραν και συνεχίζουν να μου προσφέρουν τους αφιερώνω την εργασία αυτή, ως ελάχιστο δείγμα ευγνωμοσύνης. Ιδιαίτερες ευχαριστίες θα ήθελα να απευθύνω στον φίλο μου Ηρακλή Μπουραντά, για την μεγάλη υπομονή και υποστήριξη σε όλες τις επιλογές μου. Θεσσαλονίκη Ιανουάριος 2007 4
Παρουσίαση θέματος Το θέμα της διπλωματικής εργασίας είναι Routing Configuration. Η εργασία είναι χωρισμένη σε δυο Κεφαλαία. Στο πρώτο κεφαλαίο πραγματοποιείται μια εισαγωγή της έννοιας routing. Περιγράφουμε ποια πρωτοκολλά χρησιμοποιούμε σήμερα και αναλύουμε 2 κατηγόριες πρωτοκόλλων τα interior routing protocols και exterior routing protocols. Στην εργασία παρουσιάζουμε τα 3 πιο δημοφιλή πρωτόκολλα RIP, OSPF, IGRP όπου και θα χρησιμοποιήσουμε στο δεύτερο κεφαλαίο για το configuration σε 2 router και γίνεται μια αναφορά στο πρωτόκολλο BGP. Στη συνεχεία περιγράφουμε ένα από τους δημοφιλέστερους αλγόριθμους δρομολόγησης τον Dijkstra αναλύοντας βήμα βήμα την λειτουργία του. Τέλος περιγράφουμε τις έννοιες static και dynamic routing καθώς και τους distance vector και link state αλγόριθμους κάνοντας τις απαραίτητες συγκρίσεις και βγάζοντας τα συμπεράσματα για τα πρωτοκόλλα που περιγράφουμε στην εργασία αλλά και που θα χρησιμοποιήσουμε για το δεύτερο κεφαλαίο της εργασίας. Στο δεύτερο κεφαλαίο, που είναι και το πρακτικό μέρος της διπλωματικής εργασίας, περιγράφουμε αναλυτικά το πώς γίνεται το configuration σε ένα router. Αναφέρουμε τα router modes που μπορεί να έχει ένας router, τον τρόπο με τον οποίο προγραμματίζουμε το router με τις απαραίτητες εντολές εξηγώντας το τι κάνει η κάθε μια και δείχνοντας ένα παράδειγμα του πως γίνεται ένα basic configuration σε ένα router. Για κάθε περιγραφή των εντολών υπάρχει μια εικόνα από το site της Cisco. Τέλος θα υλοποιήσουμε 3 σενάρια για να δείξουμε πως μπορούμε να κάνουμε configuration σε router χρησιμοποιώντας τα πρωτόκολλα RIP, EIGRP, OSPF βγάζοντας συμπεράσματα για το κάθε ένα. Πρέπει να σας πω ότι χρησιμοποίησα το πρόγραμμα Boson NetSim for CCNP, ένας από τους καλύτερους simulators που κυκλοφορούν στο διαδίκτυο, για την εκτέλεση όλων των εντολών αλλά και για την υλοποίηση των σεναρίων. 5
Κεφάλαιο 1 6
1. Εισαγωγή Routing ονοµάζεται η επιλογή των καλύτερων διαδροµών που πρέπει να ακολουθήσουν τα πακέτα πληροφορίας σε ένα δίκτυο υπολογιστών. Αυτή η επιλογή γίνεται συνήθως από το δίκτυο µε βάση τις πληροφορίες που είναι αποθηκευµένες στους κόµβους. Η πηγή µπορεί επίσης να καθορίσει το µονοπάτι εφόσον έχει την απαραίτητη πληροφορία. Για να επιλέξουν οι αλγόριθµοι δροµολόγησης την καλύτερη διαδροµή προς έναν προορισµό χρησιµοποιούν διάφορες µετρικές όπως θα δουμε στα επόμενα κεφαλαία π.χ. μήκος της διαδροµής, αξιοπιστία (bit-error rate), καθυστέρηση, Bandwidth, φόρτος(cpu, packets processed per second), κόστος επικοινωνίας. Για να διευκολύνεται η εύρεση της διαδροµής αποθηκεύονται στους κόµβους πίνακες δροµολόγησης (routing tables) που περιέχουν πληροφορίες για τις διαδροµές. Το είδος της πληροφορίας που αποθηκεύεται στους κόµβους εξαρτάται από τον αλγόριθµο δροµολόγησης αλλά και από τη µέθοδο µεταφοράς που χρησιµοποιείται. Οι routers ανταλλάσσουν μεταξύ τους πληροφορίες σχετικά με τα δίκτυα για τα οποία έχουν γνώση. Αυτό το κάνουν με διάφορους τύπους πρωτοκόλλων που αναφέρονται γενικά σαν routing protocols εκεί θα αναφερθούμε εκτενέστερα στο επόμενο κεφαλαίο της εργασίας. Οι δύο πρωταρχικές κλάσεις πρωτοκόλλων δρομολόγησης που χρησιμοποιούνται σήμερα είναι το link state και το distance vector. 7
Για την μεταφορά πακέτων κάθε κόµβος διατηρεί έναν πίνακα δροµολόγησης. Οι πίνακες δροµολόγησης(routing table) του κόµβου βασίζονται σε εκτιµήσεις της συµφόρησης του δικτύου. Στους πίνακες υπάρχουν συσχετίσεις της µορφής προορισµός - επόµενος κόµβος (next hop) που λένε στον κόµβο ότι για να φτάσει ένα πακέτο σε έναν συγκεκριµένο προορισµό θα πρέπει να σταλεί στον επόµενο κόµβο. Όταν ένα πακέτο φτάσει σε έναν κόµβο τότε αυτός ελέγχει τη διεύθυνση του κόµβου προορισµού και συσχετίζει αυτή τη διεύθυνση µε έναν επόµενο κόµβο. Η ενηµέρωση των πινάκων δροµολόγησης γίνεται µε ανταλλαγή µηνυµάτων µεταξύ των κόµβων. Ένα τέτοιο παράδειγµα µηνύµατος είναι το routing update που περιέχει ένα µέρος ή και ολόκληρο πίνακα δροµολόγησης. Αναλύοντας ένας κόµβος τα routing updates που λαµβάνει, µπορεί να δηµιουργήσει µια εικόνα της τοπολογίας του δικτύου. Από τη στιγµή που γίνεται αντιληπτή η τοπολογία του δικτύου µπορούν να προσδιοριστούν βέλτιστες διαδροµές προς τους διάφορους προορισµούς. Ένας router μπορεί να χρησιμοποιηθεί για να συνδέσει μόνο LAN μαζί, μόνο WAN μαζί ή οποιοδήποτε άλλο συνδυασμό. 8
2. Routing Protocols Στο Internet οι routers είναι οργανωμένοι ιεραρχικά. Ένα σύνολο δικτύων, τα οποία είναι ενωμένα μέσω routers, και ανήκουν στην ίδια διαχειριστική αρχή αποτελούν ένα Αυτόνομο Σύστημα-Autonomous System. Οι routers που διακινούν πληροφορία μέσα σε ένα αυτόνομο σύστημα καλούνται Interior Routers (IR) και το πρωτόκολλο που χρησιμοποιούν Interior Gateway Protocol (IGP). Αντίθετα οι routers που διακινούν πληροφορία μεταξύ αυτόνομων συστημάτων καλούνται Exterior Routers (ER) και το πρωτόκολλο που χρησιμοποιούν Exterior Gateway Protocol (EGP). Μπορούμε να πούμε ότι ένα EGP χρειάζεται να περάσει λιγότερη πληροφορία και να είναι πιο απλό από ένα IGP,για τον ακόλουθο λόγο. Αν τα δεδομένα είναι να μεταφερθούν από έναν host σε ένα autonomous system, σ' έναν host ή σε ένα άλλο autonomous system, o router στο πρώτο σύστημα χρειάζεται μόνο να τερματίσει το υπό στόχο autonomous system και να συσκευάσει μια δρομολόγηση για να μπει στο σύστημα. Όταν μια φορά τα δεδομένα μπουν στο υπό στόχο autonomous system οι routers μπορούν να συνεργαστούν για να μεταφέρουν τελικά τα δεδομένα. 9
2.1 Interior Routing Protocols 2.1.1 Routing Information Protocol (RIP) Σχήμα 2-1:Ένα δίκτυο Rip Το RIP χρησιμοποιήθηκε αρχικά στην Xerox Network Systems οικογένεια πρωτοκόλλων. Στην TCP/IP οικογένεια άρχισε να χρησιμοποιείται το 1982 και από τότε έγινε αρκετά δημοφιλή. Υιοθετήθηκε στα δικτυακά προϊόντα αρκετών εταιριών κατασκευαστών προσωπικών υπολογιστών, όπως τη Novell, την Banyan, την 3COM, την AppleTalk κ.α.. Το RIP είναι distance vector πρωτόκολλο. Μειονεκτήματα των distance vector πρωτοκόλλων είναι ότι με την περιοδική μετάδοση ολόκληρου του πίνακα δρομολόγησης στους γείτονες 10
σπαταλείται bandwidth και ακόμη ότι συγκλίνουν αργά όταν υπάρξει κάποιο failure στο δίκτυο. Ο πίνακας δροµολόγησης ενός host που υλοποιεί το RIP έχει µία είσοδο για κάθε προορισµό, η οποία πρέπει να περιλαµβάνει την IP διεύθυνση του προορισµού, µια µετρική (το συνολικό κόστος µεταφοράς ενός datagram από τον host σε αυτόν τον προορισµό), µια σηµαία (flag) που να υποδεικνύει αν η πληροφορία για τον route έχει αλλάξει πρόσφατα και διάφορα χρονόµετρα (timers). Τι περιλαμβάνει το RIP? RIP Updates Το RIP στέλνει updates ανά τακτά διαστήµατα και κάθε φορά που αλλάζει η τοπολογία του δικτύου. Όταν ένας router λαµβάνει ένα update µεταβάλλει τον πίνακα δροµολόγησής του εξαιτίας της νέας εισόδου. Στη συνέχεια, ο router στέλνει µε τη σειρά του updates στους γειτονικούς του routers πληροφορώντας για την αλλαγή. Αυτά τα updates είναι ανεξάρτητα από τα προγραµµατισµένα updates που στέλνουν οι RIP routers. RIP Metrics Για το RIP η µετρική είναι ο αριθµός των κόµβων µεταξύ της πηγής και του προορισµού. Κάθε τέτοιος κόµβος έχει τιµή 1 οπότε όταν ένας router λαµβάνει ένα update η τιµή της µετρικής αυξάνεται κατά 1 και ο αποστολέας υποδεικνύεται ως το επόµενο hop ενώ ο router διατηρεί µόνο την καλύτερη διαδροµή (αυτή µε τη µικρότερη µετρική) για έναν προορισµό. Ο µέγιστος αριθµός κόµβων για το RIP είναι 15, µε το 16 να παριστάνει ένα άκυρο δροµολόγιο (µια άπειρη µετρική). Σε µια τέτοια περίπτωση, βέβαια, ο προορισµός θεωρείται ανέφικτος. 11
RIP Stability Features Προκειµένου να προσαρµοστεί σε γρήγορες και συχνές δικτυακές µεταβολές, το RIP έχει κάποια χαρακτηριστικά σταθερότητας (Stability Features). Πιο συγκεκριµένα, το RIP υλοποιεί την τεχνική split-horizon, η οποία προστατεύει από την αποστολή της πληροφορίας δροµολόγησης στο σύστηµα από το οποίο µαθεύτηκε η ίδια πληροφορία. Επίσης, χρησιµοποιείται ο hold-down µηχανισµός ώστε να µην πιστεύουν οι routers λανθασµένη πληροφορία δρο- µολόγησης που προέρχεται από συσκευές που δεν έχουν ακόµα ενηµερωθεί για µια τοπολογική αλλαγή. RIP Timers Για την υλοποίηση του RIP χρησιµοποιούνται αρκετά χρονόµετρα (timers). Το update timer είναι ο χρόνος µεταξύ δύο updates και είναι θεωρητικά 30 sec, αλλά συνήθως είναι αυξηµένος κατά κάποια δευτερόλεπτα ώστε να συγχρονίζονται τα updates µεταξύ τους και να αποφεύγονται οι συγκρόυσεις (collisions). Το invalid timer (ή route timeout) είναι ο χρόνος µεταξύ δύο updates από έναν συγκεκριµένο γειτονικό router και ο οποίος αν παρέλθει ενεργοποιείται ο hold-down µηχανισµός. Για το RIP ο χρόνος αυτός είναι 180 sec. Όταν συµβαίνει ένα failure τρέχει και ένα άλλο χρονόµετρο, το flush timer (240 sec). Αν παρέλθει και αυτός ο χρόνος, η διαδροµή όχι µόνο είναι άκυρη αλλά, επιπλέον, αποµακρύνεται από τον πίνακα δροµολόγησης. To IP RIP packet format αποτελείται από 9 πεδία και φαίνεται στο Σχήµα:2-2 ενώ οι παρακάτω περιγραφές είναι απαραίτητες για την κατανόηση του σχήµατος. 12
Σχήμα 2-2:To ip rip packet format Command Δείχνει αν το πακέτο είναι request ή response. Το request ζητάει από έναν router να στείλει ολόκληρο ή µέρος του πίνακα δροµολόγησής του ενώ το response µπορεί να είναι η απάντηση σε ένα request ή ένα τακτικό update. Version Number Καθορίζει την χρησιµοποιούµενη έκδοση του RIP. Zero Δεν χρησιµοποιείται Address Family Identifier (AFI) Καθορίζει την οικογένεια διευθύνσεων(address Family) που χρησιµοποιείται. Για το IP το AFI είναι 2 Address Καθορίζει την IP address για την είσοδο του πίνακα δροµολόγησης Metric Αριθµός των κόµβων από την πηγή. Όπως ειπώθηκε παραπάνω, είναι µεταξύ 1-15 για έγκυρη διαδροµή και 16 για ανέφικτη Με την χρησιµοποποίηση του RIP, όταν ένας δροµολογητής μαθαίνει για τις αλλαγές στις διαδροµές από κάποιον γείτονά του, δίνει αυτή την πληροφορία στους άλλους γείτονές του ώστε να ανανεωθούν οι πίνακες δροµολόγησης. Έτσι, αν ένα µέρος του δικτύου αποτύχει, τότε το άλλο µέρος του δικτύου υπολογίζει πώς, αν είναι δυνατόν, να εργαστεί παρά την αποτυχία αυτή. Όταν η βλάβη αποκατασταθεί, τότε το δίκτυο επιστρέφει στον αρχικό τρόπο λειτουργίας του. 13
2.1.2 Open Shortest Path First (OSPF) Σχήμα 2-3:Ένα δίκτυο OSPF Το OSPF είναι ένα πρωτόκολλο εσωτερικής δροµολόγησης που αναπτύχθηκε στις αρχές της δεκαετίας του 90 για να αντικαταστήσει το RIP το οποίο είχε αρχίσει να µην καταφέρνει να καλύψει τις ολοένα αυξανόµενες ανάγκες των µεγάλων, ετερογενών διαδικτύων. Το OSPF χρησιμοποιήθηκε το 1988 και από τότε χρησιµοποιείται ευρύτατα σε TCP/IP δίκτυα. Είναι ένα link state πρωτόκολλο και βασίζεται στον Shortest Path First (SPF) αλγόριθµο του Dijkstra. 14
Το OSPF είναι link - state πρωτόκολλο. Έτσι κάθε router στέλνει πληροφορίες για την κατάσταση των links του (Link State Advertisements - LSA) σε όλους τους άλλους που βρίσκονται στο ίδιο επίπεδο ιεραρχίας µε αυτόν.τα μηνύματα αυτά είναι μικρά και έτσι δεν καταναλώνουν πολύ bandwidth. Αρχικά ένας router αρχικοποιεί τις δομές δεδομένων του και περιμένει από τα πρωτόκολλα των χαμηλότερων επιπέδων να διαπιστώσει ποια από τα links του, είναι λειτουργικά. Έπειτα με τη χρήση Hello μηνυμάτων προσπαθεί να βρει τους γειτονικούς του routers. Τα Hello μηνύματα χρησιμοποιούνται και στη συνέχεια για να ελέγχει ο router αν οι γείτονές του είναι ακόμη σε λειτουργία. Κάθε router στέλνει περιοδικά LSAs με την κατάσταση των links του. Ακόμη LSAs στέλνονται και όταν αλλάζει η κατάσταση ενός router. Ένας router διατηρεί την τοπολογία όλου του επιπέδου του δικτύου που ανήκει (η οποία μπορεί να εκφραστεί σαν κατευθυνόμενος γράφος) και προσπαθεί να την διατηρεί ενημερωμένη από τα LSAs που λαμβάνει. Όταν λαμβάνει LSAs και ενημερώνει την τοπολογία, τρέχει ο αλγόριθμος. Αυτός υπολογίζει τις καλύτερες διαδρομές για τα δίκτυα προορισμού, και έπειτα αποθηκεύεται στον routing πίνακα το πρώτο hop κάθε διαδρομής, για να χρησιμοποιηθεί για τη διαδικασία προώθησης (forwarding). 15
Τα OSPF µηνύµατα ξεκινούν µε µια επικεφαλίδα (header) 24-byte: Σχήμα 2-4:Επικεφαλίδα 24 byte Version number. Η υλοποίηση του OSFP που χρησιμοποιείται. Type. Προσδιορίζει ένα από τους 5 τύπους των OSFP μηνυμάτων: Hello. Στέλνεται σε τακτά χρονικά διαστήματα για να ελέγχει την κατάσταση των γειτονικών routers. Database Description. Περιγράφει τα περιεχόμενα της τοπολογικής βάσης ενός router, και στέλνεται κατά την αρχικοποίηση μια σύνδεσης με ένα γειτονικό router. Link State Request. Με το μήνυμα αυτό ένας router ζητά ένα κομμάτι του τοπολογικού πίνακα ενός γειτονικού του router, επειδή έχει ανακαλύψει ότι μέρος της δικής τοπολογικής βάσης είναι μη ενημερωμένο. 16
Link State Update. Απαντάει σε link state request μηνύματα. Επιπλέον χρησιμοποιείται για την περιοδική μετάδοση των LSAs. Link State Acknowledgment. Στέλνεται για acknowledgment στα link state update μηνύματα. Τα link state update μηνύματα πρέπει να φτάσουν σε όλους τους προορισμούς του επιπέδου ιεραρχίας του δικτύου, μέσα στο οποίο στέλνονται (η flooding είναι αξιόπιστη διαδικασία). Packet length. Το συνολικό μέγεθος του πακέτου. Router ID. Προσδιορίζει το router που έστειλε το μήνυμα. Area ID. Προσδιορίζει την area στην οποία το πακέτο ανήκει. Όλα τα μηνύματα σχετίζονται με μία περιοχή. Checksum. Ελέγχει το περιεχόμενο του πακέτου για πιθανές αλλοιώσεις του. Authentication type. Περιέχει ένα Authentication type π.χ. «Simple password». Όλα τα OSFP μηνύματα πρέπει να περιέχουν μια τιμή στο πεδίο αυτό. Ο authentication type ορίζεται για κάθε περιοχή. Authentication. Περιέχει την authentication πληροφορία μήκους 64 bits. Το OSPF υποστηρίζει multipath routing, καθώς και η δρομολόγηση είναι βασισμένη σε πληροφορία των πρωτοκόλλων των υψηλότερων επιπέδων [type of service (TOS) πεδίο στον IP header]. Για παράδειγμα μια εφαρμογή μπορεί να προσδιορίσει ότι η μετάδοση κάποιων δεδομένων είναι επείγουσα. Αν στο OSPF έχουν τεθεί κάποια links σαν υψηλής προτεραιότητας τότε μπορούν να χρησιμοποιηθούν αυτά για την μετάδοση της επείγουσας πληροφορίας. 17
Το OSPF υποστηρίζει μία ή περισσότερες μετρικές (καθορίζεται από τον network administrator). Αν υποστηρίζει μόνο μία, τότε δεν υποστηρίζει το TOS IP πεδίο που αναφέρθηκε προηγουμένως. Αν υποστηρίζει περισσότερες από μία τότε το TOS υποστηρίζεται. Πιο συγκεκριμένα υποστηρίζονται οι οχτώ συνδυασμοί που δημιουργούν τα τρία IP TOS bits τα οποία αντιστοιχούν στο delay, στο throughput και στη reliability (καθένα από αυτά έχει δύο τιμές). Κάθε συνδυασμός π.χ. low delay, low throughput, high reliability, θεωρείται μια ξεχωριστή μετρική για την οποία υπάρχει ξεχωριστός πίνακας δρομολόγησης. Άρα όταν ζητείται ένας από τους οχτώ συνδυασμούς TOS η δρομολόγηση γίνεται με τη χρήση του αντίστοιχου πίνακα. 18
2.1.3 Interior Gateway Routing Protocol (IGRP) Σχήμα 2-5:Ένα δίκτυο IGRP Το IGRP είναι ένα πρωτόκολλο δροµολόγησης που αναπτύχθηκε στα µέσα της δεκαετίας του 80 από την εταιρία Cisco Systems η οποία είχε ως αρχικό στόχο να κατασκευάσει ένα δυνατό πρωτόκολλο για δροµολόγηση στο εσωτερικό αυτόνοµων συστηµάτων. Δηµιουργήθηκε για να καλύψει τις αδυναµίες του RIP αφού αυτό δεν µπορούσε να χρησιµοποιηθεί σε πολύπλοκα και µεγάλου µεγέθους δίκτυα και πραγµατικά η σθεναρότητά του οδήγησε πολλούς µεγάλους οργανισµούς να αντικαταστήσουν το RIP µε το IGRP. 19
Το IGRP είναι ένα distance vector πρωτόκολλο µε στοιχεία όµως και linkstate αλγορίθµων. Ένα από τα βασικά του πλεονεκτήµατα είναι ότι απαιτεί έναν αριθµό αυτόνοµου συστήµατος (autonomous system number) o οποίος πρέπει να αντιστοιχεί σε όλους τους γειτονικούς routers µε τους οποίους αναµένεται να γίνει ανταλλαγή πληροφορίας δροµολόγησης. Ένα update µε διαφορετικό αριθµό αυτόνοµου συστήµατος αγνοείται. Με αυτόν τον τρόπο αποφεύγεται η λανθασµένη πληροφορία δροµολόγησης. Επίσης, ένα άλλο χαρακτηριστικό που προσφέρει µεγάλη ευελιξία στο IGRP είναι ότι υπολογίζει όχι µόνο ένα (όπως το RIP) αλλά πολλαπλά µονοπάτια (multipath) προς τον ίδιο προορισµό. Το πλεονέκτηµα είναι ότι αυξάνει η αξιοπιστία και η απόδοση αφού µπορεί να γίνει διαχωρισµός της κυκλοφορίας σε πολλές διαδροµές για να ελαττωθεί το φορτίο σε καθεµιά από τις γραµµές επικοινωνίας. Για να καθορίσει το IGRP ότι ένα µονοπάτι είναι χρήσιµο χρησιµοποιεί δύο κριτήρια. Πρώτον, ο γειτονικός router πρέπει να είναι πιο κοντά στον προορισµό από τον τοπικό. Έτσι εξασφαλίζεται ότι ο γειτονικός router δεν έχει ένα λανθασµένο µονοπάτι για τον προορισµό. Δεύτερον, η µετρική του γειτονικού router πρέπει να είναι µικρότερη από το γινόµενο της µετρικής του τοπικού router επί τον συντελεστή διακύµανσης. Τα πολλαπλά µονοπάτια µπορούν να χρησιµοποιηθούν ακόµα και όταν οι µετρικές είναι διαφορετικές. Δηλαδή, αν ένα µονοπάτι έχει τρεις φορές µικρότερη µετρική από ένα άλλο, θα χρησιµοποιηθεί τρεις φορές περισσότερο. Εξάλλου, µόνο οι διαδροµές µε µετρικές εντός συγκεκριµένων ορίων κοντά στη βέλτιστη χρησιµοποιούνται ως πολλαπλά µονοπάτια. 20
IGRP Metrics Το IGRP χρησιµοποιεί ένα συνδυασµό µετρικών στα updates του. Εύρος (bandwidth), καθυστέρηση (delay), αξιοπιστία (reliability) και φορτίο (load) συνυπάρχουν στην πληροφορία δροµολόγησης. Οι µετρικές αυτές µπορούν να παίρνουν τιµές σε µεγάλη σχετικά έκταση κάτι που συµβαίνει συχνά σε διαδίκτυα µε µεταβαλλόµενα χαρακτηριστικά ενώ, παράλληλα, ο συνδυασµός των αλγορίθµων µπορεί να γίνει από τον ίδιο τον network administrator. IGRP Stability Features Το IGRP χρησιµοποιεί τις τεχνικές spilthorizon και hold-down όπως ακριβώς και το RIP που είδαµε νωρίτερα. IGRP Timers Το IGRP έχει τα ίδια χρονόµετρα µε το RIP µε την διαφορά ότι κάθε χρονόµετρο έχει διαφορετική τιµή από ότι στο RIP. Το update timer είναι 90 sec, το invalid timer (ή route timeout) είναι 270 sec ενώ το flush timer είναι 630 sec. Το IGRP είναι ένα πολύ πετυχηµένο πρωτόκολλο. Το πλεονέκτηµα της χρησιµοποίησης πραγµατικών χαρακτηριστικών για τον υπολογισµό της µετρικής του µονοπατιού είναι πολύ χρήσιµο και δουλεύει καλά στην πράξη. Ωστόσο, νεότερα πρωτόκολλα έχουν καλύτερα χαρακτηριστικά σύγκλισης και για το λόγο αυτό το αντικαθιστούν σε µεγάλα δίκτυα. Ένα από αυτά είναι το Enhanced IGRP το οποίο θα εξετάσουµε στην επόµενη παράγραφο. 21
2.1.4 Enhanced Interior Gateway Routing Protocol(EIGRP) Σχήμα 2-6:Ένα δίκτυο EIGRP Το EIGRP αποτελεί τη µετεξέλιξη του IGRP η οποία προήλθε από την διαφοροποίηση των δικτυακών απαιτήσεων εξαιτίας της σηµαντικής ανάπτυξης των διαδικτύων και κυρίως του Internet. Το EIGRP ενοποιεί τα χαρακτηριστικά και τις ικανότητες των link-state στα distance-vector πρωτόκολλα. Είναι συµβατό µε IGRP routers οπότε µπορεί να προστεθεί σταδιακά σε ήδη υπάρχοντα IGRP δίκτυα. Επίσης, χρησιµοποιεί ακριβώς τις ίδιες µετρικές µε το IGRP µε αποτέλεσµα να είναι απολύτως συγκρίσιµες, σαν να πρόκειται για διαδροµές από το ίδιο Αυτόνοµο Σύστηµα. Το ΕIGRP θεωρεί τις IGRP διαδροµές εξωτερικές, δίνοντας, έτσι, την δυνατότητα στο διαχειριστή του δικτύου να τις προσαρµόσει σύµφωνα µε τις απαιτήσεις του συστήµατος. 22
Χαρακτηριστικά: Επιτυγχάνεται γρήγορη σύγκλιση (fast convergence) αφού ένας EIGRP router αποθηκεύει τους πίνακες δροµολόγησης των γειτονικών του ώστε να υιοθετεί γρήγορα εναλλακτικές διαδροµές. Αν δεν υπάρχει εναλλακτική διαδροµή ο EIGRP router στέλνει queries στους γειτονικούς του µέχρι να βρεθεί τουλάχιστον µία. Οι διαδροµές συνοψίζονται αυτόµατα αφού το EIGRP πρωτόκολλο υποστηρίζει µάσκες υποδικτύου µεταβλητού µήκους (variable length subnet masks). Στο ΕIGRP δεν στέλνονται περιοδικά updates σε όλους τους routers αλλά µόνο όταν αλλάζει η µετρική για µια διαδροµή και µόνο στους routers που χρειάζεται να µάθουν την πληροφορία αυτή. Έτσι, µειώνεται σηµαντικά σε σχέση µε το IGRP το εύρος ζώνης που καταναλώνεται. Το EIGRP χρησιµοποιεί πακέτα τύπου hello and acknowledgement, τύπου update και τύπου query and reply. Προκειµένου να παρέχει καλή απόδοση στη δροµολόγηση το EIGRP χρησιµοποιεί τις παρακάτω τεχνολογίες οι οποίες συνδυαζόµενες, το κάνουν να διαφέρει από τα άλλα πρωτόκολλα Neighbor discovery/recovery Μέσω αυτής της διαδικασίας οι routers λαµβάνουν πληροφορίες για τους γειτονικούς τους και µαθαίνουν αν είναι εφικτή η σύνδεση µαζί τους. Reliable Transport Protocol (RTP) Το πρωτόκολλο αυτό είναι υπεύθυνο για την σωστή παράδοση των EIGRP πακέτων στους γειτονικούς routers που ζήτησαν πληροφορία. Το RTP προβλέπει να στέλνονται γρήγορα multicast πακέτα όταν δεν έχει επιβεβαιωθεί η 23
λήψη ώστε να διατηρείται ο χρόνος σύγκλισης σε χαµηλά επίπεδα προκειµένου για συνδέσεις διαφορετικών ταχυτήτων. DUAL finite-state machine Η τεχνολογία αυτή συστηµατοποιεί την διαδικασία υπολογισµού των διαδροµών που γνωστοποιούνται από τους γειτονικούς routers µε προφανή θετική επίδραση στο χρόνο σύγκλισης. Protocol-dependent modules Τα modules αυτά έχουν την ευθύνη της µεταφοράς των EIGRP πακέτων για απαιτήσεις επιπέδου δικτύου. Που βασίζεται το EIGRP Neighbor Table Όταν ένας router ανακαλύπτει έναν καινούριο γειτονικό του, καταγράφει την διεύθυνσή του σαν είσοδο στον γειτονικό πίνακα (Neighbor Table). Παράλληλα, σε αυτήν την είσοδο περιέχεται πληροφορία που απαιτείται από το RTP. Topology Table Ο πίνακας τοπολογίας (Topology Table) περιέχει τους προορισµούς που γνωστοποιούνται από τους γειτονικούς routers. Route State Η είσοδος στον πίνακα τοπολογίας για έναν προορισµό µπορεί να είναι σε µία από τις εξής δύο καταστάσεις (states): ενεργή (active) ή όχι (passive). Ένας προορισµός είναι ενεργός όσο ο router πραγµατοποιεί την διαδικασία υπολογισµού των αντίστοιχων διαδροµών. 24
2.2 Exterior Routing Protocols 2.2.1 Border Gateway Protocol (BGP) Σχήμα 2-7:Ένα δίκτυο BGP To border gateway protocol (BGP) αναπτύχθηκε για χρήση μαζί με διαδίκτυα που απασχολεί το TCP/IP πρωτόκολλο, παρόλο που οι ιδέες είναι εφαρμόσιμες σε κάθε δίκτυο.to BGP έχει γίνει το στάνταρ εξωτερικό πρωτόκολλο δρομολόγησης για το Internet. Το BGP αποτελείται από 4 (open, keepalive, update, notification)µηνύµατα τα οποία στέλνονται πάνω από TCP συνδέσεις που ανοίγουν οι routers µεταξύ τους. 25
Tρεις διαδικασίες λειτουργίας συσχετίζονται με το BGP 1.Neighbor acquisition 2.Neighbor reachability 3.Network reachability Δύο routers θεωρούνται γειτονικοί εάν σχετίζονται στο ίδιο υποδίκτυο. Αν οι δυο routers είναι σε διαφορετικά autonomous systems,τότε επιθυμούν να αλλάξει η πληροφορία δρομολόγησης. Γι'αυτό είναι απαραίτητο να εκτελεστεί πρώτα η neighbor acquisition. To "neighbor" αναφέρεται σε δύο routers που μοιράζονται το ίδιο υποδίκτυο. H neighbor acquisition συμβαίνει όταν δύο γειτονικοί routers σε διαφορετικά autonomous systems συμφωνούν να αλλάζουν τακτικά την πληροφορία δρομολόγησης. Στη μέθοδο neighbor acquisition,ένας router στέλνει ένα request message στον άλλο,ο οποίος μπορεί να το δεχτεί, μπορεί και όχι. Το πρωτόκολλο δεν εκδίδει το πώς ένας router γνωρίζει τη διεύθυνση,ούτε την ύπαρξη ενός άλλου router,ούτε πώς αποφασίζει ότι χρειάζεται να αλλάξει την πληροφορία της δρομολόγησης με τον γνωστό router.αυτές οι εκδόσεις πρέπει να διευθυνσιοδοτηθούν στην στιγμή της εφαρμογής ή από ενεργή επέμβαση του network manager. Για την παρουσίαση της neighbor acquisition,ένας router στέλνει ένα open message σ'έναν άλλο. Αν ο router "στόχος" δεχτεί την πρόταση, επιστρέφει ένα keepalive message. H neighbor reachability χρησιμοποιείται για να διατηρεί τη σχέση. Ο κάθε partner πρέπει να βεβαιωθεί ότι ένας άλλος partner υπάρχει ακόμα. Για το σκοπό αυτό οι δύο routers περιοδικά εκδίδουν keepalive messages ο ένας στον άλλο. 26
Η τελευταία διαδικασία είναι η network reachability.ο κάθε router διατηρεί μια βάση δεδομένων των υποδικτύων που μπορεί να φτάσει και την προτιμούμενη δρομολόγηση για να φτάσει στο υποδίκτυο. Όποτε γίνει μια αλλαγή σ' αυτή τη βάση, o router εκδίδει ένα update message το οποίο γίνεται γνωστό σ' όλους τους routers του BGP. Με τη γνώση του update message όλοι οι routers μπορούν να φτιάξουν και να διατηρούν πληροφορία δρομολόγησης. Το κάθε μήνυμα είναι μια 19-octet κεφαλίδα η οποία περιλαμβάνει τρία πεδία: 1.Marker:Συντήρηση της αυθεντικότητας 2.Length:Μήκος του μηνύματος σε octets 3.Type:Τύπος του μηνύματος : Open, update, notification, keepalive. Για την απόκτηση ενός neighbor, o router ανοίγει ένα TCP connection στο router ο οποίος ενδιαφέρεται. Μετά στέλνει ένα open message (σχήμα 2-8.)Αυτό το μήνυμα προσδιορίζει το AS στο οποίο ανήκει ο αποστολέας και παρέχει την IP address του router. Περικλείει και μια holdtime παράμετρο η οποία δείχνει τον αριθμό των δευτερολέπτων που ο αποστολέας προτείνει για την τιμή του Hold timer. Σχήμα 2-8:Ένα BGP OPEN MESSAGE 27
Όταν ανοιχτεί μια neighbor relationship, υπολογίζει μια τιμή του Hold timer η οποία είναι μικρότερη από το holdtime του και το holdtime σε ένα Open message. Αυτή η υπολογισμένη τιμή είναι ο μεγαλύτερος αριθμός δευτερολέπτων που περνάνε ανάμεσα της λήψης του επιτυχημένου keepalive (σχήμα 2-9) ή / και των Update messages (σχήμα 2-10) από τον αποστολέα. Το keepalive message αποτελείται απλά από την επικεφαλίδα. Σχήμα 2-9:Ένα Keepalive MESSAGE Το update message δίνει δύο τύπους πληροφορίας: 1.Πληροφορία για μια απλή δρομολόγηση μέσα σε δίκτυο. Η πληροφορία αυτή είναι διαθέσιμη να προστεθεί στη βάση του κάθε router. 2.Μια λίστα από routers οι οποίοι αποσύρθηκαν. Ένα update message μπορεί να περιέχει και τα δύο είδη πληροφορίας. Πληροφορία για μια απλή δρομολόγηση μέσα στο δίκτυο η οποία περιλαμβάνει τρία πεδία:τα Network Layer Reachability Information(NLRI),Total Path - Attributes Length, Path Attributes. 28
Σχήμα2-10:Ένα update MESSAGE Το NLRI πεδίο περιλαμβάνει μια λίστα από identifiers των υποδικτύων οι οποίοι μπορεί να προσπελαστούν από τη δρομολόγηση. Το κάθε υποδίκτυο προσδιορίζεται από την ΙΡ address του η οποία είναι ένα μέρος της full IP address. To path attributes πεδίο περιλαμβάνει μια λίστα από γνωρίσματα: 1.Origin:Δηλώνει αν η πληροφορία δημιουργήθηκε από ένα εσωτερικό ή ένα εξωτερικό πρωτόκολλο δρομολόγησης. 2.As_Path:Μια λίστα των ΑSs που διασταυρώνονται σ' αυτή τη δρομολόγηση. 3.Next_Hop:Η ΙΡ address του border router η οποία πρέπει να χρησιμοποιηθεί σαν επόμενο hop στη λίστα στο NRLI πεδίο. 4.Multi_Exit_Disc:Χρησιμοποιείται να μοιράζει πληροφορία για τις εσωτερικές δρομολογήσεις σ' ένα AS. 29
5.Local_Pref:Χρησιμοποιείται από ένα router να πληροφορήσει τους άλλους routers στο ίδιο AS για το βαθμό προτίμησης για τη γνωστή δρομολόγηση. 6.Atomic_Aggregate, Aggregator:Αυτά τα δύο πεδία εκτελούν την ιδέα της συνολικής δρομολόγησης. Η ιδιότητα του AS_Path χρησιμεύει για δύο σκοπούς. Επειδή κάνει list των ASs η πληροφορία του AS_Path κάνει έναν router να εκτελέσει την τακτική της δρομολόγησης. Ένας router πρέπει να αποφασίσει να αποφύγει ένα συνηθισμένο path για να αποφύγει να μεταβεί σε ένα συνηθισμένο AS.Ή ένας router μπορεί να έχει πληροφορία για την απόδοση ή την ποιότητα του μέρους του δικτύου το οποίο περιλαμβάνεται σε ένα AS το οποίο οδηγεί τον router να αποφύγει το AS. Παραδείγματα εκτέλεσης ή quality metrics περιλαμβάνουν το link speed, capacity, tendency για να γίνει congested και μεγάλη ποιότητα εκτέλεσης. Τελικά το μήνυμα ειδοποίησης(notification message σχήμα 2-11) στέλνεται όταν γίνεται ένα λάθος. Έχουμε: Σχήμα 2-11:Ένα notification MESSAGE 30
1.Message header error: Περιλαμβάνει τα syntaχ errors. 2.Open message error: Περιλαμβάνει τα syntaχ errors και options που δεν αναγνωρίζονται σε ένα open message. 3.Update message error: Περιλαμβάνει syntax & validity errors σ' ένα update message. 4.Hold timer expired: Αν ο router που στέλνει δεν έχει λάβει επιτυχώς keepalive and/or update and/or notification messages μέσα σε μια holdtime περίοδο κλείνει η σύνδεση. 5.Finite state machine error: Περιλαμβάνει όλα τα λάθη των διαδικασιών. 6.Cease: Χρησιμοποιείται από έναν router για να κλείσει μια σύνδεση μ' έναν άλλο router όταν δεν υπάρχει άλλο λάθος. 31
3. Metrics Οι αλγόριθμοι δρομολόγησης χρησιμοποιούν πολλές διαφορετικές μετρικές για να προσδιορίσουν την βέλτιστη διαδρομή. Κάποιοι σύνθετοι αλγόριθμοι δρομολόγησης μπορεί να κάνουν επιλογή της διαδρομής βασιζόμενοι σε πολλαπλές μετρικές συνδυάζοντάς τις σε μια μοναδική υβριδική μετρική. Στη συνέχεια αναλύονται κάποιες από τις μετρικές που συνήθως χρησιμοποιούνται. Μήκος Μονοπατιού Το μήκος του μονοπατιού είναι η πιο κοινή μετρική δρομολόγησης. Μερικοί αλγόριθμοι επιτρέπουν στους administrators του δικτύου να αναθέτουν αυθαίρετα κόστη σε κάθε σύνδεση του δικτύου. Σε αυτή την περίπτωση το μήκος του μονοπατιού είναι το άθροισμα από τα κόστη των επιμέρους συνδέσεων του μονοπατιού. Άλλοι αλγόριθμοι χρησιμοποιούν τον αριθμό των hops που χρειάζεται να κάνει ένα πακέτο για να φτάσει από την αφετηρία μέχρι τον προορισμό του. Αξιοπιστία Αυτή η μετρική αναφέρεται στην αξιοπιστία της κάθε σύνδεσης του δικτύου. Μερικές συνδέσεις του δικτύου μπορεί να πέφτουν πιο συχνά από άλλες. Εφόσον είναι πεσμένες μερικές συνδέσεις μπορεί να επιδιορθώνονται πιο εύκολα ή πιο γρήγορα από άλλες συνδέσεις. Delay 32
Η καθυστέρηση της δρομολόγησης αναφέρεται στο χρόνο που απαιτείται για να μεταφερθεί ένα πακέτο στο δίκτυο από την αφετηρία μέχρι τον προορισμό. Η καθυστέρηση εξαρτάται από πολλούς παράγοντες όπως το bandwidth των ενδιάμεσων συνδέσεων του δικτύου, οι ουρές του κάθε router κατά την διαδρομή, η συμφόρηση του δικτύου στις ενδιάμεσες συνδέσεις του δικτύου και η φυσική απόσταση που πρέπει να διανυθεί. Επειδή η καθυστέρηση συνδυάζει πολλές και σημαντικές μεταβλητές είναι μια κοινή και χρήσιμη μετρική. Bandwidth Ο όρος bandwidth αναφέρεται στην available χωρητικότητα μιας σύνδεσης. Παρόλο που το bandwidth είναι μια εκτίμηση του μέγιστου δυνατού throughput μιας σύνδεσης, διαδρομές που διέρχονται από συνδέσεις με μεγάλο bandwidth δεν είναι σίγουρο ότι θα είναι καλύτερες από άλλες που διέρχονται από συνδέσεις με μικρότερο bandwidth. Αν για παράδειγμα μια γρηγορότερη σύνδεση είναι πιο απασχολημένη ο χρόνος που απαιτείται για να φτάσει ένα πακέτο στον προορισμό μπορεί να είναι μεγαλύτερος. Φόρτος Ο όρος φόρτος αναφέρεται στο βαθμό που ένα resource του δικτύου είναι απασχολημένη. Ο φόρτος μπορεί να υπολογιστεί με διάφορους τρόπους όπως για παράδειγμα με την χρησιμοποίηση της CPU και τα πακέτα που επεξεργάζονται ανά δευτερόλεπτο. Η παρακολούθηση αυτών των παραμέτρων σε συνεχή βάση μπορεί να έχει μεγάλες απαιτήσεις σε πόρους. Κόστος Επικοινωνίας Το κόστος επικοινωνίας είναι άλλη μια σημαντική μετρική. Μερικές εταιρίες δεν ενδιαφέρονται τόσο για την απόδοση όσο για τις λειτουργικές δαπάνες. Παρόλο που η καθυστέρηση της γραμμής μπορεί να είναι μεγαλύτερη μπορεί να προτιμήσουν να στείλουν πακέτα πάνω από τις δικές τους γραμμές παρά πάνω από δημόσιες γραμμές που θα κοστίσουν χρήματα για το χρόνο χρήσης. 33
4. Routing Algorithm 4.1 Dijkstra Algorithm 34
Ο αλγόριθμος του Dijkstra είναι ένας πολύ γνωστός αλγόριθμος που χρησιμοποιείται για την εύρεση της συντομότερης διαδρομής (shortest path) μεταξύ δύο κόμβων του δικτύου. Με κάθε ακμή του γράφου που παριστάνει το δίκτυο συσχετίζεται ένα κόστος. Σε κάθε κόμβο τοποθετείται μια ετικέτα με την απόστασή του από τον κόμβο-αφετηρία μετρημένη κατά μήκος της καλύτερης γνωστής διαδρομής. Αρχικά καμιά διαδρομή δεν είναι γνωστή αλλά όσο προχωρεί ο αλγόριθμος και ανακαλύπτονται διαδρομές οι ετικέτες ενημερώνονται ώστε να ανταποκρίνονται στις καλύτερες διαδρομές. Ακολουθούν κάποιοι ορισμοί που θα χρησιμοποιηθούν στη συνέχεια κατά το παράδειγμα τρεξίματος του αλγορίθμου. Οι ορισμοί αυτοί δίνονται με βάση το παρακάτω σχήμα 4-2. Σχήμα 4-2: Το δίκτυο του σχήματος θα χρησιμοποιηθεί για να δείξει πως ο αλγόριθμος βρίσκει το μονοπάτι μικρότερου κόστους μεταξύ των κόμβων Α και G. Αρχικός κόμβος (Origin node): Είναι ο κόμβος από τον οποίο ξεκινά το μονοπάτι. Στην περίπτωσή μας είναι ο Α. Reached node: Είναι κάθε κόμβος στον οποίο έχει φτάσει το μονοπάτι μικρότερου κόστους. Ένας κόμβος γίνεται reached όταν έχει το μικρότερο κόστος «ταξιδιού» από το σύνολο των scanned nodes. Reached table: Αυτός ο πίνακας περιέχει πληροφορίες για τους reached κόμβους. Περιέχει ένα record για κάθε κόμβο του δικτύου και έχει τη μορφή που φαίνεται στο παρακάτω σχήμα 4-3: 35
Σχήμα 4-3:Reached Table Το αθροιστικό κόστος (cumulative cost) είναι το κόστος που απαιτείται για να φτάσει το μονοπάτι μέχρι τον κόμβο. Ο προηγούμενος κόμβος (previous node) είναι ο γειτονικός κόμβος από τον οποίο έγινε το «ταξίδι». Scanned node Είναι κάθε κόμβος που είναι γειτονικός ενός reached κόμβου χωρίς ο ίδιος να είναι reached. Scanned table Αυτός ο πίνακας περιέχει προσωρινές πληροφορίες για τον αλγόριθμο. Είναι ακριβώς όπως το reached table με τη διαφορά ότι μπορεί να υπάρχουν περισσότερα από ένα records για έναν κόμβο. 36
Σχήμα 4-4:scanned table Unscanned node Είναι κάθε κόμβος που δεν έχει γίνει scanned ή reached. To διάγραμμα ροής του αλγορίθμου Το παρακάτω διάγραμμα ροής δείχνει τα γενικά βήματα του αλγορίθμου. Δείχνει επίσης και την αντιστοιχία μεταξύ των συστατικών του διαγράμματος ροής και των βασικών βημάτων του αλγορίθμου που αναλύονται παρακάτω. Θέσε τον αρχικό κόμβο (Α) σαν reached και τοποθέτησέ τον στο reached table. Διαπέρασε τους γειτονικούς κόμβους και τοποθέτησέ τους στον scanned table. Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. Βήμα 1 Βήμα 2 Βήμα 8 Βήμα 4 Βήμα 6 Βήμα 10 Βήμα 12 Υπάρχουν άλλοι κόμβοι για να διαπεραστούν; Βήμα 13 ΝΑΙ Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. ΟΧΙ Βήμα 3 Βήμα 5 Βήμα 7 Βήμα 9 Βήμα 11 Χρησιμοποιήσε τα προηγούμενα αποτελέσματα για να βρεις το μονοπάτι του μικρότερου κόστους μεταξύ του αρχικού και του τελικού κόμβου Σχήμα 4-5:διάγραμμα ροής 37
Η εκτέλεση του αλγορίθμου Ακολουθεί μια περιγραφή των βημάτων του αλγορίθμου. Σε κάθε βήμα δίνονται τα περιεχόμενα των reached και scanned tables. Σχήμα 4-6 Βήμα 1: Θέσε τον αρχικό κόμβο (Α) σαν reached και τοποθέτησέ τον στο reached table. Διαπέρασε τους γειτονικούς κόμβους και τοποθέτησέ τους στο scanned table. 38
Σχήμα 4-7 Βήμα 2: Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. Αυτός ο κόμβος είναι ο F ο οποίος τοποθετείται στο reached table ενώ το record που τον περιείχε διαγράφεται από το scanned table. Σχήμα 4-8 39
Βήμα 3: Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. Οι γειτονικοί κόμβοι του F είναι οι E, A και G. Από αυτούς θα διαπεραστούν οι Ε και G γιατί ο Α έχει ήδη γίνει reached. Το αθροιστικό κόστος για να φτάσει το μονοπάτι σε αυτούς τους κόμβους είναι 8 μονάδες + τo κόστος της ακμής που συνδέει τους κόμβους Ε και G με τον F. Σχήμα 4-9 40
Βήμα 4: Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. Αυτός ο κόμβος είναι ο Ε ο οποίος και τοποθετείται στο reached table. Σχήμα 4-10 Βήμα 5: Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. Οι γειτονικοί κόμβοι του Ε που μόλις έγινε reached είναι οι B, D και F. Από αυτούς θα διαπεραστούν οι B και D γιατί ο F έχει ήδη γίνει reached. Το αθροιστικό κόστος για να φτάσει το μονοπάτι σε αυτούς τους κόμβους είναι 10 μονάδες συν το κόστος της ακμής που συνδέει τους κόμβους Β και D με τον E. 41
Σχήμα 4-11 Βήμα 6: Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. Υπάρχουν δύο δυνατές επιλογές: ο κόμβος B και ο κόμβος D. Δεν παίζει κανένα ρόλο ποιος από τους δύο κόμβους θα επιλεγεί και έτσι ο αλγόριθμος επιλέγει αυθαίρετα τον D. Σχήμα 4-12 42
Βήμα 7: Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. Οι γειτονικοί κόμβοι του D που μόλις έγινε reached είναι οι E, C και G. Από αυτούς θα διαπεραστούν οι C και G γιατί ο E έχει ήδη γίνει reached. Το αθροιστικό κόστος για να φτάσει το μονοπάτι σε αυτούς τους κόμβους είναι 15 μονάδες συν το κόστος της ακμής που συνδέει τους κόμβους C και G με τον D. Σχήμα 4-13 Βήμα 8: Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. Αυτός ο κόμβος είναι ο Β για τον οποίο υπάρχουν δύο records στον scanned table άρα και δύο δυνατές επιλογές. Ο αλγόριθμος επιλέγει αυθαίρετα το record με previous node τον Ε. 43
Σχήμα 4-14 Βήμα 9: Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. Ο γειτονικός κόμβος του Β που μόλις έγινε reached είναι ο C (παραβλέπονται οι Α και Ε κόμβοι γιατί έχουν ήδη γίνει reached). Σχήμα 4-15 44
Βήμα 10: Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. Επιλέγεται ο κόμβος C γιατί ο Β έχει ήδη γίνει reached και διαγράφεται από τον scanned table. Σχήμα 4-16 Βήμα 11: Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. 45
Ο γειτονικός κόμβος του C που μόλις έγινε reached είναι ο G (παραβλέπονται οι κόμβοι B και D γιατί έχουν ήδη γίνει reached). Σχήμα 4-17 Βήμα 12: Διάλεξε τον scanned κόμβο με το μικρότερο αθροιστικό κόστος και τοποθέτησέ τον στο reached table. O κόμβος C πρέπει να διαγραφεί από τον scanned table γιατί έχει ήδη γίνει reached. Έτσι στον scanned table απομένουν records μόνο για τον κόμβο G και επιλέγεται αυτό που έχει ως previous node τον D γιατί έχει το μικρότερο αθροιστικό κόστος. Σχήμα 4-18 46
Σχήμα 4-19 Βήμα 13: Διαπέρασε όλους τους γειτονικούς κόμβους του κόμβου που μόλις έγινε reached και τοποθέτησέ τους στο scanned table. Ο κόμβος G που μόλις έγινε reached δεν έχει γειτονικούς κόμβους που να μην έχουν γίνει reached. Συνεπώς δεν απομένει πλέον κανένας κόμβος για να διαπεραστεί και έτσι σε αυτή τη φάση το scanned table απορρίπτεται. Σχήμα 4-20 47
Ο αλγόριθμος έχει προσδιορίσει το μονοπάτι του μικρότερου κόστους από όλους τους κόμβους μέχρι τον αρχικό. Για να βρεθεί το μονοπάτι από οποιονδήποτε κόμβο μέχρι τον αρχικό γίνεται χρήση των πληροφοριών που έχουν συλλεχθεί για τους previous nodes. Έτσι για παράδειγμα ξεκινώντας από τον κόμβο G και σύμφωνα με την τιμή του previous node θα πρέπει να πάμε στον κόμβο D, από τον D στον E, από τον Ε στον F και από τον F στον Α που είναι και ο αρχικός κόμβος. Το μονοπάτι από τον Α στον G είναι το εξής: { A, F, E, D, G }. Σχήμα 4-21 48
5. Static Routing Η απλούστερη μορφή δρομολόγησης είναι αυτή που προγραμματίζει εκ των προτέρων τα δρομολόγια. Η διαδικασία εύρεσης δρομολογίων και η διάδοσή τους στο δίκτυο αποτελεί έργο του internetwork administrator. Ο router ο προγραμματισμένος για στατική δρομολόγηση κάνει forward τα πακέτα μέσω προσχεδιασμένων ports. Αφού δημιουργηθεί η σχέση σύνδεσης μεταξύ διεύθυνσης προορισμού (destination address) και router port, δεν υπάρχει επιπλέον ανάγκη για περαιτέρω προσπάθεια των δρομολογητών να ανακαλύψουν καινούρια δρομολόγια ή να επικοινωνήσουν με άλλους routers προκειμένου να ενημερώσουν για τα υπάρχοντα δρομολόγια του δικτύου. Η χρήση στατικών δρομολογίων παρουσιάζει αρκετά πλεονεκτήματα. Για παράδειγμα, προγραμματισμένα στατικά δρομολόγια προσφέρονται για την επίτευξη μεγαλύτερης ασφάλειας στο δίκτυο και μπορεί να είναι είτε απλά δηλαδή μοναδικά, ή πολλαπλά στατικά μονοπάτια συνδεδεμένα από και πρός το δίκτυο. Το Static routing είναι καλό μόνο για πολύ μικρά δίκτυα τα οποία διαθέτουν μόνο ένα απλό μονοπάτι προς οποιοδήποτε δοσμένο προορισμό. Σ αυτές τις περιπτώσεις, το static routing αποτελεί τον πιο αποτελεσματικό μηχανισμό διότι δεν καταναλώνει bandwidth προσπαθώντας να ανακαλύψει καινούρια δρομολόγια ή να επικοινωνήσει με άλλους routers. Καθώς τα δίκτυα αυξάνονται και επομένως επιπλέον μονοπάτια προς τους προορισμούς προστίθενται, το static routing γίνεται ευαίσθητο προϊόν. Οποιεσδήποτε αλλαγές στη διαθεσιμότητα των routers ή στις δυνατότητες διάδοσης σε ένα WAN θα πρέπει να ανακαλυφθούν και να προγραμματιστούν χειρονακτικά. WANs που χαρακτηρίζονται από πιο πολύπλοκες τοπολογίες οι οποίες προσφέρουν πολλαπλά δυναμικά μονοπάτια απαιτούν οπωσδήποτε dynamic routing. 49
Αρκετές φορές, το static routing είναι επιθυμητό, ακόμη και σε μεγάλα ή πολύπλοκα δίκτυα. Τα στατικά δρομολόγια μπορεί να σχηματιστούν για να υποστηρίξουν ασφάλεια (security). Π.χ. η σύνδεση μιας εταιρείας στο Internet θα μπορούσε να είναι ένα σταθερό δρομολόγιο προς τον security server και επομένως οποιαδήποτε είσοδος να είναι αδύνατη αν δεν περνάει το τεστ ασφάλειας του αυθεντικού μηχανισμού που προσφέρει ο security server. Εναλλακτικά, οι στατικές δρομολογήσεις μπορεί να είναι εξαιρετικά χρήσιμες στη δημιουργία extranet IP συνδέσεων προς εταιρίες με τις οποίες υπάρχει συνεργασία. Επίσης μπορεί να είναι ο καλύτερος τρόπος για σύνδεση μικρών stub networks σε WAN. Το κρίσιμο σημείο λοιπόν είναι να γνωρίζουμε τι μπορεί και τι δεν μπορεί να κάνει το static routing, οπότε να το χρησιμοποιούμε ανάλογα. Ένα μειονέκτημα είναι ότι σε περίπτωση δικτυακής βλάβης (network failure) ή τοπολογικής αλλαγής, όλο το βάρος πέφτει στον διαχειριστή του δικτύου ο οποίος θα πρέπει να προσαρμόσει «χειρονακτικά» το δίκτυο στις τρέχουσες αλλαγές. 50
6. Dynamic Routing Σχήμα 6-1 Η δυναµική δροµολόγηση αναφέρεται σε διαδροµές που µαθαίνονται µέσω ενός internal ή external routing protocol. Η προσέγγιση κάποιου δικτύου εξαρτάται από την ύπαρξη και την κατάσταση αυτού του δικτύου. Αν ο προορισµός είναι εκτός λειτουργίας (down), τότε το route θα εξαφανιστεί από τον πίνακα δροµολόγησης και το φορτίο δε θα στέλνεται προς αυτό τον προορισµό. 51
Οι routers σ ένα διαδίκτυο είναι υπεύθυνοι για να λαµβάνουν και να προωθούν πακέτα διαµέσου του διασυνδεδεµένου συνόλου των υποδικτύων. Ο κάθε router οδηγεί αποφάσεις οι οποίες βασίζονται στη γνώση της τοπολογίας και στην κατάσταση του διαδικτύου. Σ ένα απλό διαδίκτυο ένα σταθερό σχέδιο προώθησης είναι πιθανό. Λεπτοµερώς, ο router πρέπει να αποφύγει τα µέρη του δικτύου τα οποία έχουν αποτύχει καθώς και να αποφασίσει για τα µέρη του δικτύου τα οποία προξενούν συµφόρηση. Προκειµένου να παρθούν τέτοιες δυναµικές αποφάσεις δροµολόγησης οι routers αλλάζουν την πληροφορία δροµολόγησης που χρησιµοποιεί ένα ειδικό πρωτόκολλο δροµολόγησης για την περίσταση. Η πληροφορία χρειάζεται για την κατάσταση του δικτύου, σε περιόδους που κάποια δίκτυα µπορούν να προσεγγιστούν από κάποιες διαδροµές και σε περιόδους καθυστέρησης των χαρακτηριστικών σε µεταβαλλόµενες διαδροµές. Για τη λειτουργία της δροµολόγησης των routers είναι απαραίτητο να διακρίνουµε δύο θέσεις: Πληροφορία δροµολόγησης. Πληροφορία για την τοπολογία και τις καθυστερήσεις του διαδικτύου. Αλγόριθµος δροµολόγησης. Ο αλγόριθµος παίρνει µια απόφαση δροµολόγησης για διάφορα δεδοµένα, βασισµένα στην τωρινή πληροφορία δροµολόγησης. Στη συνέχεια θα εξετάσουµε τις δύο σηµαντικότερες οικογένειες αλγορίθµων που χρησιµοποιούν τα πρωτόκολλα δροµολόγησης. 52
6.1 Distance-Vector Routing Oι αλγόριθµοι περνάνε περιοδικά αντίγραφα των πινάκων δροµολόγησής τους άµεσα στους δικτυακούς γείτονές τους. Κάθε παραλήπτης προσθέτει ένα διάνυσµα απόστασης (distance vector) το οποίο είναι, η δικιά του τιµή απόστασης (distance value) στον πίνακα και το προωθεί (κάνει forward) στους γείτονες του µε τους οποίους έχει άµεση πρόσβαση. Αυτή η βήµα-προς-βήµα διαδικασία έχει ως αποτέλεσµα κάθε router να µαθαίνει τη σχέση του µε τους άλλους routers και να συσσωρεύει τις δικτυακές αποστάσεις (network distances). Ο πίνακας (cumulative table) χρησιµοποιείται τότε για να ενηµερώνει τους πίνακες δροµολόγησης κάθε router. Μόλις η διαδικασία ολοκληρωθεί, κάθε router έχει µάθει την αόριστη πληροφορία σχετικά µε τα distances προς τα δικτυακά resources. Δεν µαθαίνει τίποτα εξειδικευµένο σχετικά µε άλλους routers, ή την ακριβή δικτυακή τοπολογία. Μιλώντας γενικά, τα distance-vector πρωτόκολλα είναι πολύ απλά πρωτόκολλα τα οποία είναι εύκολο να σχηματιστούν, διατηρηθούν, και να χρησιμοποιηθούν. Συνεπώς, αποδεικνύονται αρκετά χρήσιμα στα μικρά δίκτυα τα οποία έχουν λίγα εναλλακτικά μονοπάτια και όχι αυστηρές απαιτήσεις στην απόδοση του δικτύου. Το βασικότερο πρωτόκολλο της κατηγορίας ακούει στο όνομα Routing Information Protocol (RIP). Το RIP χρησιμοποιεί μια απλή μετρική απόστασης (κόστος) για να προσδιορίσει το καλύτερο επόμενο μονοπάτι για οποιοδήποτε δοσμένο πακέτο. Το RIP έχει χρησιμοποιηθεί ευρέως, δεκάδες φορές και μόνο προσφάτως έχει εγγυημένα εκσυγχρονιστεί. 53
6.2 Link-state Routing Οι Link-state routing αλγόριθµοι διατηρούν µια πολύπλοκη βάση δεδοµένων της τοπολογίας του δικτύου. Σε αντίθεση µε τα distance-vector πρωτόκολλα, τα linkstate πρωτόκολλα παρουσιάζουν και διατηρούν µια πλήρη γνώση των δροµολογητών του δικτύου για το τρόπο µε τον οποίο αυτοί διασυνδέονται. Αυτό επιτυγχάνεται µέσω της ανταλλαγής µε άλλους routers στο δίκτυο linkstate advertisements (LSAs), δηλαδή µηνυµάτων που πληροφορούν τους παραλήπτες για την κατάσταση των συνδέσεων του αποστολέα. Η πληροφορία για την κατάσταση των συνδέσεων µπορεί να χρησιµοποιηθεί για να κατασκευαστεί µια εικόνα της τοπολογίας του δικτύου. Κάθε router ο οποίος έχει ανταλλάξει LSAs κατασκευάζει µία τοπολογική βάση δεδοµένων χρησιµοποιώντας όλα τα λαµβανόµενα LSAs. Ένας αλγόριθµος χρησιµοποιείται τότε για να υπολογίσει τη δυνατότητα προέκτασης (reachability) µέχρι τους προορισµούς. Αυτή η πληροφορία χρησιµοποιείται για να ενηµερώνει τα routing tables. Αυτή η διαδικασία µπορεί να ανακαλύψει τις τοπολογικές αλλαγές στο δίκτυο που προκάλεσε µια βλάβη σε ένα τµήµα του δικτύου (component failure) ή µια ανάπτυξη του δικτύου. Αυτού του τύπου η δυναμική δρομολόγηση μπορεί να αποδειχθεί αρκετά χρήσιμη σε οποιουδήποτε μεγέθους δίκτυα. Σ ένα καλά σχεδιασμένο δίκτυο, το link state routing protocol αποτελεί εγγύηση ανεξαρτήτως των αποτελεσμάτων που θα επέφερε μία τοπολογική αλλαγή. Χρησιμοποιώντας events αντί για time interval timers η διαδικασία της ενημέρωσης και γενικότερα της σύγκλισης του δικτύου στη νέα κατάσταση, θα αρχίσει πολύ γρηγορότερα μετά την τοπολογική αλλαγή. Τα overheads των συχνών time driven updates σε ένα distance vector πρωτόκολλο, εδώ αποφεύγονται. Αυτό επιτρέπει περισσότερο bandwidth το οποίο είναι πολύ πιο χρήσιμο σε περιπτώσεις routing traffic και όχι τόσο σε 54
περιπτώσεις συντήρησης του δικτύου, γεγονός που οδηγεί στον καταλληλότερο σχεδιασμό του τελευταίου. Ένα σημαντικό πλεονέκτημα αυτής της αύξησης του bandwidth των link state πρωτοκόλλων είναι ότι διευκολύνει το scalability του δικτύου καλύτερα από ότι τα στατικά ή distance vector πρωτόκολλα. Αντιπαραθέτοντας λοιπόν τις δυνατότητες αυτού του πρωτοκόλλου σε σχέση με τα προηγούμενα, εύκολα κανείς αντιλαμβάνεται ότι η link state δρομολόγηση είναι καλύτερη για μεγάλα, πιο περίπλοκα δίκτυα. Σύγκριση Static & Dynamic Routing Το static routing είναι καλό µόνο για πολύ µικρά δίκτυα τα οποία διαθέτουν µόνο ένα απλό µονοπάτι προς οποιοδήποτε δοσµένο προορισµό. Σ.αυτές τις περιπτώσεις, το static routing αποτελεί τον πιο αποτελεσµατικό µηχανισµό διότι δεν καταναλώνει bandwidth προσπαθώντας να ανακαλύψει καινούρια δροµολόγια ή να επικοινωνήσει µε άλλους routers. Καθώς το µέγεθος και η πολυπλοκότητα των δικτύων αυξάνονται και εποµένως επιπλέον µονοπάτια προς τους προορισµούς προστίθενται, το static routing γίνεται ευαίσθητο και αποφεύγεται η χρησιµοποίησή του εκτός συγκεκριµένων περιπτώσεων (πχ σχηµατισµός στατικών δροµολογίων που να υποστηρίζουν ασφάλεια). Όσον αφορά στο dynamic routing, οι distance-vector αλγόριθµοι εφαρµόζονται σε απλά πρωτόκολλα τα οποία είναι εύκολο να σχηµατιστούν, διατηρηθούν, και να χρησιµοποιηθούν. Συνεπώς, αποδεικνύονται αρκετά χρήσιµα στα µικρά δίκτυα τα οποία έχουν λίγα εναλλακτικά µονοπάτια και όχι αυστηρές απαιτήσεις στην απόδοση του δικτύου. Το link state routing αποτελεί εγγύηση ανεξαρτήτως των αποτελεσµάτων που θα επέφερε µία τοπολογική αλλαγή. Παράλληλα, υπάρχει περισσότερο bandwidth το οποίο είναι πολύ πιο χρήσιµο σε περιπτώσεις routing traffic και όχι τόσο σε περιπτώσεις συντήρησης του δικτύου, γεγονός που οδηγεί στον 55
καταλληλότερο σχεδιασµό του τελευταίου. Γίνεται, λοιπόν, εύκολα αντιληπτό ότι η link state δροµολόγηση είναι καλύτερη για µεγάλα και πιο περίπλοκα δίκτυα αν και πρέπει να σηµειωθεί ότι απαιτεί περισσότερο καλά σχεδιασµένους και συνεπώς ακριβότερους δροµολογητές. Συμπεράσματα RIP Αποτελεί ένα πολύ καλό παράδειγµα αλγοριθµοποίησης distance vector ενώ ο σχηµατισµός του είναι απλός και εύκολος και, ως εκ τούτου, αποτελεί ιδανική επιλογή για µικρά και απλά δίκτυα. Ωστόσο, το γεγονός ότι η µετρική του δεν µπορεί να είναι πάνω από 16 περιορίζει το µέγεθος των δικτύων στα οποία µπορεί να εφαρµοστεί. OSPF Το OSPF είναι ένα πολύ καλό λειτουργικό πρωτόκολλο αφού η σύγκλιση επιτυγχάνεται αρκετά γρήγορα. Παράλληλα, υπάρχουν πολλά εργαλεία που επιτρέπουν στο OSPF να χρησιµοποιείται σε µεγάλα και απαιτητικά δίκτυα. Το OSPF έχει πολλά χαρακτηριστικά και απαιτεί περισσότερη σκέψη προκειµένου να σχεδιαστεί και να λειτουργήσει από τα υπόλοιπα IGP πρωτόκολλα που εξετάσαµε. 56