Εργαστήριο 4 ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ Η/Υ RIP : Routing Information Protocol Στόχος Πρωτόκολλο δρομολόγησης βασισμένο στον αλγόριθμο Distance-Vector Ο στόχος του εργαστηρίου είναι να μελετηθεί η απόδοση του πρωτοκόλλου δρομολόγησης RIP (Routing Information Protocol). Περίληψη Κάθε δρομολογητής σε ένα δίκτυο πρέπει να κοιτά την διεύθυνση προορισμού ενός πακέτου και να καθορίζει ποια είναι η βέλτιστη εξερχόμενη πόρτα για να φτάσει το πακέτο στον προορισμό του. Ο δρομολογητής λαμβάνει αυτές τις αποφάσεις με την βοήθεια ενός πίνακα προώθησης. Το θεμελιώδες πρόβλημα της δρομολόγησης είναι το εξής: Πως οι δρομολογητές θα ανακτούν τις απαραίτητες πληροφορίες για τους πίνακες προώθησης που έχουν. Οι αλγόριθμοι δρομολόγησης απαιτείται να κατασκευάζουν τους πίνακες δρομολόγησης και εξ αυτού και τους πίνακες προώθησης. Το βασικό πρόβλημα της δρομολόγησης είναι να βρεθεί η διαδρομή με το μικρότερο κόστος ανάμεσα σε δύο κόμβους, όπου το κόστος της διαδρομής ισούται με το άθροισμα του κόστους όλων των επιμέρους ακμών που αποτελούν την διαδρομή. Η δρομολόγηση επιτυγχάνεται στα περισσότερα δίκτυα με την χρησιμοποίηση πρωτοκόλλων δρομολόγησης μεταξύ των κόμβων. Τα πρωτόκολλα αυτά παρέχουν ένα κατανεμημένο και δυναμικό τρόπο επίλυσης του προβλήματος εύρεσης της διαδρομής με το μικρότερο κόστος σε συνθήκες βλαβών των κόμβων και των συνδέσεων και αλλαγών του κόστους των ακμών του δικτύου. Μία από τις βασικές κατηγορίες αλγόριθμων δρομολόγησης είναι αυτή που βασίζεται στον αλγόριθμο distanse-vector (διάνυσμα-απόσταση). Κάθε κόμβος κατασκευάζει ένα διάνυσμα που περιέχει τις αποστάσεις (κόστος) για όλους τους υπόλοιπους κόμβους και κατανέμει το διάνυσμα αυτό στους άμεσα γειτονικούς κόμβους. Το πρωτόκολλο RIP έχει κατασκευαστεί με βάση τον αλγόριθμο distanse-vector. Οι δρομολογητές που λειτουργούν με RIP στέλνουν ανακοίνωση των διανυσμάτων τους συχνά (π.χ κάθε 30 δευτερόλεπτα). Επίσης ένας δρομολογητής στέλνει ενημέρωση όταν δέχεται και αυτός κάποια αλλαγή στον πίνακα δρομολόγησης του. Σε αυτό το εργαστήριο θα αναπτύξετε ένα δίκτυο που χρησιμοποιεί το πρωτόκολλο RIP και θα αναλύσετε τους πίνακες δρομολόγησης που δημιουργούνται και θα δείτε πως αυτοί επηρεάζονται από link failures. page 1 from 12
Διαδικασία 1. Δημιουργία νέου project 1. Ανοίξτε το OPNET IT Guru Academic Edition Επιλέξτε New από το μενού File. 2. Επιλέξτε Project και πατήστε ΟΚ Ονομάστε το project <τα αρχικά σας (στα αγγλικά)>_rip (π.χ. dp_rip αν το ονοματεπωνυμό σας είναι Δημήτρης Παπαδόπουλος). Ονομάστε το σενάριο No_Failure και πατήστε ΟΚ. 3. Στο πλαίσιο διαλόγου Startup Wizard: Initial Topology, επιλέξτε Create Empty Scenario πατήστε Next επιλέξτε Campus από την λίστα Network Scale πατήστε Next τρείς φορές πατήστε ΟΚ. 2. Δημιουργία και Διαμόρφωση δικτύου Αρχικοποίηση Δικτύου 1. Το πλαίσιο Object Palette πρέπει να βρίσκεται μπροστά από το παράθυρο του project. Εάν πλαίσιο Object Palette δεν είναι ορατό, μπορείτε να το ανοίξετε επιλέγοντας. Βεβαιωθείτε ότι στο pull-down μενού του πλαισίου Object Palette είναι επιλεγμένο το internet_toolbox. 2. Προσθέστε στον χώρο του project ένα αντικείμενο ethernet4_slip8_gtwy (δρομολογητής) και δύο αντικείμενα 100BaseT_LAN. Για να προσθέσετε ένα αντικείμενο από την παλέτα, κάντε κλικ στο εικονίδιό του στην παλέτα μετακινήστε το ποντίκι σας στον χώρο εργασίας (workspace) πατήστε αριστερό κλικ για να τοποθετήσετε το αντικείμενο. Πατήστε δεξί-κλικ όταν τελειώσετε. 3. Χρησιμοποιήστε τις αμφίδρομες συνδέσεις τύπου 100BaseT για να συνδέσετε τα αντικείμενα που μόλις προσθέσατε. Επίσης μετονομάστε τα αντικείμενα όπως φαίνεται όπως στο ακόλουθο σχήμα. (Για να μετονομάσετε ένα αντικείμενο κάντε δεξί-κλικ στον κόμβο Set Name). 4. Κλείστε την παλέτα αντικειμένων. 5. Αποθηκεύστε το project. page 2 from 12
Διαμόρφωση του Δρομολογητή 1. Κάντε δεξί-κλικ στον Router1 Edit Attributes, επεκτείνετε την ιεραρχία IP Routing Parameters και ορίστε τα ακόλουθα: i. Routing Table Export = Once at End of Simulation. Η παράμετρος αυτή ζητά από τον δρομολογητή να εξάγει το πίνακα δρομολόγησης του στο τέλος της προσομοίωσης στο αρχείου του simulation log. 2. Πατήστε OK και μετά αποθηκεύστε το project. Προσθήκη των υπόλοιπων LANs: 1. Επιλέξτε ταυτόχρονα (χρησιμοποιώντας το shift και το αριστερό-κλικ) τα πέντε αντικείμενα που υπάρχουν στον χώρο του project (έναν δρομολογητή, δύο LANs, και τα δύο links). 2. Πατήστε Ctrl+C για να αντιγράψετε τα επιλεγμένα αντικείμενα και μετά πατήστε Ctrl+V για να κάνετε την επικόλληση. 3. Επαναλάβετε το προηγούμενο βήμα για να δημιουργήσετε τρία νέα αντίγραφα των αντικειμένων και διατάξτε τα παρόμοια με την ακόλουθη εικόνα. 4. Συνδέστε τους δρομολογητές, όπως φαίνεται, χρησιμοποιώντας PPP_DS3 links από την παλέτα. page 3 from 12
3. Επιλογή στατιστικών μετρήσεων Για να ελέγξουμε την απόδοση του πρωτοκόλλου RIP, θα συλλέξουμε τις ακόλουθες μετρήσεις: a. Κάντε δεξί-κλικ οπουδήποτε μέσα στον χώρο εργασίας του project και επιλέξτε Choose Individual Statistics. 1. Στο πλαίσιο διαλόγου Choose Results που εμφανίζεται επιλέξτε τα εξής : a. Global Statistics RIP Traffic Sent (bits/sec). b. Global Statistics RIP Traffic Received (bits/sec). c. Nodes Statistics Route Table Total Number of Updates. 2. Πατήστε OK και μετά αποθηκεύστε το project. 4. Διαμόρφωση των παραμέτρων προσομοίωσης Στην συνέχεια θέλουμε να καθορίσουμε τις παραμέτρους της προσομοίωσης: 1. Κάντε κλικ στο κουμπί Configure/Run Simulation 2. Θέστε την διάρκεια στα 10 λεπτά. 3. Πατήστε στο Global Attributes tab και αλλάξτε τα ακόλουθα χαρακτηριστικά: a. IP Dynamic Routing Protocol = RIP. Η ρύθμιση αυτή θέτει το RIP protocol ως το πρωτόκολλο δρομολόγησης που θα χρησιμοποιήσουν οι δρομολογητές του δικτύου. b. IP Interface Addressing Mode = Auto Addressed/Export. c. RIP Sim Efficiency = Disabled. Εάν το χαρακτηριστικό αυτό είναι ενεργοποιημένο, το RIP θα σταματήσει μετά το "RIP Stop Time." Αλλά θέλουμε το RIP να συνεχίσει να ενημερώνει τον πίνακα δρομολόγησης για να αντιμετωπίσουμε την περίπτωση που υπάρξουν αλλαγές στο δίκτυο (όπως θα δούμε στο επόμενο σενάριο). 4. Πατήστε OK και μετά αποθηκεύστε το project. page 4 from 12
5. Αντιγραφή του σεναρίου Στο δίκτυο που μόλις δημιουργήσαμε, οι δρομολογητές θα κατασκευάσουν τους πίνακες δρομολόγησης και δεν θα χρειαστεί να τους ξαναενημερώσουν επειδή δεν προσομοιώσαμε κάποια βλάβη σε σύνδεση ή σε κόμβο. Στο ακόλουθο σενάριο θα προσομοιώσουμε κάποια βλάβη ώστε να συγκρίνουμε την συμπεριφορά των δρομολογητών και στις δύο περιπτώσεις. 1. Δημιουργήστε ένα νέο σενάριο επιλέγοντας Duplicate Scenario από το μενού Scenarios και δώστε του το όνομα Failure Πατήστε ΟΚ. 2. Ανοίξτε την παλέτα αντικειμένου κάνοντας κλικ στο κουμπί. Επιλέξτε την παλέτα Utilities από το pull-down μενού της στην παλέτας αντικειμένου. 3. Προσθέστε ένα αντικείμενο Failure Recovery στο χώρο του project και ονομάστε το Failure όπως φαίνεται παρακάτω. 4. Κλείστε την παλέτα αντικειμένων. page 5 from 12
Κάντε δεξί-κλικ στο αντικείμενο Failure Edit Attributes Επεκτείνετε την ιεραρχία Link Failure/Recovery Specification Θέστε το στοιχείο rows σε 1 Θέστε τα χαρακτηριστικά της γραμμής που προσθέσατε, row 0, ως εξής : Αυτές οι ρυθμίσεις θα προκαλέσουν μία βλάβη (fail) στο link μεταξύ του Router1 και του Router2 σε 200 δευτερόλεπτα αφού ξεκινήσει η προσομοίωση. page 6 from 12
4. Πατήστε OK και αποθηκεύστε το project. 6. Εκτέλεση της προσομοίωσης Για να εκτελεστεί η προσομοίωση και για τα δύο σενάρια: 1. Από το μενού Scenario Επιλέξτε Manage Scenarios. 2. Αλλάξτε την τιμή στην στήλη Results σε <collect> και για τα δύο σενάρια. 3. Πατήστε ΟΚ για να εκτελεστούν οι δύο προσομοιώσεις. 4. Αφού ολοκληρωθούν οι εκετλέσεις της προσομοίωσης πατήστε Close. 5. Αποθηκεύστε το project. 7. Επισκόπηση των αποτελεσμάτων Συγκρίνετε τον αριθμό των ενημερώσεων : 1. Επιλέξτε Compare Results από το μενού Results. 2. Αλλάξτε την τιμή στο αναδιπλούμενο μενού στο κάτω δεξιά τμήμα του Compare Results πλαισίου διαλόγου σε Stacked Statistics όπως φαίνεται παρακάτω. page 7 from 12
3. Επιλέξτε την μέτρηση Total Number of Updates για τον Router1 και πατήστε Show. 4. Θα πρέπει να πάρετε δύο γραφήματα, ένα για κάθε σενάριο. Κάντε δεξί-κλικ σε κάθε γράφημα και επιλέξτε Draw Style Bar. 5. Τα γραφήματα που θα προκύψουν θα πρέπει να φαίνονται όπως τα ακόλουθα (μπορείτε να κάνετε zoom in στα γραφήματα κάνοντας clickingand-dragg ένα πλαίσιο στην σχετική περιοχή που σας ενδιαφέρει): Ανάκτηση των διευθύνσεων IP για το Interface: Πριν από τον έλεγχο του περιεχομένου των πινάκων δρομολόγησης, πρέπει να καθορίσουμε πληροφορίες σχετικές με τις IP διευθύνσεις για όλα τα interfaces του τρέχοντος δικτύου. Απλά έχετε υπόψη ότι οι διευθύνσεις αυτές δίδονται αυτόματα κατά την διάρκεια της προσομοίωσης. Θέτουμε το καθολικό χαρακτηριστικό IP Interface Addressing Mode για να εξαχθούν τέτοιου είδους πληροφορίες σε ένα αρχείο. 1. Από το μενού File επιλέξτε Model Files Refresh Model Directories. Με την επιλογή αυτή το OPNET IT Guru αναζητά τους υποκαταλόγους των μοντέλων και ενημερώνει τις λίστες των αρχείων του. 2. Από το μενού File επιλέξτε Open από το drop-down μενού επιλέξτε Generic Data File Επιλέξτε το αρχείο <αρχικά_σας>_rip-no_failureip_addresses (το αρχείο που δημιουργήθηκε με το δεύτερο σενάριο (Failure) πρέπει να έχει τις ίδιες πληροφορίες). 3. Πατήστε OK. page 8 from 12
Το ακόλουθο είναι τμήμα του περιεχομένου του αρχείου τύπου gdf. Δείχνει τις IP διευθύνσεις που έχουν ανατεθεί στα interfaces του Router1 στο δίκτυο. Για παράδειγμα το interface του Router1 που είναι συνδεμένο με το δίκτυο Net11 έχει IP address 192.0.0.1 (Σημείωση: Τα αποτελέσματά σας μπορεί να διαφέρουν λόγω διαφορετικής τοποθέτησης των κόμβων.) Η μάσκα του υποδικτύου -Subnet Mask που σχετίζεται με αυτό το interface δείχνει ότι η διεύθυνση του υποδικτύου, στο οποίο είναι συνδεμένο το συγκεκριμένο interface είναι 192.0.0.0. 4. Εάν συμπληρώσετε από το αρχείο τύπου gdf τις πληροφορίες σχετικά με το IP των δικτύων θα καταλήξετε στο ακόλουθο σχήμα (Σημείωση: Τα αποτελέσματά σας μπορεί να διαφέρουν λόγω διαφορετικής τοποθέτησης των κόμβων.). Μας ενδιαφέρουν συγκεκριμένα οι πληροφορίες που αφορούν τον Router1. Γενικά το δίκτυο θα έχει τα ακόλουθα δίκτυα. page 9 from 12
Σύγκριση του περιεχομένου των πινάκων δρομολόγησης 1. Για να ελέγξετε το περιεχόμενο του πίνακα δρομολόγησης του Router1 και για τα δύο σενάρια. i. Πηγαίνετε από το μενού Results Open Simulation Log Επεκτείνετε την ιεραρχία στα αριστερά όπως φαίνεται παρακάτω Κάντε κλικ στο πεδίο COMMON ROUTE TABLE. Επαναλάβετε το προηγούμενο βήμα και για τα δύο σενάρια. Στις ακόλουθες εικόνες παρουσιάζεται τμήμα των περιεχομένων του πίνακα δρομολόγησης του Router1 και για τα δύο σενάρια. Πίνακας δρομολόγησης του Router1 (NO_Failure σενάριο) page 10 from 12
Πίνακας δρομολόγησης του Router1 (Failure σενάριο) page 11 from 12
Ερωτήσεις 1. Αναλύστε τα γραφήματα που συγκρίνουν την αποσταλθείσα κίνηση (Traffic Sent) καθώς και την ληφθείσα κίνηση (Traffic Received) του πρωτοκόλλου RIP και στα δύο σενάρια. Σημείωση: Να βεβαιωθείτε ότι αλλάξατε στο draw style των γραφημάτων σε bar. 2. Περιγράψτε και εξηγήστε την επίπτωση της βλάβης της σύνδεσης μεταξύ των Router1 και Router2 στον πίνακα δρομολόγησης του Router1. 3. Δημιουργήστε ένα νέο σενάριο, αντίγραφο του σεναρίου Failure. Ονομάστε το νέο σενάριο Q3_Recover. Στο νέο αυτό σενάριο, προκαλέστε επαναφορά της σύνδεσης των Router1 και Router2 μετά από 400 δευτερόλεπτα (ρυθμίζοντας κατάλληλα το αντικείμενο Failure Recovery). (α) Δημιουργήστε και αναλύστε την επίπτωση της επαναφοράς στο γράφημα Total Number of Updates. Πότε και γιατί γίνονται ενημερώσεις; (β) Δείτε τα περιεχόμενα του πίνακα δρομολόγησης του Router1. Συγκρίνετε τον πίνακα αυτόν με τον αντίστοιχο πίνακα των σεναρίων NO_Failure και Failure. page 12 from 12