Skip navigation

Πρωτόκολλα ARP & DHCP

Πρωτόκολλο ARP

Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον άλλο, το επίπεδο εφαρμογής ξεκινά τη διαδικασία ενθυλάκωσης και κάθε επίπεδο είναι υπεύθυνο να προσθέσει τις δικές του διαχειριστικές πληροφορίες στο πακέτο (PDU - Protocol Data Unit). Το επίπεδο διαδικτύου (3ο OSI):

  • δημιουργεί ένα αυτοδύναμο πακέτο IP ενθυλακώνοντας τα δεδομένα που του παραδόθηκαν από το παραπάνω επίπεδο μεταφοράς
  • τοποθετεί στα αντίστοιχα πεδία της επικεφαλίδας τις διευθύνσεις IP προέλευσης και προορισμού - καθώς και ό,τι άλλο απαιτείται
  • παραδίδει το πακέτο στο αμέσως κατώτερο επίπεδο.

Το επίπεδο πρόσβασης δικτύου ή ζεύξης δεδομένων του OSI όμως δε γνωρίζει τίποτα από διευθύνσεις IP παρά μόνο για διευθύνσεις υλικού ή φυσικές ή διευθύνσεις MAC (Media Access Control), όπως αλλιώς λέγονται. Για να το παραδώσει στον παραλήπτη θα πρέπει να γνωρίζει σε ποια φυσική διεύθυνση βρίσκεται ο κόμβος με τη διεύθυνση IP που υπάρχει στο αντίστοιχο πεδίο του αυτοδύναμου πακέτου.

Τον συνδετικό κρίκο ανάμεσα στα δυο επίπεδα, απαντώντας στο ερώτημα "ποια είναι η φυσική διεύθυνση (MAC) του κόμβου με τη συγκεκριμένη διεύθυνση IP;" αναλαμβάνει το πρωτόκολλο ανάλυσης διευθύνσεων ARP (Address Resolution Protocol).

Το ερώτημα ARP (ARP request) απευθύνεται στο τοπικό δίκτυο Ethernet με ένα πλαίσιο εκπομπής (broadcast) με διεύθυνση Ethernet προορισμού FF-FF-FF-FF-FF-FF (48 άσοι). Αυτό σημαίνει ότι το ερώτημα φτάνει σε όλους τους κόμβους. Οι κόμβοι οι οποίοι δεν έχουν την διεύθυνση IP η οποία περιλαμβάνεται στο ερώτημα, απλά το αγνοούν. Ο κόμβος ο οποίος αναγνωρίζει την δική του διεύθυνση IP αποστέλλει μια απάντηση ARP (ARP Reply) με ένα πλαίσιο με προορισμό την διεύθυνση Ethernet του ερωτούντος απευθυνόμενος μόνο σε αυτόν (unicast). Έτσι, τώρα πια είναι γνωστή η φυσική διεύθυνση του παραλήπτη και μπορεί να ολοκληρωθεί το πλαίσιο Ethernet και να αποσταλεί στον παραλήπτη.

Για να αποφευχθούν τα συχνά ερωτήματα προς το τοπικό δίκτυο με πλαίσια εκπομπής (αυξημένη δικτυακή κίνηση), οι σταθμοί διατηρούν προσωρινά τις απαντήσεις που έλαβαν σε έναν πίνακα αντιστοιχίας διευθύνσεων IP σε διευθύνσεις Ethernet στην τοπική μνήμη (arp cache). Έτσι πριν υποβάλλουν νέο ερώτημα ελέγχουν τον προσωρινό πίνακα (cache) arp και υποβάλλουν ερώτημα μόνο όταν δεν υπάρχει κατάλληλη καταχώριση σε αυτόν. Υπάρχει ένας πίνακας ARP για κάθε δικτυακή διασύνδεση (κάρτα δικτύου) ενός υπολογιστή.

Οι δυναμικές καταχωρήσεις προέρχονται από ερωτήματα arp, ενώ οι στατικές είναι προκαθορισμένα ρυθμισμένες. Προσέξτε ότι η διεύθυνση IP εκπομπής αντιστοιχεί σε διεύθυνση Ethernet εκπομπής. Οι δυναμικές καταχωρίσεις του πίνακα arp μετά την παρέλευση ορισμένου χρόνου χωρίς να χρησιμοποιηθούν, διαγράφονται. Ο χρόνος ποικίλει από μερικά δευτερόλεπτα μέχρι μερικά λεπτά (συνήθως 1-5 λεπτά) και μπορεί να ρυθμιστεί από τον διαχειριστή του συστήματος.

