Jump to content

Recommended Posts

Posted

Привет! Если пул состоит из одного адреса, например

 

subnet 192.168.0.0 netmask 255.255.255.0 {

option routers 192.168.0.1;

class "linksys12_49781" {

match if (binary-to-ascii(16,8,":",substring(option agent.remote-id,2,6))="5a:0:3b:3:0:f" and binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1))="12");

}

pool {

range 192.168.0.2;

allow members of "linksys12_49781";

}

............

}

 

Т.е. адреса у нас назначаются с привязкой к порту коммутатора при помощи Option 82.

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

Posted (edited)

Ничего подобного не нашел... Может, плохо искал? Ткните носом тогда.

Как заставить сервер игнорировать тот факт, что IP уже выдан на определенный MAC и выдать его повторно?

Edited by megabitik
Posted

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

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

Posted

Похожая проблема, когда приходят установщики, показывают инет на ноуте, перетыкают провод клиенту и тот должен ждать окончание лизы. Говорят, клиенты сильно рады... Особенно когда винды назначают себе адрес 169.х.х.х, коммутатор это видит и кладет порт - волшебство dhcp snooping-а. Решение здесь я не нашел. Пробовал через OMAPI менять статус лизы, нифига, не работает, статус меняешь, а он - no free leases. Решение сабжа очень нужно.

Posted
Похожая проблема, когда приходят установщики, показывают инет на ноуте, перетыкают провод клиенту и тот должен ждать окончание лизы. Говорят, клиенты сильно рады... Особенно когда винды назначают себе адрес 169.х.х.х, коммутатор это видит и кладет порт - волшебство dhcp snooping-а. Решение здесь я не нашел. Пробовал через OMAPI менять статус лизы, нифига, не работает, статус меняешь, а он - no free leases. Решение сабжа очень нужно.
Была такая же проблема в сети - строилась на 3526 с dhcp snooping и ip mac port binding.

Также IMB некорректно отрабатывал при смене компа абонентом или ещё каких-либо действий - приходилось ждать окончания lease time.

 

В итоге полностью отказался от IMB - для каждого коммутатора до установке генерируется набор ACL, разрешающий IP/ARP пакеты на порту и определяющий для каждого порта свой IP. DHCP snooping отключил, оставил только dhcp relay. В конечном счёте абонент может как автоматом получить нужные настройки, так и вручную вписать свой IP.

 

Соглашусь, что решение ни разу не изящное, но тем не менее хорошо работает.

 

Posted (edited)
может поможет уменьшение срока лизынга?
Боюсь что dhcp сервер грохнется, накрывшись реквестами. Хотя уменьшал до 5 минут даже, немного когда народу было еще.

Это приводило к частым блокировкам портов наших суперских коммутаторов - кривизна реализации IP Source Guard. Т.к. лес смешанный,

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

Скоро полезу в исходники dhcpd похоже, т.к. надо что-то делать. :-)

Edited by digimaster
Posted
может поможет уменьшение срока лизынга?
Боюсь что dhcp сервер грохнется, накрывшись реквестами. Хотя уменьшал до 5 минут даже, немного когда народу было еще.

Это приводило к частым блокировкам портов наших суперских коммутаторов - кривизна реализации IP Source Guard. Т.к. лес смешанный,

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

Скоро полезу в исходники dhcpd похоже, т.к. надо что-то делать. :-)

возможно, но не факт.

в крайнем случае можно попелит вланы между разными dhcp серверами

 

Posted
http://forum.nag.ru/forum/index.php?showtopic=49139

 

Для тех, кому one separate tool per function (aka UNIX-way) религиозно неприятен решения нет. Остальные пользуют патчи к дхцп из соседней ветки и ловят трапы. Либо ловят трапы и юзают фейковые dhcp release.

С OMshell не проканало, изменение статуса лизы не к чему не приводит. А вот с фейковым dhcp release нада подумать....
Posted
С OMshell не проканало, изменение статуса лизы не к чему не приводит.
C OMshell подтверждаю, ничего не проканало. Похоже на то, что для удаления объекта через OMshell нужно сначала его через OMshell создать. Вот что написано в man omshell: "This is done by creating a new local object, setting attributes, associating the local and remote object using open, and then using the remove command."

 

