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

Проблема с лизами DHCP когда пул состоит из одного адреса

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

 

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.

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

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


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

Используй поиск, Люк. Тут уже обсуждалось, примерно квартал назад. Ключевые слова: snmp trap, port state down

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


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

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

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

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

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


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

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

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

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


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

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

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


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

может поможет уменьшение срока лизынга?

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


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

Похожая проблема, когда приходят установщики, показывают инет на ноуте, перетыкают провод клиенту и тот должен ждать окончание лизы. Говорят, клиенты сильно рады... Особенно когда винды назначают себе адрес 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.

 

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

 

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

 

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


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

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

 

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

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


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

Вот бы свичи сами release посылали :)

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


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

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

 

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

С OMshell не проканало, изменение статуса лизы не к чему не приводит. А вот с фейковым dhcp release нада подумать....

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


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

С 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? Можете поделиться конкретной реализацией?

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


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

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

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

 

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

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


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

Вот и мне стало актуально.

У кого нибудь есть готовое решение?

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


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

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

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

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

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

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

 

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

 

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

Изменено пользователем dima-u

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


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

приводит. А вот

Там патч идет же комплекте, примените его и все привязки удаляются без проблем

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


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

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

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

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

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

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

 

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

 

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

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

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

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

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


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

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

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

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

при передергивании дхцп очищайте файл с лизами

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


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

У нас передергивание dhcp только при изменении конфига. А конфиг меняется когда добавляем/меняем юзу свич и порт

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


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

Знакомые написали под это дело свой дхцп сервер.

буду тоже что-то думать...

 

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


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

можно утилитой dhcdrop посылать фейковый RELEASE

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


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

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

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

 

 

Изменено пользователем tux-tm

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


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

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

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

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

 

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

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

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


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

Join the conversation

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

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

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

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

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

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

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