Το DHCP, Dynamic Host Configuration Protocol, περιγράφει τους τρόπους με τους οποίους ένα σύστημα μπορεί να συνδεθεί σε ένα δίκτυο και να λάβει τις απαραίτητες πληροφορίες για την επικοινωνία με αυτό. Πριν την έκδοση 6.0, όλες οι εκδόσεις του FreeBSD χρησιμοποιούσαν την υλοποίηση πελάτη DHCP (dhclient(8)) του ISC (Internet Software Consortium). Οι νεότερες εκδόσεις χρησιμοποιούν τον dhclient του OpenBSD που προέρχεται από την έκδοση OpenBSD 3.7. Όλες οι πληροφορίες που θα βρείτε εδώ σχετικά με τον dhclient, καλύπτουν εξίσου τους πελάτες DHCP του ISC και του OpenBSD. Ο εξυπηρετητής DHCP του FreeBSD είναι ο ίδιος που περιλαμβάνεται στην διανομή του ISC.
Αυτή η ενότητα περιγράφει τα μέρη και των δύο τύπων πελατών DHCP (του ISC και του OpenBSD) καθώς και τα μέρη του εξυπηρετητή DHCP του ISC. Το λογισμικό πελάτη, dhclient, προσφέρεται ενσωματωμένο στο FreeBSD, ενώ το κομμάτι του εξυπηρετητή διατίθεται από το port net/isc-dhcp31-server. Οι σελίδες manual dhclient(8), dhcp-options(5) και dhclient.conf(5) μαζί με τις παρακάτω αναφορές αποτελούν πολύ χρήσιμες πηγές.
Όταν ο dhclient, ο πελάτης DHCP, εκτελείται στο μηχάνημα πελάτη, ξεκινάει η εκπομπή αιτημάτων για τη συλλογή των πληροφοριών ρύθμισης. Από προεπιλογή, αυτά τα αιτήματα χρήσιμοποιούν την UDP πόρτα 68. Ο εξυπηρετητής θα απαντήσει στην UDP 67, προσφέροντας στον πελάτη μία διεύθυνση IP και άλλες σχετικές δικτυακές πληροφορίες όπως τη μάσκα (netmask), τον δρομολογητή (router), και τους εξυπηρετητές DNS. Όλες αυτές οι πληροφορίες διατίθενται με τη μορφή DHCP «μίσθωσης (lease)» και ισχύουν μόνο για κάποιο συγκεκριμένο χρονικό διάστημα (το οποίο ρυθμίζεται από το διαχειριστή του εξυπηρετητή DHCP). Με αυτό τον τρόπο ανακυκλώνονται αυτόματα οι παλιές διευθύνσεις IP πελατών που δεν συνδέονται πια στο δίκτυο.
Οι πελάτες DHCP μπορούν να λάβουν σημαντικές πληροφορίες από τον εξυπηρετητή. Για μια πλήρη λίστα συμβουλευτείτε την dhcp-options(5).
Το FreeBSD ενσωματώνει πλήρως τον πελάτη DHCP του ISC ή του OpenBSD, dhclient (ανάλογα με την έκδοση του FreeBSD που έχετε). Η υποστήριξη πελατών DHCP παρέχεται τόσο στο σύστημα εγκατάστασης όσο και στο βασικό σύστημα. Έτσι δεν χρειάζεται να γνωρίζετε λεπτομέρειες για τις ρυθμίσεις του δικτύου που διαθέτει τον εξυπηρετητή DHCP. Ο πελάτης dhclient συμπεριλαμβάνεται σε όλες τις διανομές FreeBSD από την 3.2 και μετά.
Το DHCP υποστηρίζεται από το sysinstall. Όταν ρυθμίζετε μία διεπαφή δικτύου μέσα από το sysinstall, η δεύτερη ερώτηση που θα σας γίνει είναι: «Do you want to try DHCP configuration of the interface?». Εάν συμφωνήσετε, θα εκτελεστεί το dhclient, και αν η διαδικασία είναι επιτυχής, θα συμπληρώσει αυτόματα τα πεδία με τις κατάλληλες ρυθμίσεις δικτύου.
Υπάρχουν δύο πράγματα που πρέπει να κάνετε για να χρησιμοποιήσετε το DHCP κατά την εκκίνηση του συστήματος σας:
Βεβαιωθείτε ότι ο πυρήνας σας περιλαμβάνει την συσκευή bpf. Θα χρειαστεί να προσθέσετε τη γραμμή device bpf στο αρχείο ρυθμίσεων του πυρήνα και να επαναμεταγλωττίσετε τον πυρήνα. Για περισσότερες πληροφορίες σχετικά με την δημιουργία προσαρμοσμένου πυρήνα, δείτε Κεφάλαιο 9.
Η συσκευή bpf είναι ήδη μέρος του πυρήνα GENERIC που παρέχεται με το FreeBSD, επομένως δε θα χρειαστεί να φτιάξετε δικό σας προσαρμοσμένο πυρήνα ειδικά για να λειτουργήσει το DHCP.
Σημείωση: Για όσους ενδιαφέρονται ιδιαίτερα για θέματα ασφαλείας, θα πρέπει να σημειωθεί ότι η bpf είναι η συσκευή που επιτρέπει στους sniffers πακέτων να δουλέψουν κανονικά (αν και θα πρέπει να εκτελούνται σαν root). Η bpf απαιτείται για να γίνει χρήση του DHCP, αλλά εάν βρίσκεστε σε πολύ ευαίσθητο περιβάλλον σχετικά με την ασφάλεια, πιθανώς να μην πρέπει να προσθέσετε την bpf στον πυρήνα σας αν απλώς σκοπεύετε να χρησιμοποιήσετε μελλοντικά το DHCP.
Επεξεργαστείτε το /etc/rc.conf ώστε να περιλαμβάνει την παρακάτω γραμμή:
ifconfig_fxp0="DHCP"
Σημείωση: Βεβαιωθείτε ότι αντικαταστήσατε το fxp0 με την ονομασία της διεπαφής που επιθυμείτε να ρυθμίζεται δυναμικά, όπως περιγράφεται στο Τμήμα 12.8.
Εάν ο dhclient βρίσκεται σε διαφορετική τοποθεσία, ή αν επιθυμείτε να περάσετε επιπρόσθετα flags στον dhclient, θα πρέπει να περιλάβετε και τα ακόλουθα (επεξεργαστείτε όπως απαιτείται):
dhcp_program="/sbin/dhclient" dhcp_flags=""
Ο εξυπηρετητής DHCP, dhcpd, περιέχεται ως μέρος του port net/isc-dhcp31-server στη Συλλογή των Ports. Το port αυτό περιλαμβάνει τον εξυπηρετητή DHCP του ISC και την τεκμηρίωση του.
/etc/dhclient.conf
Ο dhclient χρειάζεται ένα αρχείο ρυθμίσεων, το /etc/dhclient.conf. Τυπικά το αρχείο αυτό περιέχει μόνο σχόλια καθώς οι προεπιλεγμένες ρυθμίσεις είναι συνήθως επαρκείς. Αυτό το αρχείο ρυθμίσεων περιγράφεται στη σελίδα manual dhclient.conf(5).
/sbin/dhclient
Ο dhclient είναι στατικό εκτελέσιμο και βρίσκεται στο /sbin. Η σελίδα manual dhclient(8) παρέχει περισσότερες πληροφορίες για τον dhclient.
/sbin/dhclient-script
Το dhclient-script είναι ένα ειδικά διαμορφωμένο για το FreeBSD ρυθμιστικό script του πελάτη DHCP. Οι λειτουργίες του περιγράφονται στο dhclient-script(8), αλλά φυσιολογικά δεν χρειάζεται μετατροπή από τον χρήστη για να λειτουργήσει κανονικά.
/var/db/dhclient.leases
Ο πελάτης DHCP διατηρεί μία βάση δεδομένων από έγκυρες μισθώσεις σε αυτό το αρχείο, το οποίο έχει μορφή καταγραφής. Η σελίδα manual dhclient.leases(5) περιέχει μια ελαφρώς εκτενέστερη περιγραφή.
Το πρωτόκολλο DHCP περιγράφεται πλήρως στο RFC 2131. Μια επιπλέον πηγή πληροφόρησης υπάρχει στη σελίδα http://www.dhcp.org/.
Αυτή η ενότητα παρέχει πληροφορίες σχετικά με τις ρυθμίσεις ενός συστήματος FreeBSD ώστε να λειτουργεί ως εξυπηρετητής DHCP χρησιμοποιώντας την υλοποίηση εξυπηρετητών DHCP του ISC (Internet Software Consortium).
Ο εξυπηρετητής δεν παρέχεται σαν μέρος του FreeBSD, επομένως θα πρέπει να τον εγκαταστήσετε από το port net/isc-dhcp31-server για να μπορείτε να χρησιμοποιήσετε την υπηρεσία. Δείτε την ενότητα Κεφάλαιο 5 για περισσότερες πληροφορίες σχετικά με τη χρήση της Συλλογής των Ports.
Για να ρυθμίσετε το FreeBSD σύστημα σας να λειτουργεί ως εξυπηρετητής DHCP, θα χρειαστεί να επιβεβαιώσετε ότι ο πυρήνας σας περιέχει τη συσκευή bpf(4). Για να γίνει αυτό, προσθέστε device bpf στο αρχείο ρυθμίσεων του πυρήνα και επαναμεταγλωττίστε τον. Για περισσότερες πληροφορίες σχετικά με τη δημιουργία προσαρμοσμένου πυρήνα, δείτε το Κεφάλαιο 9.
Η συσκευή bpf είναι ήδη μέρος του πυρήνα GENERIC που παρέχεται με το FreeBSD, επομένως δε θα χρειαστεί να φτιάξετε δικό σας προσαρμοσμένο πυρήνα ειδικά για να λειτουργήσει το DHCP.
Σημείωση: Για όσους ενδιαφέρονται ιδιαίτερα για θέματα ασφαλείας, θα πρέπει να σημειωθεί ότι η bpf είναι η συσκευή που επιτρέπει στους sniffers πακέτων να δουλέψουν κανονικά (αν και προγράμματα αυτού του τύπου χρειάζονται προνομιακή πρόσβαση). Η bpf απαιτείται για να γίνει χρήση του DHCP, αλλά εάν βρίσκεστε σε πολύ ευαίσθητο περιβάλλον σχετικά με την ασφάλεια, πιθανώς να μην πρέπει να προσθέσετε την bpf στον πυρήνα σας αν απλώς σκοπεύετε να να χρησιμοποιήσετε μελλοντικά το DHCP.
Το επόμενο πράγμα που θα χρειαστεί να κάνετε είναι να επεξεργαστείτε το υπόδειγμα του dhcpd.conf που έχει εγκατασταθεί από το port net/isc-dhcp31-server. Από προεπιλογή, το αρχείο αυτό βρίσκεται στο /usr/local/etc/dhcpd.conf.sample, και θα πρέπει να το αντιγράψετε στο /usr/local/etc/dhcpd.conf πριν ξεκινήσετε να κάνετε τις αλλαγές σας.
Το dhcpd.conf περιέχει δηλώσεις για τα subnets και τα hosts και ίσως να είναι ευκολότερο να το εξηγήσουμε παρουσιάζοντας ένα παράδειγμα :
option domain-name "example.com";option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
} host mailhost { hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}










