EIGRP - Μελέτη και υλοποίηση (Bachelor thesis)
Καραχάτζης, Παρασκευάς
This thesis is deals with the study and implementation of the EIGRP
protocol routing protocol. The purpose of a routing protocol is to keep track of the
changes of the network topology and adjust the routes to the destination networks,
on top of discovering these networks. EIGRP is a distance vector routing protocol,
4 από 58
Πτυχιακή εργασία του φοιτητή Καραχατζή Παρασκευά
property of Cisco. At 2013 Cisco released an Informational RFC describing the
basic version of the EIGRP protocol. The program was developed using C as a
programming language and it is used as a daemon.
There are two basic categories of routing algorithms based on how they work.
Even though EIGRP is described as a distance vector routing protocol, it uses
features of link-state protocols as well. Also unlike other routing protocols it does
not use TCP or UDP to transport packets through the network but it has
implemented a transport layer protocol called RTP (Reliable Transport Protocol)
which is a mix of both TCP and UDP and offers both speed and reliability. The
routes are defined as either in PASSIVE state or ACTIVE state. When a route is in
PASSIVE state the router will forward packet to that destination in contrast when
the route goes into ACTIVE state it will stop forwarding packets and start
searching for a new valid route. A valid route is considered a route that meets the
Feasible Condition. This condition is met when the advertized distance from the
destination is less than the feasible distance the router learned since the last time
the route went into ACTIVE state. The routes that meet this condition are called
feasible successor. Each route can have multiple feasible successor but one of
them will be chosen as the successor which will be the neighbor that the packets
will be forwarded to. We should also mention that when a router changes to
ACTIVE state a mechanism is trigger to limit the time the route stays in the
ACTIVE state. Both the DUAL algorithm and state machine provide fast
convergence time by recalculated only the affected routes while also providing
loop free paths. And by using the topology table the protocol can recalculate the
route without having to change the state of the route. The information needed by
the DUAL algorithm is conveyed with the packets UPDATE, QUERY and REPLY.
On top of these EIGRP also uses the packets HELLO, SIA-QUERY and SIA REPLY. The data transferred in these packets are encapsulated into TLV which are
similar to structures and allow different types of data to be transferred using the
same packet. Also routes are distinguished as internal and external routes.
Internal routes are the routes created or found by the EGRP protocol while
external routes are those that were discovered from other sources such as static
routes and other routing protocols. To reduce traffic at the network the EIGRP
protocol will send multicast packets whenever such an option is available. Even
though this has created a problem since the packets much to read in order, the
solution to this problem is also implemented. Lastly the calculation of the route
metric can be done by either the classic formula or the wide metric formula. Wide
metrics where introduced as the classic formula could not keep up with the fast
network interfaced. Because EIGRP uses the inverted bandwidth of the link to
5 από 58
Πτυχιακή εργασία του φοιτητή Καραχατζή Παρασκευά
calculate the bandwidth based on a theoretical maximum bandwidth, all the
network interfaces that pass this limits have trouble calculating a correct or more
likely an accurate metric. To solve this problem wide metrics were introduced
solving this problem and most importantly are compatible with the classic metrics.
For the development of the code the incremental model was used. It allows
easy debugging as the parts that are made on each iteration are functional. At the
same time is allows the programmer to break down the problem into smaller
pieces and work them stage by stage. The drawback of this model is that you can
not calculate the cost of the project, which in this case is the time consumed to
develop the software. The program uses two more protocols telnet and netlink to
interact with other parts of the system and the user. Both their libraries were found
at the Debian repository and are contributed by the community. Software used for
the project are gedit, gcc, gdb, valgrind, wireshark and the libraries from the
debhelper package. Lastly an important role was played by the Cisco routers at
the end of each iteration for debugging.
Institution and School/Department of submitter: | Σχολή μηχανικών / τμήμα μηχανικών υπολογιστών και ηλεκτρονικών συστημάτων |
Subject classification: | EIGRP (Πρωτόκολλο δικτύου υπολογιστών) EIGRP (Computer network protocol) |
Keywords: | Γλώσσα προγραμματισμού;EIGRP;C language program;C γλώσσα προγραμματισμού;Πρωτόκολλο;Protocol |
Description: | Πτυχιακή εργασία - Σχολή μηχανικών - Τμήμα μηχανικών υπολογιστών και ηλεκτρονικών συστημάτων , 2016 α.α 7599 |
URI: | http://195.251.240.227/jspui/handle/123456789/15117 |
Item type: | bachelorThesis |
General Description / Additional Comments: | Πτυχιακή εργασία |
Subject classification: | EIGRP (Πρωτόκολλο δικτύου υπολογιστών) EIGRP (Computer network protocol) |
Submission Date: | 2022-08-09T10:36:41Z |
Item language: | el |
Item access scheme: | free |
Institution and School/Department of submitter: | Σχολή μηχανικών / τμήμα μηχανικών υπολογιστών και ηλεκτρονικών συστημάτων |
Publication date: | 2016-04-19 |
Bibliographic citation: | Καραχάτζης, Π. (2016). EIGRP - Μελέτη και υλοποίηση. Θεσσαλονίκη: Διεθνές Πανεπιστήμιο Ελλάδος. |
Abstract: | Στην πτυχιακή εργασία με θέμα την μελέτη και υλοποίηση του πρωτοκόλλου
EIGRP ασχολούμαστε με την δημιουργία μιας εφαρμογής δρομολόγησης. Αυτή η
εφαρμογή δρομολόγησης είναι υπεύθυνη για την διαχείριση του πίνακα
δρομολόγησης και την εύρεση γειτόνων. Σκοπός του πρωτοκόλλου δρομολόγησης
2 από 58
Πτυχιακή εργασία του φοιτητή Καραχατζή Παρασκευά
είναι η εύρεση και εγκατάσταση της βέλτιστης διαδρομής για κάθε προορισμό στο
δίκτυο. Έτσι ώστε να μην χρειάζεται ο διαχειριστής του δικτύου να περνάει τις
διαδρομές στους πίνακες δρομολόγησης με το χέρι, για να μπορούν να
επικοινωνήσουν οι συσκευές σε ένα δίκτυο.
Αρχικά πρέπει να αναφέρουμε ότι η εφαρμογή είναι ένα routing daemon για
το πρωτόκολλο EIGRP που είναι ένα Distance Vector πρωτόκολλο δρομολόγησης
ιδιοκτησία της CISCO. Υλοποιήθηκε σε λειτουργικό σύστημα Debian OS (Kernel
Linux 3.2.0), χρησιμοποιώντας C για γλώσσα προγραμματισμού καθώς και το
packaging του. Πρέπει να τονιστεί ότι η βασική έκδοση του πρωτοκόλλου δόθηκε
το 2013 με την μορφή Informational RFC. Αρχικά οι αλγόριθμοι δρομολόγησης
χωρίζονται σε διάφορα είδη με βάση τον τρόπο λειτουργίας τους. Για την ανάπτυξη
της εφαρμογής χρειάστηκαν οι αλγόριθμοι διανυσμάτων απόστασης και
κατάστασης συνδέσεων καθώς το πρωτόκολλο EIGRP δανείζετε χαρακτηριστικά
και των δύο. Επίσης, το πρωτόκολλο EIGRP σε αντίθεση με τα άλλα πρωτόκολλα
δρομολόγησης δεν χρησιμοποιεί τα πρωτοκολλά TCP ή UDP για την μεταφορά
δεδομένων αλλά έχει υλοποιήσει το δικό του πρωτόκολλο RTP(Reliable Transport
Protocol), το οποίο συνδυάζει αξιοπιστία και ταχύτητα. Επίσης, το πρωτόκολλο
EIGRP χαρακτηρίζει τις διαδρομές με τις καταστάσεις PASSIVE και ACTIVE. Όταν
το δρομολόγιο είναι σε κατάσταση PASSIVE προωθεί πακέτα για τον προορισμό
ενώ όταν βρίσκετε στην κατάσταση ACTIVE ψάχνει να βρει ένα καινούργιο
δρομολόγιο γιατί το προηγούμενο δεν είναι πια εφικτό. Για να θεωρηθεί ότι μια
διαδρομή είναι έγκυρη, πρέπει η αναφερόμενη απόσταση του γείτονα που την
έστειλε να είναι μικρότερη από την ελάχιστη απόσταση που γνωρίζει ο
δρομολογητής. Αυτό ονομάζετε Feasible Condition. Όταν η διαδρομή ενός γείτονα
ικανοποιεί αυτήν την προϋπόθεση ο γείτονας ονομάζετε feasible successor. Από
όλους τους feasible successor θα επιλεχθεί ένας successor μέσο του οποίου θα
γίνετε η προώθηση πακέτων. Το DUAL Finite State Machine χρησιμοποιείτε για
την διαχείριση και τον υπολογισμό των διαδρομών. Είναι ένας από τους
μηχανισμούς στον οποίον οφείλει την ταχύτητα του το πρωτόκολλο EIGRP. Αυτό
επιτυγχάνετε υπολογίζοντας τα δρομολόγια ξεχωριστά το καθένα καθώς και στο ότι
αν και το πρωτόκολλο EIGRP είναι πρωτόκολλο διανύσματος απόστασης
εμπεριέχει ένα πίνακα τοπολογίας από τον οποίο μπορεί να ανατρέξει
πληροφορίες για την εύρεση καινούργιας διαδρομής. Για την απόκτηση των
απαραίτητων δεδομένων για τον υπολογισμό των διαδρομών το DUAL Finite State
Machine χρησιμοποιεί τα πακέτα UPDATE, QUERY και REPLY. Η κεφαλίδα των
πακέτων είναι μικρή και πέρα από τα βασικά στοιχεία για την επικοινωνία
εμπεριέχει και το πρωτόκολλο RTP (Reliable Transport Protocol). Στο σύνολο των
πακέτων επικοινωνίας του πρωτοκόλλου EIGRP εμπεριέχονται πέρα από τα
3 από 58
Πτυχιακή εργασία του φοιτητή Καραχατζή Παρασκευά
προαναφερόμενα πακέτα και τα παρακάτω. Το πακέτο HELLO το οποίο έχει
διάφορες χρίσεις όπου η πιο γνωστή είναι για την διαφήμιση του δρομολογητή
στους γείτονες του. Το πακέτο SIA-QUERY το οποίο στέλνετε όταν δεν ληφθεί
απάντηση από ένα QUERY. Και το πακέτο SIA-REPLY που είναι η απάντηση σε
στο πακέτο SIA-QUERY. Επίσης, οι διαδρομές διαιρούνται σε internal και external.
Τα internal είναι διαδρομές που προέρχονται από το πρωτόκολλο EIGRP ενώ οι
external διαδρομές έχουν γνωστοποιηθεί από άλλα πρωτόκολλα δρομολόγησης.
Ακόμα για να γλυτώσει την αποστολή πολλαπλών ίδιων πακέτο το πρωτόκολλο
EIGRP στέλνει πακέτα multicast. Παρόλα αυτά αυτό δημιουργεί προβλήματα
καθώς η αποστολή των πακέτων πρέπει να γίνετε σε σειρά, ωστόσο έχει
αναπτυχθεί και ο μηχανισμός για την αντιμετώπιση αυτού του προβλήματος. Καλό
θα ήταν να αναφερθεί ότι όταν μια διαδρομή μεταβεί σε ACTIVE κατάσταση
ενεργοποιείτε ένας μηχανισμός ο οποίος έχει σκοπό να μην επιτρέψει στην
διαδρομή να μείνει σε ACTIVE κατάσταση για πάντα λόγο προβλήματος. Αναγκαίο
είναι δυο δρομολογητές για να ανταλλάξουν πληροφορίες μεταξύ τους πρέπει να
γίνουν πρώτα γείτονές στέλνοντας κάποια πακέτα. Για να πληρούν τις
προϋποθέσεις για να είναι γείτονες πρέπει η Κ μεταβλητές να είναι όμοιες. Οι Κ
μεταβλητές είναι τα βάρη για των υπολογισμό της απόστασης των διαδρομών. Για
των υπολογισμό τις απόστασης χρησιμοποιείτε είτε ο κλασσικός τύπος είτε o Wide
Metric τύπος. Πιο συγκεκριμένα τα Wide Metric δημιουργήθηκαν από το πρόβλημα
που προέκυψε από την εμφάνιση καρτών δικτύου μεγαλύτερου εύρους ζώνης των
10 Gbps. Τέλος, η μεταφορά των πληροφοριών μέσα στα πακέτο γίνετε μέσω των
TLV τα οποία είναι παρόμοια με δομές που κρατάν δεδομένα.
Για την ανάπτυξη του κώδικα χρησιμοποιήθηκε το Incremental μοντέλο. Οι
βασικότεροι κίνδυνοι τις εφαρμογής ήταν η εύρεση των μηχανισμών ή εργαλείων
για την επικοινωνία της εφαρμογής με τον πυρήνα ή άλλες εφαρμογές. Έτσι για
την υλοποίηση τις εφαρμογής χρησιμοποιήθηκαν τα δυο πρωτόκολλα, telnet και
netlink. Οι βιβλιοθήκες τους βρέθηκαν από την κοινότητα του Debian και υπάρχουν
σε πακέτα στο repository. Για την συγγραφή , μεταγλώττιση, αποσφαλμάτωση και
την δημιουργία του πακέτου χρησιμοποιήθηκαν τα προγράμματα gedit, gcc, gdb,
Valgrind, Wireshark και το πακέτο debhelper. Ακόμα σημαντικό ρόλο έπαιξαν οι
Cisco δρομολογητές. This thesis is deals with the study and implementation of the EIGRP protocol routing protocol. The purpose of a routing protocol is to keep track of the changes of the network topology and adjust the routes to the destination networks, on top of discovering these networks. EIGRP is a distance vector routing protocol, 4 από 58 Πτυχιακή εργασία του φοιτητή Καραχατζή Παρασκευά property of Cisco. At 2013 Cisco released an Informational RFC describing the basic version of the EIGRP protocol. The program was developed using C as a programming language and it is used as a daemon. There are two basic categories of routing algorithms based on how they work. Even though EIGRP is described as a distance vector routing protocol, it uses features of link-state protocols as well. Also unlike other routing protocols it does not use TCP or UDP to transport packets through the network but it has implemented a transport layer protocol called RTP (Reliable Transport Protocol) which is a mix of both TCP and UDP and offers both speed and reliability. The routes are defined as either in PASSIVE state or ACTIVE state. When a route is in PASSIVE state the router will forward packet to that destination in contrast when the route goes into ACTIVE state it will stop forwarding packets and start searching for a new valid route. A valid route is considered a route that meets the Feasible Condition. This condition is met when the advertized distance from the destination is less than the feasible distance the router learned since the last time the route went into ACTIVE state. The routes that meet this condition are called feasible successor. Each route can have multiple feasible successor but one of them will be chosen as the successor which will be the neighbor that the packets will be forwarded to. We should also mention that when a router changes to ACTIVE state a mechanism is trigger to limit the time the route stays in the ACTIVE state. Both the DUAL algorithm and state machine provide fast convergence time by recalculated only the affected routes while also providing loop free paths. And by using the topology table the protocol can recalculate the route without having to change the state of the route. The information needed by the DUAL algorithm is conveyed with the packets UPDATE, QUERY and REPLY. On top of these EIGRP also uses the packets HELLO, SIA-QUERY and SIA REPLY. The data transferred in these packets are encapsulated into TLV which are similar to structures and allow different types of data to be transferred using the same packet. Also routes are distinguished as internal and external routes. Internal routes are the routes created or found by the EGRP protocol while external routes are those that were discovered from other sources such as static routes and other routing protocols. To reduce traffic at the network the EIGRP protocol will send multicast packets whenever such an option is available. Even though this has created a problem since the packets much to read in order, the solution to this problem is also implemented. Lastly the calculation of the route metric can be done by either the classic formula or the wide metric formula. Wide metrics where introduced as the classic formula could not keep up with the fast network interfaced. Because EIGRP uses the inverted bandwidth of the link to 5 από 58 Πτυχιακή εργασία του φοιτητή Καραχατζή Παρασκευά calculate the bandwidth based on a theoretical maximum bandwidth, all the network interfaces that pass this limits have trouble calculating a correct or more likely an accurate metric. To solve this problem wide metrics were introduced solving this problem and most importantly are compatible with the classic metrics. For the development of the code the incremental model was used. It allows easy debugging as the parts that are made on each iteration are functional. At the same time is allows the programmer to break down the problem into smaller pieces and work them stage by stage. The drawback of this model is that you can not calculate the cost of the project, which in this case is the time consumed to develop the software. The program uses two more protocols telnet and netlink to interact with other parts of the system and the user. Both their libraries were found at the Debian repository and are contributed by the community. Software used for the project are gedit, gcc, gdb, valgrind, wireshark and the libraries from the debhelper package. Lastly an important role was played by the Cisco routers at the end of each iteration for debugging. |
Advisor name: | Ψαρράς , Νικόλαος |
Examining committee: | Ψαρράς, Νικόλαος |
Publishing department/division: | Σχολή μηχανικών / Τμήμα μηχανικών υπολογιστών και ηλεκτρονικών συστημάτων |
Publishing institution: | ihu |
Number of pages: | 58 |
Appears in Collections: | Πτυχιακές Εργασίες |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Karaxatzis_Paraskevas.pdf | Καραχάτζης Παρασκευάς πτυχιακή | 415.62 kB | Adobe PDF | View/Open |
Please use this identifier to cite or link to this item:
This item is a favorite for 0 people.
http://195.251.240.227/jspui/handle/123456789/15117
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.