====== 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}}