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

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

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

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

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

Сообщение RomanCh »

Update.
Добавил возможность использовать переменные в условии (как в смещении, так и в значении с которым производится проверка). Кроме того - добавил возможность задавать переменные константными значениями (а не только данными из опции), так же - решил что байтовые последовательности лучше предварять строкой '0x'. Пример:

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

Var = CLI-MSG-TYPE	o:53	# DHCP message type
Var = ID				o:12:(3=0x50)0x48|0x43
Var = CLI-NAME		o:60:($CLI-MSG-TYPE$=$ID$)0:0|(5=0x64726f70706572)5:2|0:2
Опять же - пример совершенно бессмысленный на практике, но демонстрирующий основные концепции.

weldpua2008
Сообщения: 19
Зарегистрирован: Пн сен 24, 2007 13:02

Сообщение weldpua2008 »

Ждем релиза...

ЗЫ:
http://netpatch.ru/dhcp2radius.html - патчи для радиуса больше не будут выходить? вроде староват сервер :)
dhcp-3.0.7.tar.gz 16-May-2008 22:42 868K

hoochie
Сообщения: 1
Зарегистрирован: Вт май 25, 2010 10:18

Сообщение hoochie »

Уважаемый Роман!
как на сегодняшний день? на каком этапе ваша работа?
очень уж ждем ее окончания))) :oops:

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

Ув. RomanCh

А есть ли смысл писать dhcp, работающий с sql напрямую, если решение с radius - НАМНОГО масштабируемее, гибче и удобнее?
По-моему, имеет смысл просто продолжать поддержку dhcp2radius

solomon
Сообщения: 316
Зарегистрирован: Вт мар 16, 2010 08:39

Сообщение solomon »

скажите плиз осуществляется ли на сегоднешний день поддержка проекта?

нетпач - решил попробывать потестить у себя на стенде с оборудованием qtech и cisco 3660 - сервер на Centos5-5.

solomon
Сообщения: 316
Зарегистрирован: Вт мар 16, 2010 08:39

Сообщение solomon »

почему валятся такие ошибки - собираю на Centos - делаю все ак напсано

