Напишу полноценный DHCP сервер работающий с SQL СУБД.

Технические вопросы по UTM 5.0
Ответить

Как по вашему, нужен-ли кроссплатформенный DHCP сервер хранящий конфигурацию SQL БД?

Да.
71
79%
Нет.
10
11%
Затрудняюсь ответить.
9
10%
 
Всего голосов: 90

RomanCh
Сообщения: 20
Зарегистрирован: Вт авг 18, 2009 16:54
Контактная информация:

Сообщение RomanCh » Пн авг 31, 2009 03:14

Господа! Всенепременно необходимы примеры опций 82 (в виде строк hex-цифр) с различного оборудования с обязательным пояснением какое поле что значит. Чем больше примеров тем лучше. Разумеется примеры не должны повторяться.

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 » Пн авг 31, 2009 11:59

Раньше был озабочен данной проблемой, но в настоящее время FreeRadius поддерживает DHCP причем с каждым билдом все лучше и лучше

AndrewE
Сообщения: 230
Зарегистрирован: Пн июл 17, 2006 07:38

Сообщение AndrewE » Пн авг 31, 2009 12:30

не удалось найти примернов настройки данной возможности.

RomanCh
Сообщения: 20
Зарегистрирован: Вт авг 18, 2009 16:54
Контактная информация:

Сообщение RomanCh » Пн авг 31, 2009 13:09

AndrewE писал(а):не удалось найти примернов настройки данной возможности.
Не совсем понял - к чему это относится?
Magnum72 писал(а): но в настоящее время FreeRadius поддерживает DHCP причем с каждым билдом все лучше и лучше
В общем-то может быть и так. Но лично мне непонятно желание разработчиков FreeRADIUS скрестить бульдога с носорогом. На мой взгляд RADIUS и DHCP объединяет только две вещи: использование UDP и формат передачи данных атрибут->значение. Кроме того - во имя дописывания этой "фичи" они отошли от стандарта RADIUS при представлении VSA полей. Я полагаю вы догадываетесь что это не совсем полезно, хотя бы чисто идеологически.

PS Ну и вообще, никогда не любил изобретателей "кухонных комбайнов".

kornerr
Сообщения: 3
Зарегистрирован: Чт сен 17, 2009 11:24
Контактная информация:

Сообщение kornerr » Чт сен 17, 2009 11:29

Делал на Qt4 (пояснение для троллей: Qt4 - это не только GUI).
Исходники: http://kornerr.alfamoon.com/download/qsds.tar.bz2
С некоторых пор оно не работает, т.к. пытался втиснуть помимо одного запроса на получение данных об аренде запрос, чтобы добавлять выданный IP в чёрный список (wi-fi). Не получилось, ибо было мало времени. С тех пор не брался.
Работает лишь под *NIX, т.к. использует сигналы.
С исходниками SCND работал, даже спрашивал пару вопросов по реализации у автора. Хороший пример, но завязан на свою схему.

kornerr
Сообщения: 3
Зарегистрирован: Чт сен 17, 2009 11:24
Контактная информация:

Сообщение kornerr » Чт сен 17, 2009 11:32

Работала моя программа с D-Link DES-3052.

shoorickello
Сообщения: 134
Зарегистрирован: Ср июн 29, 2005 13:08

Сообщение shoorickello » Чт сен 17, 2009 14:43

А мы сделали следующим образом: имеется база данных оборудования, в ней указаны свитчи с указанием мак-адресов свитчей, и детализацией портов таким образом, что по порту и маку свитча можно однозначно идентифицировать абонента. Порту назначен номер счёта из UTM.

Далее, стоит DHCP-сервер MikroTik, который за лизами обращается к FreeRADIUS серверу, который в свою очередь консультируется с MySQL базой от UTM - определяет состояние счёта. В зависимости от состояния счёта, FreeRADIUS выдаёт Framed-Pool равный пулу "чистых" адресов или "заблокированных". На свитчах аслями порезаны обращения куда-либо, кроме DHCP и сервера со страничкой "платите или мы вас отрежем".

Самописного из этого только небольшой модуль к FreeRADIUS, который парсит opt82, запрашивает номер счёта из БД свитчей и запрашивает состояние из БД UTM5.

Изображение
Изображение

Код: Выделить всё

