sirmax Posted November 26, 2009 Posted November 26, 2009 (edited) Доброго времени суток. Есть странная проблема с некоторыми редко встречающимися клиентами с виндой Очевидно, что если сервером пользуется несколько тыс абонентов, а проблемы у 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 November 26, 2009 by sirmax Вставить ник Quote
voron Posted November 26, 2009 Posted November 26, 2009 И вообще - вопрос более общий - как сделать более информативными ошибки DHCP сервера (например, в какой класс попал клиент, и т.п.), даже если адресс не выдался. как пример https://lists.isc.org/pipermail/dhcp-users/...ary/007690.html Вставить ник Quote
itl2044 Posted November 27, 2009 Posted November 27, 2009 1. Наблюдал проблемы с приемом ответа от DHCP в юникаст у абонента, связанные с раненым на всю голову брендмауером виндовз (нужно отключать саму службу) 2. Для устранения вышеописанного у меня пакет отправляется к клиенту и юникастом и броадкастом. Дополнительно, DHCP шлет пакет "sole server environment" (ответ инициирует полный инит-ребут настроек). Вставить ник Quote
Abram Posted November 27, 2009 Posted November 27, 2009 2. Для устранения вышеописанного у меня пакет отправляется к клиенту и юникастом и броадкастом.Дополнительно, DHCP шлет пакет "sole server environment" (ответ инициирует полный инит-ребут настроек). Подробней? Вставить ник Quote
a_andry Posted November 27, 2009 Posted November 27, 2009 Подробней?+1 пс. sirmax Из: Kharkov itl2044 Из: Харьков конкуренты? )))))) Вставить ник Quote
sirmax Posted November 27, 2009 Author Posted November 27, 2009 Подробней?+1 пс. sirmax Из: Kharkov itl2044 Из: Харьков конкуренты? )))))) Нет, не конкуренты )Логирование по классам сделал, спасибо voron но пока это не прояснило ситуации. Вставить ник Quote
sirmax Posted November 29, 2009 Author Posted November 29, 2009 итог, кода адрес НЕ выдается, (no free leases) не срабатывает ни одна конструкция log(); Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.