DHCP разное

Популярные сервера
DHCP client

Проверка на то, что DHCP делает renew и посмотреть время аренды можно по логам dhcpclient.

sudo grep dhclient /var/log/syslog
2019 Feb  9 13:42:27 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb  9 13:42:27 info dhclient[12271]: DHCPACK from 172.2.2.2 (xid=0x1111111111)
2019 Feb  9 13:42:30 info dhclient[12271]: bound to 172.1.1.1 -- renewal in 38785 seconds.
2019 Feb 10 00:28:55 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb 10 00:29:03 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb 10 00:29:03 info dhclient[12271]: DHCPACK from 172.2.2.2 (xid=0x1111111111)
2019 Feb 10 00:29:05 info dhclient[12271]: bound to 172.1.1.1 -- renewal in 34413 seconds.
2019 Feb 10 10:02:38 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2019 Feb 10 10:02:43 info dhclient[12271]: DHCPREQUEST on eth0 to 172.2.2.2 port 67 (xid=0x1111111111)
2020 Feb 10 10:02:43 info dhclient[12271]: DHCPACK from 172.2.2.2 (xid=0x1111111111)
2020 Feb 10 10:02:45 info dhclient[12271]: bound to 172.1.1.1 -- renewal in 38382 seconds.

 

DHCP ISC LOGS/Config/START
cat /var/lib/dhcp/dhcpd.leases
nano /etc/dhcp/dhcpd.conf
sudo service isc-dhcp-server status
Пример настройки выдачи DNS серверов Yandex.
option domain-name-servers 77.88.8.88, 77.88.8.2;
Пример сохраняемой на DHCP сервере информации при запросе IP.
lease 10.3.1.129 {
starts 3 2020/02/09 10:45:42;
ends 4 2020/02/10 10:45:42;
cltt 3 2020/02/09 10:45:42;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet f0:79:59:36:a3:65;
uid "\377Y6\243e\000\001\000\001)q\300\342\360yY6\243e";
option agent.circuit-id 0:4:0:3:0:15;
option agent.remote-id 0:6:1c:5f:2b:16:ae:d8;
client-hostname "serv-01-02";
}

 

DHCP options

Опции DHCP используются для авто-провижнинга. Это могут быть разные устройства – VOIP телефоны (option 150 с указанием адреса TFTP сервера для IP phones), точки доступа и даже коммутаторы на базе Linux.

Первая загрузка в Cumulus Linux, определяется наличие скриптов настройки через опцию 239 DHCP. Если в ответ получается URL адрес, то по нему запрашивается скрипт, в нем разыскивается CUMULUS-AUTOPROVISIONING и скрипт запускается от root. Поддерживаются Bash, Ruby, Perl, Python.
DHCP CONFLICT IP
DHCP SERVER PING
Можно включить на сервере ping-check, недостаток в + секунде на выдачу. При этом в случае если DHCP увидит, что хост доступен – он временно (по умолчанию 24 часа) вынесет IP из пула и пометит его как abandoned.
ping-check
https://linux.die.net/man/5/dhcpd.conf
http://www.ipamworldwide.com/ipam/dhcp-server-params.html

ping-check flag; - when flag = true the DHCP server will ping the address to be offered to a client before issuing the offer. If no response is received the offer is delivered; otherwise the address is abandoned and no response is sent to the client.

ping-timeout seconds; - the default timeout for the ping-check parameter is one second. An alternative timeout value may be specified using this parameter statement.

The lease will remain abandoned for a minimum of abandon-lease-time seconds. If not defined, the default abandon lease time is 86400 seconds (24 hours).
DHCP использует ARP для защиты от конфликта IP

Как минимум два использования ARP для защиты от конфликта:

  • сервер предварительно делает arp request с попыткой резолва IP, который собирается выдать. Делается, если сервер находится в одной подсети с клиентом, которому лизу выдает.
  • клиент делает три garp после получения IP

Пример дампа:

Cisco CNR особенности

Узнал пару новых вещей, расширяя забитый пул для одного из сегментов сети:

  • в случае CNR (или по крайнем мере нашей реализацией взаимодействия с ним) нельзя просто увеличить маску сети для сегмента, несмотря на то, что следующая сеть свободна. Если изменить маску, на DHCP дропаются все старые лизы и DHCP пул просто пересоздастся. Поэтому проще работать по стандартной схеме – вынести текущую сеть как secondary, а новую, с большой маской, настроить как primary (разумеется, предварительно добавив на сервер). В таком случае прерывания нет или оно минимально – при перевешивании primary -> secondary у меня не прервался даже telnet.
  • 10% пула по умолчанию уходит в резерв, поэтому выдача IP идет не с 1-го адреса. Нужно это для failover сервера, в случае падения основного. Основной с failover синхронизятся раз в час и чтобы избежать конфликтов для лиз, которые выдались после синхронизации, failover сначала выдает IP из этого резервного пула. Для многих сетей это удобно и тем, что первые адреса диапазона зачастую занимаются под сервера/юр. лиц.
Дамп трафика

flow-graph-1.pcapng

Leave a Reply