Инструменты пользователя

Инструменты сайта


isc-dhcp-server:isc-dhcp-server

ISC DHCP сервер

Обычный вариант

Настройка через файл.

Установка

apt-get install isc-dhcp-server

Настройка

FIXME

  • /etc/dhcp
  • /var/lib/dhcp

Список сетевых интерфейсов на которых работает сервер:

/etc/defaults/isc-dhcp-server
INTERFACES="eth0 eth1"

Лог в отдельный файл

1. Добавить в конец файла dhcpd.conf

/etc/dhcp/dhcpd.conf
log-facility local7;

2. Создать файл:

/etc/rsyslog.d/dhcpd.conf
local7.* /var/log/dhcpd.log
& ~

3. Выполнить перезапуск dhcpd и rsyslog

Перезапуск

service isc-dhcp-server restart

dhcpd.conf

Файл dhcpd.conf

Файл dhcpd.conf

/etc/dhcp/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;
		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

Максимальный промежуток времени в секундах, на который выделяется адрес клиенту

LDAP

Сервер с поддержкой LDAP.

FIXME

Если использовать механизм репликации то можно получить надёжное решение, которое позволить вносить изменения в одном месте (в БД LDAP) и они будут приниматься сразу на всех DHCP серверах.

Не все параметры будут обновлены автоматически, подробное описание в теме ldap-method.

dc=domain
ou=dhcp
cn=config
cn=SharedNetwork
cn=10.1.0.0
cn=host1
cn=pool1
cn=10.2.0.0
cn=host1
cn=pool2
cn=server

Установка

apt-get install isc-dhcp-server-ldap

Подготовка сервера OpenLDAP для DHCP

Настройка

OpenLDAP

dhcp.ldif, источник схемы: пакет isc-dhcp-server-ldap, файл /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz

olcDbIndex_dhcp.ldif
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

root.ldif
dn: ou=dhcp,dc=domain
objectClass: organizationalUnit
ou: dhcp

Server

server.ldif
dn: cn=server,ou=dhcp,dc=domain
cn: server
objectClass: dhcpServer
objectClass: top
dhcpServiceDN: cn=config,ou=dhcp,dc=domain
dhcpComments: DHCP server

Config

config.ldif
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

SharedNetwork.ldif
dn: cn=SharedNetwork,cn=config,ou=dhcp,dc=domain
cn: SharedNetwork
objectClass: top
objectClass: dhcpSharedNetwork

Network1

network1.ldif
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
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

network1_host1.ldif
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

pool1.ldif
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

network2.ldif
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

network1_host1.ldif
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

pool2.ldif
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

dhcpd.conf

/etc/dhcp/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

Пример: cn=server

ldap-username

Имя пользователя для подключения к LDAP серверу.

ldap-password

Пароль пользователя для подключения к LDAP серверу.

Можно не указывать если к нужным объектам разрешён анонимный доступ.

ldap-debug-file

Файл протокола, удобно использовать для отладки.

В этот файл выводятся данные в формате файла dhcpd.conf

ldap-method

Метод получения данных с LDAP сервера:

  • static - все данные загружаются один раз при старте сервера;
  • dynamic - данные объектов objectClass: dhcpHost загружаются по запросу, остальные при старте сервера, при изменении параметров нужен перезапуск.

Ссылки

isc-dhcp-server/isc-dhcp-server.txt · Последние изменения: 2019-07-16 13:18 — GreyWolf