Назад | Перейти на главную страницу

dhcp-сервер выдает ошибку «нет бесплатной аренды», хотя должны быть доступные IP-адреса

У нас есть небольшой кластер HPC из примерно 40 машин, на которых работает Rocks Linux Distro 6.2 (на основе Centos 6.6). За последние несколько дней я пытался добавить в систему еще 6 машин. Первые 3 были успешными, но я не могу загрузить остальные 3 машины. /var/log/messages показывает ошибку "нет бесплатной аренды", как показано ниже:

[root@topaz ~]# tail -n3 /var/log/messages 
Jun 29 17:56:00 topaz dhcpd: DHCPDISCOVER from d0:bf:9c:03:3b:40 via eth0: network 10.1.0.0/16: no free leases
Jun 29 17:56:03 topaz dhcpd: DHCPDISCOVER from d0:bf:9c:03:3b:40 via eth0: network 10.1.0.0/16: no free leases
Jun 29 17:56:07 topaz dhcpd: DHCPDISCOVER from d0:bf:9c:03:3b:40 via eth0: network 10.1.0.0/16: no free leases

Все машины имеют только локальный IP-адрес, кроме внешнего интерфейса. Для назначения этим новым машинам должно быть достаточно IP-адресов. Кажется, нет никаких неожиданных машин, подключенных к сети:

[root@topaz ~]# arp -a | awk '{ print $2 }' | sort   
(10.1.255.215)
(10.1.255.216)
(10.1.255.217)
(10.1.255.218)
(10.1.255.219)
(10.1.255.220)
(10.1.255.221)
(10.1.255.222)
(10.1.255.223)
(10.1.255.224)
(10.1.255.225)
(10.1.255.226)
(10.1.255.227)
(10.1.255.228)
(10.1.255.229)
(10.1.255.230)
(10.1.255.231)
(10.1.255.232)
(10.1.255.233)
(10.1.255.234)
(10.1.255.235)
(10.1.255.236)
(10.1.255.237)
(10.1.255.238)
(10.1.255.239)
(10.1.255.240)
(10.1.255.241)
(10.1.255.242)
(10.1.255.243)
(10.1.255.244)
(10.1.255.245)
(10.1.255.246)
(10.1.255.247)
(10.1.255.248)
(10.1.255.249)
(10.1.255.250)
(10.1.255.251)
(10.1.255.252)
(10.1.255.253)
(10.1.255.254)
(193.140.197.1)
(193.140.197.110)
(193.140.197.160)
(193.140.197.30)
(193.140.197.36)

В нашем файле аренды нет записей:

[root@topaz ~]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1

server-duid "\000\001\000\001\037\006r\351x\347\321\350\031\006";

А наш файл конфигурации выглядит так:

[root@topaz ~]# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
subnet 10.1.0.0 netmask 255.255.0.0 {
        default-lease-time 1200;
        max-lease-time 1200;
        option routers 10.1.1.1;
        option subnet-mask 255.255.0.0;
        option domain-name "local";
        option domain-name-servers 10.1.1.1;
        option broadcast-address 10.1.255.255;
        option interface-mtu 1500;
        group "local" {
                host topaz-eth0 {
                        hardware ethernet 78:E7:D1:E8:19:06;
                        option host-name "topaz";
                        fixed-address 10.1.1.1;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }
                host topaz-eth2 {
                        hardware ethernet 78:E7:D1:E8:19:0A;
                        option host-name "topaz";
                        fixed-address 10.1.1.1;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }
                host topaz-eth3 {
                        hardware ethernet 78:E7:D1:E8:19:0C;
                        option host-name "topaz";
                        fixed-address 10.1.1.1;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }
                host compute-2-0-eth0 {
                        hardware ethernet 00:23:7d:9f:6f:ca;
                        option host-name "compute-2-0";
                        fixed-address 10.1.255.254;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }
                host compute-2-0-eth1 {
                        hardware ethernet 00:23:7d:a0:20:e4;
                        option host-name "compute-2-0";
                        fixed-address 10.1.255.254;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }
                host compute-0-0-eth0 {
                        hardware ethernet 1c:c1:de:76:6f:40;
                        option host-name "compute-0-0";
                        fixed-address 10.1.255.253;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }
                host compute-0-0-eth1 {
                        hardware ethernet 1c:c1:de:76:6f:44;
                        option host-name "compute-0-0";
                        fixed-address 10.1.255.253;
                        filename "pxelinux.0";
                        next-server 10.1.1.1;
                }

                (goes on like this)
}

Я не понимаю, почему я получаю эту ошибку. Любая помощь приветствуется.

Похоже, ты тоже скучаешь range определение или конкретное host запись для этих ящиков, соответствующая их MAC. Если ваши неисправные ящики не находятся в списке, который «продолжается вот так», им не будет назначен какой-либо адрес.

В вашем конфигурационном файле ISC dhcpd (опубликованном в июне 2016 г.) нет оператора диапазона. Никакая аренда не является бесплатной, потому что сервер не может найти IP-адрес в определенном диапазоне для передачи. Вам нужна строка вроде

range 10.1.42.0 10.1.49.255;

внутри блока {} подсети. Любой диапазон внутри этой подсети, который больше ничем еще не используется, будет работать. Если у вас есть несколько блоков подсети, для каждого из них требуется определение диапазона внутри него.

У меня был странный случай этой ошибки, я упомяну об этом здесь, если это кому-то поможет.

Мой dhcp3 привязан к двум адаптерам. Я не мог заставить DHCP работать на одном из них. Оказывается, у меня был старый резервный MAC-адрес для клиентского компьютера. Поскольку это резервирование предназначалось для другой подсети, DHCP мог найти только заранее определенный IP-адрес, который был вне диапазона для этого адаптера, и поэтому дал это no free leases ошибка.