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

isc dhcpd и клиенты "перетыкальщики", кто как решает проблему

да и из этого вытекает перезатачивание биллинга и все в этом духе.
Если читать документацию по диагонали - да.

В реальности в биллинг на авторизацию уходит запрос уже с логином-паролем без какой-либо лишней информации, от биллинга нразвание тарифа в виде длинной строчки (описание сервисов)

и потом аккаунтинг. Т.е отличия от простого vpdn минимальны.

На текущий момент у нас 5 радиус-серверов. 2-аккаунтинг биллинга, 2-авторизация биллинга и один никак не связанный с биллингом - аутентификация, обеспечивающий прозрачный автологин.

Для пользователя все выглядит как будто интернет есть всегда. У нас же сессия открывается на время, пока есть трафик. 5 мин таймаут отстутствия трафика от клиента - сессия в биллинге завершается.

 

Нам сложнее было сделать механизм локаций - каждый логин имеет строго определенные время и место их действия - например реализовано покрытие WiFi значительно площади. Механизм идентичен, однако за возможность доступа необходимо платить большую абонентку.

 

Negator, назовите хоть одни грабли.

Edited by Дегтярев Илья

Share this post


Link to post
Share on other sites

Мой биллинг писался исключительно под ipoe, никаких радиусов, vpdn там и в помине не было. Подсчет трафика выполняется через netflow, выполняется управление таблицами ipfw на шейпере/контроллере доступа. В биллинге прописаны статические ip адреса клиентов, учет трафика идет именно по ним, а не по логину. На управление контроллеру выдается строка из списка клиентских ip, значения входящей и исходящей скорости, флаг, на основании которого происходит либо шейпинг, либо просто allow.

Все это переделывать под vpdn like нет никакого желания и возможности, исходники основного ядра были похерены еще года три назад, все хотелки и прочее решается моим программером с помощью надстроек над ядром, но оно абсолютно не предназначено для vpdn. В данном случае придется пилить радиус для прожовывания им бд моего биллинга + трансформировать аккаунтинг в netflow пакеты и кормить их ядру.

Теоретически, радиус прикрутить сюда можно, но работы с динамическими ip все равно не будет, либо же во время иницализации сессии, ip должен быть передан в бд биллинга, и при завершении оттуда должен быть убран, при этом данные по трафику в виде netflow должны поступить до этого самого убирания, иначе будут косяки с подсчетом.

 

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

 

 

Edited by dsk

Share this post


Link to post
Share on other sites

Изначальный вопрос был "кто как решает проблему".

 

Если ip по определению закреплен за пользователем, то вам прямая дорога к модулю фрирадиуса.

Но за такое все-таки надо отрывать руки: фактически привязывать счет абонента к кабельку в стояке.

Монтажники ни разу не путали местами кабеля/порты? Через какое время пльзователь замечал не свой тариф?

Edited by Дегтярев Илья

Share this post


Link to post
Share on other sites

Блин, да предложите же кто-нибудь человеку сделать НОРМАЛЬНЫЙ dhcp-сервер! Хотя бы на основе FreeRADIUS. На перле написать один скрипт - и всё, достаточно.

ISC DHCP - это, конечно, круто и вообще. Но стоит помнить, что это reference implementation, и он далеко не всегда идеален. Тем более, как reference - недостаточно гибкий. RFC не запрещает ведь удалять лизы. Дык пусть сервер и удаляет, если надо.

 

P.S.: Для себя пишу сервер на основе FreeRADIUS. Всё, конечно, понимаю, сервер мой не до конца будет соответствовать RFC и так далее, но зато мне не нужно костылей типа генерации конфига и передергивания сервера писать.

Share this post


Link to post
Share on other sites

Блин, да предложите же кто-нибудь человеку сделать НОРМАЛЬНЫЙ dhcp-сервер!

Хотя бы на основе FreeRADIUS. На перле написать один скрипт - и всё, достаточно.

FreeRADIUS в качестве обёртки для perl-сценария выглядит несколько избыточно.

Не проще будет заменить его на examples/dhcpd.pl из Net::DHCP?

Share this post


Link to post
Share on other sites

Но за такое все-таки надо отрывать руки: фактически привязывать счет абонента к кабельку в стояке.

Монтажники ни разу не путали местами кабеля/порты? Через какое время пльзователь замечал не свой тариф?

Было один раз, монтажник криво подписал порты и при замене свича накосячил, за пару дней все вернули на место. А так с этим все жестко и четко.

 

Я тоже думал насчет фрирадиуса, просто стало интересно, использует ли кто в продакшене, есть ли подводные камни и т.д.

Share this post


Link to post
Share on other sites

Блин, да предложите же кто-нибудь человеку сделать НОРМАЛЬНЫЙ dhcp-сервер!

Хотя бы на основе FreeRADIUS. На перле написать один скрипт - и всё, достаточно.

FreeRADIUS в качестве обёртки для perl-сценария выглядит несколько избыточно.

Не проще будет заменить его на examples/dhcpd.pl из Net::DHCP?

Ох блииин... Как говорится - you'we made my day. Не видел. Плохо, видимо, смотрел :).

Share this post


Link to post
Share on other sites

Написал патч, позволяющий выдавать адрес на порту независимо от мака.

Удобно при использовании с dhcp relay с привязкой к порту.

Режим включается опционально с помощью ключа к бинарнику dhcpd.

Кому что надо, обращайтесь на асю 200-128-700.

 

PS Господа авторы исходников пару дней активно икали )

Edited by (= dd =)

Share this post


Link to post
Share on other sites

Собственно в начале октября прикрутил dhcp к freeradius. Получение нужных параметров для клиента сделано через rml_perl

Работает хорошо, но падает из-за иногда возникающих ошибок в самом сценарии perl (ну нет у нас нормальных кодеров на перле).

Поэтому прикрутили авторестартер и все ок.

Плюсы, я могу выдать какие мне надо параметры клиенту и когда мне надо (по мак, по opt82, по любому другому параметру который есть в dhcp пакете).

Минусы, хотелось бы протестить производительность, да нечем, субьективно держит порядка 100 запросов в секунду. Ну и все таки перл не такой шустрый как скомпилированный C/C++.

 

Соотвественно т.к. прослойка между биллингом и dhcp-freeradius написана самостоятельно, то при условии минимальной адекватности биллинга, можно сделать все что угодно.

Edited by shicoy

Share this post


Link to post
Share on other sites

Написал патч, позволяющий выдавать адрес на порту независимо от мака.

Удобно при использовании с dhcp relay с привязкой к порту.

Режим включается опционально с помощью ключа к бинарнику dhcpd.

Кому что надо, обращайтесь на асю 200-128-700.

 

PS Господа авторы исходников пару дней активно икали )

Давай лучше суда кому надо будет заберет, ну и тестировать ведь еще надо )))

Share this post


Link to post
Share on other sites

да вот тоже интересна связка dhcp-радиуса с биллингом.

сейчас скрипт автоматом генерит выборку из биллинга и формирует конфиг dhcpd.conf для ISC dhcpd

Share this post


Link to post
Share on other sites

да вот тоже интересна связка dhcp-радиуса с биллингом.

сейчас скрипт автоматом генерит выборку из биллинга и формирует конфиг dhcpd.conf для ISC dhcpd

А дефолт-лиз-тайм и макс-лиз-тайм какие указываете?

Share this post


Link to post
Share on other sites

Написал патч, позволяющий выдавать адрес на порту независимо от мака.

Удобно при использовании с dhcp relay с привязкой к порту.

Режим включается опционально с помощью ключа к бинарнику dhcpd.

Кому что надо, обращайтесь на асю 200-128-700.

 

PS Господа авторы исходников пару дней активно икали )

Попробовали этот патч. Работает. Спасибо автору. Рекомендую.

Share this post


Link to post
Share on other sites

Собственно в начале октября прикрутил dhcp к freeradius. Получение нужных параметров для клиента сделано через rml_perl

Работает хорошо, но падает из-за иногда возникающих ошибок в самом сценарии perl (ну нет у нас нормальных кодеров на перле).

Поэтому прикрутили авторестартер и все ок.

Плюсы, я могу выдать какие мне надо параметры клиенту и когда мне надо (по мак, по opt82, по любому другому параметру который есть в dhcp пакете).

Минусы, хотелось бы протестить производительность, да нечем, субьективно держит порядка 100 запросов в секунду. Ну и все таки перл не такой шустрый как скомпилированный C/C++.

 

Соотвественно т.к. прослойка между биллингом и dhcp-freeradius написана самостоятельно, то при условии минимальной адекватности биллинга, можно сделать все что угодно.

+1, наконец-то тоже один район запустили на freeradius as dhcp (rlm_perl, ага =), плюс linux_isg.

На текущий момент - две недели, 50 подключенных, полёт отличный, тфу-тфу-тфу =)

 

 

Комп "из коробки" не содержит никакой операционной систеиы.

Вот самосбор "из коробков" - да, содержит, в.т.ч. и мастер подключения к интернету, про кот. рассказывают на каждом углу.

Т.ч. данная передовая технология предоставляет гибкие средства для оператора и создаёт "ощущение причастности" у клиента.

А то что кто-то не в состоянии решить проблемы с рядом сервисов, так это не проблема технологии.

Вы, видимо, никогда не общались с конечными пользователями? Попробуйте несколько дней понастраивать по телефону PPxx. Никакие мастеры и визарды от "получивших_комп_с_инетом_в_подарок" не помогут.

И сеть, наверно, не больше нескольких тысяч абонов у Вас, угадал?

Ваши рассуждения про "не проблема технологии" - рассуждения абстрактного технаря в вакууме =)

 

 

Share this post


Link to post
Share on other sites

Мужики, а вот глядите какой трабл - настроил dhcp snooping + relay, раздаю адреса, всё красиво, но когда истекает срок аренды, на пару секунд связь прерывается, пока клиент не получит заново IP адрес - согласитесь, некрасиво если у клиента будет таже аська отпадывать каждые 20 минут. Это как-то лечится? Смена strict режима на loose это оно самое?

Edited by DukeNukem3D

Share this post


Link to post
Share on other sites

Мужики, а вот глядите какой трабл - настроил dhcp snooping + relay, раздаю адреса, всё красиво, но когда истекает срок аренды, на пару секунд связь прерывается, пока клиент не получит заново IP адрес - согласитесь, некрасиво если у клиента будет таже аська отпадывать каждые 20 минут. Это как-то лечится? Смена strict режима на loose это оно самое?

Если длинк - попробуйте настройку:

config address_binding dhcp_snoop inactive_ageout_time X

где X = lease time +1

 

Share this post


Link to post
Share on other sites

Да, у нас DES-3028.

 

DES-3028:4#config address_binding dhcp_snoop inactive_ageout_time 61
Command: config address_binding dhcp_snoop

Next possible completions: 
max_entry

 

Видимо не для этой модели команда.. Вообще после того как сделал loose - вроде помогло.

Share this post


Link to post
Share on other sites

Мужики, а вот глядите какой трабл - настроил dhcp snooping + relay, раздаю адреса, всё красиво, но когда истекает срок аренды, на пару секунд связь прерывается, пока клиент не получит заново IP адрес - согласитесь, некрасиво если у клиента будет таже аська отпадывать каждые 20 минут. Это как-то лечится? Смена strict режима на loose это оно самое?

Похоже, вы перепутали rebind и renewal time.

Share this post


Link to post
Share on other sites

Блин, да предложите же кто-нибудь человеку сделать НОРМАЛЬНЫЙ dhcp-сервер!

Хотя бы на основе FreeRADIUS. На перле написать один скрипт - и всё, достаточно.

FreeRADIUS в качестве обёртки для perl-сценария выглядит несколько избыточно.

Не проще будет заменить его на examples/dhcpd.pl из Net::DHCP?

Ох блииин... Как говорится - you'we made my day. Не видел. Плохо, видимо, смотрел :).

да модуль то есть только его не правили с 2006 года, из багов уже столкнулся с тем что не получает option-82.

Share this post


Link to post
Share on other sites

Блин, да предложите же кто-нибудь человеку сделать НОРМАЛЬНЫЙ dhcp-сервер!

Хотя бы на основе FreeRADIUS. На перле написать один скрипт - и всё, достаточно.

FreeRADIUS в качестве обёртки для perl-сценария выглядит несколько избыточно.

Не проще будет заменить его на examples/dhcpd.pl из Net::DHCP?

Ох блииин... Как говорится - you'we made my day. Не видел. Плохо, видимо, смотрел :).

да модуль то есть только его не правили с 2006 года, из багов уже столкнулся с тем что не получает option-82.

У меня получает. ЧЯДНТ?

Share this post


Link to post
Share on other sites

извините что не в тему немного, но не подскажите, из за чего isc dhcp сервер не пишет в логи опцию 82, хотя в конфиге есть такое

конфиг:

default-lease-time 600;

max-lease-time 7200;

 

local-address 10.10.10.2;

authoritative;

log-facility local0;

 

ddns-update-style none;

 

subnet 10.10.10.0 netmask 255.255.255.0 {}

 

 

log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ",

binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " (add 1 to port number!), VLAN ",

binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), " on switch ",

binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6))));

 

log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address),

" raw option-82 info is CID: ", binary-to-ascii (10, 8, ":", option agent.circuit-id), " AID: ",

binary-to-ascii(16, 8, ".", option agent.remote-id)));

пробовал 3 и 4 версию...

Share this post


Link to post
Share on other sites

патч от dd (http://forum.nag.ru/forum/index.php?showtopic=61077&view=findpost&p=551071)

 

помог решить проблему перетыкальщиков, спасибо!

Share this post


Link to post
Share on other sites

патч от dd (http://forum.nag.ru/forum/index.php?showtopic=61077&view=findpost&p=551071)

 

помог решить проблему перетыкальщиков, спасибо!

1. побочных эффектов нет у этого патча? Ибо тоже юзаю опцию82.

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

 

2. Для каких версий ISС DHCPd подходит патч?

 

3. Таки может кто приаттачит сюда сам патч и инструкцию по использованию?

Edited by ivan999

Share this post


Link to post
Share on other sites

1. побочных эффектов нет у этого патча? Ибо тоже юзаю опцию82.

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

 

2. Для каких версий ISС DHCPd подходит патч?

 

3. Таки может кто приаттачит сюда сам патч и инструкцию по использованию?

есть и побочные эффекты.

Обратитесь к автору патча.

Скажу что мы используем - пока довольны.

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.