Jump to content
Калькуляторы

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 сервера (например, в какой класс попал клиент, и т.п.), даже если адресс не выдался.

Edited by sirmax

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
2. Для устранения вышеописанного у меня пакет отправляется к клиенту и юникастом и броадкастом.

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

Подробней?

Share this post


Link to post
Share on other sites
Подробней?
+1

 

пс.

sirmax Из: Kharkov

itl2044 Из: Харьков

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

Share this post


Link to post
Share on other sites
Подробней?
+1

 

пс.

sirmax Из: Kharkov

itl2044 Из: Харьков

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this