Εάν δεν βρεθεί καταχώρηση στον πίνακα ARP και ούτε απαντηθεί το ερώτημα ARP (γιατί ίσως απλώς ο υπολογιστής με τη συγκεκριμένη IP να είναι κλειστός ή να μην υπάρχει), τότε επιστρέφεται στην εφαρμογή διαγνωστικό μήνυμα ότι ο υπολογιστής προορισμού δε μπορεί να προσεγγιστεί. Παράδειγμα εκτέλεσης ping σε ανύπαρκτο υπολογιστή:

From 10.146.0.110 icmp_seq=3 Destination Host Unreachable

Συνοψίζοντας, το πακέτο IP κρατείται σε αναμονή και εκτελείται η διεργασία αντιστοίχησης διεύθυνσης IP προορισμού σε φυσική διεύθυνση Ethernet από το πρωτόκολλο ARP όπως φαίνεται στο διάγραμμα ροής. Μόλις αποκτηθεί η φυσική διεύθυνση προορισμού, δημιουργείται το πλαίσιο (frame) και αποστέλλεται στον υπολογιστή προορισμού.

Το πρωτόκολλο ARP έχει τυποποιηθεί στο RFC826.

Η δομή του πακέτου ARP (είναι ενθυλακωμένο σε πλαίσιο Ethernet) έχει ως εξής:

Δραστηριότητα

1. Στην επόμενη εικόνα φαίνεται ένα ερώτημα ARP (ARP request, Opcode: 1) όπως υποβλήθηκε από τον υπολογιστή με διεύθυνση IP 10.146.0.110 ο οποίος ερωτά ποια είναι η διεύθυνση Ethernet του υπολογιστή με διεύθυνση IP 10.146.0.65.

Συγκρίνετέ το με την δομή του πακέτου ARP και αναγνωρίστε τα διάφορα πεδία του και τις τιμές που περιέχουν.

(Η καταγραφή έγινε με τον αναλυτή πρωτοκόλλου wireshark)

2. Στη επόμενη εικόνα φαίνεται η απάντηση ARP (ARP reply, Opcode: 2) στο ερώτημα, η οποία φαίνεται στο πεδίο Sender MAC address: και είναι 00:04:00:ed:f9:68.

Πρωτόκολλο RARP

Εάν ένας υπολογιστής δεν γνωρίζει την δική του διεύθυνση IP, επειδή ίσως να μην του έχει οριστεί, τότε μπορεί να ζητήσει να του αποδοθεί μια. Τη διαδικασία αυτή μπορεί να την αναλάβει το πρωτόκολλο αντίστροφης ανάλυσης διευθύνσεων (Reverse Address Resolution Protocol - RARP) σε συνεργασία με έναν εξυπηρετητή RARP, ο οποίος είναι επιφορτισμένος με την απόδοση διευθύνσεων IP στους αιτούντες σταθμούς.

Το πρωτόκολλο RARP αναλαμβάνει να πληροφορήσει των ερωτώντα υπολογιστή για το ποια είναι η δική του διεύθυνση IP ή ποια διεύθυνση IP πρέπει να πάρει. Επειδή όμως περιορίζεται μόνο στην διεύθυνση IP και ένας υπολογιστής χρειάζεται επιπλέον ρυθμίσεις όπως μάσκα δικτύου, προεπιλεγμένη πύλη, διακομιστές DNS κ.ά. το RARP χρησιμοποιείται από σπάνια έως καθόλου. Περιγράφεται στο RFC903.

Αντί αυτού χρησιμοποιείται το πρωτόκολλο εκκίνησης BOOTP (BOOTstrap Protocol) και το νεώτερο πρωτόκολλο δυναμικής απόδοσης ρυθμίσεων υπολογιστή DHCP (Dynamic Host Configuration Protocol).

Το BOOTP είναι προσανατολισμένο για χρήση από δικτυακούς υπολογιστές χωρίς δίσκο. Αυτοί οι υπολογιστές εκκινούν παίρνοντας όλες τις ρυθμίσεις τους και φορτώνουν το λειτουργικό τους σύστημα από κάποιον διακομιστή του δικτύου. Το DHCP είναι πιο ευέλικτο και έχει επικρατήσει, καθώς προσφέρει συμβατότητα προς τα πίσω μπορώντας να εξυπηρετήσει και πελάτες BOOTP. Θα πρέπει να σημειωθεί πως, αντίθετα με τα πρωτόκολλα ARP/RARP τα οποία λειτουργούν ως ενδιάμεσα των επιπέδων 2 και 3 του OSI, τα πρωτόκολλα BOOTP και DHCP καλύπτουν και το επίπεδο εφαρμογής του TCP/IP. Είναι εφαρμογές που ακολουθούν το μοντέλο πελάτη-εξυπηρετητή (client-server). Παρόλα αυτά, επειδή ο ρόλος τους για τις ρυθμίσεις του πρωτοκόλλου IP είναι σημαντικός θα περιγραφούν μαζί του.