Для тех, кому one separate tool per function (aka UNIX-way) религиозно неприятен решения нет. Остальные пользуют патчи к дхцп из соседней ветки и ловят трапы. Либо ловят трапы и юзают фейковые dhcp release.
Можно поподробнее? Как послать фейковый dhcp release? Можете поделиться конкретной реализацией?
Posted

Вот что дала, пусть не самая первая, но ссылка в массиве, возвращаемом методом Brain::google()

https://lists.isc.org/pipermail/dhcp-users/2007-August/004405.html

 

Там по этому треду если дальше пройтись - много чего всплывает

  • 1 month later...
Posted (edited)

У нас есть готовое решение, через dhcp2radius.

Написан модуль к радиусу на perl, в качестве базы - mysql.

Срок лизы вообще не играет роли - если получатель такой-то свитч+порт - выдаем такой-то ip. (либо если нет инфы о свитче и порте, то выдается ip по мак-адресе+порт релея, либо просто по мак-адресу). Если на свитч+порт связке есть несколько ip адресов (то еще и по маку привязываются, чтобы комп идентифицировать кому что выдавать)

Интегрировано с netup.

Есть кабинет автоматической регистрации компьютера/пользователя. Т.е. если в базе не существует связки ip+порт, то автоматом клиенту выдаются специальные настройке,где введя любую web-страничку его выбрасывает на страницу авторизации (при помощи fake-dns), где после ввода логина/пароля по договору, автоматом создается связка свитч+порт+ip. И после перезагрузки компа - вуаля, можно работать.

 

Все работает на 1-м сервере. (dhcp+radius+mysql+apache/php для регистрации абонента в сети)

 

ИМХО в общем случае для таких целей лучше использовать базу в качестве хранилища данных, и перегружать ничего не надо, и интерфейс для менеджмента легко написать.

Edited by dima-u
Posted
У нас есть готовое решение, через dhcp2radius.

Написан модуль к радиусу на perl, в качестве базы - mysql.

Срок лизы вообще не играет роли - если получатель такой-то свитч+порт - выдаем такой-то ip. (либо если нет инфы о свитче и порте, то выдается ip по мак-адресе+порт релея, либо просто по мак-адресу). Если на свитч+порт связке есть несколько ip адресов (то еще и по маку привязываются, чтобы комп идентифицировать кому что выдавать)

Интегрировано с netup.

Есть кабинет автоматической регистрации компьютера/пользователя. Т.е. если в базе не существует связки ip+порт, то автоматом клиенту выдаются специальные настройке,где введя любую web-страничку его выбрасывает на страницу авторизации (при помощи fake-dns), где после ввода логина/пароля по договору, автоматом создается связка свитч+порт+ip. И после перезагрузки компа - вуаля, можно работать.

 

Все работает на 1-м сервере. (dhcp+radius+mysql+apache/php для регистрации абонента в сети)

 

ИМХО в общем случае для таких использовать базу в качестве хранилища данных, и перегружать ничего не надо, и интерфейс для менеджмента легко написать.

не не не, ничего такого не надо. Уже написали скрипт создания конфига dhcp, интегрировали с самописным биллингом и т.п.

надо только решение вышеописанной проблемы

Я так понял что через dhcp2radius это можно решить? ткните носом куда нибудь.

Posted
не не не, ничего такого не надо. Уже написали скрипт создания конфига dhcp, интегрировали с самописным биллингом и т.п.

надо только решение вышеописанной проблемы

Я так понял что через dhcp2radius это можно решить? ткните носом куда нибудь.

при передергивании дхцп очищайте файл с лизами
  • 7 months later...
Posted (edited)

Используйте freeradius, в нём есть функционал DHCP-сервера, для обработки запросов - rlm_perl

У меня работает на ура!

 

 

Edited by tux-tm
Posted (edited)
Используйте freeradius, в нём есть функционал DHCP-сервера, для обработки запросов - rlm_perl

У меня работает на ура!

tux-tm, а на какой платформе и какая версия, если не секрет? У меня на x86_64 freeradius 2.1.9 почему-то rlm_perl хоть убей заводится не хочет ;(

 

правка: таки завел ;)

Edited by Wingman

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.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.