[root@admin dhcp-3.0.7]# ./configure
System Type: linux-2.6
make[1]: Entering directory `/opt/NetPach - Project/dhcp-3.0.7/work.linux-2.6'
Making links in common
make[2]: Entering directory `/opt/NetPach - Project/dhcp-3.0.7/work.linux-2.6/common'
ln: указанная цель `raw.c' не является каталогом
ln: указанная цель `parse.c' не является каталогом
ln: указанная цель `nit.c' не является каталогом
ln: указанная цель `icmp.c' не является каталогом
ln: указанная цель `dispatch.c' не является каталогом
ln: указанная цель `conflex.c' не является каталогом
ln: указанная цель `upf.c' не является каталогом
ln: указанная цель `bpf.c' не является каталогом
ln: указанная цель `socket.c' не является каталогом
ln: указанная цель `lpf.c' не является каталогом
ln: указанная цель `dlpi.c' не является каталогом
ln: указанная цель `packet.c' не является каталогом
ln: указанная цель `tr.c' не является каталогом
ln: указанная цель `ethernet.c' не является каталогом
ln: указанная цель `memory.c' не является каталогом
ln: указанная цель `print.c' не является каталогом
ln: указанная цель `options.c' не является каталогом
ln: указанная цель `inet.c' не является каталогом
ln: указанная цель `tree.c' не является каталогом
ln: указанная цель `tables.c' не является каталогом
ln: указанная цель `alloc.c' не является каталогом
ln: указанная цель `fddi.c' не является каталогом
ln: указанная цель `ctrace.c' не является каталогом
ln: указанная цель `dns.c' не является каталогом
ln: указанная цель `resolv.c' не является каталогом
ln: указанная цель `execute.c' не является каталогом
ln: указанная цель `discover.c' не является каталогом
ln: указанная цель `comapi.c' не является каталогом
ln: указанная цель `dhcp2radius.c' не является каталогом
ln: указанная цель `dhcp-options.5' не является каталогом
ln: указанная цель `dhcp-eval.5' не является каталогом
make[2]: *** [links] Ошибка 1
make[2]: Leaving directory `/opt/NetPach - Project/dhcp-3.0.7/work.linux-2.6/common'
make[1]: *** [links] Ошибка 1
make[1]: Leaving directory `/opt/NetPach - Project/dhcp-3.0.7/work.linux-2.6'
make: *** [links] Ошибка 2

solomon
Сообщения: 316
Зарегистрирован: Вт мар 16, 2010 08:39

Сообщение solomon »

c ошибками разобрался - собрать получилось нетпач -
есть ли у кого нить мускульный дамп НЕТПАЧ'а ? поделитесь если не жалко

readdir
Сообщения: 1
Зарегистрирован: Ср фев 09, 2011 14:47

Сообщение readdir »

Уважаемый RomanCh, сообщите, пожалуйста, есть ли продвижения?

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

Сообщение RomanCh »

readdir писал(а):Уважаемый RomanCh, сообщите, пожалуйста, есть ли продвижения?
Вы наверное все удивитесь, но... Есть :) Получилось последние месяцы выкроить немного времени и довести до рабочего состояния. И так, первый альфа билд: http://netpatch.ru/db2dhcp.html - изучаем внимательно, собираем, тестируем, сообщаем у кого что получилось, или не получилось.

Огромная просьба: пока статус кода дико тестовый (об этом написано в документации) - стараться не пиарить на популярных ресурсах (типа опеннета, хабры и т.д.) и не пытаться делать порты/пакеты для включения в дистрибутивы. Не хочется слишком активно делиться со всем миром потенциально проблемным (а местами немного не доделанным) кодом. Да и доку надо английскую ещё написать...

NewUse
Сообщения: 1
Зарегистрирован: Сб май 21, 2011 00:48

Сообщение NewUse »

Сорри за дурацкий чайниковский вопрос:
В программировании секу плохо, но всё навязчевее возникает необходимость интегрировать функционал DHCP в связки с RADIUS в hostapd :(((

запосы к радиусу hostapd посылает сам, но обрабатывать в ответе атрибуты Framed-IP-Address Framed-IP-Netmask MS-Primary-DNS-Server MS-Secondary-DNS-Server Framed-Route он не умеет

собственно появиась дурацкая идея соединить Ваш dhcpd и hostapd в единый радиус-клиент.....

В общем вопрос:
какие функции отвечают за отправления запрооса на радиус сервер, можно ли их безболезненно выкинуть/отключить в конфиге? будет ли при этом работоспособен dhcpd?

4el
Сообщения: 1
Зарегистрирован: Пт окт 07, 2011 09:28

dhcp2radius

Сообщение 4el »

Нам надо организовать примерно такую схему(см. по http://www.lanbilling.ru/dhcp_radius.html).

После запуска пропатченого dhcp:
/dhcp-3.0.7/work.linux-2.2/server/dhcpd -d -cf /etc/dhcpd.conf eth1 lo

Вылезает следующая ошибка в логах:
Oct 6 09:14:36 billing kernel: dhcpd[19512]: segfault at 0000000000000000 rip 0000000000000000 rsp 00007fffb312e4c0 error 14

У нас ОС CentOS release 5.5 x64 (Final) ядро Linux 2.6.18-194.32.1.el5

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

shoorickello писал(а):Конфиг Микротика такой:
На серверах доступа 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, модуль и конфиги фрирадиуса скину попозже...
а что за зверь такой АСУИ Master? сколько ни искал найти не смог :(

Pei0t
Сообщения: 258
Зарегистрирован: Чт дек 13, 2007 20:48

Сообщение Pei0t »

Я правильно понимаю, что автор предлагает теперь использовать вместо ISC DHCP новый_тестовый db2dhcp? Связка с фрирадиус остается та же? Кто-то использует у себя все это, я к тому что стоит ли нам начинать у себя тестить?

Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Сообщение Voronok »

Да, это новый сервер.
Мне довелось использовать, только положительные отзывы.
Радиус не юзали, ничего не скажу.

Pei0t
Сообщения: 258
Зарегистрирован: Чт дек 13, 2007 20:48

Сообщение Pei0t »

Возникли проблемы с получением ip через relay 3526. Находясь в той же подсети что и сервер - все работает.
Настроено все по доке.

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

2012-04-09 16:12:19 [51486:674552896] Got DHCPDISCOVER (1) message from client 00:14:2A:BF:3A:72 on vlan0/192.168.254.252 (relay 172.16.101.19)
2012-04-09 16:12:19 [51486:674552896] DEBUG: Adding DHCP message to empty queue 'DHCP requests'
2012-04-09 16:12:19 [51486:674552896] DEBUG: Queue (DHCP requests) length now is: 1, new requests: 1
2012-04-09 16:12:19 [51486:674554176] DEBUG: Trying to get DHCP request from queue 'DHCP requests'.
2012-04-09 16:12:19 [51486:674554176] DEBUG: Flushing cache: last flush ts - 1333973454, flush period - 60, now is 1333973539.
2012-04-09 16:12:19 [51486:674554176] DEBUG: Cache flushed. Total 0 nodes deleted.
2012-04-09 16:12:19 [51486:674554176] DEBUG: Parsing DHCP message and preparing SQL statement.

2012-04-09 16:12:19 [51486:674554176] DEBUG: Found network device variable: DEV-NETWORK-INT = "3232300544"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP header variable: CLI-GIADDR = "AC106513"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP header variable: CLI-GIADDR = "AC106513"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP header variable: CLI-ETHER-ADDR = "00142ABF3A72"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP options variable: OPT82-REMOTE-ID = "001CF00F9F0F"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP options variable: OPT82-PORT = "0A"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP options variable: OPT82-REMOTE-ID = "001CF00F9F0F"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Found DHCP options variable: OPT82-PORT = "0A"

2012-04-09 16:12:19 [51486:674554176] DEBUG: Prevous SQL statement: "SELECT code, type, value FROM dhcp_subnets WHERE (subnet = '3232300544' and CONV('AC106513', 16, 10) = 0) OR subnet = CONV('AC106513', 16, 10) UNION SELECT code, type, value FROM dhcp_clients_by_ether WHERE ether = '00142ABF3A72' AND '001CF00F9F0F' = '' AND '0A' = '' UNION SELECT code, type, value FROM dhcp_clients_by_relay WHERE relay_id = '001CF00F9F0F' AND relay_port = '0A' ORDER BY CODE"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Executing SQL statement "SELECT code, type, value FROM dhcp_subnets WHERE (subnet = '3232300544' and CONV('AC106513', 16, 10) = 0) OR subnet = CONV('AC106513', 16, 10) UNION SELECT code, type, value FROM dhcp_clients_by_ether WHERE ether = '00142ABF3A72' AND '001CF00F9F0F' = '' AND '0A' = '' UNION SELECT code, type, value FROM dhcp_clients_by_relay WHERE relay_id = '001CF00F9F0F' AND relay_port = '0A' ORDER BY CODE"
2012-04-09 16:12:19 [51486:674554176] DEBUG: Fetched 5 rows, 3 fields from DB.

2012-04-09 16:12:19 [51486:674554176] WARN: Can't obtain IP address from DB for client 00:14:2A:BF:3A:72 on interface 192.168.254.252 (relay: 172.16.101.19).

2012-04-09 16:12:19 [51486:674554176] DEBUG: DHCP request removed from queue 'DHCP requests'. Queue len now is: 0, new requests: 0

2012-04-09 16:12:23 [51486:674552896] Got DHCPDISCOVER (1) message from client 00:14:2A:BF:3A:72 on vlan0/192.168.254.252 (relay 172.16.101.19)
2012-04-09 16:12:23 [51486:674552896] DEBUG: Adding DHCP message to empty queue 'DHCP requests'
2012-04-09 16:12:23 [51486:674552896] DEBUG: Queue (DHCP requests) length now is: 1, new requests: 1
2012-04-09 16:12:23 [51486:674553536] DEBUG: Trying to get DHCP request from queue 'DHCP requests'.
2012-04-09 16:12:23 [51486:674553536] DEBUG: Parsing DHCP message and preparing SQL statement.
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found network device variable: DEV-NETWORK-INT = "3232300544"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP header variable: CLI-GIADDR = "AC106513"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP header variable: CLI-GIADDR = "AC106513"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP header variable: CLI-ETHER-ADDR = "00142ABF3A72"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP options variable: OPT82-REMOTE-ID = "001CF00F9F0F"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP options variable: OPT82-PORT = "0A"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP options variable: OPT82-REMOTE-ID = "001CF00F9F0F"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Found DHCP options variable: OPT82-PORT = "0A"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Prevous SQL statement: "SELECT code, type, value FROM dhcp_subnets WHERE (subnet = '3232300544' and CONV('AC106513', 16, 10) = 0) OR subnet = CONV('AC106513', 16, 10) UNION SELECT code, type, value FROM dhcp_clients_by_ether WHERE ether = '00142ABF3A72' AND '001CF00F9F0F' = '' AND '0A' = '' UNION SELECT code, type, value FROM dhcp_clients_by_relay WHERE relay_id = '001CF00F9F0F' AND relay_port = '0A' ORDER BY CODE"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Executing SQL statement "SELECT code, type, value FROM dhcp_subnets WHERE (subnet = '3232300544' and CONV('AC106513', 16, 10) = 0) OR subnet = CONV('AC106513', 16, 10) UNION SELECT code, type, value FROM dhcp_clients_by_ether WHERE ether = '00142ABF3A72' AND '001CF00F9F0F' = '' AND '0A' = '' UNION SELECT code, type, value FROM dhcp_clients_by_relay WHERE relay_id = '001CF00F9F0F' AND relay_port = '0A' ORDER BY CODE"
2012-04-09 16:12:23 [51486:674553536] DEBUG: Fetched 5 rows, 3 fields from DB.
2012-04-09 16:12:23 [51486:674553536] WARN: Can't obtain IP address from DB for client 00:14:2A:BF:3A:72 on interface 192.168.254.252 (relay: 172.16.101.19).
2012-04-09 16:12:23 [51486:674553536] DEBUG: DHCP request removed from queue 'DHCP requests'. Queue len now is: 0, new requests: 0
001CF00F9F0F - мак 3526
00142ABF3A72 - мак клиента

Куда копнуть?
Спасибо.

Ответить