Πρωτόκολλο DHCP

Το πρωτόκολλο δυναμικής διευθέτησης (απόδοσης ρυθμίσεων) υπολογιστή DHCP (Dynamic Host Configuration Protocol) λειτουργεί όπως το BOOTP, το οποίο και επεκτείνει. Εξακολουθεί να λειτουργεί ως εφαρμογή πελάτη-εξυπηρετητή χρησιμοποιώντας πακέτα UDP με αριθμό θύρας προορισμού 67 για τον εξυπηρετητή και 68 για τον πελάτη. Επιτρέπει σε έναν υπολογιστή να αποκτά τις ρυθμίσεις που χρειάζεται σε ένα μόνο μήνυμα και να λαμβάνει μια διεύθυνση γρήγορα και δυναμικά.

Καθορίζει τρεις τύπους εκχώρησης διευθύνσεων:

  • μη αυτόματη ρύθμιση (manual configuration), στην οποία ο διαχειριστής ορίζει συγκεκριμένες διευθύνσεις που θα πάρουν συγκεκριμένοι υπολογιστές
  • αυτόματη ρύθμιση (automatic configuration), κατά την οποία ο διακομιστής DHCP εκχωρεί μια μόνιμη διεύθυνση σε έναν υπολογιστή ο οποίος συνδέεται πρώτη φορά
  • δυναμική ρύθμιση (dynamic configuration), κατά την οποία ο διακομιστής δανείζει ή μισθώνει μια διεύθυνση σε έναν υπολογιστή για περιορισμένο χρόνο. Αυτή είναι και η πιο συχνά χρησιμοποιούμενη.

Οι περισσότεροι χρήστες δεν αντιλαμβάνονται τις τεχνικές λεπτομέρειες της δικτύωσης και οι ρυθμίσεις του TCP/IP για να συνδεθούν σε δίκτυο, τους φαίνονται πολύπλοκες. Το DHCP δίνει τη δυνατότητα σ' αυτούς τους χρήστες να συνδεθούν εύκολα στο δίκτυο και στο διαχειριστή το πλεονέκτημα της κεντρικής διαχείρισης των ρυθμίσεων και την ευκολία υποστήριξης των χρηστών και συντήρησης του δικτύου.

Το πρωτόκολλο DHCP επιτρέπει σε έναν υπολογιστή να πάρει επιπλέον ρυθμίσεις πέραν της διεύθυνσης IP, όπως μάσκα δικτύου, προεπιλεγμένη πύλη, διακομιστές DNS. Μπορεί να πάρει ρυθμίσεις στο επίπεδο διαδικτύου για τον υπολογιστή ή για κάθε του δικτυακή σύνδεση ανεξάρτητα, ρυθμίσεις για το επίπεδο ζεύξης δεδομένων, για το πρωτόκολλο TCP (μεταφοράς) και για υπηρεσίες (εφαρμογής), όπως διακομιστές χρόνου (NTP), διακομιστές αλληλογραφίας κ.λπ. Όλες αυτές οι επιλογές φαίνονται στο RFC2132 και στα συμπληρωματικά του.

Ένας υπολογιστής, ρυθμισμένος να χρησιμοποιεί την υπηρεσία DHCP, αμέσως μετά την εκκίνησή του:

  • Δημιουργεί ένα πακέτο UDP DHCP-DISCOVER στη θύρα προορισμού 67.
  • Το ενθυλακώνει σε πακέτο IP με διεύθυνση προέλευσης 0.0.0.0 και διεύθυνση προορισμού τη διεύθυνση εκπομπής 255.255.255.255
  • Το ενθυλακώνει σε ένα πλαίσιο με διεύθυνση προέλευσης τη δική του φυσική διεύθυνση και διεύθυνση προορισμού τη διεύθυνση εκπομπής FF-FF-FF-FF-FF-FF και στέλνεται στο τοπικό δίκτυο
  • Εάν υπάρχουν εξυπηρετητές DHCP ανταποκρίνονται ο καθένας με ένα πακέτο DHCP-OFFER στη θύρα 68, ενθυλακωμένο σε πακέτο IP εκπομπής και πλαίσιο εκπομπής (διευθύνσεις προορισμού 255.255.255.255, FF-FF-FF-FF-FF-FF). Όταν είναι εφικτό, αποφεύγουν να απαντούν με πλαίσια εκπομπής.
  • Ο πελάτης υπολογιστής επιλέγει τις ρυθμίσεις που προσφέρονται από έναν από τους εξυπηρετητές και το δηλώνει αποστέλλοντας ένα πακέτο εκπομπής DHCP-REQUEST στο οποίο ζητά τις προσφερόμενες ρυθμίσεις.
  • Ο εξυπηρετητής DHCP που προσέφερε τις ρυθμίσεις επιβεβαιώνει την προσφορά του με ένα πακέτο DHCP-ACK.

