Перейти к содержимому
Калькуляторы

DHCPd странная проблема (а бывают ли другие проблемы? клиенты изредка не получают IP

Доброго времени суток.

 

Есть странная проблема с некоторыми редко встречающимися клиентами с виндой

Очевидно, что если сервером пользуется несколько тыс абонентов, а проблемы у 2-3, то дело не в серверее.

Но проблема есть.

Усугубляется проблема тем что абоненты - почти как дети.

 

Итак, абонент не может получить ip

В логах сервера вижу:

dhcpd: DHCPDISCOVER from 00:0d:87:11:22:33 via 10.0.0.254: network customers-networks: no free leases

 

Сам пакет (частисно поскипано) выглядит так (получен методом телефонного общения с абонентом, и установки заранее wireshark у клиента)

Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 1
    Transaction ID: 0x0a64570a
    Seconds elapsed: 0
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 10.0.0.254 (10.0.0.254)
    Client MAC address: Elitegro_11:22:33 (00:0d:87:11:22:33)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover
        Option: (53) DHCP Message Type
        Length: 1
        Value: 01
    Option: (t=116,l=1) DHCP Auto-Configuration [TODO]
        Option: (116) DHCP Auto-Configuration [TODO]
        Length: 1
        Value: 01
    Option: (t=61,l=7) Client identifier
        Option: (61) Client identifier
        Length: 7
        Value: 01000D87112233
        Hardware type: Ethernet
        Client MAC address: Elitegro_11:22:33 (00:0d:87:11:22:33)
    Option: (t=50,l=4) Requested IP Address = 10.0.0.21
        Option: (50) Requested IP Address
        Length: 4
        Value: 0A050615
    Option: (t=12,l=5) Host Name = "maxim"
        Option: (12) Host Name
        Length: 5
        Value: 6D6178696D
    Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
        Option: (60) Vendor class identifier
        Length: 8
        Value: 4D53465420352E30
    Option: (t=55,l=11) Parameter Request List
        Option: (55) Parameter Request List
        Length: 11
        Value: 010F03062C2E2F1F21F92B
        1 = Subnet Mask
        15 = Domain Name
        3 = Router
        6 = Domain Name Server
        44 = NetBIOS over TCP/IP Name Server
        46 = NetBIOS over TCP/IP Node Type
        47 = NetBIOS over TCP/IP Scope
        31 = Perform Router Discover
        33 = Static Route
        249 = Private/Classless Static Route (Microsoft)
        43 = Vendor-Specific Information
    End Option
    Padding

 

Сервер настроен немного замысловато, т.к. обслуживает сегменты как с opt 82 так и без, конкретно к этому абоненту относиться:

(несколько возможных релев действительно присутвуют как алиасы на роутере, и явно перечислены во избежение путаницы)

        class   "10.0.0.21___0:d:87:11:22:33"
        {
         match if(
                        ( binary-to-ascii(16,  8, ":", substring(hardware,                1, 6)) = "0:d:87:11:22:33")
                        and
                        (
                        ( binary-to-ascii(10, 8, ".", packet(24, 4))             = "10.0.0.254" )
                        or
                        ( binary-to-ascii(10, 8, ".", packet(24, 4))             = "10.0.0.1" )
                        or
                        ( binary-to-ascii(10, 8, ".", packet(24, 4))             = "10.100.0.254" )
                        )
                );
        }

И соответвующий пул из одного ip

        pool    { range 10.0.0.21; allow members of "10.0.0.21___0:d:87:11:22:33"; default-lease-time 36000; max-lease-time 72000; }

Отмечу, что соседи по сегменту, отлисающиеся только маками, получают адреса нормально.

 

 

Насколько я могу судить, клиент шлет DHCPDISCOVER c установленным Requested Address. Т.е. по сути пробует продлить старую лизу, о котрой сервер уже успел забыть, или никогда не знал.

Но, это только предположение. Втоорй вариант - что у клиента с этим маком относиельно недавно был другой ip. И клиент не выполнив освобожденеи предыдущего адреса пробует получить другой.

 

Подскажите плз, куда копать?

И вообще - вопрос более общий - как сделать более информативными ошибки DHCP сервера (например, в какой класс попал клиент, и т.п.), даже если адресс не выдался.

Изменено пользователем sirmax

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И вообще - вопрос более общий - как сделать более информативными ошибки DHCP сервера (например, в какой класс попал клиент, и т.п.), даже если адресс не выдался.

как пример https://lists.isc.org/pipermail/dhcp-users/...ary/007690.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Наблюдал проблемы с приемом ответа от DHCP в юникаст у абонента, связанные с раненым на всю голову брендмауером виндовз (нужно отключать саму службу)

2. Для устранения вышеописанного у меня пакет отправляется к клиенту и юникастом и броадкастом.

Дополнительно, DHCP шлет пакет "sole server environment" (ответ инициирует полный инит-ребут настроек).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2. Для устранения вышеописанного у меня пакет отправляется к клиенту и юникастом и броадкастом.

Дополнительно, DHCP шлет пакет "sole server environment" (ответ инициирует полный инит-ребут настроек).

Подробней?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подробней?
+1

 

пс.

sirmax Из: Kharkov

itl2044 Из: Харьков

конкуренты? ))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подробней?
+1

 

пс.

sirmax Из: Kharkov

itl2044 Из: Харьков

конкуренты? ))))))

Нет, не конкуренты )

Логирование по классам сделал, спасибо voron но пока это не прояснило ситуации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

итог, кода адрес НЕ выдается, (no free leases) не срабатывает ни одна конструкция log();

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.