Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Πρωτόκολλα Διαδικτύου 10 η Διάλεξη Δημοσθένης Κυριαζής Τετάρτη 3 Ιουνίου 2015
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 2
Αλληλεπίδραση προώθησης και δρομολόγησης Αλγόριθμος δρομολόγησης Τοπικός πίνακας προώθησης Τιμή header Link εξόδου 0100 0101 0111 1001 3 2 2 1 Ο αλγόριθμος δρομολόγησης καθορίζει το ολικό (end-end) μονοπάτι στο δίκτυο Ο πίνακας προώθησης καθορίζει την τοπική προώθηση ανά router Τιμή στο header του πακέτου που λαμβάνεται 0111 1 3 2 3
Υπηρεσία με- / χωρίς- σύνδεση Το datagram δίκτυο παρέχει υπηρεσία χωρίς σύνδεση στο επίπεδο δικτύου Το virtual-circuit δίκτυο παρέχει υπηρεσία με σύνδεση στο επίπεδο δικτύου Ανάλογο με το TCP/UDP με- / χωρίς- σύνδεση επιπέδου μεταφοράς, αλλά υπηρεσία: μεταξύ hosts χωρίς επιλογή: το δίκτυο παρέχει το ένα ή το άλλο υλοποίηση: στο network core Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 4
Δίκτυα datagram Δε γίνεται εγκαθίδρυση κλήσης / σύνδεσης στο επίπεδο δικτύου Οι routers δε διατηρούν την κατάσταση για την ολική (end-to-end) σύνδεση Δεν υπάρχει η έννοια της «σύνδεσης» σε επίπεδο δικτύου Τα πακέτα προωθούνται με χρήση των διευθύνσεων προορισμού application transport network data link physical 1. Αποστολή datagrams 2. Λήψη datagrams application transport network data link physical Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 5
Πίνακας προώθησης datagram (1/2) Αλγόριθμος δρομολόγησης Τοπικός πίνακας προώθησης Διευθ. προορισμού Εξερχ. link εύρος διευθ. 1 εύρος διευθ. 2 εύρος διευθ. 3 εύρος διευθ. 4 3 2 2 1 4 δισεκ. IP διευθύνσεις, οπότε αντί να υπάρχει λίστα με ξεχωριστές διευθύνσεις προορισμού, υπάρχει λίστα με εύρος (range) διευθύνσεων (συνάθροιση εγγραφών του πίνακα) Η IP διεύθυνση προορισμού στο header του εισερχόμενου πακέτου 1 3 2 6
Longest prefix matching longest prefix matching - ταίριασμα μεγαλύτερου προθέματος Στην αναζήτηση εγγραφής στον πίνακα προώθησης για συγκεκριμένη διεύθυνση προορισμού, γίνεται χρήση της διεύθυνσης με το μεγαλύτερο πρόθεμα που ταιριάζει στη διεύθυνση προορισμού Παραδείγματα: Εύρος διευθύνσεων προορισμού 11001000 00010111 00010*** ********* 11001000 00010111 00011000 ********* 11001000 00010111 00011*** ********* διαφορετικά ΔΠ: 11001000 00010111 00010110 10100001 ΔΠ: 11001000 00010111 00011000 10101010 Διεπαφή link 0 1 2 3 Ποια διεπαφή? 7
Αρχικτεκτονική router 2 βασικές λειτουργίες Εκτέλεση αλγορίθμων δρομολόγησης Προώθηση datagrams από εισερχόμενο σε εξερχόμενο link υπολογ. πινάκων προώθησης, πληροφ. στις πόρτες εισόδου Επεξεργαστής δρομολόγησης δρομολόγηση, διαχείριση επίπεδο ελέγχου (software) επίπεδο προώθησης δεδομένων (hardware) Μηχανισμός μεταγωγής υψηλής ταχύτητας Πόρτες εισόδου router Πόρτες εξόδου router 8
Μηχανισμός μεταγωγής Μεταφορά πακέτων από το buffer της εισόδου στο κατάλληλο buffer εξόδου Ρυθμός μεταγωγής: ρυθμός στον οποίο πακέτα μπορούν να μεταφέρονται από τις εισόδους στις εξόδους Συχνά μετράται ως πολλαπλάσιο του ρυθμού της σύνδεσης εισόδου / εξόδου N είσοδοι: επιθυμητός ρυθμός μεταγωγής N φορές το ρυθμό της σύνδεσης 3 τύποι μηχανισμών μεταγωγής memory memory bus crossbar 9
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 10
Το επίπεδο δικτύου του Internet Λειτουργίες host και router επιπέδου δικτύου Επίπεδο μεταφοράς: TCP, UDP Επίπεδο δικτύου Πρωτ. Δρομολόγησης επιλογή μονοπατιού RIP, OSPF, BGP Πίνακας προώθησης Πρωτόκολλο IP αρχές διευθυνσιοδότησης μορφή datagram αρχές διαχείρισης πακέτων Πρωτόκολλο ICMP αναφορά σφαλμάτων router signaling Επίπεδο σύνδεσης Φυσικό επίπεδο 11
Μορφή IP datagram Αρ. έκδοσης πρωτοκόλλου IP Μήκος header (bytes) τύπος δεδομένων Μέγιστος αριθμός εναπομεινάντων αλλαγών (μειώνεται σε κάθε router) Πρωτόκ. επάνω επιπέδου για παράδοση του payload (6: TCP, 17: UDP) Πόσο είναι το overhead? 20 bytes TCP 20 bytes IP = 40 bytes + overhead επιπέδου εφαρμογής ver head. len type of service 16-bit identifier time to upper live layer 32 bits flgs length fragment offset header checksum 32 bit source IP address 32 bit destination IP address options (if any) δεδομένα (μεταβλητού μήκους, συνήθως ένα TCP ή UDP segment) Συνολικό μήκος datagram (συνήθως 1500 bytes) για κατακερματισμό/ συναρμολόγηση Π.χ. timestamp, μονοπάτι, συγκεκριμένη λίστα routers, κλπ 12
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 13
Κατακερματισμός, συναρμολόγηση IP (1/2) Οι συνδέσεις δικτύου έχουν MTU το μεγαλύτερο δυνατό frame επιπέδου σύνδεσης Διαφορετικοί τύποι σύνδεσης, διαφορετικά MTU Ένα μεγάλο IP datagram χωρίζεται ( κατακερματίζεται ) στο δίκτυο 1 datagram γίνεται πολλά datagrams Συναρμολογείται μόνο στον τελικό προορισμό IP header bits χρησιμοποιούνται για τον προσδιορισμό και τη σειρά άλλων σχετικών κατακερματισμένων fragments Συναρμολόγηση Κατακερματισμός: Είσοδος: 1μεγάλο datagram Έξοδος: 3 μικρότερα datagrams 14
Κατακερματισμός, συναρμολόγηση IP (2/2) Παράδειγμα 4000 byte datagram MTU = 1500 bytes length =4000 ID =x fragflag =0 offset =0 1 μεγάλο datagram γίνεται πολλά μικρότερα datagrams 1480 bytes στο data field length =1500 ID =x fragflag =1 offset =0 offset = 1480/8 (κομμάτια των 8 bytes) length =1500 length =1040 ID =x ID =x fragflag =1 fragflag =0 offset =185 offset =370 Πρωτόκολλα Διαδικτύου, 9η Διάλεξη 15
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 16
Διευθυνσιοδότηση IP (1/2) Διεύθυνση IP: Αναγνωριστικό 32-bit για τη διεπαφή host, router Διεπαφή: σύνδεση μεταξύ host/router και φυσικής σύνδεσης (link) Οι routers έχουν συνήθως πολλαπλές διεπαφές Οι hosts έχουν συνήθως 1 ή 2 διεπαφές (π.χ. Ethernet, 802.11) Οι διευθύνσεις IP συνδέονται με κάθε διεπαφή 223.1.1.2 223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.9 223.1.3.27 223.1.3.1 223.1.2.1 223.1.2.2 223.1.3.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1
Διευθυνσιοδότηση IP (2/2) Πώς συνδέονται οι διεπαφές? 223.1.1.2 223.1.1.1 223.1.1.4 223.1.2.9 223.1.2.1 223.1.1.3 223.1.3.27 223.1.2.2 Οι ενσύρματες διεπαφές Ethernet συνδέονται με Ethernet switches 223.1.3.1 223.1.3.2 Οι ασύρματες διεπαφές WiFi συνδέονται με σταθμούς βάσης WiFi 18
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 19
Subnets (1/3) Διεύθυνση IP Μέρος subnet (ίδια bits για όλο το υποδίκτυο) Μέρος host (bits συγκεκριμένα για τον host) Subnet Διεπαφές συσκευών με το ίδιο μέρος subnet της διεύθυνσης IP Μπορούν φυσικά να αλλάξουν δεδομένα χωρίς την παρέμβαση router Π.χ. με χρήση Ethernet switch 223.1.1.1 223.1.1.2 223.1.2.1 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 subnet 223.1.3.2 Δίκτυο που αποτελείται από 3 subnets Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 20
Subnets (2/3) Μεθοδολογία Για τον καθορισμό των subnets, γίνεται αποσύνδεση κάθε διεπαφής από το host ή το router της δημιουργώντας απομονωμένα υποδίκτυα Κάθε απομονωμένο υποδίκτυο ονομάζεται 223.1.1.0/24 223.1.1.1 223.1.1.3 223.1.3.0/24 223.1.2.0/24 223.1.1.2 223.1.2.1 223.1.1.4 223.1.2.9 223.1.3.1 223.1.3.27 223.1.2.2 subnet 223.1.3.2 subnet subnet mask: /24 21
Subnets (3/3) Πόσα? 223.1.1.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.8.1 223.1.8.0 223.1.7.1 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 22
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 23
Διευθυνσιοδότηση IP: CIDR (1/2) CIDR: Classless InterDomain Routing Το subnet κομμάτι της διεύθυνσης είναι αυθαίρετου μήκους Μορφή διεύθυνσης: a.b.c.d/x, όπου x (prefix) είναι ο αριθμός των bits στο κομμάτι subnet της διεύθυνσης subnet part host part 11001000 00010111 00010000 00000000 200.23.16.0/23 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 24
Διευθυνσιοδότηση IP: CIDR (2/2) Πριν το CIDR οι διευθύνσεις χωρίζονταν σε κομμάτια των 8, 16, 24 bits: Classful addressing Subnets με 8, 16, 24 ονομάζονταν classes (A, B, C) Οι κλάσεις δεν κάλυπταν ακριβείς ανάγκες αναφορικά με το πλήθος των hosts σε έναν οργανισμό Μια C class μπορούσε να περιλαμβάνει 2 8-2=254 hosts Μια Β class μπορούσε να περιλαμβάνει 65.634 hosts Broadcast Address: Επιτρέπει την αποστολή datagram σε όλους τους hosts σε κάποιο subnet 255.255.255.255 25
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 26
Διευθύνσεις IP: Λήψη Λήψη IP διεύθυνσης hard-coded στο ΛΣ Windows: control-panel->network->configuration- >tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: δυναμική λήψη διεύθυνσης από το server plug-and-play Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 27
DHCP: Dynamic Host Configuration Protocol Στόχος: Οι host μπορούν δυναμικά να λαμβάνουν τις IP διευθύνσεις τους από το δίκτυο όταν συνδέονται σε αυτό Μπορούν να ανανεώνουν τη «μίσθωση» της διεύθυνσης σε χρήση Επιτρέπει επαναχρησιμοποίηση διευθύνσεων (χρήση διεύθυνσης μόνο κατά τη διάρκεια της σύνδεσης) Υποστήριξη «κινητών» χρηστών Σύνοψη DHCP Ο host αναμεταδίδει μήνυμα DHCP discover [προαιρετικό] Ο DHCP server απαντά με μήνυμα DHCP offer [προαιρετικό] Ο host ζητάει διεύθυνση IP address με μήνυμα DHCP request Ο DHCP στέλνει τη διεύθυνση με μήνυμα DHCP ack Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 28
DHCP σενάριο client-server (1/2) 223.1.1.0/24 223.1.1.1 DHCP server 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 DHCP πελάτης που χρειάζεται διεύθυνση σε αυτό το δίκτυο 223.1.2.0/24 223.1.3.1 223.1.3.2 223.1.3.0/24 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 29
DHCP σενάριο client-server (2/2) DHCP server: 223.1.2.5 Αναζήτηση DHCP src : 0.0.0.0, 68 dest.: 255.255.255.255,67 DHCP yiaddr: server? 0.0.0.0 transaction ID: 654 Αναμετάδοση: Υπάρχει Πελάτης Αίτηση DHCP Προσφορά DHCP src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 lifetime: 3600 secs Αναμετάδοση: OK. Θα πάρω τη διεύθυνση IP! Αναμετάδοση: src: 223.1.2.5, Είμαι 67 ένας dest: DHCP 255.255.255.255, server! Ορίστε 68 η yiaddrr: 223.1.2.4 διεύθυνση transaction IP που ID: 654 μπορείς να lifetime: χρησιμοποιήσεις 3600 secs DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction τη διεύθυνση ID: 655 IP! lifetime: 3600 secs Broadcast: OK. Έχεις αυτή 30
DHCP: Δεν παρέχει μόνο διευθύνσεις IP DHCP μπορεί επιπλέον να παρέχει Διεύθυνση του πρώτου router για τον πελάτη Όνομα και διεύθυνση IP του DNS sever Network mask (καθορίζει το μέρος της διεύθυνσης: δίκτυο σε σχέση με host) Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 31
Παράδειγμα DHCP (1/2) DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP UDP IP Eth Phy DHCP DHCP UDP IP Eth Phy 168.1.1.1 router με DHCP server Το laptop χρειάζεται διεύθυνση IP, διεύθ. πρώτου router, διευθ. DNS server: χρήση DHCP Η αίτηση DHCP ενθυλακώνεται στο UDP, ενθυλακώνεται στο IP, ενθυλακώνεται στο 802.1 Ethernet Αναμετάδοση Ethernet frame (προορ.: FFFFFFFFFFFF) στο LAN, λαμβάνεται στο router που εκτελεί τον DHCP server Αποπολυπλ. Ethernet σε IP, αποπολυπλ. UDP σε DHCP Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 32
Παράδειγμα DHCP (2/2) DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP UDP IP Eth Phy DHCP UDP IP Eth Phy router με DHCP server Ο DΗCP server δημιουργεί DHCP ACK που περιλαμβάνει τη διεύθυνση IP του πελάτη και του πρώτου router, το όνομα και τη διεύθυνση IP του DNS server Ενθυλάκωση στο DHCP server, το frame προωθείται στον client, αποπολυπ. μέχρι το DHCP στον πελάτη Ο πελάτης τώρα γνωρίζει τη διεύθυνση IP του και τη διεύθυνση του πρώτου router, καθώς και το όνομα και τη διεύθυνση IP του DNS server 33
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 34
Λήψη IP διευθύνσεων Λήψη από το δίκτυο του subnet part των διεθύνσεων Από τον πάροχο ISP Εύρος ISP 11001000 00010111 00010000 00000000 200.23.16.0/20 Οργανισμός 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Οργανισμός 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Οργανισμός 2 11001000 00010111 00010100 00000000 200.23.20.0/23....... Οργανισμός 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 35
Ιεραρχική διευθυνσιοδότηση Επιτρέπει τη δημοσίευση πληροφοριών δρομολόγησης Οργανισμός 0 200.23.16.0/23 Οργανισμός 1 200.23.18.0/23 Οργανισμός 2 200.23.20.0/23 Οργανισμός 7. 200.23.30.0/23. Fly-By-Night-ISP Στείλε μου τα πάντα με διευθύνσεις που αρχίζουν με 200.23.16.0/20 Internet ISPs-R-Us Στείλε μου τα πάντα με διευθύνσεις που αρχίζουν με 199.31.0.0/16 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 36
Διευθύνσεις IP παγκοσμίως Λήψη εύρους διευθύνσεων από κάθε ISP ICANN: Internet Corporation for Assigned Names and Numbers (http://www.icann.org/) Προσφέρει διευθύνσεις Διαχειρίζεται DNS Αποδίδει ονόματα domain, και επιλύει διαφορές Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 38
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 39
NAT: Network Address Translation (1/5) Internet 138.76.29.7 10.0.0.4 τοπικό δίκτυο (π.χ. σπίτι) 10.0.0/24 10.0.0.1 10.0.0.2 10.0.0.3 όλα τα datagrams που φεύγουν από το τοπικό δίκτυο έχουν την ίδια μοναδική διεύθυνση πηγής NAT IP: 138.76.29.7, αλλά διαφορετικούς αριθμούς πορτών Τα datagrams με πηγή ή προορισμό αυτό το δίκτυο έχουν διεύθυνση 10.0.0/24 για την πηγή / προορισμό Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 40
NAT: Network Address Translation (2/5) Κίνητρο: Το τοπικό δίκτυο χρησιμοποιεί απλά μια διεύθυνση IP για τον «εξωτερικό» κόσμο Εύρος διευθύνσεων δεν απαιτείται από τον ISP: μόνο μια διεύθυνση IP για όλες τις συσκευές Είναι εφικτή η αλλαγή διευθύνσεων των συσκευών στο τοπικό δίκτυο χωρίς ενημέρωση του «εξωτερικού» κόσμου Είναι εφικτή η αλλαγή του ISP χωρίς να αλλάζουν οι διευθύνσεις των συσκευών στο τοπικό δίκτυο Οι συσκευές στο τοπικό δίκτυο δεν είναι προσβάσιμες από τον «εξωτερικό» κόσμο (θετικό ασφάλειας) Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 41
NAT: Network Address Translation (3/5) Υλοποίηση: Ο NAT router πρέπει εξερχόμενα datagrams: αντικατάσταση (διεύθυνση IP πηγής, αριθμό πόρτας) κάθε εξερχόμενου datagram με (διεύθυνση NAT IP, νέο αριθμό πόρτας)... οι απομακρυσμένοι clients/servers θα απαντούν χρησιμοποιώντας (διεύθυνση NAT IP, νέο αριθμό πόρτας) ως διεύθυνση προορισμού να θυμάται (NAT translation table) κάθε ζευγάρι αντιστοίχισης (διεύθυνση IP, αριθμό πόρτας) σε (διεύθυνση NAT IP, νέος αριθμός πόρτας) εισερχόμενα datagrams: αντικατάσταση (διεύθυνση NAT IP, νέος αριθμός πόρτας) στα dest fields κάθε εισερχόμενου datagram με στοιχεία (διεύθυνση IP πηγής, αριθμό πόρτας) που είναι αποθηκευμένα στον πίνακα NAT Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 42
NAT: Network Address Translation (4/5) 2: Ο ΝAT router αλλάζει τη διεύθυνση πηγής του datagram από 10.0.0.1, 3345 σε 138.76.29.7, 5001, και ανανεώνει τον πίνακα 2 Πίνακας αντιστοίχισης NAT Διευθ. στο WAN Διευθ. στο LAN 138.76.29.7, 5001 10.0.0.1, 3345 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 10.0.0.4 S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 1: host 10.0.0.1 στέλνει datagram στο 128.119.40.186, 80 10.0.0.1 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 3: Λήψη απάντησης με διεύθυνση προορισμού: 138.76.29.7, 5001 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 4: Ο ΝAT router αλλάζει τη διεύθυνση προορισμού του datagram από 138.76.29.7, 5001 σε 10.0.0.1, 3345 10.0.0.3 43
NAT: Network Address Translation (5/5) Πεδίο αριθμού πόρτας 16-bit 60,000 ταυτόχρονες συνδέσεις με μια μοναδική διεύθυνση στο LAN! Το NAT είναι «αμφισβητήσιμο» Οι routers πρέπει μόνο να επεξεργάζονται μέχρι το επίπεδο 3 Παραβιάζει την άκρο-σε-άκρο (ολοκληρωτική) προσέγγιση Η πιθανότητα για χρήση NAT πρέπει να λαμβάνεται υπόψη από τους προγραμματιστές εφαρμογών (π.χ. P2P εφαρμογές) Η έλλειψη διευθύνσεων πρέπει να λυθεί από το IPv6 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 44
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 45
Πρόβλημα πρόσβασης (1/3) Ο client θέλει να συνδεθεί στο server με διεύθυνση 10.0.0.1 Η διεύθυνση του server (10.0.0.1) είναι τοπική στο LAN (ο πελάτης δεν μπορεί να τη χρησιμοποιήσει ως διεύθυνση προορισμού) Μόνο μια εξωτερικά εμφανής διεύθυνση «NAT»: 138.76.29.7 με τυχαίες πόρτες! Λύση 1: Στατική ρύθμιση NAT για την προώθηση (στο server) αιτήσεων εισερχόμενων συνδέσεων σε συγκεκριμένη πόρτα πελάτης? 138.76.29.7 NAT router 10.0.0.4 10.0.0.1 Π.χ. (123.76.29.7, πόρτα 2500) πάντα προωθούνται στη 10.0.0.1 πόρτα 25000 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 46
Πρόβλημα πρόσβασης (2/3) Λύση 2: Πρωτόκολλο Universal Plug and Play (UPnP) Internet Gateway Device (IGD). Επιτρέπει στο host με διεύθυνση «NAT» να: Μαθαίνει τη δημόσια (public) διεύθυνση IP (138.76.29.7) Προσθήκη / διαγραφή αντιστοιχίσεων πόρτας (στους χρόνους lease) Πρόκειται για αυτόματη ρύθμιση στατικού χάρτη πόρτας NAT NAT router IGD 10.0.0.1 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 47
Πρόβλημα πρόσβασης (3/3) Λύση 3: Διαβίβαση (χρησιμοποιείται στο Skype) Ο client με διεύθυνση NAT εγκαθιδρύει σύνδεση με το διαβιβαστή Ο εξωτερικός client συνδέεται στο διαβιβαστή Ο διαβιβαστής γεφυρώνει πακέτα μεταξύ συνδέσεων client 2. Η σύνδεση στο διαβιβαστή αρχικοποιείται από τον client 3. Εγκαθίδρυση διαβίβασης 1. Η σύνδεση στο διαβιβαστή αρχικοποιείται από τον host με διεύθυνση NAT 10.0.0.1 138.76.29.7 NAT router Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 48
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 49
ICMP: Internet Control Message Protocol Χρησιμοποιείται από τους hosts και τους routers για να επικοινωνούν πληροφορία στο επίπεδο δικτύου Αναφορά σφαλμάτων: απρόσιτος host, δίκτυο, πόρτα, πρωτόκολλο Αίτηση / απάντηση ηχούς (χρησιμοποιείται από το ping) Επίπεδο δικτύου «πάνω» από το IP Μηνύματα ICMP μεταφέρονται σε IP datagrams ICMP μήνυμα: τύπος, κωδικός και πρώτα 8 bytes του IP datagram που δημιουργούν το σφάλμα Τύπος Κωδικός Περιγραφή 0 0 απάντηση ηχούς (ping) 3 0 απρόσιτο δίκτυο προορισμού 3 1 απρόσιτος host προορισμού 3 2 απρόσιτο πρωτόκολλο προρ. 3 3 απρόσιτη πόρτα προορισμού 3 6 άγνωστο δίκτυο προορισμού 3 7 άγνωστος host προορισμού 4 0 σταμάτημα πηγής (congestion control δε χρησιμ.) 8 0 αίτηση ηχούς (ping) 9 0 διαφήμιση διαδρομής 10 0 εύρεση router 11 0 λήξη TTL 12 0 κακό IP header Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 50
Traceroute και ICMP Η πηγή στέλνει UDP segments στον προορισμό Το πρώτο σύνολο έχει TTL =1 Το δεύτερο έχει TTL=2, κλπ Τυχαίος αριθμός πόρτας Όταν το ν datagram φθάσει στον ν router Ο router απορρίπτει τα datagrams Αποστέλλει ICMP μηνύματα (τύπος 11, κωδικός 0) Τα ICMP μηνύματα περιλαμβάνουν το όνομα του router και τη διεύθυνση IP Όταν φθάνουν τα μηνύματα ICMP, η πηγή καταγράφει τα RTTs Κριτήρια τερματισμού Ένα UDP segment φθάνει τελικά στο host προορισμού Ο προορισμός επιστρέφει μήνυμα ICMP απρόσιτη πόρτα (τύπος 3, κωδικός 3) Η πηγή σταματάει 3 probes 3 probes 3 probes 51
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 52
IPv6: Κίνητρο Αρχικό κίνητρο: Το εύρος διευθύνσεων 32-bit σύντομα θα έχει πλήρως χρησιμοποιηθεί Επιπλέον κίνητρα Η μορφή του header συμβάλει στην επιτάχυνση της επεξεργασίας / προώθησης Το header αλλάζει για να επιτρέπει την παροχή εγγυήσεων ποιότητας Μορφή IPv6 datagram Header ορισμένου μήκους 40 byte Δεν επιτρέπεται ο κατακερματισμός Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 53
Μορφή IPv6 datagram priority (traffic class): προσδιορισμός προτεραιοτήτων μεταξύ των datagrams στη «ροή» (μηνύματα με συγκεκριμένη συμπεριφορά) flow label: προσδιορισμός datagrams στην ίδια «ροή» next header: προσδιορισμός πρωτοκόλλου επάνω επιπέδου για τη διαχείριση των δεδομένων ver pri flow label payload len next hdr hop limit διεύθυνση πηγής (128 bits) διεύθυνση προορισμού (128 bits) δεδομένα 32 bits 54
Επιπλέον αλλαγές από το IPv4 checksum: έχει πλήρως διαγραφεί για να μειωθεί ο χρόνος επεξεργασίας σε κάθε σημείο options: επιτρέπονται αλλά εκτός του header, περιλαμβάνονται στο πεδίο Next Header ICMPv6: νέα έκδοση του ICMP Επιπλέον τύποι μηνυμάτων π.χ. πολύ μεγάλο πακέτο Μηνύματα διαχείρισης ομάδων Anycast address: Παράδοση σε ομάδες host (π.χ. mirrors) Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 55
Μετάβαση από το IPv4 στο IPv6 Δε γίνεται αλλαγή όλων των routers ταυτόχρονα Δεν υπάρχουν «αργίες» Πως θα λειτουργεί το δίκτυο με μικτούς IPv4 και IPv6 routers? Σήραγγες (tunneling): Το IPv6 datagram μεταφέρεται ως στο IPv4 datagram μεταξύ των IPv4 routers IPv4 header fields IPv4 source, dest addr IPv6 header fields IPv6 source dest addr UDP/TCP payload IPv4 payload IPv6 datagram IPv4 datagram 56
Tunneling (1/2) Λογική οπτική: A IPv6 B IPv6 Σήραγγα IPv4 που συνδέει IPv6 routers E IPv6 F IPv6 Φυσική οπτική: A B C D E F IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 57
Tunneling (2/2) Λογική οπτική: A IPv6 B IPv6 Σήραγγα IPv4 που συνδέει IPv6 routers E IPv6 F IPv6 Φυσική οπτική: A B C D E F IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 ροή: X πηγή: A προορ.: F δεδομένα πηγή:b προορ.: E ροή: X πηγή: A προορ.: F πηγή:b προορ.: E ροή: X πηγή: A προορ.: F ροή: X πηγή: A προορ.: F δεδομένα δεδομένα δεδομένα A-σε-B: IPv6 B-σε-C: IPv6 μέσα σε IPv4 B-σε-C: IPv6 μέσα σε IPv4 E-σε-F: IPv6 58
Υιοθέτηση IPv6 Εκτίμηση το 2013 από το US National Institutes of Standards ~3% των IP routers ~11% των routers οργανισμών στις ΗΠΑ Μεγάλος χρόνος για εγκατάσταση και χρήση Περισσότερα από 20 χρόνια! Γιατί? Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 59
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 60
Αλληλεπίδραση προώθησης και δρομολόγησης Αλγόριθμος δρομολόγησης Τοπικός πίνακας προώθησης Τιμή header Link εξόδου 0100 0101 0111 1001 3 2 2 1 Ο αλγόριθμος δρομολόγησης καθορίζει το ολικό (end-end) μονοπάτι στο δίκτυο Ο πίνακας προώθησης καθορίζει την τοπική προώθηση ανά router Τιμή στο header του πακέτου που λαμβάνεται 0111 1 3 2 61
Αφαίρεση γράφου 5 u 1 Γράφος: G = (N,E) N = σύνολο routers = { u, v, w, x, y, z } 2 v x 2 3 3 1 w y 1 5 2 z E = σύνολο συνδέσεων ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } Η αφαίρεση γράφου είναι χρήσιμη σε πολλές περιπτώσεις δικτύων, π.χ. P2P, όπου N είναι το σύνολο των peers και E το σύνολο των συνδέσεων TCP Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 62
Κόστη αφαίρεσης u 1 2 5 c(x,x ) = κόστος σύνδεσης (x,x ) π.χ. c(w,z) = 5 v 3 w 5 Το κόστος μπορεί να είναι πάντα 1, ή 2 1 z να σχετίζεται με το bandwidth, 3 ή να σχετίζεται με τη συμφόρηση x y 2 1 Κόστος μονοπατιού (x 1, x 2, x 3,, x p ) = c(x 1,x 2 ) + c(x 2,x 3 ) + + c(x p-1,x p ) Βασική ερώτηση: ποίο είναι το πιο οικονομικό μονοπάτι μεταξύ u και z? Αλγόριθμος δρομολόγησης: βρίσκει το πιο οικονομικό μονοπάτι Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 63
Κατηγοριοποίηση αλγορίθμων δρομολόγησης Παγκόσμια / αποκεντρικοποιημένη πληροφορία Παγκόσμια Όλοι οι routers έχουν πληροφορία για την τοπολογία και τις συνδέσεις αλγόριθμοι link state Αποκεντρικοποιημένη Ο router γνωρίζει τους φυσικά συνδεδεμένους γείτονες και τα κόστη των συνδέσεων με αυτούς Επαναληπτική διαδικασία επεξεργασίας και ανταλλαγής πληροφορίας με τους γείτονες αλγόριθμοι distance vector Στατική / δυναμική Στατική Οι routes αλλάζουν με αργό ρυθμό Δυναμική Οι routes αλλάζουν με πιο γρήγορο ρυθμό Περιοδικές ανανεώσεις Βάσει των αλλαγών στα κόστη των συνδέσεων 64
Σημερινή διάλεξη Σύνοψη 9ης διάλεξης Επίπεδο δικτύου Επίπεδο δικτύου του Internet Κατακερματισμός, συναρμολόγηση IP Διευθυνσιοδότηση IP Subnets Διευθυνσιοδότηση IP: CIDR DHCP: Dynamic Host Configuration Protocol Λήψη IP διευθύνσεων NAT NAT Πρόβλημα πρόσβασης ICMP IPv6 IPv6 datagram Μετάβαση από το IPv4 στο IPv6 Αλγόριθμοι δρομολόγησης Κατηγοριοποίηση αλγορίθμων Αλγόριθμος Dijsktra Πρωτόκολλα Διαδικτύου, 10η Διάλεξη 65
Αλγόριθμος Link-State Αλγόριθμος του Dijkstra Η τοπολογία του δικτύου και τα κόστη των συνδέσεων είναι γνωστά σε όλους τους κόμβους Επιτυγχάνεται μέσω εκπομπής για το link state Όλοι οι κόμβοι έχουν την ίδια πληροφορία Υπολογίζει το οικονομικότερο μονοπάτι από έναν κόμβο («πηγή») σε όλους τους άλλους κόμβους Παράγει πίνακες προώθησης (forwarding table) για αυτόν τον κόμβο Επαναληπτικό: μετά από k επανάληψης είναι γνωστό το οικονομικότερο μονοπάτι σε k προορισμούς Σύμβολα c(x,y): κόστος μονοπατιού από τον κόμβο x στον y. αν δεν είναι απευθείας γείτονες D(v): τρέχουσα τιμής κόστους μονοπατιού από την πηγή στον προορισμό v p(v): προηγούμενος κόμβος στο μονοπάτι από την πηγή στο v N': σύνολο κόμβων των οποίων το οικονομικότερο μονοπάτι είναι γνωστό 66
Αλγόριθμος Dijsktra 1 Αρχικοποίηση: 2 N' = {u} 3 για όλους τους κόμβους v 4 εάν το v είναι γειτονικό του u 5 τότε D(v) = c(u,v) 6 διαφορετικά D(v) = 7 8 Επανάληψη 9 εύρεση w που δεν είναι στο N' ώστε το D(w) να είναι ελάχιστο 10 προσθήκη w στο N' 11 ενημέρωση D(v) για όλα τα γειτονικά v στο w που δεν είναι στο N': 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* το νέο κόστος προς το v είναι είτε το παλιό κόστος στο v ή το 14 γνωστό κόστος για το συντομότερο μονοπάτι στο w 15 συν το κόστος από το w στο v */ 16 μέχρι όλοι οι κόμβοι να είναι στο N' 67
Αλγόριθμος Dijkstra: Παράδειγμα Step 0 1 2 3 4 5 N' D(v) p(v) D(w) p(w) D(x) p(x) D(y) p(y) D(z) p(z) u 7,u 3,u 5,u uw 6,w 5,u 11,w uwx 6,w 11,w 14,x uwxv 10,v 14,x uwxvy 12,y uwxvyz Σημειώσεις: - Δημιουργία δένδρου συντομότερου μονοπατιού με ανάλυση των προηγούμενων κόμβων - Μπορεί να προκύψουν «ισοπαλίες» u 5 3 x w v 4 8 7 3 7 4 y 9 2 z 68