Το 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 είναι αυτός που προσφέρεται με τη διανομή του ISC.
Αυτή η ενότητα περιγράφει τα συστατικά και των δύο τύπων πελατών DHCP, του ISC και του OpenBSD, καθώς και τα συστατικά εξυπηρετητών DHCP του ISC. Το λογισμικό πελάτη, dhclient, προσφέρεται ενσωματωμένο στο FreeBSD, ενώ το κομμάτι του εξυπηρετητή διατίθεται από την port net/isc-dhcp3-server. Οι σελίδες βοηθείας dhclient(8), dhcp-options(5), και dhclient.conf(5) μαζί με τις παρακάτω αναφορές αποτελούν πολύ χρήσιμες πηγές.
Όταν ο dhclient, ο πελάτης DHCP, εκτελείται στο μηχάνημα πελάτη, ξεκινάει η αποστολή αιτημάτων broadcasting για τη συλλογή των πληροφοριών ρύθμισης. Προεπιλεγμένα, αυτά τα αιτήματα UDP τρέχουν στη πόρτα 68. Ο εξυπηρετητής θα απαντήσει στην UDP 67, προσφέροντας στον πελάτη μία διεύθυνση IP και άλλες σχετικές δικτυακές πληροφορίες όπως τη μάσκα (netmask), τις δρομολογήσεις (router), και τους εξυπηρετητές DNS. Όλες αυτές οι πληροφορίες διατίθενται με τη μορφή «μίσθωσης» DHCP και ισχύουν μόνο για κάποιο συγκεκριμένο χρονικό διάστημα (ρυθμίζονται από το συντηρητή του εξυπηρετητή 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 έχει μεταγλωττιστεί στο kernel σας. Για να γίνει αυτό, προσθέστε στο ρυθμιστικό αρχείο του kernel device bpf, και ανακατασκευάστε τον πυρήνα. Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση προσαρμοσμένου πυρήνα, δείτε Κεφάλαιο 8.
Η συσκευή bpf είναι μέρος του πυρήνα GENERIC που διατίθεται με το FreeBSD, επομένως εάν δεν έχετε φτιάξει κάποιο προσαρμοσμένο πυρήνα, δε χρειάζεται να δημιουργήσετε κάποιον για να δουλέψετε με το DHCP.
Σημείωση: Για όσους ενδιαφέρονται ιδιαίτερα για θέματα ασφαλείας, θα πρέπει να σας προειδοποιήσουμε ότι η bpf είναι μία συσκευή που επιτρέπει στους sniffers πακέτων να δουλέψουν κανονικά (αν και θα πρέπει να τρέχουν σαν root). Η bpf απαιτείται για να γίνει χρήση του DHCP, αλλά εάν βρίσκεστε σε πολύ ευαίσθητο περιβάλλον σχετικά με την ασφάλεια, πιθανώς να μην πρέπει να προσθέσετε την bpf στον πυρήνα σας με την προοπτική κάποια στιγμή στο μέλλον να χρησιμοποιήσετε το DHCP.
Επεξεργαστείτε το /etc/rc.conf και συμπεριλάβετε το ακόλουθο:
ifconfig_fxp0="DHCP"
Σημείωση: Βεβαιωθείτε ότι θα αντικαταστήσετε το fxp0 με την ονομασία της διεπαφής που επιθυμείτε, ώστε να ρυθμίζεται δυναμικά, όπως περιγράφεται στο Τμήμα 11.8.
Εάν ο dhclient βρίσκεται σε διαφορετική τοποθεσία, ή αν επιθυμείτε να περάσετε επιπρόσθετα flags στον dhclient, τότε συμπεριλάβετε και το ακόλουθο (επεξεργαστείτε το όπου χρειάζεται):
dhcp_program="/sbin/dhclient" dhcp_flags=""
Ο εξυπηρετητής DHCP, dhcpd, περιέχεται ως μέρος του port net/isc-dhcp3-server στη Συλλογή των Ports. Το port αυτό περιλαμβάνει τον εξυπηρετητή DHCP του ISC και τεκμηρίωση.
/etc/dhclient.conf
Ο dhclient χρειάζεται ένα αρχείο ρυθμίσεων, το /etc/dhclient.conf. Τυπικά το αρχείο αυτό περιέχει μόνο σχολιασμούς, στα defaults περιέχονται υγιείς προεπιλεγμένες ρυθμίσεις. Αυτό το αρχείο ρυθμίσεων περιγράφεται στη σελίδα βοηθείας dhclient.conf(5).
/sbin/dhclient
Ο dhclient έχει στατικό σύνδεσμο που βρίσκεται στο /sbin. Η σελίδα βοηθείας dhclient(8) παρέχει περισσότερες πληροφορίες για τον dhclient.
/sbin/dhclient-script
Το dhclient-script είναι το ρυθμιστικό script του πελάτη DHCP ειδικά διαμορφωμένο για το FreeBSD. Οι λειτουργίες του περιγράφονται στο dhclient-script(8), αλλά δεν χρειάζονται μετατροπές από κάποιον χρήστη για να δουλέψει κανονικά.
/var/db/dhclient.leases
Ο πελάτης DHCP αποθηκεύει μία βάση δεδομένων από έγκυρες αυτό το αρχείο, που γράφεται σαν αρχείο αναφοράς. Η σελίδα μισθώσεις σε βοηθείας dhclient.leases(5) περιέχει μια ελαφρώς εκτενέστερη περιγραφή.
Το πρωτόκολλο DHCP περιγράφεται πλήρως στο RFC 2131. Μια επιπλέον πηγή πληροφόρησης έχει στηθεί στη http://www.dhcp.org/.
Αυτή η ενότητα παρέχει πληροφορίες σχετικά με τις ρυθμίσεις ενός συστήματος FreeBSD ώστε να δουλεύει ως εξυπηρετητής DHCP χρησιμοποιώντας την υλοποίηση εξυπηρετητών DHCP του ISC (Internet Software Consortium).
Ο εξυπηρετητής δεν παρέχεται σαν μέρος του FreeBSD, επομένως θα πρέπει να τον εγκαταστήσετε από το port net/isc-dhcp3-server για να μπορείτε να χρησιμοποιήσετε την υπηρεσία. Δείτε την ενότητα Κεφάλαιο 4 για περισσότερες πληροφορίες σχετικά με τη χρήση της Συλλογής των Ports.
Για να ρυθμίσετε το σύστημα FreeBSD ώστε να τρέχει ως εξυπηρετητής DHCP, θα χρειαστεί να επιβεβαιώσετε ότι η συσκευή bpf(4) έχει συμπεριληφθεί στον πυρήνα σας. Για να γίνει αυτό, προσθέστε device bpf στο ρυθμιστικό αρχείο του πυρήνα, και ανακατασκευάστε τον πυρήνα. Για περισσότερες πληροφορίες σχετικά με τη κατασκευή προσαρμοσμένων πυρήνων, δείτε το Κεφάλαιο 8.
Η συσκευή bpf είναι ήδη μέρος του πυρήνα GENERIC που παρέχεται με το FreeBSD, επομένως δε θα χρειαστεί να φτιάξετε κάποιο προσαρμοσμένο πυρήνα για να κάνετε να δουλέψει το DHCP.
Σημείωση: Για όσους ενδιαφέρονται ιδιαίτερα για θέματα ασφαλείας, θα πρέπει να σημειωθεί ότι η bpf είναι μία συσκευή που επιτρέπει στους sniffers πακέτων να εργάζονται κανονικά (αν και τέτοια προγράμματα χρειάζονται πρόσβαση με προνομιακές άδειες). Η bpf απαιτείται για τη λειτουργία του DHCP, αλλά εάν βρίσκεστε σε πολύ ευαίσθητο περιβάλλον σχετικά με την ασφάλεια, πιθανώς να μην πρέπει να προσθέσετε την bpfστον πυρήνα σας με την προοπτική κάποια στιγμή στο μέλλον να χρησιμοποιήσετε το DHCP.
Το επόμενο πράγμα που θα χρειαστεί να κάνετε είναι να επεξεργαστείτε το δείγμα dhcpd.conf που έχει εγκατασταθεί από το port net/isc-dhcp3-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 θα λαμβάνει αιτήματα DHCP πελατών.
Τέλος, μπορείτε να ξεκινήσετε τον εξυπηρετητή εκτελώντας την ακόλουθη εντολή:
# /usr/local/etc/rc.d/isc-dhcpd.sh start
Σε περίπτωση που χρειαστεί μελλοντικά να κάνετε αλλαγές στις ρυθμίσεις του εξυπηρετητή σας, είναι σημαντικό να σημειώσετε ότι η αποστολή σήματος SIGHUP στο dhcpd δεν ξαναφορτώνει τις ρυθμίσεις, όπως γίνετε με τους περισσότερους δαίμονες. Θα πρέπει να στείλετε πρώτα το σήμα SIGTERM για να σταματήσει η διεργασία, και έπειτα να εκτελέσετε την παραπάνω εντολή για να ξεκινήσετε εκ νέου τη διεργασία.
/usr/local/sbin/dhcpd
Το dhcpd έχει στατικό σύνδεσμο που βρίσκεται στο /usr/local/sbin. Στη σελίδα βοηθείας dhcpd(8) που δημιουργήθηκε με την εγκατάσταση του port θα βρείτε περισσότερες πληροφορίες για το dhcpd .
/usr/local/etc/dhcpd.conf
Το dhcpd απαιτεί το ρυθμιστικό αρχείο, /usr/local/etc/dhcpd.conf πριν ξεκινήσει να παρέχει υπηρεσίες στους πελάτες. Αυτό το αρχείο χρειάζεται να περιλαμβάνει όλες τις πληροφορίες που θα παρέχονται στους πελάτες, καθώς και πληροφορίες σχετικά με τη λειτουργία του εξυπηρετητή. Αυτό το αρχείο ρυθμίσεων περιγράφεται στην εγκατεστημένη - από το port - σελίδα βοηθείας dhcpd.conf(5) .
/var/db/dhcpd.leases
Ο εξυπηρετητής DHCP διατηρεί μια βάση δεδομένων με τις μισθώσεις που έχουν πραγματοποιηθεί σε ένα αρχείο, όπου αποθηκεύεται σαν αρχείο αναφοράς. Η σελίδα βοηθείας που εγκαταστάθηκε με το port, dhcpd.leases(5), δίνει μία ελαφρώς εκτενέστερη περιγραφή.
/usr/local/sbin/dhcrelay
Το dhcrelay χρησιμοποιείται σε πιο προχωρημένες καταστάσεις, όταν ο εξυπηρετητής DHCP προωθεί ένα αίτημα από ένα πελάτη σε έναν άλλο εξυπηρετητή DHCP διαφορετικού δικτύου. Αν χρειάζεστε αυτή τη δυνατότητα, τότε εγκαταστήστε το port net/isc-dhcp3-relay. Η σελίδα βοηθείας dhcrelay(8) που συνοδεύει το port περιέχει περισσότερες λεπτομέρειες.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.