Μετά την ολοκλήρωση των ρυθμίσεων του dhcpd.conf, θα πρέπει να ενεργοποιήσετε τον εξυπηρετητή DHCP στο /etc/rc.conf προσθέτοντας π.χ. τις γραμμές:
dhcpd_enable="YES" dhcpd_ifaces="dc0"
Θα πρέπει να αντικαταστήσετε το όνομα διεπαφής dc0 με τη διεπαφή (ή διεπαφές, διαχωρίζοντας τις με κενά διαστήματα) στην οποία ο εξυπηρετητής DHCP θα λαμβάνει τα αιτήματα των πελατών.
Τέλος, μπορείτε να ξεκινήσετε τον εξυπηρετητή εκτελώντας την ακόλουθη εντολή:
# /usr/local/etc/rc.d/isc-dhcpd start
Σε περίπτωση που χρειαστεί μελλοντικά να κάνετε αλλαγές στις ρυθμίσεις του εξυπηρετητή σας, είναι σημαντικό να θυμάστε ότι η αποστολή σήματος SIGHUP στο dhcpd δεν ξαναφορτώνει τις ρυθμίσεις, όπως γίνεται με τους περισσότερους δαίμονες. Θα πρέπει να στείλετε το σήμα SIGTERM για να σταματήσει η διεργασία και έπειτα να εκτελέσετε την παραπάνω εντολή για να την ξεκινήσετε εκ νέου.
/usr/local/sbin/dhcpd
Το dhcpd είναι στατικό εκτελέσιμο και βρίσκεται στο /usr/local/sbin. Περισσότερες πληροφορίες για το dhcpd, θα βρείτε στη σελίδα βοήθειας dhcpd(8) που εγκαθίσταται από το port.
/usr/local/etc/dhcpd.conf
Το dhcpd απαιτεί ένα αρχείο ρυθμίσεων, το /usr/local/etc/dhcpd.conf πριν ξεκινήσει να παρέχει υπηρεσίες στους πελάτες. Αυτό το αρχείο χρειάζεται να περιλαμβάνει όλες τις πληροφορίες που θα παρέχονται στους πελάτες, καθώς και πληροφορίες σχετικά με τη λειτουργία του εξυπηρετητή. Το αρχείο ρυθμίσεων περιγράφεται στην εγκατεστημένη - από το port - σελίδα manual dhcpd.conf(5).
/var/db/dhcpd.leases
Ο εξυπηρετητής DHCP διατηρεί μια βάση δεδομένων με τις μισθώσεις που έχουν πραγματοποιηθεί σε αυτό αρχείο, το οποίο έχει μορφή αρχείου καταγραφής. Μπορείτε να διαβάσετε μια ελαφρώς εκτενέστερη περιγραφή στη σελίδα manual που εγκαταστάθηκε με το port, dhcpd.leases(5).
/usr/local/sbin/dhcrelay
Το dhcrelay χρησιμοποιείται σε πιο προχωρημένες περιπτώσεις, όταν ο εξυπηρετητής DHCP προωθεί ένα αίτημα από ένα πελάτη σε έναν άλλο εξυπηρετητή DHCP διαφορετικού δικτύου. Αν χρειάζεστε αυτή τη δυνατότητα, εγκαταστήστε το port net/isc-dhcp31-relay. Η σελίδα manual dhcrelay(8) που συνοδεύει το port, περιέχει περισσότερες λεπτομέρειες.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.