forum.bitel.ru http://forum.bitel.ru/ |
|
serverIdentifier http://forum.bitel.ru/viewtopic.php?f=44&t=9959 |
Страница 1 из 1 |
Автор: | alf_from_melmok [ 24 ноя 2014, 17:36 ] |
Заголовок сообщения: | serverIdentifier |
Добрый день! Подскажите пожалуйста, не могу разобраться, как-то правильно работать с DHCP опцией serverIdentifier? Схема: SE100 в режиме DHCP прокси, авторизация IPOE. Необходимо выдавать клиентам "серые" и "белые" IP адреса в зависимости от настроек категории в сервисе привязанном к договору. И при этом в зависимости от пула, как я понимаю, нужно правильно выставлять опцию serverIdentifier, и также смотреть что идет в Relay IP и в SRC IP UDP пакета. Работаем на 5.2 |
Автор: | Amir [ 24 ноя 2014, 20:10 ] |
Заголовок сообщения: | Re: serverIdentifier |
serverIdentifier вроде бы предназначен только для идентификации клиентом DHCP-сервера. Т.е. клиент шлет DISCOVER - несколько DHCP-серверов шлют ему OFFER. Клиент выбирает одного и шлет REQUEST с serverIdentifier выбранного DHCP-сервера (этот REQUEST может прийти к обоим DHCP-серверам, а обработать его должен только сервер с указанным serverIdentifier). |
Автор: | alf_from_melmok [ 25 ноя 2014, 13:54 ] |
Заголовок сообщения: | Re: serverIdentifier |
Спасибо большое за разъяснение. Я видимо не до конца понял логику работы. Где-то читал что serverIdentifier важен при RENEW state из которого некоторые DHCP-клиенты берут целевой IP-адрес DHCP-сервера для запроса на продление лизинга, который шлют юникастом. Вследствии при схеме с релеем (а в случае CLIPS на SE100 еще и проксирование DHCP запроса имеется) могут возникать проблемы. |
Автор: | Amir [ 25 ноя 2014, 15:29 ] |
Заголовок сообщения: | Re: serverIdentifier |
Да, для этого по RFC serverIdentifier тоже используется. Причем у наших клиентов по разному, видимо зависит от коммутаторов и схемы: у кого-то вроде бы RENEW вообще игнорируется, у кого-то как-то обрабатывается так, что до биллинга доходит с option82, у кого-то как-будто преобразуется в RELAY-запрос от коммутатора/циски/SE, у кого-то RENEW запросы обрабатывает биллинг. Т.е., например, у кого-то вроде бы нормально работало только при serverIdentifier=0.0.0.0, у кого-то - только при serverIdentifier=адрес InetAccess. У SE вроде есть режим, когда он сам делает leaseTime маленьким, обрабатывая частые RENEW сам (чтобы была возможность побыстрее отнять адрес при сбросе сессии), т.е. вышестоящему DHCP-серверу запросы приходят реже, чем на самом деле идет от клиента. |
Автор: | alf_from_melmok [ 25 ноя 2014, 17:39 ] |
Заголовок сообщения: | Re: serverIdentifier |
Вот у меня как раз такая ситуация сейчас - SE100 взял на себя ответ клиенту и продлил ему адрес (юникастом), а вот на InetAccess DHCP Helper CLIPS он не послал ничего. В результате InetDhcpHelperProcessor - Remove connection remove делает. Пока не нашел как в SE100 этим манипулировать. А как билингу правильно указать, что там SE100 хлопочет за него в части продления лиз? |
Автор: | Amir [ 25 ноя 2014, 17:43 ] |
Заголовок сообщения: | Re: serverIdentifier |
В случае с InetDhcpHelperProcessor - DHCP там как-бы вспомогательный. RADIUS-сессия есть - отвечает на запросы по DHCP (выдавая тот адрес, что в сессии), нет - не отвечает. Т.е. вроде как в этом случае биллингу все рано, приходил DHCP-пакет или нет. Сессию он ведет по RADIUS. |
Автор: | alf_from_melmok [ 25 ноя 2014, 18:32 ] |
Заголовок сообщения: | Re: serverIdentifier |
Сорри, ошибся, проблема оказалась не в этом. SE100 присылает Аккаунтинг-СТОП пакет с формулировкой Код: Session-Error-Msg=DHCP IP-host mismatch Session-Error-Code=196 Собственно проблема где-то в DHCP диалоге. Внимательно еще раз посмотрел на дамп и понял, что сам DHCP клиент по какой-то причине видимо игнорирует DHCP ACK от SE100, поскольку пытается запросить адрес до последнего и в финале дает широковещательно новый запрос на выдачу адреса, после чего SE100 ему говорит NACK и оправляет на биллинг Аккаунтинг-СТОП по установленной сессии. Пример DHCP ACK который игнорирует клиент. Сам клиент это DLINK DIR-615. Код: TIME: 2014-11-25 14:20:36.581 IP: 10.1.0.1 (0:30:12:17:f:4c) > 10.1.0.95 (d8:fe:e3:c8:cd:f2) OP: 2 (BOOTPREPLY) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 1 XID: 29b47563 SECS: 0 FLAGS: 0 CIADDR: 10.1.0.95 YIADDR: 10.1.0.95 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: d8:fe:e3:c8:cd:f2:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 5 (DHCPACK) OPTION: 54 ( 4) Server identifier 10.1.0.1 OPTION: 51 ( 4) IP address leasetime 900 (15m) OPTION: 1 ( 4) Subnet mask 255.255.252.0 OPTION: 3 ( 4) Routers 10.1.0.1 OPTION: 6 ( 8) DNS server 1.1.1.1,2.2.2.2 |
Автор: | Amir [ 25 ноя 2014, 18:38 ] |
Заголовок сообщения: | Re: serverIdentifier |
А OFFER на который роутер послал REQUEST ничем не отличается от ACK? Биллинг здесь участвует? Если да, что в его логах c DHCP диалогом? |
Автор: | alf_from_melmok [ 25 ноя 2014, 21:56 ] |
Заголовок сообщения: | Re: serverIdentifier |
Отличались они тем, что не было ServerIdentifier, как только DHCP Helper стал отдавать ServerIdentifier=0.0.0.0, то продление аренды заработало корректно. Не заметил как в процессе отладки у меня в конфиге ServerIdentifier оказался закомментирован. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |