W tym artykule opiszę proces instalacji i konfiguracji serwera DHCP (ISC-DHCP), który będzie korzystał z danych przechowywanych w globalnej bazie LDAP.
Aby zainstalować serwer DHCP z obsługą LDAP skorzystamy z systemu portów.
cd /usr/ports/net/isc-dhcp42-server/ make install clean
Zostawiamy DHCP_PARANOIA, zaznaczamy opcję WITH_LDAP i jeśli nie korzystamy z SSLa, odznaczamy DHCP_LDAP_SSL.
Tworzymy plik konfiguracyjny dhcpd.conf:
/usr/local/etc/dhcpd.conf
ldap-server "localhost"; ldap-port 389; ldap-username "cn=admin,dc=firma,dc=bogus"; ldap-password "secret"; ldap-base-dn "dc=firma,dc=bogus"; ldap-method dynamic; ldap-debug-file "/var/log/dhcp-ldap-startup.log"; ldap-server-cn "DHCP"; # lub ldap-dhcp-server-cn "DHCP"; # w różnych wersjach serwera spotykałem sie z różnymi dyrektywami.
Musimy jeszcze dodać plik ze schematem DHCP do OpenLDAP:
cp /usr/local/share/isc-dhcp41-server/dhcp.schema /usr/local/etc/openldap/schema/dhcp.schema
Do pliku konfiguracyjnego serwera LDAP (/usr/local/etc/openldap/slapd.conf) dopisujemy dyrektywę include oraz index:
include /usr/local/etc/openldap/schema/dhcp.schema # DHCP indices index dhcpHWAddress eq index dhcpClassData eq
Wyłączamy serwer:
/usr/local/etc/rc.d/slapd stop
generujemy indexy:
slapindex
i uruchamiamy ponownie serwer LDAP:
/usr/local/etc/rc.d/slapd start
Poniżej przedstawiam przykładową konfigurację drzewa DHCP (w formacie LDIF):
dn: cn=DHCP,dc=firma,dc=bogus objectClass: top objectClass: dhcpServer cn: DHCP dhcpServiceDN: cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus dn: cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus cn: DHCP Service dhcpOption: domain-name-servers 192.168.0.1 dhcpOption: unknown-252 "http://server/proxy.pac\n" dhcpPrimaryDN: cn=DHCP,dc=firma,dc=bogus dhcpStatements: server-identifier server.firma.local dhcpStatements: default-lease-time 3600 dhcpStatements: max-lease-time 7200 dhcpStatements: authoritative dhcpStatements: ddns-update-style none objectClass: top objectClass: dhcpService objectClass: dhcpOptions dn: cn=192.168.0.0,cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus cn: 192.168.0.0 dhcpNetMask: 24 dhcpOption: domain-name-servers 192.168.0.1 dhcpOption: domain-name "firma.local" dhcpOption: routers 192.168.0.1 dhcpOption: broadcast-address 192.168.0.255 dhcpOption: netbios-name-servers 192.168.0.2 dhcpOption: netbios-node-type 8 dhcpRange: 192.168.0.72 192.168.0.95 dhcpStatements: default-lease-time 3600 dhcpStatements: max-lease-time 7200 objectClass: top objectClass: dhcpSubnet objectClass: dhcpOptions dn: cn=host-one,cn=192.168.0.0,cn=DHCP Service,cn=DHCP,dc=firma,dc=bogus objectClass: top objectClass: dhcpHost cn: host-one dhcpHWAddress: ethernet 00:13:74:3d:75:07 dhcpStatements: fixed-address 192.168.0.100
Na sam koniec uruchamiamy serwer DHCP. W tym celu dopisujemy do pliku /etc/rc.conf
dhcpd_enable=”YES”
i uruchamiamy serwer wydając komendę:
/usr/local/etc/rc.d/isc-dhcpd start