Από τη λήψη της επιβεβαίωσης DHCP-ACK και στη συνέχεια ο υπολογιστής λειτουργεί με τις δικτυακές ρυθμίσεις που πήρε (κατάσταση Δεσμευμένος - BOUND). Η διεύθυνση IP παραχωρείται στον υπολογιστή για συγκεκριμένο χρονικό διάστημα και χαρακτηρίζεται ως μίσθωση (lease). Από τη στιγμή αυτή, ο υπολογιστής αρχίζει τη σχετική μέτρηση χρόνου, ώστε να προβεί στις κατάλληλες ενέργειες παράτασης της μίσθωσης της διεύθυνσης πριν τη λήξη της. Κρατά δύο χρόνους:

  • τον Τ1, μετά την παρέλευση του οποίου προσπαθεί να ανανεώσει τη μίσθωση (DHCP-REQUEST - unicast) από τον διακομιστή ο οποίος έδωσε αρχικά τη διεύθυνση, περνά δηλαδή σε κατάσταση RENEWING
  • τον Τ2, μετά την παρέλευση του οποίου αναζητά ανανέωση ή νέα διεύθυνση (DHC-PREQUEST - broadcast) από οποιονδήποτε διακομιστή DHCP, περνά δηλαδή σε κατάσταση REBINDING.

Ο χρόνος Τ1≈0,5*tleasing και ο Τ2≈0,875*tleasing. Είναι δηλαδή Τ1 < Τ2.

Όταν ο υπολογιστής τερματίζει τη λειτουργία του ομαλά (shutdown) πριν λήξει η μίσθωση της διεύθυνσης, τότε απελευθερώνει την διεύθυνσή του στέλνοντας πριν τον τερματισμό, στον διακομιστή DHCP, ένα πακέτο DHCP-RELEASE. Το πρωτόκολλο DHCP προβλέπει επιπλέον και τα εξής μηνύματα:

  • DHCP-NAK (από τον διακομιστή προς τον πελάτη). Εάν μετά από ένα αίτημα DHCP-REQUEST ο διακομιστής δεν επαληθεύσει ως σωστές τις ζητηθείσες ρυθμίσεις, απαντά αρνητικά με DHCP-NAK.
  • DHCP-DECLINE (από τον πελάτη προς τον διακομιστή). Εάν μετά από μια προσφορά DHCP-OFFER, ο πελάτης διαπιστώσει ότι οι ρυθμίσεις που του δόθηκαν είναι σε σύγκρουση με αυτές άλλου υπολογιστή, τις απορρίπτει με DHCP-DECLINE και ξεκινά τη διαδικασία από την αρχή με DHCP-DISCOVER.
  • DHCP-INFORM (από τον πελάτη προς τον διακομιστή). Από τη στιγμή που ο πελάτης έχει λάβει διεύθυνση IP και θέλει πρόσθετες πληροφορίες ρυθμίσεων, δε μπορεί να στείλει νέο αίτημα DHCP-REQUEST. Στην περίπτωση αυτή τις ζητά με ένα αίτημα DHCP-INFORM.

Η λειτουργία του πρωτοκόλλου DHCP υποστηρίζεται και από πράκτορες αναμετάδοσης (DHCP Relay Agents) για την εξυπηρέτηση πελατών οι οποίοι δε βρίσκονται στο ίδιο φυσικό δίκτυο με τον διακομιστή. Ο πελάτης εφόσον δεν έχει δικτυακές ρυθμίσεις σε επίπεδο IP, δεν μπορεί να επικοινωνήσει με υπολογιστές σε άλλα δίκτυα. Ένας υπολογιστής που βρίσκεται στο ίδιο φυσικό δίκτυο με τον πελάτη, προωθεί το αίτημά του πελάτη στο διακομιστή DHCP στο άλλο δίκτυο και του επιστρέφει την απάντηση.

Το πρωτόκολλο DHCP προτάθηκε ως επέκταση του BOOTP, αρχικά στα RFC1531, 1541 τα οποία έχουν αντικατασταθεί από το RFC2131. Όλες οι πληροφορίες σχετικά με αυτό βρίσκονται στο RFC2131 και στα συμπληρωματικά του.


(c) Αμπατζόγλου Ιωάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ηλεκτρονικών ΠΕ84

Αδειοδοτημένο υπό τους όρους Creative Commons Attribution Non-commercial License 4.0