Thu Sep 17 15:40:11 2009 : Info: opt82: sm: 1, vid: 258, mod: 0, p: 24, mac: 00:1C:F0:A5:67:2A, sw: 418, isp: 1, aid: 7578, pool: dhcp-pool-vlan258.
Thu Sep 17 15:40:36 2009 : Info: opt82: sm: 1, vid: 258, mod: 0, p: 24, mac: 00:1C:F0:A5:67:2A, sw: 418, isp: 1, aid: 7578, pool: dhcp-pool-vlan258.
Thu Sep 17 15:40:57 2009 : Info: opt82: sm: 1, vid: 205, mod: 0, p: 24, mac: 00:1E:58:A6:AF:3C, sw: 31, isp: 1, aid: -1, pool: dhcp-pool-vlan205.
Thu Sep 17 15:41:04 2009 : Info: opt82: sm: 1, vid: 283, mod: 0, p: 23, mac: 00:1E:58:9E:D4:B2, sw: 149, isp: 1, aid: 7424, pool: dhcp-pool-vlan283-off.
Thu Sep 17 15:41:12 2009 : Info: opt82: sm: 2, vid: 260, mod: 0, p: 17, mac: 00:1E:58:A6:AE:35, sw: 485, isp: 0, aid: 0, pool: dhcp-pool-vlan260-off.
Thu Sep 17 15:41:18 2009 : Info: opt82: sm: 5, vid: 238, mod: 0, p: 2, mac: 00:1F:CE:10:16:F8, sw: 99, isp: 1, aid: -1, pool: dhcp-pool-vlan238.
Thu Sep 17 15:41:21 2009 : Info: opt82: sm: 1, vid: 237, mod: 0, p: 22, mac: 00:1B:11:B8:D7:BD, sw: 863, isp: 1, aid: 7610, pool: dhcp-pool-vlan237.
Thu Sep 17 15:41:26 2009 : Info: opt82: sm: 1, vid: 260, mod: 0, p: 18, mac: 00:1B:11:B5:C5:95, sw: 233, isp: 1, aid: -1, pool: dhcp-pool-vlan260.
Thu Sep 17 15:41:28 2009 : Info: opt82: sm: 1, vid: 209, mod: 0, p: 22, mac: 00:1B:11:B8:D2:59, sw: 261, isp: 1, aid: -1, pool: dhcp-pool-vlan209.
Thu Sep 17 15:41:29 2009 : Info: opt82: sm: 2, vid: 260, mod: 0, p: 24, mac: 00:1E:58:A6:AE:35, sw: 485, isp: 1, aid: 1938, pool: dhcp-pool-vlan260.
Thu Sep 17 15:41:32 2009 : Info: opt82: sm: 1, vid: 206, mod: 0, p: 21, mac: 00:1E:58:9E:92:E4, sw: 308, isp: 1, aid: 532, pool: dhcp-pool-vlan206.
Thu Sep 17 15:41:40 2009 : Info: opt82: sm: 2, vid: 534, mod: 0, p: 1, mac: 00:21:91:97:31:6D, sw: 1007, isp: 1, aid: -1, pool: dhcp-pool-vlan534.
Thu Sep 17 15:41:56 2009 : Info: opt82: sm: 16, vid: 237, mod: 0, p: 12, mac: 00:22:B0:67:48:33, sw: 228, isp: 1, aid: 7128, pool: dhcp-pool-vlan237.
Thu Sep 17 15:42:03 2009 : Info: opt82: sm: 2, vid: 206, mod: 0, p: 18, mac: 00:1E:58:A0:DF:1C, sw: 50, isp: 1, aid: 7964, pool: dhcp-pool-vlan206.
Thu Sep 17 15:42:10 2009 : Info: opt82: sm: 2, vid: 237, mod: 0, p: 23, mac: 00:1E:58:A6:EE:14, sw: 94, isp: 0, aid: 0, pool: dhcp-pool-vlan237-off.
Thu Sep 17 15:42:22 2009 : Info: opt82: sm: 2, vid: 266, mod: 0, p: 18, mac: 00:21:91:97:11:94, sw: 619, isp: 1, aid: 8018, pool: dhcp-pool-vlan266.
Thu Sep 17 15:42:37 2009 : Info: opt82: sm: 5, vid: 225, mod: 0, p: 21, mac: 00:1F:CE:10:17:68, sw: 1343, isp: 1, aid: -1, pool: dhcp-pool-vlan225.
Thu Sep 17 15:42:38 2009 : Info: opt82: sm: 1, vid: 282, mod: 0, p: 21, mac: 00:1B:11:B5:C5:91, sw: 181, isp: 0, aid: 0, pool: dhcp-pool-vlan282-off.

kornerr
Сообщения: 3
Зарегистрирован: Чт сен 17, 2009 11:24
Контактная информация:

Сообщение kornerr » Пт сен 18, 2009 04:22

Поделитесь модулем?

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion » Пт сен 18, 2009 13:00

:roll: плиз поделитесь... или хотябы можно примеры конфигов связки Mikrotik(DHCP)+Freeradius+Mysql

Makariy
Сообщения: 227
Зарегистрирован: Ср авг 27, 2008 14:08

Сообщение Makariy » Пт сен 18, 2009 14:01

shoorickello писал(а): На свитчах аслями порезаны обращения куда-либо, кроме DHCP и сервера со страничкой "платите или мы вас отрежем".
Примерчик можно взглянуть ? :)

shoorickello
Сообщения: 134
Зарегистрирован: Ср июн 29, 2005 13:08

Сообщение shoorickello » Пт сен 18, 2009 14:54

Конфиг Микротика такой:
На серверах доступа MikroTik для корректной работы DHCP-сервера и взаимодействия с АСУИ Master необходимо его специальным образом настроить. Пользоваться мастером DHCP Setup запрещено. Также необходимо предельно внимательно отнестись к написанию названий пулов, серверов и т.д., иначе DCHP-сервер работать не будет.

