forum.bitel.ru
http://forum.bitel.ru/

DHCP и проблемы с некоторыми клиентами
http://forum.bitel.ru/viewtopic.php?f=44&t=7024
Страница 1 из 2

Автор:  borisk [ 30 июл 2012, 20:45 ]
Заголовок сообщения:  DHCP и проблемы с некоторыми клиентами

Добрый день!

Заметил проблему переполучения адреса у некоторых клиентов, например NetGear JNWR2000. Суть проблемы:
Клиент шлёт DHCP Discover с dhcp option 50 - Requested IP Address в которой клиент указывает свой старый адрес, который он хочет получить. Наш DHCP сервер хочет назначить ему другой адрес и шлет соответствующий DHCP Offer, на что клиент отвечает DHCP Decline и снова шлет DHCP Discover и так до бесконечности. Это баг клиента, исправить его практически нереально, перепробовал уже все возможные прошивки от Netgear. Всякие xxWRT на такое железо не ставятся, а железяк таких много. Мне думается, что даже по задумке DHCP протокола мы в такой ситуации сначала должны выдать DHCP NAK, а уже потом, когда придет нормальный DHCP Discover без требуемого адреса - выдавать то, что мы хотим.

Автор:  borisk [ 30 июл 2012, 21:16 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

А может быть проблема более странная, чем я думаю. Проблема именно с NetGear JNWR2000 роутерам. Привожу 2 дампа с одним и тем же Netgear. Первый дамп сделан с ISC-DHCP сервером, второй с BGBilling. Я между ними разницы не нашел и не понимаю почему во втором случае Netgear адрес не получает. Пробовали сбрасывать в заводские настройки - не помогает. Windows клиент на этом же порту абсолютно прекрасно получает адрес как от ISC-DHCP, так и от BGBilling.

Файлы на самом деле не текстовые, а бинарные, от tcpdump.

Вложения:
dhcpbad3.txt [1.08 КБ]
Скачиваний: 590
dhcpgood.txt [2.65 КБ]
Скачиваний: 585

Автор:  Amir [ 01 авг 2012, 18:38 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Похоже, что все-таки не хочет новый IP-адрес получать.
Может быть в его логах можно посмотреть, что ему не нравится?

Автор:  Amir [ 01 авг 2012, 18:41 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Цитата:
Мне думается, что даже по задумке DHCP протокола мы в такой ситуации сначала должны выдать DHCP NAK, а уже потом, когда придет нормальный DHCP Discover без требуемого адреса - выдавать то, что мы хотим.
По протоколу, на DHCP-Offer вроде бы NAK не шлется, только на DHCP-Request.

Автор:  Amir [ 01 авг 2012, 18:51 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Цитата:
When a server receives a DHCPDISCOVER message from a client, the
server chooses a network address for the requesting client. If no
address is available, the server may choose to report the problem to
the system administrator. If an address is available, the new address
SHOULD be chosen as follows:

o The client's current address as recorded in the client's current
binding, ELSE

o The client's previous address as recorded in the client's (now
expired or released) binding, if that address is in the server's
pool of available addresses and not already allocated, ELSE

o The address requested in the 'Requested IP Address' option, if that
address is valid and not already allocated, ELSE

o A new address allocated from the server's pool of available
addresses; the address is selected based on the subnet from which
the message was received (if 'giaddr' is 0) or on the address of
the relay agent that forwarded the message ('giaddr' when not 0).

As described in section 4.2, a server MAY, for administrative
reasons, assign an address other than the one requested, or may
refuse to allocate an address to a particular client even though free
addresses are available.

Note that, in some network architectures (e.g., internets with more
than one IP subnet assigned to a physical network segment), it may be
the case that the DHCP client should be assigned an address from a
different subnet than the address recorded in 'giaddr'. Thus, DHCP
does not require that the client be assigned as address from the
subnet in 'giaddr'. A server is free to choose some other subnet,
and it is beyond the scope of the DHCP specification to describe ways
in which the assigned IP address might be chosen.

Автор:  borisk [ 01 авг 2012, 20:50 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

1) Увы, у этой железки никаких логов я не нашел в стандартной прошивке, а другой на нее нет. Более того - его ресетили в заводские настройки - ситуация не меняется. И вот это уже более чем странно
2) А при чем здесь DHCP Offer? Нам клиент шлет DHCP Request с адресом который он хочет, вот на него и предлагаю слать DHCP NAK
3) Да я согласен что ваш сервер ведет себя правильно, мне просто непонятно что за засада такая с этим нетгиром

Автор:  Amir [ 02 авг 2012, 11:59 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Цитата:
2) А при чем здесь DHCP Offer? Нам клиент шлет DHCP Request с адресом который он хочет, вот на него и предлагаю слать DHCP NAK
Так в логах же как раз начинается с Offer. А на DHCP-Request не с тем IP InetAccess должен отвечать NAK'ом.

Автор:  borisk [ 02 авг 2012, 13:04 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Как с offer? Вот открыл dhcpbad3 - вижу последовательность:
DHCP Discover
DHCP Offer
DHCP Decline

Вот прикрепил еще один пример. Там более длинная последовательность discover/offer/decline и ни одного NAK

Вложения:
dhcpbad2.txt [12.86 КБ]
Скачиваний: 571

Автор:  Amir [ 02 авг 2012, 13:10 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Не то написал - имел ввиду Discover - он как раз в начале.
Вы говорите что клиент шлет Request - на него Access должен слать NAK - сейчас так и должно работать.
В логах нет Request, только Discover - Offer.

Автор:  borisk [ 02 авг 2012, 14:25 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Ясно. Но на самом деле это нас не приблизило к решению загадки :) Есть идеи что еще можно попробовать, или может быть еще какие-то логи попытаться собрать чтобы понять почему Netgear присылает decline?

Автор:  Amir [ 02 авг 2012, 15:24 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

А если его перезагрузить он начинает принимать новый адрес?

Автор:  borisk [ 02 авг 2012, 17:48 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Нет. Ни перезагрузка, ни сброс по дефолту не помогают. Адрес он принимать отказывается. Причем с ISC-DHCP сервера адрес он получает на ура. Ноутбук с Windows, подключенный к этому же порту прекрасно получает адрес как с ISC так и с вашего сервера.

Автор:  Amir [ 06 авг 2012, 14:12 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Цитата:
Причем с ISC-DHCP сервера адрес он получает на ура.
В логах с ISC, которые присылали, вроде бы нет смены адреса с одной подсети на другую.

Автор:  borisk [ 09 авг 2012, 20:04 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Уезжал, сорри. Еще раз акцентирую внимание что данное устройство (JNWR2000) вообще ни под каким соусом не хочет получать любой адрес от BG (даже сброшенный по дефолту). В общем ладно, я вернулся, засяду за новые эксперименты и постараюсь привести более детальный отчет.

Автор:  borisk [ 16 авг 2012, 00:00 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Добрый день!
Я кажется понял в чем проблема. Смотрите, по каким-то причинам клиент шлет два DISCOVER пакета подряд с одинаковым XID. Сервер на оба пакета отсылает OFFER c _разными_ IP адресами, при этом, похоже, запоминает только последний предлагаемый адрес. Клиент присылает REQUEST с _первым_ назначенным адресом (с его точки зрения то правильно, xid то один). А вот сервер ему отвечает NAK (ведь он запомнил другой адрес). И так до бесконечности. Мне кажется, что сервер на один и тот же XID при DISCOVER должен возвращать один и тот же адрес, нет?


Код:
08-15/18:43:56  INFO [dhcpLstnr-p-8-t-6] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Host name{12}={���窠-��}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

08-15/18:43:56  INFO [dhcpLstnr-p-8-t-6] InetDhcpDevice - Search serv on deviceId: 38 and it's descendants; 6; by mac
08-15/18:43:56  INFO [dhcpLstnr-p-8-t-6] InetDhcpDevice - Search serv on deviceId: 38; 1; interfaceId: 0
08-15/18:43:56  INFO [dhcpLstnr-p-8-t-6] InetDhcpProcessor - InetServ found: ContractId: 154; servId: 93
        002257FB7A1C:0
        Options [] TariffModuleTreeSet [188:01.04.2011-…; ]
        Device state: 1; optionSet:
08-15/18:43:56  INFO [dhcpLstnr-p-8-t-1] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Host name{12}={���窠-��}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

08-15/18:43:56  INFO [dhcpLstnr-p-8-t-1] InetDhcpDevice - Search serv on deviceId: 38 and it's descendants; 6; by mac
08-15/18:43:56  INFO [dhcpLstnr-p-8-t-1] InetDhcpDevice - Search serv on deviceId: 38; 1; interfaceId: 0
08-15/18:43:56  INFO [dhcpLstnr-p-8-t-1] InetDhcpProcessor - InetServ found: ContractId: 154; servId: 93
        002257FB7A1C:0
        Options [] TariffModuleTreeSet [188:01.04.2011-…; ]
        Device state: 1; optionSet:
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-6] InetApplication - inetServ[id=93] balance ok: -7.03 [-10.00]
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-6] InetApplication - TariffOptionMap: {}
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-6] InetDhcpProcessor - IP not found in service. Searching in device...
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-6] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP Offer{2}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 46.22.11.67
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}
  Router{3}=46.22.11.254
  Subnet mask{1}=255.255.255.0
  DNS{6}={5040150150401001}
  IP Address Lease Time{51}=900
  Server Identifier{54}={50401004}
  Domain{15}=tagnet.hn

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-1] InetApplication - inetServ[id=93] balance ok: -7.03 [-10.00]
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-1] InetApplication - TariffOptionMap: {}
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-1] InetDhcpProcessor - IP not found in service. Searching in device...
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-1] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP Offer{2}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 46.22.11.68
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}
  Router{3}=46.22.11.254
  Subnet mask{1}=255.255.255.0
  DNS{6}={5040150150401001}
  IP Address Lease Time{51}=900
  Server Identifier{54}={50401004}
  Domain{15}=tagnet.hn

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-5] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Requested IP Address{50}=46.22.11.67
  Server Identifier{54}={50401004}
  Host name{12}={���窠-��}
  {81}={0000009EABA8E7AAA02D8F8A}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-5] InetDhcpDevice - Search serv on deviceId: 38 and it's descendants; 6; by mac
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-5] InetDhcpDevice - Search serv on deviceId: 38; 1; interfaceId: 0
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-5] InetDhcpProcessor - InetServ found: ContractId: 154; servId: 93
        002257FB7A1C:0
        Options [] TariffModuleTreeSet [188:01.04.2011-…; ]
        Device state: 1; optionSet:
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-5] InetDhcpProcessor - requestedIP=/46.22.11.67
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-5] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP NAK{6}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-8] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Requested IP Address{50}=46.22.11.67
  Server Identifier{54}={50401004}
  Host name{12}={���窠-��}
  {81}={0000009EABA8E7AAA02D8F8A}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-8] InetDhcpDevice - Search serv on deviceId: 38 and it's descendants; 6; by mac
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-8] InetDhcpDevice - Search serv on deviceId: 38; 1; interfaceId: 0
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-8] InetDhcpProcessor - InetServ found: ContractId: 154; servId: 93
        002257FB7A1C:0
        Options [] TariffModuleTreeSet [188:01.04.2011-…; ]
        Device state: 1; optionSet:
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-8] InetDhcpProcessor - requestedIP=/46.22.11.67
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-8] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP NAK{6}
htype: 1, hlen: 6, hops: 1
xid: 2521119, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: -1992932584, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Host name{12}={���窠-��}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetDhcpDevice - Search serv on deviceId: 38 and it's descendants; 6; by mac
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetDhcpDevice - Search serv on deviceId: 38; 1; interfaceId: 0
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetDhcpProcessor - InetServ found: ContractId: 154; servId: 93
        002257FB7A1C:0
        Options [] TariffModuleTreeSet [188:01.04.2011-…; ]
        Device state: 1; optionSet:
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: -1992932584, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Host name{12}={���窠-��}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetDhcpDevice - Search serv on deviceId: 38 and it's descendants; 6; by mac
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetDhcpDevice - Search serv on deviceId: 38; 1; interfaceId: 0
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetDhcpProcessor - InetServ found: ContractId: 154; servId: 93
        002257FB7A1C:0
        Options [] TariffModuleTreeSet [188:01.04.2011-…; ]
        Device state: 1; optionSet:08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetApplication - inetServ[id=93] balance ok: -7.03 [-10.00]
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetApplication - TariffOptionMap: {}
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetDhcpProcessor - IP not found in service. Searching in device...
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-4] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP Offer{2}
htype: 1, hlen: 6, hops: 1
xid: -1992932584, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 46.22.11.69
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}
  Router{3}=46.22.11.254
  Subnet mask{1}=255.255.255.0
  DNS{6}={5040150150401001}
  IP Address Lease Time{51}=900
  Server Identifier{54}={50401004}
  Domain{15}=tagnet.hn
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetApplication - inetServ[id=93] balance ok: -7.03 [-10.00]
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetApplication - TariffOptionMap: {}
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetDhcpProcessor - IP not found in service. Searching in device...
08-15/18:43:57  INFO [dhcpLstnr-p-8-t-2] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP Offer{2}
htype: 1, hlen: 6, hops: 1
xid: -1992932584, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 46.22.11.70
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}
  Router{3}=46.22.11.254
  Subnet mask{1}=255.255.255.0
  DNS{6}={5040150150401001}
  IP Address Lease Time{51}=900
  Server Identifier{54}={50401004}
  Domain{15}=tagnet.hn

