DHCP server
Модераторы: Olej, bellic, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
DHCP server
Понадобился мне автономный DHCP сервер ...
У нас уже есть тема с точно таким же названием DHCP server.
Но :
1. Там обсуждение начато и заканчивается 2015-м годом
2. На то время были в моде совсем другие реализации DHCP сервер для Linux.
Поэтому оставим намерение что-то там продолжать...
У нас уже есть тема с точно таким же названием DHCP server.
Но :
1. Там обсуждение начато и заканчивается 2015-м годом
2. На то время были в моде совсем другие реализации DHCP сервер для Linux.
Поэтому оставим намерение что-то там продолжать...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
DHCP server
Код: Выделить всё
olej@esprimop420:~$ aptitude search isc-dhcp-server
p isc-dhcp-server - ISC DHCP server for automatic IP address assignment
p isc-dhcp-server-ldap - DHCP server that uses LDAP as its backend
Код: Выделить всё
olej@esprimop420:~$ sudo apt install isc-dhcp-server
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
libirs-export161 libisccfg-export163 policycoreutils selinux-utils
Предлагаемые пакеты:
isc-dhcp-server-ldap
Следующие НОВЫЕ пакеты будут установлены:
isc-dhcp-server libirs-export161 libisccfg-export163 policycoreutils selinux-utils
Обновлено 0 пакетов, установлено 5 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 1.703 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 6.915 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://deb.debian.org/debian bullseye/main amd64 libisccfg-export163 amd64 1:9.11.19+dfsg-2.1 [272 kB]
Пол:2 http://deb.debian.org/debian bullseye/main amd64 libirs-export161 amd64 1:9.11.19+dfsg-2.1 [245 kB]
Пол:3 http://deb.debian.org/debian bullseye/main amd64 isc-dhcp-server amd64 4.4.1-2.3+deb11u1 [553 kB]
Пол:4 http://deb.debian.org/debian bullseye/main amd64 selinux-utils amd64 3.1-3 [142 kB]
Пол:5 http://deb.debian.org/debian bullseye/main amd64 policycoreutils amd64 3.1-3 [491 kB]
Получено 1.703 kB за 0с (3.944 kB/s)
Предварительная настройка пакетов …
Выбор ранее не выбранного пакета libisccfg-export163.
(Чтение базы данных … на данный момент установлено 350833 файла и каталога.)
Подготовка к распаковке …/libisccfg-export163_1%3a9.11.19+dfsg-2.1_amd64.deb …
Распаковывается libisccfg-export163 (1:9.11.19+dfsg-2.1) …
Выбор ранее не выбранного пакета libirs-export161.
Подготовка к распаковке …/libirs-export161_1%3a9.11.19+dfsg-2.1_amd64.deb …
Распаковывается libirs-export161 (1:9.11.19+dfsg-2.1) …
Выбор ранее не выбранного пакета isc-dhcp-server.
Подготовка к распаковке …/isc-dhcp-server_4.4.1-2.3+deb11u1_amd64.deb …
Распаковывается isc-dhcp-server (4.4.1-2.3+deb11u1) …
Выбор ранее не выбранного пакета selinux-utils.
Подготовка к распаковке …/selinux-utils_3.1-3_amd64.deb …
Распаковывается selinux-utils (3.1-3) …
Выбор ранее не выбранного пакета policycoreutils.
Подготовка к распаковке …/policycoreutils_3.1-3_amd64.deb …
Распаковывается policycoreutils (3.1-3) …
Настраивается пакет selinux-utils (3.1-3) …
Настраивается пакет policycoreutils (3.1-3) …
Настраивается пакет libisccfg-export163 (1:9.11.19+dfsg-2.1) …
Настраивается пакет libirs-export161 (1:9.11.19+dfsg-2.1) …
Настраивается пакет isc-dhcp-server (4.4.1-2.3+deb11u1) …
Generating /etc/default/isc-dhcp-server...
invoke-rc.d: policy-rc.d denied execution of start.
Обрабатываются триггеры для libc-bin (2.31-13+deb11u5) …
Обрабатываются триггеры для man-db (2.9.4-2) …
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
DHCP server
Конфигурации:
Проверка конфигураций на корректность:
Код: Выделить всё
olej@esprimop420:~$ ip l sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 90:1b:0e:2b:fe:3a brd ff:ff:ff:ff:ff:ff
Код: Выделить всё
root@esprimop420:/etc/default# tail -n3 /etc/default/isc-dhcp-server
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp3s0"
#INTERFACESv6="enp3s0"
Код: Выделить всё
root@esprimop420:/etc# ls -l /etc/dhcp/dhcpd*.conf
-rw-r--r-- 1 root root 3331 окт 4 2022 /etc/dhcp/dhcpd6.conf
-rw-r--r-- 1 root root 3496 окт 4 2022 /etc/dhcp/dhcpd.conf
Код: Выделить всё
olej@esprimop420:~$ grep -v ^# /etc/dhcp/dhcpd.conf | grep -v ^$
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.3;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.3,8.8.4.4,1.1.1.1;
range 192.168.1.25 192.168.1.35;
range 192.168.1.240 192.168.1.250;
}
Код: Выделить всё
root@esprimop420:/etc/dhcp# which dhcpd
/usr/sbin/dhcpd
Код: Выделить всё
root@esprimop420:/etc/dhcp# dhcpd -t -cf /etc/dhcp/dhcpd.conf
Internet Systems Consortium DHCP Server 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
DHCP server
Запуск:
Код: Выделить всё
olej@esprimop420:~$ sudo systemctl start isc-dhcp-server
Код: Выделить всё
olej@esprimop420:~$ sudo systemctl status isc-dhcp-server
● isc-dhcp-server.service - LSB: DHCP server
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Active: active (running) since Sun 2023-04-23 13:33:10 EEST; 17s ago
Docs: man:systemd-sysv-generator(8)
Process: 14925 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 14232)
Memory: 4.4M
CPU: 42ms
CGroup: /system.slice/isc-dhcp-server.service
└─14941 /usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf enp3s0
апр 23 13:33:08 esprimop420 systemd[1]: Starting LSB: DHCP server...
апр 23 13:33:08 esprimop420 isc-dhcp-server[14925]: Launching IPv4 server only.
апр 23 13:33:08 esprimop420 dhcpd[14941]: Wrote 0 leases to leases file.
апр 23 13:33:08 esprimop420 dhcpd[14941]: Server starting service.
апр 23 13:33:10 esprimop420 isc-dhcp-server[14925]: Starting ISC DHCPv4 server: dhcpd.
апр 23 13:33:10 esprimop420 systemd[1]: Started LSB: DHCP server.
Код: Выделить всё
olej@esprimop420:~$ ps -A | grep dhcpd
14941 ? 00:00:00 dhcpd
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
DHCP server
Любопытная статья про DHCP: Что ты такое, dhclient?...
Её вполне стоит ... пробежать по диагонали (читать всё не обязательно).
И если пропустить и отбросить в сторону все традиционные понты:
Это - (внимание!) про традиционный IPv4:
Насколько всё принципиально по-другому
Её вполне стоит ... пробежать по диагонали (читать всё не обязательно).
И если пропустить и отбросить в сторону все традиционные понты:
Но там есть некоторые очень любопытные заключения найденные экспериментально...... мы тут в Яндексе придумали провести Тренировки по DevOps.
Это - (внимание!) про традиционный IPv4:
А вот - про IPv6:А всё очень просто. DHCP работает в тот момент, когда сети на хосте ещё нет. Хост не только не может нормально матчить dst-ip в свои адреса, чтобы отправить пакеты в сетевой стек, но даже броадкастный дестинейшен (широковещательный IP-адрес 255.255.255.255) не обработает, потому что нет IP-адреса.
...
В итоге, чтобы заработал скромный dhclient, он должен реализовать слой обработки Ethernet! Хуже того, он должен поддержать ещё и Token Ring (проклятое!) и FDDI (легаси!) — соответствующие файлы хедеров есть в репозитории.
Код: Выделить всё
[b]DHCPv6[/b]
DHCPv6, может, для кого-то и странный зверёк, но он есть, работает и используется (я лично DHCP Relay на стоечных коммутаторах в дата-центрах настраивал).
Так вот, друзья, для него это всё не нужно. НЕ НУЖНО! BPF, своя реализация Ethernet Framing, UDP/IP-заголовки самому крафтить. И его спокойно можно ограничить iptable /nftables.
Ведь в чём состоит основной конфликт сегодняшней истории? IP-адреса на интерфейсе нет — сетевой стек отбрасывает пакет. Как только он появляется как результат работы DHCP, dhclient может использовать стандартные механизмы Линукса, что он и делает для продления аренды IP-адреса через юникастовые сообщения, которые уже можно заблокировать.
А в IPv6 на интерфейсе всегда есть адрес — Link-Local из сети FE80::/12 . Сеть там всегда инициализирована, и сетевой стек не отбросит пакеты. А, ну ещё там броадкастов нет!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей