Δίκτυα Υπολογιστών Κεφάλαιο 33 – Πρωτόκολλο IP: IPv6 Επικεφαλίδα
Δημοσιεύτηκε από τον/την codebrakes στις
Δίκτυα Υπολογιστών
Κεφάλαιο 33 - Πρωτόκολλο IP: IPv6 Επικεφαλίδα
Δομή IPv6 επικεφαλίδας
Η επικεφαλίδα του IPv6 είναι πολύ πιο απλή και περιεκτική σε σχέση με αυτήν της IPv4 επικεφαλίδας. Περιέχει μόνο την απαραίτητη πληροφορία που χρειάζεται προκειμένου να προωθηθεί ένα IPv6 πακέτο. Η IPv6 επικεφαλίδα έχει σταθερό μήκος 40 bytes και συνεπώς οι δρομολογητές (routers) έχουν καλύτερη απόδοση όταν θα το επεξεργαστούν. Η παρακάτω εικόνα αποτυπώνει την δομή ενός IPv6 πακέτου.
IPv6 Επικεφαλίδα (IPv6 header) |
Επέκταση επικεφαλίδας extension header |
Στοιχεία ανωτέρου επιπέδου Upper-Layer protocol data |
Δομή ενός IPv6 πακέτου
Μπορούμε να διαχωρίσουμε το IPv6 αυτοδύναμο πακέτο σε τρία κομμάτια, το πρώτο είναι η IPv6 επικεφαλίδα το δεύτερο είναι η επέκταση επικεφαλίδας και το τρίτο είναι τα στοιχεία (ή πληροφορίες) που προσθέτει το ανώτερο επίπεδο.
Πεδία IPv6 Επικεφαλίδας
- Έκδοση (Version): Πεδίο μήκους 4 bits το οποίο περιέχει τον αριθμό 6. Υποδεικνύει την έκδοση του IPv6 πρωτοκόλλου κι έχει μέγεθος ίδιο με αυτό του IPv4.
- Κλάση Κινήσεως (Traffic Class): Πεδίο μήκους 8 bit το οποίο χωρίζεται σε δύο μέρη, το πρώτο μέρος (6 bits) αφορά τον τύπο υπηρεσιών (Type of Service – TOS) προκειμένου να ενημερώσει έναν δρομολογητή για την προτεραιότητα ενός πακέτου. Τα τελευταία 2 bits χρησιμοποιούνται για ECN.
- Ετικέτα Ροής (Flow Label): Πεδίο μήκους 20 bits όπου παρέχει υποστήριξη για αντίστοιχες υπηρεσίες πραγματικού χρόνου (real-time) και ποιότητας υπηρεσιών. Αυτό το πεδίο αναλαμβάνει τον ρόλο ενδείξεως για ένα IPv6 πακέτο υποδεικνύοντας σε ποια ροή δεδομένων ανήκει.
- Μήκος Ωφέλιμου Φορτίου (Payload): Πεδίο μήκους 16 bits το οποίο υποδικνύει το μήκος του ωφέλιμου φορτίου (payload), συμπεριλαμβάνοντας τις αντίστοιχες επεκτάσεις επικεφαλίδας καθώς και τα στοιχεία που προσθέτει το ανώτερο επίπεδο.
- Επόμενη Κεφαλίδα (Next Header): Πεδίο μήκους 8 bits το οποίο υποδεικνύει τον τύπο της πρώτης επέκτασης (αν κι εφόσον υπάρχει κάποια επέκταση στο αντίστοιχο IPv6 αυτοδύναμο πακέτο) ή το πρωτόκολλο του ανωτέρου επιπέδου όπως το TCP, UDP ή ICMPv6.
- Όριο Αλμάτων (Hop Limit): Πεδίο μήκους 8 bits το οποίο υποδεικνύει μέγιστο αριθμό των δρομολογητών (routers) από το οποίο μπορεί να περάσει ένα IPv6 αυτοδύναμο πακέτο. Αυτό το πεδίο είναι παρόμοιο με το αντίστοιχο πεδίο χρόνου ζωής (Time-To-Live – TTL) που υπάρχει στην IPv4 επικεφαλίδα.
- Διεύθυνση Πηγής IPv6 (Source IPv6 Address): Πεδίο μήκους 128 bits το οποίο περιέχει την IPv6 διεύθυνση πηγής.
- Διεύθυνση Προορισμού IPv6 (Destination IPv6 Address): Πεδίο μήκους 128 bits το οποίο περιέχει την IPv6 διεύθυνση προορισμού.
Κεφαλίδες επέκτασης του IPv6
Το πεδίο επίλογών της IPv4 επικεφαλίδας χρησιμοποιείται για να μεταφερθεί κάποια αντίστοιχη πληροφορία σε ένα IP πακέτο ή τον τρόπο με τον οποίο αυτό θα πρέπει να επεξεργαστεί από τον δρομολογητή. Οι δρομολογητές όταν λάβουν ένα IP πακέτο οφείλουν να εξετάσουν την IPv4 επικεφαλίδα και συγκεκριμένα το πεδίο επιλογών της IPv4 επικεφαλίδας. Αυτό μας οδηγεί σε καθυστερήσεις και συνεπώς επηρεάζει την επίδοση ενός δικτύου. Το πεδίο επιλογών στην IPv4 επικεφαλίδα παίζει σημαντικό ρόλο στην λειτουργία του IP πρωτοκόλλου και συνεπώς οι δυνατότητες του πρέπει να διατηρηθούν και στο IPv6. Όμως, από την άλλη μεριά, το πεδίο επιλογών επηρεάζει πολύ σημαντικά την επίδοση ενός δικτύου κάτι το οποίο οι σχεδιαστές του IPv6 έλαβαν υπόψιν τους. Η λειτουργία του πεδίου επιλογών δεν υπάρχει στην IPv6 επικεφαλίδα και εφαρμόστηκε ένα σύνολο από αντίστοιχες επικεφαλίδες οι οποίες καλούνται ως επεκτάσεις επικεφαλίδας.
Οι επεκτάσεις επικεφαλίδας τοποθετούνται σε διαδοχική σειρά δημιουργώντας έτσι μια συνδεδεμένη λίστα όπως αποτυπώνεται και στο παρακάτω σχήμα:
Ο παρακάτω πίνακας περιγράφει όλες τις επεκτάσεις κεφαλίδας του IPv6:
Τύπος Επικεφαλίδας |
Επόμενος κωδικός κεφαλίδας |
Περιγραφή |
Βασική IPv6 επικεφαλίδα |
---- |
---- |
Επιλογές Hop-by-Hop |
0 |
Χρήσιμες πληροφορίες για τους ενδιάμεσους δρομολογητές από τους οποίους θα περάσει το πακέτο |
Επιλογές προορισμού (με επιλογές δρομολόγησης) |
60 |
Πρόσθετες πληροφορίες που μπορεί να χρειαστούν όταν το πακέτο φτάσει στον τελικό προορισμό του |
Δρομολόγησης |
43 |
Μέθοδοι που ορίζουν την διαδρομή που θα ακολουθήσει ένα πακέτο |
Κατακερματισμού |
44 |
Περιέχει διάφορες παραμέτρους για τον κατακερματισμό των αυτοδύναμων πακέτων (datagrams). |
Πιστοποίησης ταυτότητας |
51 |
Περιέχει χρήσιμη πληροφορία για την επαλήθευση της αυθεντικότητας του αποστολέα |
Ασφαλούς ενθυλάκωσης ωφέλιμου φορτίου |
50 |
Περιέχει χρήσιμη πληροφορία για την επαλήθευση της αυθεντικότητας του αποστολέα |
Επιλογές προορισμού |
60 |
Πρόσθετες πληροφορίες που μπορεί να χρειαστούν όταν το πακέτο φτάσει στον τελικό προορισμό του |
Επικεφαλίδα φορητότητας |
135 |
Παράμετροι που χρησιμοποιούνται στο Mobile IPv6. |
Καμία επικεφαλίδα |
59 |
---- |
Επεκτάσεις κεφαλίδας στο IPv6
1 | Βασική IPv6 επικεφαλίδα |
2 | Επιλογές Hop-by-Hop |
3 | Επιλογές προορισμού (με επιλογές δρομολόγησης) *1 |
4 | Δρομολόγησης |
5 | Κατακερματισμού |
6 | Πιστοποίησης ταυτότητας |
6 | Πιστοποίησης ταυτότητας |
7 | Ασφαλούς ενθυλάκωσης ωφέλιμου φορτίου |
8 | Επιλογές προορισμού *2 |
9 | Επικεφαλίδα φορητότητας |
Ιεραρχική σειρά των IPv6 κεφαλίδων επέκτασης
Οι σημειωμένες (με κόκκινο) επικεφαλίδες του πίνακα:
- Επεξεργάζονται από τον αρχικό κόμβο και τους ενδιάμεσους κόμβους.
- Επεξεργάζονται μόνο από τον τελικό προορισμό.
Κεφαλίδες επέκτασης του IPv6
- Επικεφαλίδα Hop-by-hop και επιλογής προορισμού: Η επικεφαλίδα επιλογών Hop-by-Hop ελέγχεται από όλους τους κόμβους από τους οποίους θα περάσει το IPv6 πακέτο, ενώ η επικεφαλίδα επιλογής προορισμού ελέγχεται μόνο από την συσκευή του παραλήπτη. Και οι δύο αυτές επεκτάσεις επικεφαλίδας έχουν μέγεθος 8 bytes.
Η τεχνική anycast αφορά την επικοινωνία ανάμεσα σε έναν αποστολέα και τους χρονικά κοντινότερους του παραλήπτες που ανήκουν σε ένα group. Η τεχνική anycast χρησιμοποιείται στο IPv6 ως μια μέθοδος ανανέωσης πινάκων δρομολόγησης. Για παράδειγμα ένας host πραγματοποιεί μια ανανέωση ενός πίνακα δρομολόγησης για ένα group από hosts και στέλνει τα δεδομένα στον αμέσως κοντινότερο του host. Μετέπειτα αυτός ο host στέλνει το μήνυμα στον αμέσως κοντινότερο κόμβο έως ότου όλοι οι πίνακες σε αυτό το group ανανεωθούν.
Μήκος IPv6 διευθύνσεων
Στο IPv4, οι IP διευθύνσεις είναι μήκους 32 bits και διαχωρίζονται σε 4 οκτάδες των 8 bits η κάθε μια. Θεωρητικά το μήκος των IPv4 διευθύνσεων είναι 232 ή 4,294,967,296 δισεκατομμύρια διευθύνσεις. Για να αυξηθεί ο χώρος διευθύνσεων απλά επεκτείνουμε το μήκος των διευθύνσεων, δηλαδή κάθε επιπλέον bit που δίνουμε στο μήκος διευθύνσεων αυξάνει και τον χώρο των επιπλέων διευθύνσεων. Πάνω σε αυτήν την λογική οι σχεδιαστές του IPv6 αποφάσισαν ότι έπρεπε να αυξήσουν τον χώρο των διευθύνσεων από 32 σε 128 bits ή αλλιώς σε 16 οκτάδες των 8 bits.
Τα 128 bits της IPv6 διεύθυνσης υποδηλώνουν ότι το μέγεθος του χώρου των IPv6 διευθύνσεων είναι κυριολεκτικά αστρονομικό (όπως δηλαδή τα αριθμητικά ποσά που χρησιμοποιούν επιστήμονες της NASA για να περιγράψουν αποστάσεις από πλανήτες ή άλλους γαλαξίες κλπ). Εν ολίγης αριθμός των διευθύνσεων που μπορεί να υποστηρίξει το IPv6 είναι εξωπραγματικός. Η παρακάτω εικόνα δίνει μια ιδέα του αστρονομικού ποσού αυτού.
Όνομα υποπεδίου |
Μήκος (σε bytes) |
Περιγραφή |
Τύπος επιλογής |
1 byte |
Αυτό το πεδίο υποδεικνύει τον τύπο επιλογής. Ο παρακάτω πίνακας δείχνει τις τιμές αυτού του πεδίου:
|
Μήκος επιλογής δεδομένων |
1 byte | Ορίζει το μήκος της επιλογής δεδομένων. |
Επιλογή δεδομένων |
Μεταβαλλόμενο | Τα δεδομένα που πρόκειται να σταλθούν ως μέρος της επιλογής (όπου προφανώς αυτή ορίζει) |
Δομή IPv6 επιλογών
- Κεφαλίδα δρομολόγησης: Η κεφαλίδα δρομολόγησης χρησιμοποιείται για να κατευθύνει ένα πακέτο σε έναν ή περισσότερους ενδιάμεσους κόμβους πρώτού αυτό σταλθεί προς τον τελικό του προορισμό. Μπορούμε να πούμε ότι είναι παρόμοιο με την χαλαρή δρομολόγηση που γίνεται στο IPv4 όπου κάθε πακέτο οφείλει να περάσει από ένα σύνολο δρομολογητών προκειμένου αυτό να φτάσει στον τελικό του προορισμό. Η μορφή της επικεφαλίδας αποτυπώνεται στην παρακάτω εικόνα:
- Τα πεδία επόμενης κεφαλίδας και μήκους κεφαλίδας είναι ίδια ακριβώς με τις κεφαλίδες hop-by-hop και επιλογής προορισμού. Μετέπειτα έχουμε το πεδίο τύπου δρομολόγησης όπου ορίζει διάφορους τύπους δρομολόγησης, προς το παρόν οι τιμές που παίρνει είναι οι 0, 1 και 2.
- Η τιμή 0 δεν χρησιμοποιείται στους home routers καθότι είναι επιρρεπής σε επιθέσεις DoS. Η τιμή 1 χρησιμοποιείται στον αλγόριθμο δρομολόγησης Nimrod που σχεδιάστηκε από την DARPA. Η τιμή 2 χρησιμοποιείται για mobile IPv6 αρχιτεκτονικές.
- Το πεδίο υπόλοιπων τμημάτων ορίζει τον αριθμό των συγκεκριμένων κόμβων που έχουν απομείνει έως ότου το IPv6 πακέτο φτάσει στον τελικό του προορισμό.
- Το πεδίο δεσμευμένο (reserved) δεν χρησιμοποιείται και παίρνει την τιμή 0.
- Το τελευταίο πεδίο αφορά το σύνολο των IPv6 διευθύνσεων που ορίζουν την διαδρομή του πακέτου.
- Κεφαλίδα Κατακερματισμού: Η επέκταση κεφαλίδας κατακερματισμού περιέχεται στα κατακερματισμένα αυτοδύναμα πακέτα έτσι ώστε να μπορέσουν όταν φτάσουν στον παραλήπτη να ανασυναρμολογηθούν καταλλήλως. Συνεπώς περιέχει χρήσιμη πληροφορία η οποία βοηθάει στην επανασυναρμολόγηση ενός κατακερματισμένου αυτοδύναμου πακέτου.
- Το πεδίο επόμενης κεφαλίδας περιέχει τον αριθμό πρωτοκόλλου της επόμενης κεφαλίδας που ακολουθεί μετά από την κεφαλίδα κατακερματισμού. Χρησιμοποιείται για να συνδέσει τις διάφορες επικεφαλίδες μεταξύ τους.
- Το πεδίο δεσμευμένο δεν χρησιμοποιείται και παίρνει την τιμή 0. Το πεδίο κατακερματισμένων τμημάτων υποδηλώνει τον αριθμό του τμήματος από το συνολικό κατακερματισμένο μήνυμα Το πεδίο Res δεν χρησιμοποιείται και συνεπώς παίρνει την τιμή 0. Το πεδίο Mflag αποτελεί πεδίο ένδειξης, δηλαδή αν το πεδίο αυτό έχει την τιμή 1 τότε σημαίνει πως μετά από αυτό θα έρθουν κι άλλα τμήματα. Όταν έχει την τιμή 0 τότε πρόκειται για το τελευταίο τμήμα.
- Τέλος το πεδίο του αναγνωριστικού περιέχει μια συγκεκριμένη τιμή η οποία είναι παρόμοια σε κάθε τμήμα. Αυτό το πεδίο ουσιαστικά μαρκάρει κάθε πακέτο μιας συγκεκριμένης ροής δεδομένων έτσι ώστε αυτά να μην μπερδευτούν με άλλα αντίστοιχα πακέτα από διαφορετικές ροές.
Η πάνω γραμμή αποτυπώνει την προσέγγιση της IPv6 διεύθυνσης στο δυαδικό, η δεύτερη γραμμή αποτυπώνει την αντίστοιχη διεύθυνση στο δεκαδικό. Μετέπειτα ο πίνακας που ακολουθεί αποτυπώνει την προσέγγιση της IPv6 διεύθυνσης στο δεκαεξαδικό.
Κωδικός | Πρωτόκολλο/ κεφαλίδα |
Περιγραφή |
0 | HBH | Hop-by-Hop κεφαλίδα |
1 | ICMP | Internet Control Message Protocol |
2 | IGMP | Internet Group Management |
3 | GGP | Gateway-to-Gateway Protocol |
4 | IP | Internet Protocol |
5 | ST | Steam |
6 | TCP | Transmission Control Protocol |
8 | EGP | Exterior Gateway Protocol |
9 | IGP | Any private interior gateway |
16 | CHAOS | Chaos |
17 | UDP | User Datagram Protocol |
29 | ISO-TP4 | ISO Transport Protocol Class 4 |
43 | RH | Κεφαλίδα δρομολόγησης |
44 | FH | Κεφαλίδα κατακερματισμού |
45 | IDPR | Inter-Domain Routing Protocol |
46 | RSVP | Reservation Protocol |
50 | ESP | Encapsulating Security Payload |
51 | AH | Κεφαλίδα πιστοποίησης ταυτότητας |
58 | ICMPv6 | Internet Control Message |
59 | NULL | Καμία κεφαλίδα |
60 | DOH | Κεφαλίδα επιλογής προορισμού |
80 | ISO-IP | ISO Internet Protocol |
88 | IGRP | Interior Gateway Routing Protocol |
89 | OSPF | Open Shortest Path First |
93 | AX.25 | AX.25 Frames |
Πιθανές τιμές του πεδίου επόμενης κεφαλίδας
Ασφάλεια (IPsec) στο IPv6: Κεφαλίδες κρυπτογράφησης
Το IPsec ορίζει ασφάλεια σε επίπεδο κρυπτογράφησης τόσο για το IPv4 όσο και για το IPv6. Το IPsec είναι προαιρετικό στο IPv4 ενώ στο IPv6 υπάρχει ενσωματωμένος μηχανισμός. Το IPv6 παρέχει δύο κεφαλίδες ασφάλειας που μπορούν να χρησιμοποιηθούν είτε ξεχωριστά είτε ενιαία. Η πρώτη κεφαλίδα είναι η κεφαλίδα πιστοποίησης ταυτότητας και η δεύτερη είναι η κεφαλίδα ασφαλούς ενθυλάκωσης ωφέλιμου φορτίου (ESP) που χρησιμοποιείται κατά την διάρκεια της σύνδεσης με ανταλλαγή κλειδιών ασφαλείας.
Κεφαλίδες κρυπτογράφησης του IPv6 | |
Κεφαλίδα πιστοποίησης ταυτότητας |
Κεφαλίδα ασφαλούς ενθυλάκωσης ωφέλιμου φορτίου (ESP) |
Παρέχει τα εξής στοιχεία:
|
Παρέχει τα εξής στοιχεία:
|
Σύγκριση IPv4 και IPv6 επικεφαλίδων
- Η IPv6 επικεφαλίδα είναι πολύ πιο απλή σε σχέση με την IPv4 επικεφαλίδα.
- Το μήκος της IPv6 επικεφαλίδας είναι πολύ μεγαλύτερο από αυτό της IPv4 επικεφαλίδας, προφανώς λόγω του μεγέθους των IPv6 διευθύνσεων. Οι IPv4 διευθύνσεις είναι μήκους 32 bit και οι IPv6 διευθύνσεις είναι μήκους 128 bits.
- Η IPv4 επικεφαλίδα περιέχει το πεδίο επιλογών όμως στο IPv6 δεν υπάρχει αντίστοιχο πεδίο. Μπορούμε να πούμε ότι την διαδικασία αυτή στο IPv6 την αναλαμβάνουν οι επεκτάσεις επικεφαλίδας.
- Τα πεδία μήκος επικεφαλίδας, αναγνωριστικού και σημαίες της IPv4 επικεφαλίδας δεν υπάρχουν στο IPv6.
- Το πεδίο χρόνου ζωής (TTL) της IPv4 επικεφαλίδας που χρησιμοποιείται για την αποφυγή routing loop, στο IPv6 έχει αντιστοιχηθεί με το πεδίο ορίου άλματος (hop limit)
Τελευταία ενημέρωση: 29/04/2018