Биллинговая система Nodeny
26 Июня 2024, 11:20:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: nodhcp и regexp - серые адреса неплательщикам  (Прочитано 6475 раз)
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« : 28 Мая 2011, 17:40:56 »

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

Регулярные выражения, нечто вроде:
 echo 11.22.33.44 | awk -F\. '{print 192"."168"."$3"."$4}'
или
/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\./192\.168\.$3\.$4\./

Код:
# выдаем белые адреса, как обычно, тем у кого state=on
<filtr net='11.22.33.0/24' dopdata-_mac='^(?:[[:xdigit:]]{2}[-:]){5}[[:xdigit:]]{2}\$' state='^on\$'>
        host <lat_login> {
                                        hardware ethernet <dopdata-_mac>;
                                                        fixed-address <ip>;
                                                                }
                                        </filtr> \n
# меняем первые два октета ip на "192.168.", тем у кого state=off
 <filtr net='11.22.33.0/24' dopdata-_mac='^(?:[[:xdigit:]]{2}[-:]){5}[[:xdigit:]]{2}\$' state='^off\$'>
        host <lat_login> {
                                                hardware ethernet <dopdata-_mac>;
                                                fixed-address <Здесь регулярное выражение>;
                                                                 }
                                        </filtr> \n
Как вставить регулярное выражение в шаблон, чтобы оно отрабатывало в процессе генерации конфига для dhcpd?

Спасибо!
« Последнее редактирование: 28 Мая 2011, 17:46:52 от garik24 » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #1 : 28 Мая 2011, 17:57:21 »

В текущей вариации никак. Но организовать можно. за $ конечно
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #2 : 28 Мая 2011, 18:18:30 »

Как вставить регулярное выражение в шаблон, чтобы оно отрабатывало в процессе генерации конфига для dhcpd?

а что мешает написать скрип и его вызывать с помощью номаке в секции релоад?
там нет ограничений только фантазия
Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #3 : 28 Мая 2011, 18:27:09 »

Можно еще генерить кусок конфига с неплательщиками чтоб было проще его обрабатывать regexp'ом и включать инклюдом в основной конфиг dhcpd.
/usr/local/etc/dhcpd.conf :
Цитировать
# dhcpd.conf
include "/usr/local/nodeny/dhcpd.conf";
include "/usr/local/nodeny/dhcpd.conf.include";
« Последнее редактирование: 28 Мая 2011, 18:30:47 от garik24 » Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #4 : 28 Мая 2011, 18:52:11 »

Либо можно создать дополнительное поле, например "Серый ip" в тех данных и генерить его значение на основании основного айпи скриптом периодически. Тоже костыль, но проще.

А шаблон использовать вида:

Цитировать
#выдаем белые адреса, как обычно, тем у кого state=on
<filtr net='11.22.33.0/24' dopdata-_mac='^(?:[[:xdigit:]]{2}[-:]){5}[[:xdigit:]]{2}\$' state='^on\$'>
        host <lat_login> {
                                        hardware ethernet <dopdata-_mac>;
                                                        fixed-address <ip>;
                                                                }
                                        </filtr> \n
#выдаем серые ip тем у кого state=off
 <filtr net='11.22.33.0/24' dopdata-_mac='^(?:[[:xdigit:]]{2}[-:]){5}[[:xdigit:]]{2}\$' <dopdata-_grey_ip>='^регулярное выражение проверки соответствия ip\$' state='^off\$'>
        host <lat_login> {
                                                hardware ethernet <dopdata-_mac>;
                                                fixed-address <dopdata-_grey_ip>;
                                                                 }
                                          </filtr> \n
« Последнее редактирование: 28 Мая 2011, 18:55:11 от garik24 » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #5 : 28 Мая 2011, 18:58:48 »

Если не нужно статических адресов, тех кто не платил то есть вариант в 100500 раз удобнее.
это shared network
Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #6 : 28 Мая 2011, 19:12:08 »

Это, конечно, самый очевидный и простой вариант. Но проблема в том, что необходимо чтобы после пополнения счета клиент без передергивания порта и без перезагрузки компьютера в течении пары минут получал белый айпи. А с этим по словам коллег проблема.
Т.е. если я конкретно в конфиге выставляю соответствующий определенному маку серый айпи с минимальным временем лиза, а затем конфиг обновлю при пополненнии - то все ок(человек переполучает айпи и работает).
В случае с пулом адресов без указания конкретных маков  для серых адресов в конфиге при обновлении конфига с переполучением белого айпи вместо серого - затык. Сам не проверял. Выясню.
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #7 : 28 Мая 2011, 19:17:04 »

Набор слов.
max-lease-time действует как на пулл так и на статику! так что не верь тому, что говорят ))
ставь листайм в 300 сек. в течении 5-и (максимум 5+) мин. тело переполучит адресс.
Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #8 : 28 Мая 2011, 20:06:59 »

Имхо, такой вариант не пойдет т. к. сеть сегментирована. В ядре L3 свич с dhcp relay. Ему, конечно, по барабану какой айпи в какой сегмент релеить... по крайней мере простой схемы не вижу.
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #9 : 28 Мая 2011, 22:21:56 »

И че?
Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #10 : 31 Мая 2011, 23:37:56 »

И че?
Тролишь?
Нечего сказать по существу - проходи мимо.
Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #11 : 01 Июня 2011, 05:36:23 »

Набор слов.
max-lease-time действует как на пулл так и на статику! так что не верь тому, что говорят ))
ставь листайм в 300 сек. в течении 5-и (максимум 5+) мин. тело переполучит адресс.

Сам то пробовал? Или это был "Набор слов"?
По существу:
Internet Systems Consortium DHCP Server V3.1.3
ISC-DHCP Server под Linux. Клиенты - Win 7, Linux.
Ip from dynamic address pool -> Static host declaration    - ok!
Static host declaration -> Static host declaration (Another ip, same MAC)    - ok!
Static host declaration -> Ip from dynamic address pool - ФигВам!
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #12 : 01 Июня 2011, 07:42:20 »

У самого-то уже минимум год такая схема Подмигивающий
« Последнее редактирование: 01 Июня 2011, 07:47:36 от 0xbad0c0d3 » Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!