Перейти к содержимому
Калькуляторы

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

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

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

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

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

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

 

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

 

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

Изменено пользователем Дегтярев Илья

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

 

 

Изменено пользователем dsk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

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

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

Изменено пользователем Дегтярев Илья

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

Изменено пользователем (= dd =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

 

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

Изменено пользователем shicoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

 

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

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

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

 

 

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

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

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

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

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

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

+1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем DukeNukem3D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

config address_binding dhcp_snoop inactive_ageout_time X

где X = lease time +1

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, у нас 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 - вроде помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

извините что не в тему немного, но не подскажите, из за чего 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 версию...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

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

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

 

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

 

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

Изменено пользователем ivan999

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

 

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.