Open Shortest Path First OSPF, Open Shortest Path First Protocol Ενημέρωση: 21/04/04 © ngia
Στοιχεία Δρομολόγησης Δρομολόγηση με βάση τα διανύσματα απόστασης Δρομολόγηση με βάση την κατάσταση σύνδεσης OSPF, Open Shortest Path First Λειτουργίκή Περιγραφή Πρωτοκόλλου Μηνύματα OSPF Επιπλέον Δυνατότητες του πρωτοκόλλου
Στοιχεία Δρομολόγησης
Δρομολόγηση Η διαδικασία με την οποία οδηγούμε με κατάλληλο τρόπο ένα πακέτο από τον αποστολέα στο παραλήπτη Πρέπει να επιλέξουμε το συντομότερο - καλύτερο μονοπάτι Η αποφάσεις δρομολόγησης παίρνονται και δυναμικά
Γιατί δυναμική δρομολόγηση; Το ιδεατό δίκτυο υπάρχει μόνο στα όνειρα μας Συνδέσεις κόβονται Δρομολογητές χαλάνε Ελαττωματικές συνδέσεις υπάρχουν Μεγάλο πλήθος συνδέσεων – κόμβων άρα πρακτικά αδύνατο να οριστούν στατικά οι διαδρομές Αν υπάρχει εναλλακτική διαδρομή προς ένα προορισμό, όταν κοπεί η κύρια, η δυναμική δρομολόγηση θα την ανακαλύψει Μοίρασμα του φόρτου αν υπάρχουν περισσότερες από μια εναλλακτικές διαδρομές (load balancing)
Στοιχεία Δρομολόγησης Αλγόριθμοι με τους οποίους υπολογίζεται η καλύτερη διαδρομή Μετρικές ανάλογες του πρωτοκόλλου, χρησιμοποιούνται ώστε να παίρνονται οι αποφάσεις δρομολόγησης (ο αριθμός των hop, το εύρος των συνδέσεων, ..) Ανταλλαγή πληροφορίας δρομολόγησης Συντήρηση – ενημέρωση των πινάκων δρομολόγησης ώστε να είναι πάντα έγκυροι Αποτροπή βρόχων ή γενικά προβληματικών καταστάσεων Χρόνος διάδοσης των διαδρομών στους κόμβους του δικτύου Η σταθερότητα και η στιβαρότητα του πρωτοκόλλου
IP Δρομολόγηση Η δρομολόγηση βασίζεται στις διευθύνσεις δικτύου IP Οι δρομολογητές συντηρούν πίνακες δρομολόγησης της ακόλουθης μορφής: Προορισμός Επόμενη διαδρομή / hop / διεπαφή Κόστος / μετρική Για κάθε πακέτο ο δρομολογητής συμβουλεύεται τον πίνακα δρομολόγησης και στη συνέχεια το προωθεί προς την κατάλληλη κατεύθυνση Ο πίνακας δρομολόγησης περιέχει διαδρομές που έχουν οριστεί στατικά (από το διαχειριστή) και διαδρομές που έχουν ανακαλυφθεί δυναμικά από διάφορα δυναμικά πρωτόκολλα αξιοποιώντας πληροφορία δρομολόγησης που ανταλλάσσεται ανάμεσα στους δρομολογητές
Αρχές IP Δρομολόγησης Θεωρούμε το ακόλουθο δίκτυο το οποίο αποτελείται από τρεις δρομολογητές, RTA, RTB, RTC Κάθε ένας έχει τρεις διεπαφές (interfaces) εκ των οποίων η μία είναι προς τοπικό δίκτυο , ενώ οι άλλες είναι για τη σύνδεση με τους άλλους δύο Οι διεπαφές μπορεί να είναι σειριακές όπως μια Ε1 (2048Kbps), μπορεί να είναι ethernet 10/100/1000 ή οτιδήποτε άλλο στο οποίο περνά IP κίνηση Από τα δίκτυα, τα 10.0.1.0/24, 10.0.6.0/24, 10.0.4.0/24 είναι τοπικά δίκτυα ενώ τα υπόλοιπα χρησιμοποιούνται απλώς για τις συνδέσεις ανάμεσα στους δρομολογητές
Δύο από τις υπόλοιπες θα χρησιμοποιηθούν στις διεπαφές των RTA-RTB Αρχές IP Δρομολόγησης Για το τμήμα (segment) της σύνδεσης ανάμεσα σε δύο δρομολογητές πρέπει να χρησιμοποιηθεί ένα υποδίκτυο Το μέγεθος του εξαρτάται από το πλήθος των δρομολογητών που θα συνδεθούν σε αυτό το κοινό τμήμα Έστω ότι για λόγους απλότητας χρησιμοποιούμε το 10.0.2.0/24 για το segment των RTA-RTB 10.0.2.0/24 σημαίνει ότι η μάσκα αποτελείται από 24 άσσους, άρα η μάσκα είναι η 255.255.255.0 και το δίκτυο αυτό αποτελείται από τις διευθύνσεις 10.0.2.0 ως και 10.0.2.255, με την πρώτη να περιγράφει το υποδίκτυο (το καλώδιο) και την τελευταία να είναι η broadcast διεύθυνση Δύο από τις υπόλοιπες θα χρησιμοποιηθούν στις διεπαφές των RTA-RTB RTB 10.0.2.2 mask 255.255.255.0 RTA 10.0.2.1 mask 255.255.255.0
Αρχές IP Δρομολόγησης Κάθε δρομολογητής γνωρίζει τα δίκτυα στα οποία είναι κατευθείαν συνδεμένος Έτσι ο RTA έχει κατευθείαν σύνδεση με : Το δίκτυο 10.0.1.0/24 στην διεπαφή Ε2 Το δίκτυο 10.0.3.0/24 στην διεπαφή Ε1 Το δίκτυο 10.0.2.0/24 στην διεπαφή Ε0 Ο πίνακας δρομολόγησης του θα έχει επομένως μια στατική εγγραφή για καθένα από τα τρία αυτά υποδίκτυα Η εγγραφή αυτή δημιουργείται αυτόματα με το που τεθεί σε λειτουργική κατάσταση η αντίστοιχη διεπαφή
Αρχές IP Δρομολόγησης Από κάποιον κόμβο του τοπικού δικτύου 10.0.1.0/24 μπορούμε επομένως να προσεγγίσουμε μόνο τα 10.0.2.0/24 και 10.0.3.0/24 αφού μόνο για αυτά ο δρομολογητής RTA έχει γνώση Ένας τρόπος να προσεγγίσουμε για παράδειγμα το 10.0.4.0/24 θα ήταν να ορίσουμε στατικές διαδρομές στους RTA, RTB : RTA: Για να πας στο 10.0.4.0/24 πήγαινε στην διεπαφή Ε1 του RΤΒ RΤΒ: Για να πας στο 10.0.1.0/24 πήγαινε στη διεπαφή Ε0 του RTA
Αρχές IP Δρομολόγησης Επειδή αυτό δεν είναι πρακτικό οι συμμετέχοντες δρομολογητές χρησιμοποιούν ένα πρωτόκολλο δρομολόγησης προκειμένου να ενημερώσουν τους όμοιους τους για το πως αυτοί μπορεί να προσεγγιστούν Με την ολοκλήρωση των ενημερώσεων ανάμεσα στους δρομολογητές, ο καθένας έχει φτιάξει τον πίνακα δρομολόγησης και γνωρίζει από που να προσεγγίσει τον κάθε προορισμό Η κατάσταση όπου όλοι γνωρίζουν την εικόνα του δικτύου και έχουν φτιάξει τους πίνακες τους λέμε ότι έχει επέλθει σύγκλιση Ο χρόνος για να φτάσουμε σε αυτή την κατάσταση ονομάζεται περίοδος σύγκλισης
Αρχές IP Δρομολόγησης Παράδειγμα : Σε κατάσταση σύγκλισης ο RTA έχει τον ακόλουθο πίνακα δρομολόγησης: Το δίκτυο 10.0.1.0/24 στην διεπαφή Ε2 Το δίκτυο 10.0.3.0/24 στην διεπαφή Ε1 Το δίκτυο 10.0.2.0/24 στην διεπαφή Ε0 Το δίκτυο 10.0.4.0/24 στην διεπαφή Ε1 του RTB Το δίκτυο 10.0.5.0/24 στην διεπαφή Ε1 του RTB Το δίκτυο 10.0.6.0/24 στην διεπαφή Ε0 του RTC
Αρχές IP Δρομολόγησης Κόμβος του τοπικού δικτύου 10.0.1.0/24 θέλει να στείλει ένα πακέτο με προορισμό κόμβο στο 10.0.4.0/24 Καταρχήν βλέποντας ότι ο προορισμός ανήκει σε διαφορετικό υποδίκτυο, το στέλνει στο gateway του που έχουμε ορίσει να είναι η θύρα Ε2 του RTA Ο RTA συμβουλεύεται τον πίνακα του και προωθεί το πακέτο στην Ε1 θύρα του RTB Ο RTB γνωρίζει ότι έχει κατευθείαν σύνδεση με το 10.0.4.0/24 στην E2 και προωθεί το πακέτο προς τα εκεί
Μοντέλο λειτουργίας πρωτοκόλλων δρομολόγησης
Μοντέλο λειτουργίας πρωτοκόλλων δρομολόγησης Ο κάθε δρομολογητής χτίζει την RIB, Routing Information Base του παίρνοντας πληροφορία από τους γείτονες του, σχετικά με τις συνδέσεις τους Υπάρχει μια RIB, ανά πρωτόκολλο Το πρωτόκολλο δρομολόγησης χρησιμοποιεί την πληροφορία που βρίσκεται στη βάση RIB και εξάγει τις διαδρομές (routes) Ενημερώνεται η βάση FIB, Forwarding Information Base η οποία παρέχει πληροφορία για τον τρόπο προώθησης των πακέτων Στη συνέχεια ένας αλγόριθμος προώθησης, παίρνει μια απόφαση προώθησης (Forwarding Decision), αξιοποιώντας την πληροφορία στην FIB H FIB είναι μία, ανά δρομολογητή
Τύποι πρωτοκόλλων δρομολόγησης Όσον αφορά την ιεραρχία τα πρωτόκολλα χωρίζονται σε: Interior protocols RIP, OSPF Exterior protocols BGP, Border Gateway Protocol
Τύποι πρωτοκόλλων δρομολόγησης
Interior protocols Αναφέρονται στη δρομολόγηση εντός ενός αυτόνομου συστήματος AS Αυτόνομο σύστημα ορίζεται σαν ένα ευρύ δίκτυο υπό την ίδια διαχειριστική αρχή και μπορεί να είναι ένα εταιρικό, εκπαιδευτικό δίκτυο ή οποιαδήποτε δίκτυο μπορεί να ειδωθεί σαν συνεχές internet Exterior protocols Τα μεγάλα δίκτυα αποτελούνται από ένα αριθμό αυτόνομων συστημάτων Δρομολογητές που συνδέονται στα άκρα αυτών των περιοχών (border routers) συνδέουν τα αυτόνομα συστήματα μεταξύ τους Αυτοί δεν χρειάζεται να έχουν λεπτομερή γνώση του εσωτερικού δικτύου και απλά περνάνε μια συνοπτική εικόνα προς τους υπόλοιπους border routers H εικόνα αυτή περιέχει απλά τα υποδίκτυα τα οποία είναι προσβάσιμα, ώστε η πληροφορία που κρατάνε οι παραπάνω δρομολογητές να μην είναι πολύ μεγάλη Από την οπτική γωνία ενός εξωτερικού πρωτοκόλλου δρομολόγησης ένα AS είναι ένα απλό δίκτυο
Τύποι πρωτοκόλλων δρομολόγησης Όσον αφορά τη φιλοσοφία του πρωτοκόλλου οι βασικοί τύποι είναι: Distance Vector IGRP, Interior Gateway Routing Protocol RIP, Routing Information Protocol Link State OSPF, Open Shortest Path First Protocol
Δρομολόγηση με βάση τα διανύσματα απόστασης
Distance Vector Routing Κάθε κόμβος στέλνει στους γείτονες ένα διάνυσμα: Ο αριθμός των hops για να φτάσει κάθε άλλο δίκτυο Διάνυσμα απόστασης για τον Α X 3hops Y 4hops Z 2hops Οι δρομολογητές στέλνουν όλο ή ένα τμήμα του πίνακα δρομολόγησης που έχουν στους γείτονες τους, σαν μηνύματα ενημέρωσης X Z Y Α
Distance Vector Routing Κάθε κόμβος έχει πληροφορία δρομολόγησης μόνο για το επόμενο hop Κόμβος Α: Για να πάς στον F, πήγαινε στον Β Κόμβος Β: Για να πας στον F, πήγαινε στον D Κόμβος D: Για να πας στον F, πήγαινε στον E Κόμβος E: Πήγαινε στον F κατευθείαν
Distance Vector Routing Οι οδηγίες για να πάμε σε ένα προορισμό έχουν τη μορφή Ξεκίνα από το σημείο Α Στρίψε δεξιά εκεί Στρίψε αριστερά εκεί .. Αν όλες οι οδεύσεις λειτουργούν το πρωτόκολλο δουλεύει άψογα Δηλαδή σε κάθε κόμβο που περνάμε υπάρχει μια οδηγία για το επόμενο δρόμο που πρέπει να ακολουθήσουμε
Distance Vector Routing Πρόβλημα Αν για παράδειγμα τεθεί εκτός ένας κόμβος, οι αποφάσεις δρομολόγησης που παίρνονται είναι άστοχες Σε τέτοια περίπτωση η δρομολόγηση δεν είναι η σωστή μέχρι οι αλγόριθμοι δρομολόγησης να συγκλίνουν πάλι
RIP Απλό πρωτόκολλο τύπου Distance Vector Αρχικοποίηση Ο δρομολογητής στέλνει request σε κάθε διεπαφή Οι γείτονες απαντούν με όλη την πληροφορία δρομολόγησης που έχουν Ενημέρωση Περιοδικά, περίπου ανά 30’, ή όποτε γίνει κάποια αλλαγή γίνεται αναγγελία των πινάκων δρομολόγησης προς τους γείτονες Για να αποφευχθεί κατάσταση ταλάντωσης, οι υπάρχουσες διαδρομές κρατούνται μέχρι μία καινούργια να ανακαλυφθεί με μικρότερο κόστος Split horizon : Δεν γίνεται διαφήμιση μιας διαδρομής προς την κατεύθυνση από την οποία έγινε η εκμάθηση της, ώστε να αποφευχθούν βρόχοι
RIPv2 Αφορά κάποιες βελτιώσεις στο RIPv1, όπως το VLSM, Variable Length Subnetting Mask, η αυθεντικοποίηση, η ενημέρωση με multicast μυνήματα Γενικά δεν θεωρείται ιδιαίτερη βελτίωση σε σχέση με την πρώτη έκδοση, διότι διατηρεί τους περιορισμούς του RIP πρωτοκόλλου
Σύγκλιση αλγόριθμού Οι καινούργιες διαδρομές ενημερώνονται γρήγορα Ο G1 διαφημίζει τη διαδρομή προς το A υποδίκτυο με απόσταση 1 Οι G2-G5 μαθαίνουν γρήγορα την καινούργια διαδρομή και ενημερώνουν τους πίνακες τους
Σύγκλιση αλγόριθμού Η σύνδεση του G1 με το Α χάνεται Ο G1 μαθαίνει για μία καλύτερη διαδρομή μέσω του G2 Τα πακέτα που φτάνουν στον G2 και έχουν προορισμό το Α θα πηγαινοέρχονται μεταξύ G1 και G2 Οι G1 και G2 θα βρουν ότι το κόστος των διαδρομών που έχουν προς το Α, αργά αυξάνεται προς το άπειρο Χρησιμοποιούμε ένα πεπερασμένο αριθμό, πχ το 16, ώστε να εξομοιώσουμε το άπειρο Η λειτουργία split horizon αποτρέπει τη δημιουργία βρόχων, μόνο όταν εμπλέκονται δύο κόμβοι
Ασφάλεια – μαύρες τρύπες Ο C μπορεί να πει ψέματα για τα δίκτυα A και B, ότι για παράδειγμα συνδέεται κατευθείαν με τα A, B δίκτυα Οι δύο κόμβοι που φαίνονται στο σχήμα, στέλνουν τα πακέτα προς Α ή Β προς τον C C
Ασφάλεια – μαύρες τρύπες Το πρωτόκολλο υποθέτει ότι κάθε δρομολογητής είναι εμπιστέψιμος και το ίδιο συμβαίνει με την πληροφορία δρομολόγησης Κάθε δρομολογητής επιτρέπεται να διαδώσει σε άλλους λανθασμένες οδηγίες δρομολόγησης Δεν είναι δυνατό να αποτραπεί επίθεση λόγω των συγκεκριμένων αδυναμιών (black holes) Για να ανιχνευθούν οι υπεύθυνοι δρομολογητές για την εισαγωγή της λανθασμένης πληροφορίας, πρέπει να ακολουθηθεί η διαδρομή προς τα πίσω, διαδικασία επίπονη και όχι αποτελεσματική
Δρομολόγηση με βάση την κατάσταση σύνδεσης
Link State Routing Link Μπορούμε να το ορίσουμε σαν τη σύνδεση ανάμεσα σε δυο δρομολογητές ή σαν μια διεπαφή (interface) State of the Link Περιγραφή της διεπαφής (IP διεύθυνση, μάσκα, τύπος δικτύου,..) και λειτουργική κατάσταση της
Κάθε κόμβος προωθεί παραπέρα την πληροφορία αυτή Link State Routing Κάθε κόμβος στέλνει στους γείτονες την κατάσταση των συνδέσεων (και το κόστος σύνδεσης) που έχει με τους γείτονες του Κάθε κόμβος προωθεί παραπέρα την πληροφορία αυτή Έχω συνδέσεις με τους Χ, Υ, Ζ και η τρέχουσα κατάσταση τους είναι ...
Link State Routing Εδώ σε κάθε κόμβο που περνάμε υπάρχει ένας ολοκληρωμένος χάρτης του δικτύου (και όχι μια απλή οδηγία για την επόμενη διαδρομή), έτσι σε κάθε κόμβο μπορούμε να υπολογίσουμε ξανά ποιος θα είναι ο επόμενος δρόμος Σαν παράδειγμα σκεφτείτε σταθμούς τραίνου, που να έχουν ένα πλήρη χάρτη του δικτύου
Link State Routing
Link State Routing Κάθε κόμβος κατέχει ένα πλήρη χάρτη του δικτύου Σε περίπτωση απώλειας κόμβου ή σύνδεσης, με το που λάβει την πληροφορία αυτή κάθε κόμβος υπολογίζει ξανά τις διαδρομές Πρόβλημα Όλοι οι κόμβοι χρειάζεται να έχουν μια πλήρη εικόνα του δικτύου Η πληροφορία σχετικά με την κατάσταση μιας ζεύξης πρέπει να διαδίδεται σε όλους τους κόμβους Όμως: Η σύγκλιση του αλγόριθμου είναι εγγυημένη
OSPF, Open Shortest Path First
Ιστορική Αναδρομή OSPF 1989: RFC 1131 OSPF Version 1 1991: RFC1247 OSPF Version 2 1994: RFC 1583 OSPF Version 2 (revised) 1997: RFC 2178 OSPF Version 2 (revised) 1998: RFC 2328 OSPF Version 2 (current version) Αναπτύχθηκε από την ομάδα εργασίας IGP, Interior Gateway Protocol της IETF, Internet Engineering Task Force Η ομάδα ιδρύθηκε το 1988 Παρόμοια με το IGRP, Interior Gateway Routing Protocol το OSPF δημιουργήθηκε διότι στα μέσα 1980 το RIP, Routing Information Protocol, φάνηκε ανεπαρκές για να εξυπηρετήσει μεγάλα, ανομοιογενή δίκτυα
Ιστορική Αναδρομή OSPF Στηρίχθηκε σε διάφορες έρευνες – εργασίες, όπως των: Bolt, Beranek, Newman’s (BBN’s) για τους αλγόριθμους SPF, Πάνω σε αλγόριθμους που αναπτύχθηκαν από το 1978 για το ARPANET (δίκτυο μεταγωγής πακέτου που αναπτύχθηκε από την BBN τη δεκαετία του 1970) Τη μελέτη του Dr. Radia Perlman’s για τη χωρίς λάθη μετάδοση της πληροφορίας δρομολόγησης, (1988) Εργασία της BBN πάνω στη δρομολόγηση περιοχών, area routing (1986), μια πρώϊμη έκδοση του IS-IS Intermediate System-to-Intermediate System πρωτοκόλλου δρομολόγησης της OSI
OSPF, Γενικά χαρακτηριστικά Πρωτόκολλο δρομολόγησης IP δικτύων Είναι το πιο σημαντικό πρωτόκολλο τύπου Link State Routing Η πολυπλοκότητα του OSPF είναι σημαντική Είναι ανοικτό πρωτόκολλο , δημοσιευμένο σαν RFC, Request for Comment – RFC1247 Πρωτόκολλο τύπου IGP, Interior Gateway Protocol, αφορά τη διανομή πληροφορίας δρομολόγησης εντός ενός αυτόνομου συστήματος (intra-AS, interior gateway), παρότι μπορεί να στείλει και να λάβει διαδρομές και από άλλα Βασίζεται σε αλγόριθμό SPF, Shortest Path First (αναφερόμενος και σαν αλγόριθμος του Dijkstra)
OSPF, Γενικά χαρακτηριστικά Δεν υπάρχει περιορισμός στον αριθμό των hop, ενώ το RIP περιορίζεται στα 15hops VLSM : Σε κάθε διαφημιζόμενο προορισμό υπάρχει και η μάσκα Έτσι είναι δυνατό να σπάσει το IP δίκτυο σε πολλά υποδίκτυα διάφορων μεγεθών, παρέχοντας μεγαλύτερη ευελιξία στο διαχειριστή. Αντίθετα στο RIP v1 δεν υπάρχει αυτή η δυνατότητα Παρέχει λειτουργία αυθεντικοποίησης των μηνυμάτων δρομολόγησης, ενώ στο RIPv1 δεν υπάρχει τέτοια δυνατότητα (το RIPv2 έχει)
OSPF, Γενικά χαρακτηριστικά Load Balancing, επιτρέπει το διαμοιρασμό της κίνησης ανάμεσα σε μονοπάτια τα οποία έχουν το ίδιο βάρος Επιτρέπει τη μεταφορά και το μαρκάρισμα (tagging) των διαδρομών οι οποίες εισάγονται σε ένα αυτόνομο σύστημα, από εξωτερικά πρωτόκολλα όπως το BGP
Σύγκλιση, RIP v OSPF RIP Οι RIP routers μαζεύουν μεγάλο ποσό άχρηστης πληροφορίας και δημιουργούνται λανθασμένες δρομολογήσεις λόγω της μεγάλης καθυστέρησης σύγκλισης Οι ενημερώσεις στέλνονται περιοδικά ανά 30 sec, αφορούν όλη την πληροφορία δρομολόγησης και γίνονται με broadcast μετάδοση Το γεγονός αυτό αυτόματα κάνει το RIP ακατάλληλο για χρήση σε ασύρματα δίκτυα Aκατάλληλο πρωτόκολλο για μεγάλα δίκτυα ή δίκτυα που αλλάζουν αρκετά γρήγορα και συχνά Η σύγκλιση μπορεί να πάρει αρκετά λεπτά, οι δρομολογητές κάνουν time-out πληροφορία που δεν έχει ληφθεί πρόσφατα OSPF Έχει καλύτερη - γρηγορότερη σύγκλιση, διότι οι αλλαγές προωθούνται άμεσα και όχι περιοδικά. Αλλαγές στη δρομολόγηση συμβαίνουν άμεσα και όχι περιοδικά Οι ενημερώσεις στέλνονται μόνο σε περίπτωση αλλαγής και γίνονται με ip multicast μετάδοση Λιγότερο overhead στο δίκτυο, ιδιότητα σημαντική για μεγάλα δίκτυα
Βέλτιστη διαδρομή, RIP v OSPF Οι αποφάσεις δρομολόγησης λαμβάνονται με βάση μόνο των αριθμό των συνδέσεων και όχι το κόστος – εύρος της κάθε σύνδεσης. Έτσι προτιμάται μια κοντινή διαδρομή έστω και αν υπάρχει μακρύτερη με περισσότερο εύρος OSPF Οι αποφάσεις δρομολόγησης λαμβάνονται με βάση το κόστος των συνδέσεων και έτσι προτιμάται η αληθινά βέλτιστη διαδρομή
Iεραρχία, RIP v OSPF RIP Τα RIP δίκτυα είναι επίπεδα, δεν έχουν τη δυνατότητα ιεράρχησης στη δρομολόγηση Αυτό αποκλείει την εφαρμογή τεχνικών aggregation, summarization OSPF Αντίθετα στο OSPF η δυνατότητα ορισμού ιεραρχίας στη δρομολόγηση, (με τον ορισμό περιοχών) περιορίζει τον αριθμό των ενημερώσεων σε μεγάλα δίκτυα και παρέχει το μηχανισμό για την συνένωση (aggregation) των διαδρομών και τον περιορισμό της μη χρήσιμης μετάδοσης πληροφορία σχετικά με τα υποδίκτυα
Type of Service Routing Επιτρέπει τη δημιουργία διαφορετικών διαδρομών ανάλογα με το πεδίο TOS, που ορίζει τη σημαντικότητα ενός πακέτου Έτσι μπορεί να έχουμε δεδομένα που είναι επείγουσα η αποστολή τους, οπότε να γίνεται η παράδοση τους από συγκεκριμένες διαδρομές Αυτό επιτυγχάνεται με την υποστήριξη από το OSPF περισσοτέρων της μίας μετρικές Έτσι για κάθε ένα από τους 8 συνδυασμούς που προκύπτουν με τα TOS bits (delay, throughput, reliability bit), είναι δυνατό να υπάρχει ξεχωριστός πίνακας δρομολόγησης (εφόσον ενεργοποιηθεί η δυνατότητα)
IP Multicast addressing Χρήση IP multicast για να σταλούν οι ενημερώσεις για την κατάσταση των συνδέσεων, έτσι η επεξεργαστική ισχύς είναι μικρότερη σε δρομολογητές που δεν ακούνε τα OSPF πακέτα. Αυτό διότι θα τα περάσουν διαφανώς, χωρίς να τα επεξεργαστούν Οι IP multicast διευθύνσεις υλοποιούνται χρησιμοποιώντας τάξης D διευθύνσεις Μια διεύθυνση τάξης D ανήκει στο διάστημα 224.0.0.0 – 239.255.255.255
IP Multicast addressing Κάποιες από τις διευθύνσεις αυτές έχουν δεσμευθεί για το OSPF: 224.0.0.5 Όλοι οι OSPF δρομολογητές εκπέμπουν και ακούν σε αυτή τη διεύθυνση 224.0.0.6 Όλοι οι DR , BDR δρομολογητές εκπέμπουν και ακούν σε αυτή τη διεύθυνση Απεικόνιση μεταξύ IP multicast διευθύνσεων και MAC διευθύνσεων Τα τελευταία 23bits της IP διεύθυνσης χρησιμοποιούνται σαν bits χαμηλής τάξης της MAC multicast διεύθυνσης 01-005Ε-00-00-00 Δηλ 224.0.0.5 01-00-5Ε-00-00-05 224.0.0.6 01-00-5Ε-00-00-06
VLSM, Variable Length Subnet Masks Σημαντική δυνατότητα για την αποτελεσματική ανάθεση των IP διευθύνσεων Προσφέρει ευελιξία στη διάρθρωση ενός δικτύου σε πολλά μικρότερα υποδίκτυα, όπου κάθε υποδίκτυο θα μπορεί να χωρέσει επαρκή αριθμό hosts Χωρίς τη χρήση του μπορούμε να έχουμε μόνο μία μάσκα σε ένα δίκτυο, το οποίο είναι μεγάλος περιορισμός, αφού οδηγεί σε σπατάλη IP διευθύνσεων
VLSM, Variable Length Subnet Masks Έστω ένα δίκτυο C τάξης και θέλουμε να το χωρίσουμε σε τρία υποδίκτυα με 100 , 50 και 50 σταθμούς Χωρίς τη χρήση μεταβλητής μάσκας αυτό δεν είναι δυνατό, έχουμε να επιλέξουμε ανάμεσα σε δύο υποδίκτυα των 128 ή τέσσαρα των 64 Αντίθετα με τη χρήση μεταβλητής μάσκας, μπορούμε να επιτύχουμε την επιθυμητή διαίρεση
Μάσκες 252 (1111 1100) 4 διευθύνσεις 248 (1111 1000) 8 διευθύνσεις 240 (1111 0000) 16 διευθύνσεις 224 (1110 0000) 32 διευθύνσεις 192 (1100 0000) 64 διευθύνσεις 128 (1000 0000) 128 διευθύνσεις Όταν αναθέτουμε μία διεύθυνση σε μία διεπαφή, χρησιμοποιούμε ολόκληρο το υποδίκτυο για το συγκεκριμένο τμήμα (segment) Έτσι για παράδειγμα 10.26.122.40 με μάσκα 255.255.255.224 σημαίνει ότι οι διευθύνσεις 10.26.122.32 – 10.26.122.63 έχουν καταναλωθεί για το συγκεκριμένο τμήμα
OSPF, μειονεκτήματα Το αντίτιμο που πληρώνουμε για τις περισσότερες δυνατότητες του πρωτοκόλλου είναι η πολυπλοκότητα στην ρύθμιση και στην άρση βλαβών Επίσης απαιτείται περισσότερη επεξεργαστική ισχύς και μνήμη στους δρομολογητές
Λειτουργική Περιγραφή Πρωτοκόλλου
Μοντέλο λειτουργίας πρωτοκόλλου δρομολόγησης Κάθε πρωτόκολλο δρομολόγησης περιλαμβάνει απαραίτητα τρόπους υλοποίησης (πρωτόκολλα) των ακόλουθων διαδικασιών: Αναζήτηση γειτόνων Προσιτότητα γειτόνων Ανταλλαγή πληροφορίας δρομολόγησης Δημιουργία – εύρεση διαδρομών (routes) Τερματισμός σχέσης γειτονίας Ας δούμε πως υλοποιούνται τα παραπάνω στην περίπτωση του OSPF :
Αναζήτηση γειτόνων Αφορά την εύρεση των γειτονικών δρομολογητών Γίνεται με την ανταλλαγή Hello μηνυμάτων H διαδικασία περιγράφεται στο Hello πρωτόκολλο
Αναζήτηση γειτόνων, διαδικασία Ο δρομολογητής αρχικοποιεί τις δομές δεδομένων του Μπαίνει σε κατάσταση αναμονής μέχρι να λάβει ένδειξη από τα παρακάτω επίπεδα (MAC ethernet) ότι οι διεπαφές είναι σε κανονική λειτουργία Ακολουθεί εκπομπή OSPF Hello μηνυμάτων (multicast) σε όλες τις εν λειτουργία διεπαφές, όπου έχει ενεργοποιηθεί το πρωτόκολλο Αν υπάρξει απάντηση από ένα γείτονα (με Hello μήνυμα) σημαίνει ότι υπάρχει συνδεσιμότητα με αυτόν (γειτνίαση)
Ευθυγράμμιση δυο γειτόνων Για να γίνει η δρομολόγηση πρέπει κάθε κόμβος να ενημερώσει τους γείτονες του με την σχετική πληροφορία που έχει Η πληροφορία βρίσκεται στην RIB, Routing Information Base του δρομολογητή, για το OSPF αυτή λέγεται Link State Database Όλοι οι δρομολογητές στη μόνιμη κατάσταση πρέπει να έχουν την ίδια τοπολογική βάση Η βάση αυτή μπορούμε να πούμε ότι είναι ένας χάρτης του δικτύου Το γεγονός ότι σε κάθε δρομολογητή μπορούμε να βρούμε ένα αντίγραφο της εικόνας του δικτύου είναι πολύ χρήσιμο για την εύρεση σφαλμάτων στο δίκτυο
Τοπολογική βάση (Link State Database) Κάθε δρομολογητής διατηρεί μια βάση με όλα τα λαμβανόμενα LSAs η οποία ονομάζεται topological database ή link state database Σε αυτή αναπαρίσταται όλο το δίκτυο, όπου οι συνδέσεις είναι ζυγισμένες (weighted) Συγκρίνοντας τις υπάρχουσες γειτνιάσεις με την κατάσταση των συνδέσεων, οι προβληματικοί δρομολογητές μπορούν να ανιχνευθούν γρήγορα και η τοπολογία του δικτύου να αλλάξει αντίστοιχα
Ευθυγράμμιση δυο γειτόνων Έτσι αφού διαπιστωθεί η γειτνίαση τους, οι δύο δρομολογητές μπορούν να προχωρήσουν στη διαδικασία ευθυγράμμισης των βάσεων που περιέχουν τις καταστάσεις των συνδέσεων (Link State Database) Ο κάθε δρομολογητής στέλνει LSAs, Link State Advertisements μηνύματα σε όλους τους δρομολογητές στην ίδια ιεραρχία με αυτόν Τα LSA περιέχουν πληροφορία σχετικά με την κατάσταση των συνδέσεων όπως, interfaces, metrics και άλλοι παράμετροι Αυτό σημαίνει αμοιβαία ανταλλαγή πληροφορίας, ώστε τελικά οι βάσεις τους να είναι πανομοιότυπες Τότε λέμε ότι οι δύο δρομολογητές είναι ευθυγραμμισμένοι (adjacency) Πριν όμως να προχωρήσουν στην διαδικασία ευθυγράμμισης, ελέγχουν αν πληρώνονται κάποιες προϋποθέσεις:
Προϋποθέσεις για να ευθυγραμμιστούν δυο γείτονες Area-ID Οι διεπαφές πρέπει να έχουν το ίδιο Area-ID, όπως βέβαια και να ανήκουν στο ίδιο υποδίκτυο, ώστε να υπάρχει IP συνδεσιμότητα Αυθεντικοποίηση Στην περίπτωση που ορίσουμε ότι θα χρησιμοποιείται συνθηματική λέξη σε μια περιοχή, θα πρέπει οι δρομολογητές να έχουν την ίδια Hello – Dead Intervals Το Hello interval ορίζει κάθε πόσα δευτερόλεπτα ο δρομολογητής στέλνει Hello μήνυμα σε μία διεπαφή To Dead interval είναι το χρονικό διάστημα στο οποίο αν ο δρομολογητής δεν δει Hello μήνυμα θα θεωρήσει τον γείτονα εκτός λειτουργίας Αυτά τα διαστήματα πρέπει να ρυθμιστούν με τον ίδιο τρόπο σε γειτνιάζοντες κόμβους, διαφορετικά ποτέ δεν θα ευθυγραμμιστούν Stub area flag Πρέπει να είναι το ίδιο
Προϋποθέσεις για να ευθυγραμμιστούν δυο γείτονες Hello – Dead Interval Υλοποιήσεις όπως η zebra ή οι cisco δρομολογητές, υλοποιούν τα διαστήματα με τον ίδιο τρόπο (Hello Interval=10sec, Dead Interval=40sec) Άλλες υλοποιήσεις (όπως οι gated δρομολογητές) έχουν διαφορετικά διαστήματα ορισμένα (Hello Interval=60sec, Dead Interval=180sec) Σε περιπτώσεις όπου παρότι οι ζεύξεις είναι σε καλή κατάσταση και οι ip ρυθμίσεις είναι οι σωστές, αλλά δεν ενημερώνονται σωστά οι πίνακες δρομολόγησης, πρέπει να γίνει έλεγχος ότι οι παραπάνω προϋποθέσεις πληρούνται
Εκλογή DR, BDR Το επόμενο βήμα (αφού πληρούνται οι προϋποθέσεις) είναι η εκλογή των DR, Designated Router και BDR, Backup Designated Router στο segment, εφόσον έχουμε ορίσει τέτοια δυνατότητα Αφού εκλεχθούν αυτοί, ακολουθεί η ευθυγράμμιση όλων των υπολοίπων με αυτούς μόνο και όχι όλων μεταξύ τους ευθυγράμμιση
Γιατί DR, BDR; Σε περίπτωση σύνδεσης P2P ανάμεσα σε δυο δρομολογητές και οι δύο αναπτύσσουν μια σχέση adjacency (ευθυγραμμίζονται). Δεν υπάρχει η έννοια DR ή BDR. Η κατάσταση της διεπαφής είναι Point to Point Σε multi-access δίκτυα (παράδειγμα, ένας αριθμός δρομολογητών που συνδέονται στο ίδιο segment), όμως δεν έχει νόημα κάθε δρομολογητής να ανταλλάσσει πληροφορία με όλους τους υπόλοιπους στο ίδιο segment Ο αριθμός των ευθυγραμμίσεων σε αυτή την περίπτωση θα ήταν n*(n-1)/2 , όπου n ο αριθμός των δρομολογητών Έτσι είναι λογικό να υπάρχει ένα κεντρικό σημείο (DR και BDR) ανά segment, στο οποίο μπορούν οι δρομολογητές να ανταλλάξουν πληροφορία, και οι σχέσεις ευθυγράμμισης να είναι μόνο n-2
Γιατί DR, BDR; Σε αυτή την περίπτωση εκλέγεται αντιπρόσωπος (DR) και εφεδρικός αντιπρόσωπος (BDR) για το τμήμα (segment) Όλοι οι υπόλοιποι δρομολογητές του τμήματος ευθυγραμμίζονται μόνο με τους DR, BDR , σχηματίζοντας έτσι μια τοπολογία αστέρα Με αυτό τον τρόπο ελαχιστοποιείται η πληροφορία που ανταλλάσσεται
Διαδικασία εκλογής DR, BDR Η εκλογή γίνεται μέσω του Hello πρωτοκόλλου Ο κόμβος με το μεγαλύτερο OSPF priority (το default είναι 1) θα γίνει ο DR Το ίδιο γίνεται για τον BDR Αν έχουν το ίδιο priority, τότε αυτός με το μεγαλύτερο RID (προτεραιότητα) θα κερδίσει την εκλογή Priority ίσο με μηδέν σημαίνει ότι ο κόμβος δεν θα χρησιμοποιηθεί σαν DR ή BDR και έτσι μπορούμε να απενεργοποιήσουμε εντελώς την εκλογή DR, BDR σε ένα segment Σε αυτή την περίπτωση η κατάσταση της διεπαφής λέγεται DROTHER
Διαδικασία εκλογής DR, BDR Ο RTA και RTB έχουν την ίδια προτεραιότητα, αλλά ο RTB έχει μεγαλύτερη τιμή RID και έτσι θα εκλεχθεί ως DR Ο RTC έχει μεγαλύτερη προτεραιότητα από τον RTB και έτσι θα εκλεχθεί ως DR σε αυτό το τμήμα
Ευθυγράμμιση Βάσεων κατάστασης συνδέσμων Αφού τελειώσουν τα προκαταρκτικά, μπορούμε να προχωρήσουμε στην ευθυγράμμιση Ακολουθείται η επόμενη αλληλουχία, όπου ανταλλάσσονται τα κατάλληλα μηνύματα και γίνεται η μετάβαση της διεπαφής σε αντίστοιχες καταστάσεις
Καταστάσεις OSPF διεπαφής Down Καμιά πληροφορία δεν έχει ληφθεί από κάποιον κόμβο στο segment Init (Attempt σε δίκτυα που δεν υποστηρίζουν broadcast μετάδοση, Frame Relay, X.25) Ελήφθει Hello μήνυμα, αλλά ακόμα δεν έχει αποκατασταθεί αμφίδρομη επικοινωνία
Καταστάσεις OSPF διεπαφής Twο-Way Ο δρομολογητής είδε τον εαυτό του σε κάποιο Hello μήνυμα, υπάρχει δηλαδή αμφίδρομη επικοινωνία Στο τέλος του σταδίου αυτού οι DR, BDR έχουν εκλεχθεί και έχει αποφασιστεί αν θα προχωρήσουν στη ευθυγράμμιση των βάσεων τους (adjacency) Για να προχωρήσουν θα πρέπει ο ένας από τους δρομολογητές να είναι DR ή BDR ή η σύνδεση να είναι point to point ή ιδεατή. Επίσης θα πρέπει να πληρούνται οι προϋποθέσεις που αναφέραμε πριν
Καταστάσεις OSPF διεπαφής Exstart Ορίζεται ένας αριθμός σειράς (sequence number) o οποίος θα χρησιμοποιηθεί ώστε οι δρομολογητές να διατηρούν την πιο πρόσφατη πληροφορία (να αποφεύγονται τα διπλότυπα και να απορρίπτονται τα πιο παλιά LSAs) Ο ένας δρομολογητής ορίζεται σαν master και ο άλλος σαν slave Ο master κάνει το polling στον slave Ο κάθε ένας από τους master – slave ορίζει ένα αριθμό σειράς και ο απέναντι επιβεβαιώνει τη λήψη του.
Καταστάσεις OSPF διεπαφής Exchange Στέλνεται περιγραφή ολόκληρης της βάσης με τις καταστάσεις των συνδέσεων (link-state database) Αυτό γίνεται στέλνοντας πακέτα τύπου DD, database description Αυτά είναι συντομευμένα LSA, Link State Advertisement μηνύματα που περιέχουν μόνο την κεφαλή, και η οποία περιέχει επαρκή πληροφορία για τον προσδιορισμό της σύνδεσης
Καταστάσεις OSPF διεπαφής Exchange Ο master στέλνει DD πακέτα και ο slave επιβεβαιώνει με DD πακέτα τη λήψη τους Ένα μήνυμα μπορεί να περιέχει περισσότερες από μία ενημερώσεις Ανά εκπομπή αυξάνεται κατά ένα ο αριθμός σειράς
Καταστάσεις OSPF διεπαφής Exchange Σε αυτή την κατάσταση πακέτα αναμεταδίδονται (flooded) σε όλες τις υπόλοιπες διεπαφές του δρομολογητή (εκεί που έχει δημιουργηθεί σχέση ευθυγράμμισης - adjacency) Ο λόγος που κατά την αρχικοποίηση του δρομολογητή οι ενημερώσεις στέλνονται με DD πακέτα και όχι με κανονικές ενημερώσεις με LSA μηνύματα είναι ώστε να γίνει η ενημέρωση του δικτύου πιο γρήγορα
Καταστάσεις OSPF διεπαφής Loading Σε αυτό το στάδιο ολοκληρώνεται η ανταλλαγή πληροφορίας Εδώ στέλνονται link-state request πακέτα στους γείτονες όπου ζητούνται οι πιο πρόσφατες αναγγελίες
Καταστάσεις OSPF διεπαφής Loading Οι δρομολογητές έχουν φτιάξει μια link-state request λίστα και μια link-state retransmission λίστα Κάθε πληροφορία που μοιάζει ατελής ή ξεπερασμένη τοποθετείται στην request list Όλες οι ενημερώσεις που αποστέλλονται, τοποθετούνται στην retransmission list και όταν επιβεβαιωθούν αφαιρούνται Το χρονικό διάστημα μεταξύ των επανεκπομπών για τις αναγγελίες κατάστασης συνδέσμου μπορεί να οριστεί Σε απάντηση των Link-state request πακέτων στέλνονται Link-state update τα οποία και διαδίδονται (flooded) σε όλες τις διεπαφές που υπάρχει σχέση ευθυγράμμισης
Καταστάσεις OSPF διεπαφής Full Σε αυτή την κατάσταση οι δύο γειτονικοί κόμβοι έχουν ευθυγραμμιστεί και έχουν πανομοιότυπη βάση
Ενημέρωση, συντήρηση τοπολογικών βάσεων Μετά την αρχική ευθυγράμμιση, το πρωτόκολλο φροντίζει να ενημερώνει τις βάσεις για όποιες αλλαγές και να τις κρατά ευθυγραμμισμένες Αυτό γίνεται με την ανταλλαγή LSA, Link State Advertisements LSA = Link ID, State of the Link, Cost, Neighbors of the Link Είναι πακέτα που περιέχουν πληροφορία σχετικά με τις συνδέσεις και την κατάσταση τους Περιοδικά (κάθε 30 λεπτά) στέλνονται LSA σχετικά με τη συνδεσιμότητα του δρομολογητή (ακόμα και αν δεν περιέχουν αλλαγές), ώστε να διορθωθούν τυχόν λανθασμένες εγγραφές Με την αλλαγή σε κάποια σύνδεση, ακολουθεί από τον δρομολογητή η εκπομπή του κατάλληλου LSA, ώστε να ειδοποιηθούν και οι άλλοι δρομολογητές για την αλλαγή κατάστασης του και να διορθώσουν τις βάσεις τους Αλλαγές αφορούν αλλαγή τοπολογίας ή/και αλλαγή κόστους σύνδεσης Έτσι LSA παράγεται όταν η κατάσταση της σύνδεσης αλλάξει ή όταν εξαντληθεί ένας μετρητής χρόνου
Ανταλλαγή των LSA Ο 10.1.10.2 ζητά όλα τα LSA από τον 10.2.10.1 Ο 10.2.10.1 στέλνει τα αιτούμενα LSAs O 10.1.10.2 έχει πιο πρόσφατες τιμές για τον 10.0.1.6 και τις αποστέλλει στον 10.1.10.1 με μεγαλύτερο αριθμό σειράς (sequence number)
Ανταλλαγή των LSA LSA του δρομολογητή 10.10.10.1 Link State ID: 10.10.10.10 & Router ID •Advertising Router: 10.10.10.1 & Router ID •Number of links: 3 •Description of Link 1: Link ID = 10.10.10.2, Metric=4 •Description of Link 2: Link ID = 10.10.10.3, Metric=3 •Description of Link 3: Link ID = 10.10.10.1, Metric=0
OSPF Flooding Protocol Διανέμει και συγχρονίζει τη βάση κατάστασης συνδέσεων οποτεδήποτε συμβεί αλλαγή σε μια σύνδεση Όταν μία σύνδεση αλλάξει κατάσταση ο δρομολογητής ο οποίος αντιμετώπισε την αλλαγή δημιουργεί ένα flooding πακέτο με την περιγραφή της κατάστασης Αυτή η ενημέρωση προωθείται σε όλες τις διεπαφές του δρομολογητή Ο δρομολογητής συνεχίζει να εκπέμπει την ενημέρωση μέχρι να λάβει επιβεβαίωση από τους γείτονες του (reliable flooding) Αν η λαμβανόμενη ενημέρωση δεν περιέχει καινούργια πληροφορία, ο δρομολογητής δεν θα την προωθήσει παραπέρα Στη λήψη ενός LSA γίνεται επιβεβαίωση: Αποκλειστικό ACK (explicit ACK) Αόριστο ACK (implicit ACK)
OSPF Flooding Protocol
OSPF Flooding Protocol
Μηχανισμός Split Horizon Με τον τρόπο αυτό αποτρέπονται βρόχοι, λόγω πιθανότητας να λάβει μια LSA ο ίδιος ο αποστολέας της
Διάρθρωση OSPF σε δρομολογητή Ενεργοποίηση του πρωτοκόλλου στον δρομολογητή Ανάθεση περιοχών στις διεπαφές του δρομολογητή RTA# interface Ethernet0 ip address 192.213.11.1 255.255.255.0 interface Ethernet1 ip address 192.213.12.2 255.255.255.0 interface Ethernet2 ip address 128.213.1.1 255.255.255.0 router ospf 100 network 192.213.0.0 0.0.255.255 area 0.0.0.0 network 128.213.1.1 0.0.0.0 area 23
Διάρθρωση OSPF σε δρομολογητή Ethernet0 is up, line protocol is up Internet Address 203.250.14.4 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 192.208.10.174, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DROTHER, Priority 1 Designated Router (ID) 203.250.15.1, Interface address 203.250.14.2 Backup Designated router (ID) 203.250.13.41, Interface address 203.250.14.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:03 Neighbor Count is 3, Adjacent neighbor count is 2 Adjacent with neighbor 203.250.15.1 (Designated Router) Adjacent with neighbor 203.250.13.41 (Backup Designated Router) Ethernet0 is up, line protocol is up Internet Address 203.250.14.3 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.250.12.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DROTHER, Priority 1 Designated Router (ID) 203.250.15.1, Interface address 203.250.14.2 Backup Designated router (ID) 203.250.13.41, Interface address 203.250.14.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:03 Neighbor Count is 3, Adjacent neighbor count is 2 Adjacent with neighbor 203.250.15.1 (Designated Router) Adjacent with neighbor 203.250.13.41 (Backup Designated Router) Area 0.0.0.0 203.250.12.1 192.208.10.174 RTB RTD Area 1 14.3 14.4 RTA RTF L0: 203.250.13.41 14.1 14.2 203.250.14. 203.250.13.41 203.250.15.1 Ethernet0 is up, line protocol is up Internet Address 203.250.14.1 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.250.13.41, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State BDR, Priority 1 Designated Router (ID) 203.250.15.1, Interface address 203.250.14.2 Backup Designated router (ID) 203.250.13.41, Interface address 203.250.14.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:02 Neighbor Count is 3, Adjacent neighbor count is 3 Adjacent with neighbor 203.250.15.1 (Designated Router) Loopback0 is up, line protocol is up Internet Address 203.250.13.41 255.255.255.255, Area 1 Process ID 10, Router ID 203.250.13.41, Network Type LOOPBACK, Cost: 1 Loopback interface is treated as a stub Host Ethernet0 is up, line protocol is up Internet Address 203.250.14.2 255.255.255.0, Area 0.0.0.0 Process ID 10, Router ID 203.250.15.1, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State DR, Priority 1 Designated Router (ID) 203.250.15.1, Interface address 203.250.14.2 Backup Designated router (ID) 203.250.13.41, Interface address 203.250.14.1 Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 0:00:08 Neighbor Count is 3, Adjacent neighbor count is 3 Adjacent with neighbor 203.250.13.41 (Backup Designated Router)
Οι υπόλοιποι είναι σε κατάσταση DROTHER Εκλογή DR, BDR Όλοι οι δρομολογητές έχουν το ίδιο priority ίσο με ένα (default) στις διεπαφές προς το κοινό segment Το RID, Router ID είναι η μεγαλύτερη IP ανάμεσα στις IP των διεπαφών που έχει ο δρομολογητής DR θα επιλεγεί ο RTF αφού έχει το μεγαλύτερο RID και BDR ο RTA που έχει το αμέσως μικρότερο Οι υπόλοιποι είναι σε κατάσταση DROTHER Area 0.0.0.0 203.250.12.1 DROTHER 192.208.10.174 RTB RTD Area 1 DROTHER 14.3 14.4 RTA RTF L0: 203.250.13.41 DR 14.1 14.2 203.250.14. BDR 203.250.13.41 203.250.15.1
Adjacencies DROTHER Area 0.0.0.0 203.250.12.1 192.208.10.174 RTB RTD Area 1 DROTHER 14.3 14.4 RTA RTF L0: 203.250.13.41 DR 14.1 14.2 203.250.14. 203.250.13.41 203.250.15.1 BDR Κάθε δρομολογητής έχει τρεις γείτονες, ενώ σχέση ευθυγράμμισης (adjacency) έχει ο RTB και RTD από δύο, ενώ ο RTF έχει τρεις Επειδή ο κάθε δρομολογητής χαρακτηρίζεται από το RID του, σχέση adjacency μπορεί να υπάρχει ανάμεσα σε RID τα οποία δεν ανήκουν στο ίδιο υποδίκτυο
Προσιτότητα γειτόνων Για τη σωστή λειτουργία πρέπει περιοδικά να ελέγχεται η γειτονία Τα μηνύματα Hello χρησιμοποιούνται και ως επιβεβαιώσεις ότι οι γειτονικοί δρομολογητές είναι σε λειτουργική κατάσταση Ο χρόνος μπορεί να ρυθμιστεί, μικρότερη τιμή συνίσταται σε πιο ασταθή δίκτυα, ώστε να έχουμε μεγαλύτερο ρυθμό δειγματοληψίας της κατάστασης του δικτύου Μπορούμε να ισχυριστούμε ότι η λειτουργία αυτή παίζει το ρόλο manual refresh στο πρωτόκολλο, αφού στατικά ανά ένα χρονικό διάστημα ελέγχεις αν οι συνδέσεις ισχύουν Χωρίς επιβεβαίωση, μια βλάβη σε ασύρματη εξωτερική συσκευή που συνδέεται με ethernet στον δρομολογητή, δεν θα προκαλούσε ποτέ αλλαγή της κατάστασης, αφού η ethernet πάντα θα έδειχνε ότι είναι σε λειτουργική κατάσταση
Τερματισμός σχέσης γειτονίας Διαδικασία με την οποία τερματίζεται μια σχέση γειτονίας Κάθε 10 δευτερόλεπτα (Hello Interval) εκπέμπεται ένα Hello μήνυμα Αν τέσσερα συνεχόμενα μηνύματα (Dead Interval=40sec) μείνουν αναπάντητα ο δρομολογητής υποθέτει ότι ο γείτονας του δεν είναι σε λειτουργική κατάσταση και αφαιρούν την αντίστοιχη εγγραφή από τον πίνακα δρομολόγησης, και διαδίδουν την ενημέρωση αυτή σε όλο το δίκτυο Για το λόγο αυτό τα Hello μηνύματα ονομάζονται και Keep Alive
OSPF Hello Protocol Άρα συνοψίζοντας το Hello πρωτόκολλο είναι υπεύθυνο για: Εξακρίβωση της κατάστασης των συνδέσεων Επιλογή του DR και BDR σε broadcast and non-broadcast networks Ανακαλύπτει, ορίζει και διατηρεί σχέσεις γειτονίας
Δημιουργία διαδρομών (routes) Με βάση την πληροφορία που περιέχεται στην RIB, Routing Information Base, φτιάχνεται ο πίνακας δρομολόγησης στην FIB, Forwarding Information Base Για το OSPF η RIB είναι o τοπολογικός χάρτης (Link State Database) και η FIB είναι ο πίνακας δρομολόγησης (routing table) H δεύτερη δίνει την πληροφορία στη μηχανή προώθησης των IP πακέτων για το πως να προωθήσει - δρομολογήσει τα πακέτα
Δημιουργία διαδρομών (routes) Από την πληροφορία που περιέχεται στην τοπολογική βάση και με χρήση του SPF αλγόριθμου παράγεται ο πίνακας δρομολόγησης
Δημιουργία διαδρομών (routes) Ο αλγόριθμος SPF, Shortest Path Algorithm (Dijikstra’s algorithm) παράγει το συντομότερο μονοπάτι για κάθε δίκτυο Η έξοδος του αλγόριθμού είναι ένα δένδρο με φύλλα τους προορισμούς και με ρίζα του τον δρομολογητή Ο κάθε δρομολογητής θα έχει και το δικό του δένδρο Από το δένδρο δημιουργείται ο πίνακας δρομολόγησης: IP routing table = Destinations + associated cost + next hop to reach those destinations Σε περίπτωση που δεν συμβαίνει κάποια τοπολογική αλλαγή το OSPF είναι πολύ σιωπηλό πρωτόκολλο Σε περίπτωση τοπολογικών αλλαγών διαδίδονται με πακέτα link-state και ο SPF αλγόριθμός υπολογίζει πάλι ολόκληρο το δένδρο με τους προορισμούς
Δημιουργία διαδρομών (routes) Ο SPF αλγόριθμος απαιτεί αξιοσημείωτη υπολογιστική ισχύ, σε σχέση με άλλα πρωτόκολλα δρομολόγησης Επίσης λόγω του γεγονότος ότι φυλάσσεται η ίδια πληροφορία πολλές φορές υπάρχει και μεγάλη κατανάλωση σε μνήμη Βέβαια και οι δύο απαιτήσεις δεν είναι πρόβλημα για υπολογιστές κάποιας ισχύος
Shortest Path Tree Είσοδος: Τοπολογική βάση Έξοδος: Δένδρο προορισμών
Shortest Path Tree Παρατηρήστε ότι το κόστος υπολογίζεται προς την κατεύθυνση που δείχνουν τα βέλη Έτσι για να φτάσουμε στο 222.211.10.0 μπορούμε να πάμε μέσω του RTC (10+10=20) ή μέσω του RTB, RTD (10+5+5=20) Το κόστος δηλαδή το πληρώνεις στην έξοδο από την κάθε διεπαφή Επειδή το κόστος για την τελευταία διαδρομή είναι το ίδιο και από τις δύο κατευθύνσεις κρατούνται και οι δύο διαδρομές και το φορτίο μοιράζεται εξίσου (load balancing), εφόσον ενεργοποιήσουμε την δυνατότητα αυτή
Shortest Path Tree Είσοδος: Τοπολογική βάση Η τοπολογική βάση περιγράφει το δίκτυο σαν ένα γράφημα με τους δρομολογητές να είναι οι κόμβοι και οι διαδρομές ανάμεσα τους να είναι οι ακμές Ένα κόστος ορίζεται σε κάθε ακμή και ανά κατεύθυνση Τοπολογικός χάρτης Ο δρομολογητής έχει μια πλήρη εικόνα του δικτύου, μέσω των LSA που του έχουν σταλεί
Shortest Path Tree Αλγόριθμος Έξοδος: Δηλαδή ο αλγόριθμος δεν κάνει τίποτα παραπάνω από τον να κρατήσει από τον τοπολογικό χάρτη, μόνο τις συντομότερες διαδρομές
Metric, βάρος σύνδεσης, κόστος Το κόστος – μετρική – βάρος μιας διεπαφής είναι μια ένδειξη του overhead που απαιτείται για την αποστολή πακέτων από τη συγκεκριμένη Ορίζεται συνήθως αντιστρόφως ανάλογα του ρυθμού μετάδοσης στη διεπαφή Μεγαλύτερος ρυθμός μετάδοσης σημαίνει και μικρότερο κόστος Η έννοια του κόστους είναι ότι για να περάσεις από μια διεπαφή με μικρότερο ρυθμό το overhead και η καθυστέρηση θα είναι μεγαλύτερα
Metric, βάρος σύνδεσης, κόστος Παίρνουν τιμές από 0 ως 216 Μπορεί να είναι ασύμμετρες οι τιμές, δηλαδή διαφορετική τιμή σε κάθε κατεύθυνση μιας σύνδεσης
Metric, βάρος σύνδεσης, κόστος Στο OSPF το κόστος υπολογίζεται (συνήθως) ως: Κόστος = 100.000.000 / Bandwidth (bits/sec) Το συνολικό κόστος υπολογίζεται σαν το άθροισμα των επιμέρους Παράδειγμα 10Mbps Ethernet Cost = 10 100Mbps Ethernet Cost = 1 T1 (1.544Mbps) Cost = 64 Μπορούμε να ορίσουμε - αλλάξουμε το κόστος σε κάθε διεπαφή ξεχωριστά
Metric, βάρος σύνδεσης, κόστος Reference-bandwidth value Η συνήθης τιμή είναι 100,000,000 Όταν την τροποποιούμε η ίδια τιμή πρέπει να μπαίνει σε όλο το δίκτυο Προτείνεται τροποποίηση της αν το δίκτυο περιέχει Gbit ethernet, προκειμένου να διαφοροποιηθεί το κόστος ανάμεσα σε γραμμές 100Mbps και γραμμές 1Gbps Έτσι αν ακολουθήσουμε τον προηγούμενο κανόνα με reference 100,000,000 μία ethernet 100Mbps και μία 1GBps, θα έχουν το ίδιο βάρος ίσο με ένα Από την άλλη σε ένα δίκτυο όπου οι ταχύτητες είναι μικρότερες από 100Mbps, o πρακτικός κανόνας με reference = 100,000,000 παρέχει ικανή διαφοροποίηση στο κόστος, ανάλογα με το εύρος που αυτά έχουν
Metric, βάρος σύνδεσης, κόστος σε ασύρματο δίκτυο Σε ένα ασύρματο δίκτυο ασύρματες συνδέσεις μεταξύ των κόμβων με πρωτόκολλο IEEE 802.11b, και ίσως και με 802.11g και 802.11a Επίσης έχουμε ενσύρματες συνδέσεις ethernet 10Mbps και 100Mbps, για τη διασύνδεση δρομολογητών που βρίσκονται στον ίδιο χώρο και ίσως και ενσύρματες συνδέσεις μεταξύ δρομολογητών που βρίσκονται σε διαφορετικό χώρο ( με μισθωμένο κύκλωμα Ε1, με μία ιδεατή σύνδεση VPN μέσω διαδικτύου, ..)
Συνδέσεις Internet VPN Leazed Line 100Mbps ethernet
Συνδέσεις 802.11b 5Mbps 802.11b 5Mbps 802.11b 5Mbps 802.11b 5Mbps Leazed Line 100Mbps ethernet 802.11b 5Mbps
Συνδεσιμότητα Σχεδιάζουμε τους κόμβους του δικτύου, τις συνδέσεις και σημειώνουμε το εύρος και την ποιότητα των συνδέσεων Οι συνδέσεις μπορεί να είναι ασύρματες 802.11b, 802.11b+, 802.11g, 802.11a, ή ενσύρματες 10/100Mbps Υπάρχει η περίπτωση να υπάρχουν και συνδέσεις μέσω μισθωμένης γραμμής ή μέσω ιδεατού κυκλώματος VLAN
Συνδεσιμότητα 802.11b ασταθής 802.11b σταθερή / 11Mbps Ethernet 100Mbps Cslab Ngia Vardas Vardas Bliz Bliz Sialko Winner EE John70
Βάρη συνδέσεων, συμμετρία Έχουμε τη δυνατότητα να ορίσουμε το κόστος ανά κατεύθυνση σε κάθε σύνδεση Με τον τρόπο αυτό μπορούμε να αναγκάσουμε τη διαδρομή από ένα κόμβο Α σε ένα Β να είναι διαφορετική από τον Β στο Α Αυτό σε ένα δίκτυο μειωμένης σταθερότητας όπως το ασύρματο, δημιουργεί μεγάλα προβλήματα ευστάθειας των διαδρομών (αν κοπεί η μία κατεύθυνση, ουσιαστικά κόβεται και η άλλη) αλλά και σημαντικά προβλήματα ευστάθειας του πρωτοκόλλου Έτσι από εδώ και πέρα όταν μιλάμε για κόστος σύνδεσης, θα θεωρείται δεδομένο ότι βάζουμε το ίδιο κόστος και στις δύο κατευθύνσεις της σύνδεσης
Βάρη συνδέσεων, αναφορά κόστους Ανάλογα με το μέγιστο ρυθμό μετάδοσης που έχουμε στο δίκτυο διαλέγουμε μια αναφορά για το κόστος (cost reference), ώστε να έχουμε επαρκή διαφοροποίηση στο κόστος για διεπαφές διαφορετικού ρυθμού μετάδοσης Θεωρώντας μέγιστο ρυθμό μια ethernet 100Μbps, επιλέγουμε αναφορά 100,000,000
Βάρη συνδέσεων, σταθερές συνδέσεις Έτσι έχουμε για τα κόστη τις ακόλουθες τιμές: 100Mbps ethernet Cost = 100/100 = 1 802.11b / μετάδοση 11Mbps Bit rate = 5Mbps Cost = 100/5= 20 802.11b+ / μετάδοση 22Mbps Bit Rate = 7Mbps Cost = 100/7=14 15
Βάρη συνδέσεων, σταθερές συνδέσεις Τα βάρη στις συνδέσεις 802.11b και b+ μπορούμε να τα βάλουμε 20 και 15, μόνο στην περίπτωση που έχουμε διαπιστώσει κατόπιν δοκιμών ότι η σύνδεση είναι σταθερή, αλλά και ο μέγιστος ρυθμός μετάδοσης που υποστηρίζεται είναι περίπου σταθερός και κοντά στην μέγιστη τιμή που υποστηρίζει το πρωτόκολλο Αυτό συμβαίνει όταν η ζεύξη έχει σχεδιαστεί με τέτοιο τρόπο ώστε να υπάρχει επαρκές περιθώριο διαλείψεων (Fading Margin) της τάξης των 15 με 20dB και στις δύο κατευθύνσεις της ζεύξης Το περιθώριο αυτό μετράται λαμβάνοντας υπόψη της ευαισθησία του δέκτη για μετάδοση σε 11Mbps ρυθμό Επίσης θα πρέπει η σχεδίαση να γίνει με τέτοιο τρόπο ώστε η ζεύξη να μπορεί να αντισταθμίσει παρεμβολές χωρίς να επηρεαστεί η σταθερότητα της
Βάρη συνδέσεων, ασταθείς συνδέσεις 802.11b σε μετάδοση 1, 2, 5.5Mbps Bit Rate = 700Kbps .. 3Mbps Cost = 140 .. 30 Αν η ζεύξη παίζει σε κάποιο χαμηλότερο ρυθμό μετάδοσης, λόγω μικρότερης στάθμης σήματος ή/και λόγω της παρουσίας παρεμβολών, υπάρχει το εξής πρόβλημα: Η ζεύξη θα μετάγεται από τον ένα ρυθμό μετάδοσης στον αμέσως μικρότερο ή μεγαλύτερο με πολύ μικρή αλλαγή των συνθηκών ραδιομετάδοσης (ισχύς σήματος, παρεμβολές, θόρυβος) Έτσι θα έχουμε μια διαρκή μεταβολή του ρυθμού, και άρα του πραγματικού κόστους της σύνδεσης
Βάρη συνδέσεων, ασταθείς συνδέσεις Επιβάλλεται: Να προσπαθήσουμε να φέρουμε τη ζεύξη σε σταθερή μετάδοση 11Mbps, αλλάζοντας κάρτες, κεραία, καλώδιο, θέση κεραίας, στόχευση, διάταξη κεραιών, συχνότητα, .. Αν δεν το πετύχουμε παρατηρούμε σε ποιον ρυθμό μπορεί η ζεύξη να παίξει σταθερά και κλειδώνουμε τη ζεύξη σε αυτόν το ρυθμό και μόνο Σε αυτή την περίπτωση βάζουμε το αντίστοιχο κόστος (πχ για 5.5Mbps cost = 30) Η φιλοσοφία είναι ότι η ζεύξη είτε θα παίζει σταθερά είτε θα πρέπει να μη λειτουργεί καθόλου Αν δεν έχουμε τη δυνατότητα να κλειδώσουμε τη ζεύξη σε κάποιο ρυθμό, τότε πρέπει να βάλουμε ένα βάρος που να είναι κοντύτερα στην χειρότερη περίπτωση, για παράδειγμα cost = 100 Αν παρατηρούμε ότι η ζεύξη έχει σημαντικό πρόβλημα ευστάθειας (πέρα από το μικρό ρυθμό μετάδοσης) τότε θα πρέπει να δώσουμε ένα επιπρόσθετο κόστος στη ζεύξη, σαν τιμωρία
Βάρη συνδέσεων 20 20 20 20 15 1 1 20 20 20 50 20 802.11b ασταθής 802.11b σταθερή / 11Mbps 802.11b+ σταθερή Ethernet 100Mbps Cslab 20 20 Ngia 20 20 15 Vardas 1 Vardas Bliz Bliz 1 Sialko 20 20 20 Winner EE 50 20 John70
Δακτύλιοι, αποτροπή ταυτόχρονων διαδρομών Αφού κάνουμε μια αρχική εκτίμηση για τα βάρη, προχωρούμε στον εντοπισμό των δακτυλίων ή εν γένει των εναλλακτικών διαδρομών Στο σχήμα έχουμε βρει τους δακτυλίους A,B,C,D,E Σε κάθε έναν από αυτούς μπορεί να συμβεί οι δύο διαδρομές από ένα κόμβο του δακτυλίου σε ένα άλλο του δακτυλίου να έχουν το ίδιο κόστος Σε μια τέτοια περίπτωση το πρωτόκολλο μοιράζει τα δεδομένα ανάμεσα στις δύο διαδρομές Το παραπάνω είναι εξαιρετικά ανεπιθύμητο, διότι όταν μία από τις δύο αποτύχει, τότε η σύνδεση αποτυγχάνει εντελώς Αν ο δακτύλιος αποτελείται από περιττό αριθμό συνδέσεων με το ίδιο βάρος, η παραπάνω κατάσταση δεν παρατηρείται
Δακτύλιοι 20 20 23 20 20 15 1 1 20 20 20 50 20 Ring D Ring E Ring C 802.11b ασταθής 802.11b σταθερή / 11Mbps 802.11b+ σταθερή Ethernet 100Mbps Ring D Cslab 20 20 23 Ngia 20 20 15 Vardas 1 Vardas Bliz Bliz 1 Sialko 20 Ring E 20 Ring C 20 Winner EE 50 20 John70 Ring A Ring B
Δακτύλιοι, αποτροπή ταυτόχρονων διαδρομών Με απλή παρατήρηση βλέπουμε ότι οι δακτύλιοι A, B, C, Ε δεν έχουν πρόβλημα Ο δακτύλιος D όμως έχει 6 συνδέσεις και είναι συμμετρικός, οπότε υπάρχουν από ένα κόμβο στον αντιδιαμετρικό του δύο διαδρομές Την παραπάνω κατάσταση την ανατρέπουμε αλλάζοντας το κόστος στην διαδρομή που είναι λιγότερο επιθυμητή Αρκεί μια μικρή αύξηση κατά 3, ώστε να μην υπάρχει πιθανότητα η αλλαγή να δημιουργήσει αλλού πρόβλημα
Συνδεσιμότητα με το υπόλοιπο δίκτυο Η σχεδίαση του δικτύου γίνεται νησίδα νησίδα, όχι επειδή είναι πιο σωστό αλλά λόγω της μορφής του δικτύου Οι κόμβοι που παρέχουν την σύνδεση της νησίδας με το υπόλοιπο δίκτυο, ονομάζονται πύλες Στο επόμενο σχήμα βλέπουμε ότι η κίνηση από varda σε ΕΕ θα μπορούσε να περάσει από τη πάνω διαδρομή προκειμένου να εκμεταλλευτούμε την χωρητικότητα της Αυτό μπορεί να γίνει με αλλαγή του κόστους στην κατάλληλη σύνδεση από 20 σε 25 Προσοχή πρέπει να δώσουμε να μην χαλάσουμε κάποια από τις προηγούμενες απαιτήσεις της σχεδίασης μας
AWMN Συνδεσιμότητα με το υπόλοιπο δίκτυο 802.11b ασταθής 802.11b σταθερή / 11Mbps 802.11b+ σταθερή Ethernet 100Mbps Συνδεσιμότητα με το υπόλοιπο δίκτυο Cslab 20 23 Ngia 20 20 15 Vardas Vardas Bliz Bliz 1 1 Sialko 20 20 Winner 20 EE 50 20 John70 AWMN
AWMN Συνδεσιμότητα με το υπόλοιπο δίκτυο 802.11b ασταθής 802.11b σταθερή / 11Mbps 802.11b+ σταθερή Ethernet 100Mbps Συνδεσιμότητα με το υπόλοιπο δίκτυο Cslab 20 23 25 Ngia 20 20 15 Vardas Vardas Bliz Bliz 1 1 Sialko 20 20 Winner 20 EE 50 20 John70 AWMN
Συνδεσιμότητα με το υπόλοιπο δίκτυο Μία ακόμα καλύτερη κίνηση είναι να προσπαθήσουμε να βελτιώσουμε την ποιότητα της ζεύξης EE-John70 ώστε αυτή να λειτουργεί σταθερά στα 11Mbps Σε μια τέτοια περίπτωση βλέπουμε πως αλλάζει ριζικά η μορφή του δικτύου και γίνεται καλύτερη εκμετάλλευση των ζεύξεων
AWMN Συνδεσιμότητα με το υπόλοιπο δίκτυο 802.11b σταθερή / 11Mbps Ethernet 100Mbps Συνδεσιμότητα με το υπόλοιπο δίκτυο Cslab 20 23 20 Ngia 20 15 Vardas Vardas Bliz Bliz 1 1 Sialko 20 23 Winner 20 EE 20 20 John70 AWMN
Δένδρο πρόσβασης Μπορούμε σαν επαλήθευση της σχεδίασης να φτιάξουμε το δένδρο διαδρομών για κάθε δρομολογητή του δικτύου και να επαληθεύσουμε ότι συμβαδίζει με αυτό που επιθυμούμε
Δένδρο πρόσβασης για τον ngia 802.11b σταθερή / 11Mbps 802.11b+ σταθερή Ethernet 100Mbps Cslab 20 Ngia 20 20 15 Vardas 1 Vardas Bliz Bliz 1 Sialko 20 23 20 Winner EE John70
Επιλογή κόστους στις συνδέσεις Είναι λοιπόν απαραίτητο να γίνει προσεκτική επιλογή του κόστους στις συνδέσεις Με τον τρόπο αυτό μπορούμε να αξιοποιήσουμε με τον βέλτιστο τρόπο τη χωρητικότητα του δικτύου και να βελτιώσουμε την διαθεσιμότητα του Απαραίτητο είναι επίσης να υπάρχει μια ανάδραση ανάμεσα στο δίκτυο και στον διαχειριστή του. Παρακολουθούμε (με τα κατάλληλα εργαλεία) τη συμπεριφορά του, εξάγουμε συμπεράσματα, κάνουμε αλλαγές και πάλι από την αρχή Μόνο με τον τρόπο αυτό το δίκτυο θα βρίσκεται κοντά στο βέλτιστο και τα τυχόν προβλήματα θα εντοπίζονται και επιλύονται σύντομα
Μηνύματα OSPF
Μορφή OSPF πακέτων OSPF, υποπρωτόκολλα Hello Protocol Flooding Protocol Exchange Protocol Τα OSPF πακέτα δεν ενθυλακώνονται σε UDP πακέτα, το OSPF πατάει κατευθείαν πάνω στο IP Το OSPF έχει αριθμό IP πρωτοκόλλου 89 Τα IP πακέτα έχουν πεδίο TTL =1, συνήθως Η διεύθυνση προορισμού στο IP πακέτο είναι: IP του γείτονα ή 224.0.0.5 (ALLSPFRouters) ή 224.0.0.6 (ALLDRouters)
OSPF message header 24 bytes μέγεθος 1 1 2 4 4 2 2 8 Version number Type Packet length Router ID Area ID Checksum Authentication type Authentication Data 24 bytes μέγεθος
OSPF message header Version number Έκδοση του OSPF πρωτοκόλλου, η τρέχουσα έκδοση είναι η OSPF V2
Τύπος του OSPF πακέτου: OSPF message header Type Τύπος του OSPF πακέτου: Hello Δημιουργία και συντήρηση σχέσεων με τους γείτονες Database description Περιγράφει τα περιεχόμενα της τοπολογικής βάσης Ανταλλάσσονται στο αρχικό στάδιο της ευθυγράμμισης (adjacency) Link-state request Ζητά τμήματα της τοπολογικής βάσης από τους γειτονικούς δρομολογητές Ανταλλάσσονται όταν ο δρομολογητής αντιληφθεί (ελέγχοντας τα database description μηνύματα) ότι τμήματα της βάσης του είναι ξεπερασμένα Link-state update Απάντηση σε μήνυμα τύπου link-state request packet Χρησιμοποιούνται και για τη διασπορά των LSA ανά χρονικά διαστήματα Ένα μήνυμα αυτού του τύπου μπορεί να περιλαμβάνει αρκετά LSAs Link-state acknowledgment Επιβεβαιώνει τη λήψη link-state update πακέτων
OSPF message header Packet length Μήκος του πακέτου σε bytes Router ID Η προέλευση του πακέτου, είναι συνήθως η υψηλότερη IP διεύθυνση του δρομολογητή, ή η υψηλότερη loopback ip, αν υπάρχει τέτοια Υπολογίζεται μόνο κατά την αρχικοποίηση του δρομολογητή ή του πρωτοκόλλου Area ID Η περιοχή από την οποία προήλθε το πακέτο. Όλα τα OSPF πακέτα σχετίζονται σε μία περιοχή Checksum Έλεγχος λαθών σε ολόκληρο το πακέτο
OSPF message header Λειτουργία Αυθεντικοποίησης Υπάρχει η δυνατότητα να αυθεντικοποιούμε τα OSPF πακέτα και έτσι να ομαδοποιούμε τους δρομολογητές σε περιοχές βασισμένες σε προκαθορισμένους κωδικούς πρόσβασης Ορίζεται ένα κλειδί και ένα κλειδί ID ανά δρομολογητή. Υπολογίζεται ένα μήνυμα το οποίο εξαρτάται από το κλειδί, το κλειδί ID και το πακέτο και το οποίο προσαρτάται στο εκπεμπόμενο πακέτο Έτσι το κλειδί δεν στέλνεται στο δίκτυο Επίσης είναι δυνατό να αλλάξει το κλειδί χωρίς να διακοπεί η λειτουργία του πρωτοκόλλου. Ο κάθε δρομολογητής στέλνει πολλαπλά αντίγραφα του κάθε πακέτου με τα διάφορα κλειδιά, μέχρι όλοι οι γείτονες να αποκτήσουν το καινούργιο κλειδί Όλες οι ανταλλαγές πακέτων OSPF αυθεντικοποιούνται Η αυθεντικοποίηση διαμορφώνεται ανά περιοχή, δηλαδή ορίζεται ένας κοινός κωδικός σε όλους τους δρομολογητές της ίδιας περιοχής
OSPF message header Authentication type Τύπος αυθεντικοποίησης 0: Δεν υπάρχει αυθεντικοποίηση (default) 1: Σύνθημα σε μορφή κειμένου (ορίζεται στους δρομολογητές μιας περιοχής το ίδιο κλειδί, το πρόβλημα είναι ότι αυτό μπορεί εύκολα με παθητική ακρόαση, να υποκλαπεί) 2: MD-5 (message digest) checksum – τοποθετείται στο τελευταίο πακέτο Ορίζεται συνθηματικό ανά διεπαφή ή για όλο τον δρομολογητή
OSPF message header Authentication Πληροφορία αυθεντικοποίησης Τύπος 1: 64bits σύνθημα σε μορφή κειμένου Τύπος 2: 0x0000 (16bits) KeyID (8bits) Μήκος του MD5 checksum (8bits) Αύξων αριθμός σειράς, sequence number (32bits) αποτρέπει replay attacks Data Πληροφορία ανωτέρων επιπέδων
LSA, Link State Advertisement 4 4 8 8 8 4 4 8 8 2 2 4 Link Age Link Type Link State ID Advertising Router Link Sequence Number Checksum Length Link ID Link Data #TOS metrics Metric LSA Header LSA Data
LSA, Link State Advertisement Advertising router ID Ο δρομολογητής ο οποίος παρέγει την LSA Advertised link or network ID
LSA, Link State Advertisement Sequence number [0x80000001,0x7fffffff] Αριθμός σειράς Έστω ότι ένας δρομολογητής δέχεται δύο LSAs από τον ίδιο αποστολέα με αντικρουόμενη πληροφορία Για το λόγο αυτό κάθε LSA έχει έναν αριθμό σειράς (sequence number), o δρομολογητής μπορεί να ξεχωρίσει ποιο LSA περιέχει την πιο καινούργια πληροφορία 0x80000001 0x80000002
LSA, Link State Advertisement Link Age [0, 60 minutes] Μετρητής γήρανσης Αυτό περιοδικά αυξάνεται όσο το LSA παραμένει στη βάση ή όπως διαδίδεται μέσα στην περιοχή Όταν αυτό φτάσει μια μέγιστη τιμή απορρίπτεται από τη βάση, αν δεν υπάρχει σε κάποια λίστα επανεκπομπής Σπανίως ένα LSA φτάνει την MaxAge, αφού αντικαθίσταται από ένα πιο πρόσφατο μέσω της διαδικασίας ανανέωσης (refresh), έτσι μόνο οι νεκρές συνδέσεις θα φτάσουν το MaxAge Αυτός ο μηχανισμός είναι χρήσιμος για την περίπτωση αναδίπλωσης του αριθμού σειράς Χωρίς αυτόν ο δρομολογητής θα απέρριπτε όλα τα LSA που θα λάμβανε Βήματα: (1) 0x7FFFFFFF MaxSeq# (2) 0x7FFFFFF with MaxAge to purge this entry (3) 0x80000001
LS Type
LS Type RL, Router Links Παράγονται από όλους τους δρομολογητές Περιγράφουν την κατάσταση των διεπαφών ενός δρομολογητή εντός μιας συγκεκριμένης περιοχής Διαδίδονται μόνο εντός των ορίων της περιοχής Περιέχει τις καταστάσεις των διεπαφών του δρομολογητη σε αυτή την περιοχή Η ανακοίνωση αυτή είναι ένδειξη αν ο δρομολογητής είναι ABR ή ASBR NL, Network Links Παράγονται για κάθε transit δίκτυο πολλαπλής πρόσβασης, από έναν DR ενός συγκεκριμένου τμήματος (segment) Αποτελεί μια ένδειξη για τους δρομολογητές που είναι συνδεμένοι σε αυτό το segment Περιγράφει όλους τους δρομολογητές που είναι ευθυγραμμισμένοι στον DR
LS Type SL, Summary Links Αναφέρονται σε συνδέσεις μεταξύ περιοχών (inter-area links) και σε δίκτυα εντός άλλων περιοχών, αλλά που ανήκουν στο ίδιο αυτόνομο σύστημα Εισάγονται από τον ABR και από τον κορμό προς άλλες περιοχές και ανάποδα Χρησιμοποιούνται για συνάθροιση (aggregation) μεταξύ των περιοχών asbr-summary (τύπου 4 συνδέσεις) Συνδέσεις που δείχνουν στο ASBR Έτσι όλοι οι δρομολογητές θα γνωρίζουν τον δρόμο για έξοδο από το αυτόνομο σύστημα EL, External Links Εισάγονται από τον ASBR στο domain, περιγράφουν διαδρομές εξωτερικές στο AS
LS Type RTA Παράγει RL στην περιοχή 1 και NL αφού είναι ο DR σε αυτό το τμήμα (segment) RTB Παράγει RL εντός της περιοχής 0 και 1 και summary links στις περιοχές 0 και 1 και τα οποία είναι μια λίστα των δικτύων που ανταλλάσονται ανάμεσα στις δύο περιοχές Επίσης εισάγεται ένα ASBR summary link στην περιοχή 1 (αποτελεί ένδειξη για την ύπαρξη του RTD που είναι ο ASBR RTC Παράγει RL για τις περιοχές 0 και 2 και μία SL (3) εντός της περιοχής 2 και μία SL (3,4) στην περιοχή 0 ανακοινώνοντας τον RTD RTD Παράγει μία RL για την περιοχή 2 και μία EL για τις εξωτερικές διαδρομές που έχουν γίνει γνωστές μέσω BGP. Οι εξωτερικές διαδρομές θα διαδωθούν σε όλο το domain
Link-state ID Ταυτότητα του link-state Διαφορετική ταυτότητα ορίζεται ανάλογα τον τύπου του LS:
Link-state ID Router Links RID, router ID του δρομολογητή που παράγει το LSA Network Links IP διεύθυνση του σχετικού DR, αφού αυτά παράγονται από τον DR Summary Links Προσδιορίζονται από την IP διεύθυνση του προορισμού ASBR Summary Links Προσδιορίζονται από την RID του ASBR External Links Προσδιορίζονται από την IP διεύθυνση των εξωτερικών προορισμών που δείχνουν
Links Stub network links Ένα stub segment είναι ένα segment που έχει μόνο ένα δρομολογητή Ένα τέτοιο segment θεωρείται ως stub network link Μία διεπαφή βρόχου (loopback interface) επίσης θεωρείται σαν σύνδεσμος σε stub network με μάσκα 255.255.255.255 (Host route) Point-to-point links Είναι φυσικές ή λογικές (subinterfaces) σειριακές συνδέσεις σημείου προς σημείο Οι συνδέσεις αυτές μπορεί να είναι αριθμημένες (μία IP είναι ορισμένη στη σύνδεση) ή χωρίς αρίθμηση
Links Transit links Αυτά είναι διεπαφές συνδεμένες σε δίκτυα με περισσότερους από έναν δρομολογητές Virtual links Πρόκειται για λογικές συνδέσεις που συνδέουν περιοχές που δεν έχουν φυσικές συνδέσεις με τον κορμό Αντιμετωπίζονται σαν αριθμημένες συνδέσεις σημείου προς σημείο
Link ID Αποτελεί την ταυτότητα της ίδιας της σύνδεσης Είναι διαφορετική για κάθε τύπο σύνδεσης Transit link IP διεύθυνση του DR σε αυτή τη σύνδεση Numbered point-to-point link RID του γειτονικού δρομολογητή στην σύνδεση σημείου προς σημείο Virtual links Ακριβώς ίδια με τις συνδέσεις σημείου προς σημείο Links to stub networks IP διεύθυνση της διεπαφής προς το stub δίκτυο
Link ID
OSPF database Αποτελείται από εγγραφές με τα ακόλουθα πεδία: Link-Data Link-ID Link-state ID
Επιπλέον Δυνατότητες του OSPF
Σύνοψη διαδρομών (Route Summarization) Περισσότερες της μίας διαδρομές μπορούν να διαφημιστούν σε μία μόνο αναγγελία (Link State Advertisement) Η λειτουργία αυτή μπορεί να ρυθμιστεί ανάμεσα σε δύο περιοχές αλλά η καλύτερη πολιτική είναι να γίνει στη κατεύθυνση του δικτύου κορμού Έτσι το δίκτυο κορμού λαμβάνει όλες τις συναθροισμένες (aggregate) διευθύνσεις και τις προωθεί (ήδη συναθροισμένες) προς άλλες περιοχές Προϋπόθεση να είναι τα υποδίκτυα συνεχόμενα ώστε να μπορεί να γίνει συνάθροιση τους
Σύνοψη διαδρομών (Route Summarization) Inter-area route summarization Γίνεται στους ABRs και εφαρμόζεται σε routes που προέρχονται από το ίδιο το AS Έτσι στο παράδειγμα ο RTB αντί να διαφημίσει τα υποδίκτυα τάξης C 128.213.64.0 έως και 128.213.95, διαφημίζει μόνο ένα 128.213.64.0 με μάσκα 255.255.224.0. Το ίδιο συμβαίνει και με τον RTC
Σύνοψη διαδρομών (Route Summarization) External route summarization Εφαρμόζεται σε routes που εισάγονται στο OSPF με αναδιανομή από άλλα πρωτόκολλα Στο σχήμα οι RTA, RTD κάνουν αναδιανομή τις εξωτερικές διαδρομές και ο RTΑ αναγγέλλει μία μόνο διαδρομή προς το 128.213.64.0 με μάσκα 255.255.224.0 Απαραίτητη προϋπόθεση για να γίνει αυτό, είναι τα υποδίκτυα προς συνένωση να είναι συνεχόμενα
Περιοχές Στελέχη (Stub areas) Τα εξωτερικά δίκτυα, αυτά που διανέμονται με άλλα πρωτόκολλα στο OSPF δεν επιτρέπεται να διαφημιστούν σε τέτοιες περιοχές Η δρομολόγηση από αυτές τις περιοχές προς τα έξω στηρίζεται σε κάποια default route Με αυτό τον τρόπο μειώνεται το μέγεθος της τοπολογικής βάσης μέσα σε μια περιοχή και ελαττώνονται αντίστοιχα οι απαιτήσεις για μνήμη στους δρομολογητές Stub area OSPF network
Περιοχές Στελέχη (Stub areas) Μια περιοχή μπορεί να οριστεί να stub area όταν υπάρχει ένα μόνο σημείο εξόδου από αυτή την περιοχή ή όταν η δρομολόγηση προς τα έξω δε χρειάζεται να ακολουθήσει μια βέλτιστη διαδρομή (αφού σε μια stub area με περισσότερες από μια διεξόδους προς τα έξω δεν θα ακολουθείται πάντα η βέλτιστη διέξοδος αλλά η default) Επίσης μια stub area δεν μπορεί να χρησιμοποιηθεί σαν transit area για ιδεατές συνδέσεις, όπως και δεν μπορεί να περιέχει έναν ASBR, αφού δεν μπορεί να μεταφέρει external routes Έτσι ο κορμός δεν μπορεί να ρυθμιστεί σαν stub area Όλοι οι δρομολογητές εντός της stub area πρέπει να ρυθμιστούν σαν stub routers (τα Hello μηνύματα θα περιέχουν ένα αντίστοιχο stub flag, αλλιώς δεν θα γίνουν ποτέ γείτονες)
Περιοχές Στελέχη (Stub areas) Οι διαδρομές αυτές που έχουν δημιουργηθεί από το BGP δεν θα μεταδοθούν εντός της περιοχής 2, αφού αυτή έχει οριστεί σαν stub area Μια default διαδρομή προς τον RTC είναι αρκετή
VLSM, Variable Length Subnetting Mask Το OSPF μπορεί να μεταφέρει πληροφορία για διαφορετικού μεγέθους υποδίκτυα μέσα σε ένα δίκτυο, άλλα πρωτόκολλα όμως όπως το RIP, IGRP δεν μπορούν Στο παράδειγμα το 203.250.15.0 έχει κοπεί σε υποδίκτυα διαφορετικού μεγέθους Ένα υποδίκτυο με μάσκα 255.255.255.192 έχει μέγεθος 64 διευθύνσεων, ενώ ένα με μάσκα 255.255.255.252 χωρά μόνο 4 διευθύνσεις Επειδή κάτι τέτοιο δεν υποστηρίζεται από το RIP, ο RTA δεν θα μάθει ποτέ την ύπαρξη του 203.25015.0 με μάσκα 255.255.255.252 Η λύση είναι να προσθέσουμε χειροκίνητα στο RTA μία διαδρομή ip route 203.250.15.0 255.255.255.252 203.250.15.67
Αναδιανομή διαδρομών στο OSPF Αναδιανομή στατικών διαδρομών ή διαδρομών από άλλα πρωτόκολλα Αυτές οι διαδρομές θεωρούνται ως εξωτερικές διαδρομές του OSPF
Αναδιανομή διαδρομών στο OSPF Εξωτερικές διαδρομές τύπου Ε1 (E1 external routes) Το κόστος των Ε1 είναι το άθροισμα του εξωτερικού και του εσωτερικού κόστους Οι τύπου 1 προτιμούνται από τους 2 αν το κόστος είναι ίδιο
Αναδιανομή διαδρομών στο OSPF Εξωτερικές διαδρομές τύπου Ε2 (E2 external routes) Το κόστος των Ε2 είναι πάντα το εξωτερικό κόστος ανεξάρτητο από το εσωτερικό κόστος προκειμένου να φτάσουμε σα αυτή τη διαδρομή Είναι ο default τύπος
Αναδιανομή OSPF διαδρομών Μετρικές Όταν διανέμονται OSPF διαδρομές προς άλλα πρωτόκολλα πρέπει οι μετρικές που χρησιμοποιούνται να ταιριάζουν με αυτές του πρωτοκόλλου Για παράδειγμα το RIP χρησιμοποιεί μετρικές 1-16 (που εκφράζουν το πλήθος των hops για να φτάσει σε κάποιο προορισμό) Επίσης το IGRP και EIGRP απαιτούν μετρικές της μορφής: default-metric bandwidth delay reliability loading mtu
Αμοιβαία Αναδιανομή διαδρομών (Mutual Redistribution) Η αμοιβαία αναδιανομή ανάμεσα σε πρωτόκολλα πρέπει να γίνεται πολύ προσεκτικά και με ελεγχόμενο τρόπο Σε αντίθετη περίπτωση μπορεί να δημιουργηθούν στο δίκτυο βρόχοι, δηλαδή διαδρομές χωρίς αρχή και τέλος Ο κανόνας για την αποφυγή βρόχων είναι να μην επιτρέπουμε σε πληροφορία η οποία έχει μαθευτεί από ένα πρωτόκολλο να διαδοθεί πάλι προς το ίδιο πρωτόκολλο
Αμοιβαία Αναδιανομή διαδρομών (Mutual Redistribution) Στους δρομολογητές που κάνουν την αναδιανομή πρέπει να εφαρμοστούν κάποιοι κανόνες που αφορούν την αναδιανομή των διαδρομών Υπάρχουν δύο κατηγορίες κανόνων : Passive interfaces και Distribute lists Passive interfaces Αν ορίσουμε μία διεπαφή ως παθητική (passive) τότε δεν επιτρέπουμε την πληροφορία που μας έρχεται από το πρωτόκολλο να διαδοθεί προς τα εκεί Distribute lists in Χρησιμοποιείται στους ASBR για να φιλτράρει τις διαδρομές προς αναδιανομή σε άλλα πρωτόκολλα Distribute lists out Χρησιμοποιείται σε κάθε δρομολογητή για να αποτρέπει τις διαδρομές να τοποθετηθούν στον πίνακα δρομολόγησης, αλλά δεν αποτρέπει τα πακέτα LSA από το να διαδωθούν Συνίσταται να αποφευχθεί όσο είναι δυνατό το OSPF fιltering αν μπορεί να εφαρμοστεί στα άλλα πρωτόκολλα
Αμοιβαία Αναδιανομή διαδρομών (Mutual Redistribution) RIP passive Ορίζουμε το Ε0 σαν παθητικό για το RIP, δηλαδή ακούει μόνο, δεν μιλά από εκεί RIP Αυτό σημαίνει ότι δεν αφήνουμε την RIP πληροφορία που έρχεται από το RTE να διαδωθεί στο OSPF δίκτυο Εκείνο που συμβαίνει είναι όμως ότι ο RTA μαθαίνει μέσω OSPF από τον RTC για το 203.250.15.128 με μάσκα 255.255.255.192 Στη συνέχεια ο RTA το δίνει πίσω στον RTC μέσω RIP Έτσι δημιουργείται ένας βρόχος με τον RTC να έχει δύο διαδρομές για το υποδίκτυο 203.250.15.128
Αμοιβαία Αναδιανομή διαδρομών (Mutual Redistribution) RIP passive RIP passive Αυτό θα μπορούσε να διορθωθεί μέσω ενός passive interface στο Ε0 του RTA. Έτσι τα RIP μηνύματα δεν θα διαδίδονται προς τον RTC Αυτό έχει το μειονέκτημα ότι δεν θα μπορούσαν RIP routers στο ethernet να δουλέψουν
Αμοιβαία Αναδιανομή διαδρομών (Mutual Redistribution) Άλλη μέθοδος (πιο καλή) είναι να εφαρμόσουμε distribute-lists στον RTA, ώστε να μην αφήσουμε τα υποδίκτυα τα οποία μάθαμε μέσω OSPF να διαδωθούν στο RIP
Εισάγοντας Defaults διαδρομές στο OSPF Ένας ASBR μπορεί να αναγκαστεί να παράγει μια default διαδρομή σε ένα OSPF domain Ένας router γίνεται ASBR, οποτεδήποτε οι διαδρομές αναδιανέμονται σε ένα OSPF domain O ASBR δεν δημιουργεί by default μία default διαδρομή σε ένα OSPF domain Στο παράδειγμα πρέπει να ορίσουμε στον RTC να δημιουργεί μια default διαδρομή (default-information originate metric) προκειμένου ο RTC να διαδώσει την default διαδρομή στον RTA
Ασφάλεια, Επίθεση στη δομή του δικτύου Κακόβουλος δρομολογητής διαφημίζει λανθασμένα διαδρομές, δηλαδή: Up Down Down Up To αποτέλεσμα ποικίλει ανάλογα του πόσο σημαντικό είναι το link για το δίκτυο Όλες οι διαδρομές μπορεί να πληγούν evil
Ασφάλεια, αντοχή πρωτοκόλλου Στις περισσότερες των περιπτώσεων αν κάτι δεν πάει καλά , ο δρομολογητής θα το ανιχνεύσει και θα ξαναστείλει το LSA Ο κακός θα πρέπει να εισάγει συνεχόμενα λανθασμένα LSA, ώστε να δημιουργεί πρόβλημα Λέμε λοιπόν ότι το πρωτόκολλο ανήκει στην κατηγορία των Self-Stabilization Protocols Αυτό σημαίνει ότι αν γίνει μεμονωμένο λάθος, το πρωτόκολλο το διορθώνει μετά από λίγο Περιοδικά ο OSPF δρομολογητής στέλνει τις LSA ακόμα και αν δεν υπάρχει αλλαγή. Ο μηχανισμός reliable flooding εγγυάται την ενημέρωση όλων των υπόλοιπων δρομολογητών Έτσι η διαρκής ανανέωση των συνδέσεων έχει σαν αποτέλεσμα το μεμονωμένα λάθη να διορθώνονται αυτόματα
Ασφάλεια, αντοχή πρωτοκόλλου Για να δημιουργηθεί πρόβλημα που παραμένει, πρέπει ο κακός να πραγματοποιεί συνέχεια επίθεση Σε ένα τέτοιο ενδεχόμενο όμως είναι εύκολος ο εντοπισμός και η απομόνωση του
Hit and Run attacks Δύσκολο να ανιχνευθεί – απομονωθεί Γίνεται εισαγωγή ενός ή μερικών λανθασμένων πακέτων Η επίθεση προκαλεί καταστρεπτικό αποτέλεσμα που διαρκεί Τα πρωτόκολλα τύπου Link State , όπως το OSPF είναι ανθεκτικά σε επιθέσεις Ηit and Run Persistent attacks Πρέπει να γίνεται συνεχής εισαγωγή κακών πακέτων προκειμένου να προκληθεί βλάβη Αν αναγκάζεις τον επιτιθέμενο να χρησιμοποιεί συνεχή επίθεση είναι πιο εύκολο να ανιχνευθεί και απομονωθεί η πηγή του προβλήματος Από την πλευρά αυτό το OSPF είναι πολύ πιο αποτελεσματικό σε θέματα ασφαλείας
Κανόνες σχεδίασης Το πρωτόκολλο μπορεί να αποτύχει κάτω από συνθήκες πίεσης Αριθμός δρομολογητών ανά περιοχή Η πρακτική έχει δείξει ότι 40 με 50 δρομολογητές ανά περιοχή είναι το άνω όριο. Αυτό δε σημαίνει ότι περιοχή με 60 ή 70 δεν θα δουλέψει αλλά δεν υπάρχει λόγος να δοκιμάσουμε την ευστάθεια του πρωτοκόλλου Ένα από τα βασικά προβλήματα είναι ότι το δίκτυο κορμού μεγαλώνει αρκετά γρήγορα, ιδίως αν από την αρχή δεν γίνει μελετημένα η σχεδίαση του Αριθμός γειτόνων Ο αριθμός των δρομολογητών σε ένα LAN επηρεάζει αρκετά.Όσο μικρότερος ο αριθμός τόσο λιγότερο το πλήθος των adjacencies που πρέπει να χτίσει ο DR ή ο BDR Με αλλαγή του priority μπορούμε να επιλέγουμε τον DR και επίσης καλό είναι να αποφεύγεται ένας δρομολογητής να είναι DR σε περισσότερα του ενός segments
Αριθμός περιοχών ανά ABR Όσο, μεγαλύτερος ο αριθμός τόσο περισσότερο φορτώνεται ένας δρομολογητής αφού πρέπει να κρατά λίστα για περισσότερες περιοχές Η ιδανική κατάσταση είναι να έχουμε ένα ABR δρομολογητή ανά δύο περιοχές μία εκ των οποίων είναι ο κορμός (τρεις περιοχές μπορεί να θεωρηθεί το όριο) Σωστό Λάθος
Ιεραρχία δικτύου Κάνοντας ιεράρχηση του δικτύου, η δρομολόγηση γίνεται πιο αποδοτικά Η μεγαλύτερη μονάδα στην ιεραρχία είναι το αυτόνομο σύστημα, AS (Autonomous System) H AS είναι μία συλλογή από δίκτυα, τα οποία είναι κάτω από την ίδια διαχειριστική αρχή και έχουν μία κοινή πολιτική δρομολόγησης Μπορεί για παράδειγμα να είναι : Campus network Backbone network Regional ISP Η δρομολόγηση γίνεται διαφορετικά εντός του αυτόνομου συστήματος (intradomain routing) και ανάμεσα στα αυτόνομα συστήματα (interdomain routing)
AS, Αυτόνομο σύστημα (Autonomous System)
Ιεραρχία του AS Το AS χωρίζεται σε περιοχές (areas) Οι περιοχές είναι ομάδες συνεχόμενων δικτύων Η οργάνωση σε περιοχές αποσκοπεί να περιορίσει τον αριθμό των ενημερώσεων δρομολόγησης
Ιεραρχία του AS
Ιεραρχία του AS Ο υπολογισμός των διαδρομών σε κάθε δρομολογητή περιορίζεται στους προορισμούς εντός της περιοχής όπου ανήκει Όλοι οι δρομολογητές μιας περιοχής έχουν την ίδια τοπολογική βάση (link-state database) Η βάση δεδομένων είναι η συλλογή των LSA που έχει λάβει ο δρομολογητής από τους δρομολογητές της ίδιας περιοχής Το πρωτόκολλο μέσω της διαδικασίας reliable flooding προωθεί τις ενημερώσεις σε όλους τους δρομολογητές μιας περιοχής Ο αλγόριθμος του Dijkstra υπολογίζεται σε ένα δρομολογητή σε σχέση με τις αλλαγές σε μια περιοχή μόνο Αντίστοιχα ορίζονται: Intra-area routing Inter-area routing
Τύποι OSPF δρομολογητών ABR, Area Border Routers Είναι οι δρομολογητές που ανήκουν (έχουν τις διεπαφές τους) σε περισσότερες της μίας περιοχή και συνδέουν τις περιοχές αυτές με τον κορμό Αυτοί διατηρούν ξεχωριστή βάση δεδομένων για την κάθε area Έχουν καθήκον τη διάδοση πληροφορίας δρομολόγησης ανάμεσα στις περιοχές IR, Internal Router Είναι ο δρομολογητής ο οποίος έχει όλες τις διεπαφές του στην ίδια περιοχή
Τύποι OSPF δρομολογητών ASBR, Autonomous System Border Router Λειτουργούν σαν gateways ανάμεσα στο OSPF και σε άλλα πρωτόκολλα δρομολόγησης (IGRP, EIGRP, IS-IS, RIP, BGP, Static) ή και άλλα OSPF Μαθαίνουν για τις εξωτερικές διαδρομές, με EQP, Exterior Gateway Protocols όπως το EGP, Exterior Gateway Protocol, BGP, Border Gateway Protocol, ή με διάρθρωση από τη διαχείριση BR, Backbone Routers Είναι ένας ABR που ανήκει στον κορμό (backbone area)
Ιεραρχία AS 2 ASBR IR AS 1 ABR Area 2 Area 1 Area 0 Area 2 Area 0
Ιεραρχία
Ιεραρχία και OSPF Σε αντίθεση με το RIP, το OSPF έχει τη δυνατότητα να δουλέψει σε ιεραρχία Το OSPF είναι intra-AS πρωτόκολλο δρομολόγησης, ωστόσο μπορεί να δέχεται και να στέλνει διαδρομές σε άλλα AS
Ιεραρχία και OSPF Στην περίπτωση που περισσότερες της μιας περιοχές οριστούν πρέπει η μία να είναι η area 0 Αυτή ονομάζεται κορμός (backbone) Αποτελείται από ΑΒΡ, Area Border Routers, δίκτυα τα οποία δεν ανήκουν σε κάποια περιοχή και τους αντίστοιχους δρομολογητές Η τοπολογία του κορμού είναι αόρατη στους δρομολογητές που βρίσκονται εντός κάποιας περιοχής, όπως και το αντίστροφο, δηλαδή οι άλλες περιοχές να συνδέονται πάνω στον κορμό
Ιεραρχία και OSPF Στην περίπτωση όπου δεν είναι δυνατή η φυσική σύνδεση μιας περιοχής με τον κορμό, πρέπει να δημιουργηθεί μια ιδεατή διαδρομή (virtual link) Αυτό διότι το OSPF περιμένει ότι οι περιοχές θα εισάγουν πληροφορία δρομολόγησης στον κορμό και αντιστρόφως ότι ο κορμός θα διανείμει την πληροφορία αυτή σε άλλες περιοχές Ο κορμός περιλαμβάνει τις συνδέσεις με τον υψηλότερο ρυθμό μετάδοσης, όπως επίσης μπορεί να καλύπτει και τη μεγαλύτερη απόσταση Στο σχεδιασμό δικτύων καλό είναι να ξεκινάμε με την περιοχή 0 και αργότερα να γίνεται επέκταση σε άλλες
Virtual Links Συνδέουν μια περιοχή με τον κορμό, στην περίπτωση που δεν είναι δυνατή η φυσική σύνδεση (περίπτωση που υπάρχει φυσική ασυνέχεια) Στο σχήμα η περιοχή 1 δεν έχει φυσική σύνδεση με τον κορμό, έτσι δημιουργούμε μια ιδεατή σύνδεση, ανάμεσα στον ABR της περιοχής 1 με έναν ABR του κορμού
Ιεραρχία και OSPF Το πλεονέκτημα ύπαρξης πολλών περιοχών είναι ότι έτσι η σύγκλιση είναι πιο γρήγορη, αφού το πλήθος των δρομολογητών είναι μικρότερο και μικρότερος ο τοπολογικός χάρτης, αφού κάθε δρομολογητής κρατεί χάρτη μόνο της περιοχής του Ένας πρακτικός κανόνας είναι ότι δεν θα πρέπει να έχουμε περισσότερους από 50 δρομολογητές ανά περιοχή H τοπολογία μιας περιοχής είναι αόρατη έξω από αυτήν
Κατηγορίες διαδρομών (routes) Ο πίνακας δρομολόγησης περιέχει τις ακόλουθες κατηγορίες εγγραφών: Intra area routes Παράγονται εντός μιας περιοχής Συμβολίζονται ως O Inter-area or summary routes Παράγονται από άλλες περιοχές Συμβολίζονται ως O IA External routes Παράγονται από άλλα πρωτόκολλα δρομολόγησης (ή άλλα OSPF) Συμβολίζονται ως O E1 ή Ο Ε2 Εισάγονται στο OSPF με redistribution Η προτεραιότητα στην περίπτωση που υπάρχουν πολλαπλές διαδρομές προς τον ίδιο προορισμό είναι ως εξής: Intra-area > inter-area > external E1 > External E2
Κατηγορίες διαδρομών (routes)
Partitioning the backbone Παραδείγματα Συνένωση δύο διαφορετικών OSPF δικτύων σε ένα δίκτυο με κοινή περιοχή 0 Ιδεατές συνδέσεις ανάμεσα σε ABR που ανήκουν στην περιοχή 0, ως εφεδρεία
Domain Περιγράφει ένα τμήμα του δικτύου στο οποίο οι δρομολογητές έχουν πανομοιότυπη τοπολογική βάση Έτσι πολλές φορές χρησιμοποιούμε τον όρο domain αντί για το AS
Υλοποιήσεις του OSPF Πέντε ελεύθερα πακέτα σε Linux υλοποιούν τα πιο γνωστά πρωτόκολλα δρομολόγησης Η δρομολόγηση είναι ο πιο παλιός και ευρέως γνωστός δαίμονας στο Linux
Πακέτα δρομολόγησης Gated Υποστηρίζει RIPv1/v2, OSPFv2/v3, ISIS, BGP Δεν είναι πλέον ελεύθερο Bird, MRT Τα οποία επίσης δεν είναι σε κατάσταση ενεργής υλοποίησης Zebra Πρόσφατη υλοποίηση Modular σχεδίαση Περιέχει ένα δαίμονα για κάθε υποστηριζόμενο πρωτόκολλο Ο κεντρικός εξυπηρετητής του Zebra ενημερώνει τον πίνακα δρομολόγησης του πυρήνα και διαδίδει την πληροφορία δρομολόγησης στους διάφορους δαίμονες των πρωτοκόλλων Η ανταλλαγή της πληροφορίας ανάμεσα στα πρωτόκολλα ονομάζεται redistribution Παρέχει ένα τρόπο για διάδοση των στατικά ορισμένων διαδρομών μέσα από το OSPF Υποστηρίζει RIPv1/v2, RIPng, OSPFv2/v3, ISIS, BGPv4/v4+