====== dhcpd - υπηρεσία dhcp ====== ===== Εγκατάσταση ===== aptitude install dhcp3-server ===== Ρυθμίσεις ===== ==== Βασική ==== Τροποποιούμε το αρχείο /etc/dhcp3/dhcpd.conf Ένα τυπικό αρχείο είναι μπορεί να είναι το παρακάτω option domain-name "mynet.local"; option domain-name-servers 2.2.2.2, 3.3.3.3; option routers 192.168.1.200; #option nis-domain "mynet.local"; option nis-servers 192.168.1.200; ddns-update-style none; default-lease-time 14400; subnet 192.168.1.0 netmask 255.255.255.0 { authoritative; range 192.168.1.110 192.168.1.190; default-lease-time 14400; max-lease-time 172800; } ==== Σταθερές ip μέσω dhcp ==== Εάν θέλουμε να δίνουμε τις ίδιες ip πάντα σε συγκεκριμένους υπολογιστές, μπορούμε με βάση την mac address τους. Για παράδειγμα host pentium { option host-name "mypc.mynet.local"; hardware ethernet 00:80:48:28:92:3A; fixed-address 192.168.100.20; } ==== interfaces ==== Εάν θέλουμε να ορίσουμε σε ποια interfaces ακούει ο dhcp server, τροποποιούμε το αρχείο /etc/default/dhcp3-server INTERFACES="eth0" Για να ακούει σε όλα το αφήνουμε κενό INTERFACES="" ==== Release on Shutdown - Windows XP ==== Στα ΛΣ Linux, Windows Vista, Windows 7 οι clients κατά τον τερματισμό τους απελευθερώνουν την ip που έχουν πάρει από τον server. Στα Windows XP προκαθορισμένα δεν την απελευθερώνουν. Προσθέτωντας τις παρακάτω γραμμές στο dhcpd.conf ορίζουμε και σε αυτούς τους clients να απελευθερώνουν την ip κατά τον τερματισμό. # For Microsoft Windows 2000 and XP clients to release on reboot option space MSFT; option MSFT.release-on-shutdown code 2 = unsigned integer 32; class "win2k-clients" { match if option vendor-class-identifier = "MSFT 5.0"; send fqdn.server-update true; send fqdn.no-client-update true; vendor-option-space MSFT; option MSFT.release-on-shutdown 1; } ===== Άλλα ===== ==== Leases ==== Οι ip διευθύνσεις που έχουν ήδη δοθεί από τον dhcp server καταγράφονται στο αρχείο /var/lib/dhcp3/dhcpd.leases ==== LTSP Load Balancing ==== Για την ρύθμιση του dhcp server ώστε να δίνει πληροφορίες σε pxes clients από ποιον ltsp server θα ξεκινήσουν βλ. [[el:linux:debian:server:ltsp]] Εάν θέλουμε να διαμοιράσουμε τον φόρτο και σε έναν 2ο ltsp server ένας απλοϊκός τρόπος είναι να φιλτράρουμε με βάση την mac address των clients στέλνοντας τους μισούς στον έναν server και τους άλλους μισούς στον άλλον. subnet 192.168.1.0 netmask 255.255.255.0 { authoritative; default-lease-time 14400; max-lease-time 172800; class "even" { match if suffix(binary-to-ascii(2, 8, "", substring(hardware, 6, 1)), 1) = "1"; } class "odd" { match if suffix(binary-to-ascii(2, 8, "", substring(hardware, 6, 1)), 1) = "0"; } pool { range 192.168.1.110 192.168.1.140; allow members of "even"; option broadcast-address 192.168.1.255; option root-path "/opt/ltsp/i386"; next-server 192.168.1.11; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } } pool { range 192.168.1.141 192.168.1.170; allow members of "odd"; option broadcast-address 192.168.1.255; option root-path "/opt/ltsp/i386"; next-server 192.168.1.12; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } } } Η παραπάνω ρύθμιση στέλνει τους clients που η mac address τους τελειώνει σε άρτιο αριθμό στον ltsp server με ip 192.168.1.11 και τους υπόλοιπους στον 192.168.1.12. ===== Πηγές ===== * http://www.howtoforge.com/nat-gateway-iptables-port-forwarding-dns-and-dhcp-setup-ubuntu-8.10-server * http://www.howtoforge.com/dhcp_server_linux_debian_sarge * Parse dhcp.leases * http://blackshell.usebox.net/pub/shell/dhcp.awk * http://stackoverflow.com/questions/2142824/parse-a-dhcpd-lease-file-with-bash * Options * http://linuxmanpages.com/man5/dhcp-options.5.php * Windows XP - release ip on shutdown * http://www.johncooke.info/linux/dhcpdconf.php