Создать IP-адреса на интерфейсе:
/ip address add address=10.168.46.1/24 disabled=no interface=vlan200_boevaya
/ip address add address=10.169.46.1/24 disabled=no interface=vlan200_boevaya
Создать IP-пулы для DHCP-сервера с названием вида dhcp-pool-vlan200 и dhcp-pool-vlan200-off с адресацией соответственно 10.168.x.x и 10.169.x.x:
/ip pool add name=dhcp-pool-vlan200 ranges=10.168.46.5-10.168.46.254
/ip pool add name=dhcp-pool-vlan200-off ranges=10.169.46.5-10.169.46.254
Создать опцию 249 для выдачи маршрутов клиенту с названием вида boevaya_static_route:
/ip dhcp-server option add code=249 name=boevaya_static_route value=0x100aa80aa82e02100a050aa82e02180a01020aa82e02
Создать описание выдаваемых сетей клиенту:
/ip dhcp-server network add address=10.168.46.0/24 dhcp-option=boevaya_static_route dns-server=195.82.134.6,62.33.183.254 gateway=10.168.46.1
/ip dhcp-server network add address=10.169.46.0/24 dns-server=195.82.134.6,62.33.183.254 gateway=10.169.46.1
Создать DHCP-сервер с названием вида dhcp200_boevaya:
/ip dhcp-server add address-pool=dhcp-pool-vlan200 authoritative=yes disabled=no interface=vlan200_boevaya lease-time=10m name=dhcp200_boevaya use-radius=yes

Все приведённые в командах параметры являются обязательными, опускать все или некоторые из них недопустимо.
На свитчах доступа следующее:
D-Link DES-3028
config dhcp_local_relay vlan vlanid XXXX,XXXX,XXXX state enable (указывать только VLAN Реал'а + VLAN "users")
enable dhcp_local_relay

D-Link DES-3526
config dhcp_local_relay vlan vlanid XXXX,XXXX,XXXX state enable (указывать только VLAN Реал'а + VLAN "users")
enable dhcp_local_relay

D-Link DES-3052
config dhcp_local_relay vlan vlanid XXXX,XXXX,XXXX state enable (указывать только VLAN Реал'а + VLAN "users")
enable dhcp_local_relay

QTECH QSW-2900
dhcp option82 strategy keep
dhcp option82
dhcp-snooping
dhcp-snooping vlan 3-4094

int range ethernet 0/1 to ethernet 0/24
dhcp-snooping max-clients 64
dhcp-snooping trust
exit

int range ethernet 1/1 to ethernet 2/1
dhcp-snooping trust
exit
ACL, IP-MAC-Port binding, модуль и конфиги фрирадиуса скину попозже...

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion » Сб сен 19, 2009 21:46

а всетаки конфиг фрирадиуса можно? плиз плиз

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider » Сб сен 19, 2009 23:00

за деньги если только, то скинет...

Davion
Сообщения: 267
Зарегистрирован: Чт дек 01, 2005 13:36

Сообщение Davion » Вс сен 20, 2009 09:54

:D блин ну что тут такого, не систему ведь хочу, а конфиг фрирадиуса) а то по доке воевал воевал так и несмог заставить нормально работать...

shoorickello
Сообщения: 134
Зарегистрирован: Ср июн 29, 2005 13:08

Сообщение shoorickello » Пн сен 21, 2009 07:48

В конфиге фрирадиуса ничего такого нет.

sql.conf:

Код: Выделить всё

sql master {
        database = "mysql"

        driver = "rlm_sql_${database}"

        server = "master.astrakhan.ru"
        port = 3306
        login = "master_radius"
        password = "123"

        sqltrace = yes
        sqltracefile = ${logdir}/sqltrace.sql

        radius_db = "master"
}

sql real_billing {
        database = "mysql"

        driver = "rlm_sql_${database}"

        server = "db.astrakhan.ru"
        port = 3306
        login = "utm5radius"
        password = "123"

        sqltrace = yes
        sqltracefile = ${logdir}/sqltrace.sql

        radius_db = "UTM5"
}
sites-enabled/default:

Код: Выделить всё

authorize {
        ...
        billing
        ...
}
modules/billing:

Код: Выделить всё

billing {
        master-sql-instance-name = master
        real-billing-sql-instance-name = real_billing

        master-sql-switch-id-by-mac = "SELECT `id` FROM `os_centres_switches` WHERE `mac` = '%M'"
        master-sql-port-details = "SELECT `account_id`, `provider` FROM `os_centres_switches_ports` WHERE `c_switch_id` = '%S' AND `port` = '%P'"
        master-sql-switch-model = "SELECT `switch_id` FROM `os_centres_switches` WHERE `id` = '%S'"

        real-billing-sql-account-state = "SELECT `is_blocked` FROM `accounts` WHERE `id` = '%A' AND `is_deleted` = '0'"
}
Модуль к FreeRADIUS, отвечающий за разбор opt82 в запросах от DHCP-сервера микротика: https://account.astrakhan.ru/downloads/ ... ing.tar.gz

Ответить