08-15/18:43:57  INFO [dhcpLstnr-p-8-t-3] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: -1992932584, secs: 0, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.11.254
Client MAC: {0013D42262E7}
  {61}={010013D42262E7}
  Requested IP Address{50}=46.22.11.69
  Server Identifier{54}={0A800002}
  Host name{12}={���窠-��}
  {81}={0000009EABA8E7AAA02D8F8A}
  {60}={4D53465420352E30}
  Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, 43}
  Agent information{82}=
    sub{1}={00040FDD0000}
    sub{2}={0006002257FB7A1C}

Автор:  Amir [ 16 авг 2012, 15:47 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Выложили обновление, попробуйте.
Перед обновлением, на всякий случай, сделайте бекап старых библиотек.

Автор:  borisk [ 17 авг 2012, 15:06 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Работает. Спасибо!

Автор:  borisk [ 24 авг 2012, 19:44 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Теперь глюк с Zyxel.
Код:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: 9930, secs: 0, flags: 0
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.7.254
Client MAC: {F0DEF173DAE2}
  {61}={01F0DEF173DAE2}
  Host name{12}={NBG334WEE^@}
  Agent information{82}=
    sub{1}={00040FD00005}
    sub{2}={00064001C6CB1BDE}

Message type: BOOT_RESPONSE
Dhcp message type: DHCP Offer{2}
htype: 1, hlen: 6, hops: 1
xid: 9930, secs: 0, flags: 0
Client IP: 0.0.0.0
Your IP: 46.22.7.162
Server IP: 0.0.0.0
Relay IP: 46.22.7.254
Client MAC: {F0DEF173DAE2}
  Agent information{82}=
    sub{1}={00040FD00005}
    sub{2}={00064001C6CB1BDE}
  Router{3}=46.22.7.254
  Subnet mask{1}=255.255.255.0
  DNS{6}={5040150150401001}
  IP Address Lease Time{51}=900
  Server Identifier{54}={50401004}
  Domain{15}=tagnet.hn
  {2}={00005460}

Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: 13930, secs: 0, flags: 0
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 46.22.7.254
Client MAC: {F0DEF173DAE2}
  {61}={01F0DEF173DAE2}
  Requested IP Address{50}=46.22.7.162
  Server Identifier{54}={50401004}
  Host name{12}={NBG334WEE^@}
  Parameter request list{55}={1, 3, 6, 15, 33, 44, 46, 47, 57, 121, -7}
  Agent information{82}=
    sub{1}={00040FD00005}
    sub{2}={00064001C6CB1BDE}



Как мы видим - DHCP Request клиент присылает совсем с другим XID, не тот который был при DHCP Discover. Специально проверил - такого XID как в DHCPRequest ранее от клиента не прилетало. Как результат - сервер присылает ему NAK, и клиент не может получить адрес :(

Автор:  borisk [ 24 авг 2012, 20:14 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Видимо от XID надо вообще отвязываться, и запоминать связку MAC + IP

Автор:  Amir [ 25 авг 2012, 16:59 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

В RFC:
Цитата:
DHCPREQUEST: 'xid' from server DHCPOFFER message

И для Zyxel нагуглил:
Цитата:
ZyWALL firmware: Modifications in V 4.04(XU.9)b1 | 12/25/2009
3. [BUG FIX] SPR ID: 091201018
Symptom:
Device can't get IP from certain DHCP server.
Condition:
(1) Device can't get IP from certain DHCP server.
(2) It's observed the DHCPREQUEST message contains different 'xid' from
the DHCPOFFER.

Автор:  borisk [ 25 авг 2012, 18:59 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Дело в том, что для железки клиента в новом FW не упоминается решение этой проблемы. Хорошо, в понедельник клиент принесет железку, попробую обновить FW. Если что - буду списываться с Zyxel и пытаться решить проблему там.

P.S. А как тогда работает ISC-DHCP? Дело в том, что на нем клиент адрес получал.

Автор:  snark [ 27 авг 2012, 12:22 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Amir писал(а):
В RFC:
Цитата:
DHCPREQUEST: 'xid' from server DHCPOFFER message

borisk писал(а):
А как тогда работает ISC-DHCP? Дело в том, что на нем клиент адрес получал.

А вот это интересно, т.к. продукты ISC позиционируются как RFC compliant и вообще чуть ли не эталонная реализация.

Автор:  Amir [ 27 авг 2012, 14:11 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Похоже, что там внимания на xid не обращают. Выложили обновление, в корневом устройстве нужно указать dhcp.xid=0 (и перезапустить Access), попробуйте.
Не забудьте сделать бекап предыдущих библиотек.

Автор:  borisk [ 27 авг 2012, 17:33 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

В корневом котором? Которое bgaccess или корневом по отношению к коммутатору клиента?

Автор:  Amir [ 27 авг 2012, 17:36 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

bgaccess.

Автор:  borisk [ 27 авг 2012, 17:49 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Упс... не запускается bgaccess
Код:
Java Runtime: Sun Microsystems Inc. OpenJDK 64-Bit Server VM [1.6.0_32] /usr/local/openjdk6/jre
  Runtime name: 36914@bill.tagnet.ru
  Java endorsed dirs: /usr/local/bgbill/bgaccess/lib/endorsed
  OS: FreeBSD 9.0-RELEASE [amd64], file.encoding: UTF8, user.name: root
  Heap sizes: current=79680k  free=78847k  max=233024k
Starting CommandPortListener on port 1951
Aug 27, 2012 5:45:20 PM org.apache.activemq.transport.failover.FailoverTransport doReconnect
INFO: Successfully connected to tcp://mq.tagnet.ru:61616
Error on node dhcpProcessor
Error on node dhcp
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at ru.bitel.bgbilling.kernel.application.server.Application.processBean(Application.java:471)
        at ru.bitel.bgbilling.kernel.application.server.Application.process(Application.java:286)
        at ru.bitel.bgbilling.kernel.application.server.Application.processChildren(Application.java:688)
        at ru.bitel.bgbilling.kernel.application.server.Application.process(Application.java:277)
        at ru.bitel.bgbilling.kernel.application.server.Application.processChildren(Application.java:688)
        at ru.bitel.bgbilling.kernel.application.server.Application.application(Application.java:218)
        at ru.bitel.bgbilling.kernel.application.server.Application.<init>(Application.java:154)
        at ru.bitel.bgbilling.kernel.application.server.Application.main(Application.java:742)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at ru.bitel.common.bootstrap.Boot.boot(Boot.java:129)
        at ru.bitel.common.bootstrap.Boot.main(Boot.java:178)
Caused by: java.lang.NullPointerException
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntimeMap.get(InetDeviceRuntimeMap.java:74)
        at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor.<init>(InetDhcpProcessor.java:62)
        ... 18 more

Автор:  borisk [ 27 авг 2012, 17:50 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

И это я еще не прописывал dhcp.xid=0, просто обновил приложение

Автор:  borisk [ 27 авг 2012, 17:53 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

и еще логи
Код:
access 08-27/17:45:20  INFO [main] InetApplication - rootDeviceId=1
access 08-27/17:45:20  INFO [main] Setup - Load config for mid=14
access 08-27/17:45:21  INFO [main] InetOptionRuntimeMap - Loading inetOptionRuntimeMap for moduleId:14
script 08-27/17:45:21  INFO [main] ScriptEventListener - Starting ScriptEventListener...
script 08-27/17:45:21  INFO [main] ScriptEventListener - Relinking script functions.
script 08-27/17:45:21  INFO [main] ScriptEventListener - Skip event type bitel.billing.server.script.bean.event.ContractWebLoginEvent. Class not found for this application.
script 08-27/17:45:21  INFO [main] ScriptEventListener - Linked Function [id:1; title:Оплата смены тарифа (Домашний безлимит)]
script 08-27/17:45:21  INFO [main] ScriptEventListener - Starting DynamicScriptEventListener...
access 08-27/17:45:21  INFO [Thread-12] Application - Stopping ru.bitel.bgbilling.modules.inet.access.Access@4adf9095
 08-27/17:45:21  INFO [Thread-12] EventProcessor - Shutdown EventProcessor...

Автор:  Amir [ 27 авг 2012, 18:00 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Выложили обновление.

Автор:  RollaN [ 23 окт 2012, 12:06 ]
Заголовок сообщения:  Re: DHCP и проблемы с некоторыми клиентами

Добрый день! Также заметили проблему с некоторыми клиентами.
Проблема заключается в том, что некоторым клиентам прилетает только IP без маски и шлюза.
Прикрепил кусок tcpdump, в котором хорошо видно, что dhcp шлёт
клиенту только IP, без маски и шлюза. В приложении 2 файлика:
wrong.cap - дамп сессии из tcpdump,
wrong.txt - текстовая расшифровка
Запрос, при котором наблюдается глюк отличается от остальных только в "Option: (60) Vendor class identifier". Inet обновлен до последней версии.
Есть какие то идеи?
Спасибо.

Вложения:
tcpdump.zip [1.39 КБ]
Скачиваний: 222

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/