====== ISC DHCP сервер ====== ====== Обычный вариант ====== Настройка через файл. ===== Установка ===== apt-get install isc-dhcp-server ===== Настройка ===== FIXME * ''/etc/dhcp'' * ''/var/lib/dhcp'' Список [[network_interfaces:network_interfaces|сетевых интерфейсов]] на которых работает сервер: INTERFACES="eth0 eth1" ==== Лог в отдельный файл ==== 1. Добавить в конец файла [[#dhcpd.conf]] log-facility local7; 2. Создать файл: local7.* /var/log/dhcpd.log & ~ 3. Выполнить перезапуск [[#Перезапуск|dhcpd]] и [[rsyslog:rsyslog#Перезапуск|rsyslog]] ==== Перезапуск ==== service isc-dhcp-server restart ===== dhcpd.conf ===== # Auto-Proxy option wpad-curl code 252 = text ; option wpad code 252 = text; # MS routes: adds extras to supplement routers option option ms-classless-static-routes code 249 = array of unsigned integer 8; # RFC3442 routes: overrides routers option option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; ddns-update-style none; authoritative; update-static-leases on; default-lease-time 60000; max-lease-time 86400; log-facility local7; #local7.debug /var/log/dhcpd.log shared-network domain.ru { subnet 10.1.0.0 netmask 255.255.255.0 { option domain-name "sub1.domain.ru"; option domain-name-servers 10.1.0.1, 10.1.0.2; option netbios-name-servers 10.1.0.3, 10.1.0.4; option routers 10.1.0.1; option subnet-mask 255.255.255.0; option ntp-servers 10.1.0.1; option wpad-curl "http://10.1.0.1/wpad.dat\000" ; option wpad "http://10.1.0.1/wpad.dat"; range 10.1.0.10 10.1.0.20; } host host1 { hardware ethernet 01:01:02:03:04:05; fixed-address 10.1.0.101; } subnet 10.2.0.0 netmask 255.255.255.0 { option domain-name "sub2.domain.ru"; option domain-name-servers 10.2.0.1; option netbios-name-servers 10.2.0.1; option routers 10.2.0.1; option subnet-mask 255.255.255.0; option ntp-servers 10.2.0.1; option tftp-server-name "http://pbx/provisioning"; option time-offset 10800; range 10.2.0.10 10.2.0.20; } host host2 { hardware ethernet 02:01:02:03:04:05; fixed-address 10.2.0.101; } } ==== default-lease-time ==== Промежуток времени в секундах, на который выделяется адрес клиенту, в случае если клиент самостоятельно не указал время использования адреса ==== max-lease-time ==== Максимальный промежуток времени в секундах, на который выделяется адрес клиенту ====== PXE ====== Настройка [[pxe:pxe|]] на примере установки [[mikrotik:openwrt|]]. ====== LDAP ====== Сервер с поддержкой [[ldap:ldap|LDAP]]. FIXME Если использовать механизм [[openldap:openldap#Репликация|репликации]] то можно получить [[high_reliability:high_reliability|надёжное решение]], которое позволить вносить изменения в одном месте (в БД [[ldap:ldap|LDAP]]) и они будут приниматься сразу на всех DHCP серверах. Не все параметры будут обновлены автоматически, подробное описание в теме [[#ldap-method|ldap-method]]. |root|root=**dc=domain** |!| |)|ou_dhcp|ou_dhcp=[[#Root|ou=dhcp]] |!|!| |!|)|Config|Config=[[#Config|cn=config]] |!|!|!| |!|!|`|SharedNetwork|SharedNetwork=[[#SharedNetwork|cn=SharedNetwork]] |!|!| |!| |!|!| |)|Network1|Network1=[[#Network1|cn=10.1.0.0]] |!|!| |!|!| |!|!| |!|)|Network1_Host1|Network1_Host1=[[#Network1_Host1|cn=host1]] |!|!| |!|!| |!|!| |!|)|Network1_Pool1|Network1_Pool1=[[#Network1_Pool1|cn=pool1]] |!|!| |!| | |!|!| |)|Network2|Network2=[[#Network2|cn=10.2.0.0]] |!|!| | |!| |!|!| | |)|Network2_Host1|Network2_Host1=[[#Network2_Host1|cn=host1]] |!|!| | |!| |!|!| | |)|Network2_Pool1|Network2_Pool1=[[#Network2_Pool1|cn=pool2]] |!|!| |!|)|Server|Server=[[#Server|cn=server]] ===== Установка ===== apt-get install isc-dhcp-server-ldap [[openldap:openldap#dhcp|Подготовка сервера OpenLDAP для DHCP]] ===== Настройка ===== [[openldap:openldap|OpenLDAP]] {{:dhcp:dhcp.ldif|dhcp.ldif}}, источник схемы: пакет ''isc-dhcp-server-ldap'', файл ''/usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz'' dn: olcDatabase={1}mdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: dhcpHWAddress eq - add: olcDbIndex olcDbIndex: dhcpClassData eq ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dhcp.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f olcDbIndex_dhcp.ldif ---- dhcp.schema isc-dhcp-server-ldap_4.3.5-3+deb9u1_amd64.deb deb://CONTENTS/usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz ===== Root ===== dn: ou=dhcp,dc=domain objectClass: organizationalUnit ou: dhcp ===== Server ===== dn: cn=server,ou=dhcp,dc=domain cn: server objectClass: dhcpServer objectClass: top dhcpServiceDN: cn=config,ou=dhcp,dc=domain dhcpComments: DHCP server ===== Config ===== dn: cn=config,ou=dhcp,dc=domain cn: config objectClass: top objectClass: dhcpService objectClass: dhcpOptions dhcpPrimaryDN: cn=server,ou=dhcp,dc=domain dhcpStatements: ddns-update-style none dhcpStatements: authoritative dhcpStatements: update-static-leases on dhcpStatements: default-lease-time 60000 dhcpStatements: max-lease-time 86400 dhcpOption: netbios-node-type 8 dhcpComments: DHCP config ===== SharedNetwork ===== dn: cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: SharedNetwork objectClass: top objectClass: dhcpSharedNetwork ===== Network1 ===== dn: cn=10.1.0.0,cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: 10.1.0.0 objectClass: top objectClass: dhcpSubnet objectClass: dhcpOptions dhcpNetMask: 24 dhcpOption: domain-name "sub1.domain.ru" dhcpOption: domain-name-servers 10.1.0.1, 10.1.0.2 dhcpOption: netbios-name-servers 10.1.0.3, 10.1.0.4 dhcpOption: routers 10.1.0.1 dhcpOption: subnet-mask 255.255.255.0 dhcpOption: ntp-servers 10.1.0.1 dhcpOption: netbios-node-type 8 dhcpRange: 10.1.0.10 10.1.0.20 ===== Network1_Host1 ===== dn: cn=Host1,cn=10.1.0.0,cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: Host1 objectClass: top objectClass: dhcpHost dhcpHWAddress: ethernet 01:01:02:03:04:05 dhcpStatements: fixed-address 10.1.0.101 ===== Network1_Pool1 ===== dn: cn=server2,cn=10.1.0.0,cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: pool1 dhcpcomments: 1 dhcprange: 10.1.0.200 10.1.0.210 objectclass: dhcpPool ===== Network2 ===== dn: cn=10.2.0.0,cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: 10.2.0.0 objectClass: top objectClass: dhcpSubnet objectClass: dhcpOptions dhcpNetMask: 24 dhcpOption: domain-name "sub2.domain.ru" dhcpOption: domain-name-servers 10.2.0.1 dhcpOption: netbios-name-servers 10.2.0.1 dhcpOption: routers 10.2.0.1 dhcpOption: subnet-mask 255.255.255.0 dhcpOption: ntp-servers 10.2.0.1 dhcpOption: option tftp-server-name "http://pbx/provisioning"; dhcpOption: option time-offset 10800; dhcpOption: netbios-node-type 8 dhcpRange: 10.2.0.10 10.2.0.20 ===== Network2_Host1 ===== dn: cn=Host1,cn=10.1.0.0,cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: Host1 objectClass: top objectClass: dhcpHost dhcpHWAddress: ethernet 02:01:02:03:04:05 dhcpStatements: fixed-address 10.2.0.101 ===== Network2_Pool1 ===== dn: cn=server2,cn=10.2.0.0,cn=SharedNetwork,cn=config,ou=dhcp,dc=domain cn: pool2 dhcpcomments: 1 dhcprange: 10.2.0.200 10.2.0.210 objectclass: dhcpPool ===== Настройка сервера LDAP ===== [[openldap:openldap|OpenLDAP]] ===== dhcpd.conf ===== ldap-server "ldap"; ldap-port 389; ldap-base-dn "ou=dhcp,dc=domain"; ldap-dhcp-server-cn "server"; ldap-method dynamic; #ldap-username "uid=srvs,dc=domain"; #ldap-password "ПАРОЛЬ"; #ldap-debug-file "/var/log/dhcp-ldap.log"; log-facility local7; ==== ldap-server ==== DNS имя LDAP сервера. ==== ldap-portr ==== Номер TCP-порта LDAP сервера. ==== ldap-base-dn ==== Базовый путь внутри дерева. ==== ldap-dhcp-server-cn ==== Имя сервера, объект у которого ''objectClass: dhcpServer'' Пример: [[#Server|cn=server]] ==== ldap-username ==== Имя пользователя для подключения к LDAP серверу. ==== ldap-password ==== Пароль пользователя для подключения к LDAP серверу. Можно не указывать если к нужным объектам разрешён анонимный доступ. ==== ldap-debug-file ==== Файл протокола, удобно использовать для отладки. В этот файл выводятся данные в формате файла ''dhcpd.conf'' ==== ldap-method ==== Метод получения данных с LDAP сервера: * ''static'' - все данные загружаются один раз при старте сервера; * ''dynamic'' - данные объектов ''objectClass: dhcpHost'' загружаются по запросу, остальные при старте сервера, при изменении параметров нужен [[#перезапуск]]. ===== dhcpd.log ===== Настройка отдельного файла протокола (лога). - Создать файлы: * local7.* /var/log/dhcpd.log & stop * /var/log/dhcpd.log { monthly rotate 12 compress delaycompress missingok copytruncate notifempty create 640 root } - Добавить в файл: log-facility local7; - Выполнить: service isc-dhcp-server restart; service rsyslog restart ---- [[http://notessysadmin.com/log-dhcp-servera-v-otdelnyj-fajl|Лог DHCP сервера в отдельный файл]] ====== Ссылки ====== http://wiki.herzbube.ch/index.php/ISCDHCP [[http://mageconfig.blogspot.ru/2014/10/configure-isc-dhcp-server-with-openldap.html|Configure ISC DHCP Server with OpenLDAP]] [[https://www.ldap-account-manager.org/static/doc/manual/ch04s11.html|Chapter 4. Managing entries in your LDAP directory: DHCP]] [[https://skalyanasundaram.wordpress.com/dhcp/dhcp-with-ldap-support/|DHCP with LDAP support]] **[[http://danrimal.net/doku.php?id=wiki:linux:failover_using_ldap_backend|DHCP failover using LDAP backend]]** [[http://adminubuntu.net/2010/09/04/log-dhcp-servera.html|Adminubuntu: Лог DHCP сервера]] {{tag>Network Debian}}