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

isc dhcpd и клиенты "перетыкальщики", кто как решает проблему

Хотели все патчик который позволит при использовании опции 82 (и не только) игнорировать мак.

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


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

Хотелки еще принимаются?:)

Хотим, чтобы subclasses можно было использовать с pool без бубна

Хотим, чтобы парсинг классов работал до первого совпадения, а не так, как сейчас.

 

Вот это бы все в штатный дистрибутив в виде опций/ключиков... :) А с остальным можно мириться.

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


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

Патч - это полумера. Вот с разработчиками бы кто решил вопрос :)

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


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

к стати я тоже за donate тому кто сделает.

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


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

Да давно уже пора написать нормальный relay-only dhcp-сервер на Java с выносом всей логики раздачи адресов в БД, а не мучаться с уродливыми поделиями на C/perl и прочих олдскульных языках. Я бы сам написал, но всё никак не найду время на это :(

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


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

Ну, мсьё, не разжигайте холивары. Си и перл - отличные языки, жава - тоже, всему своя ниша.

И ICS DHCP - трудится себе в продакшне годами, не хрюкает, есть не просит, обслуживает более 10тыс юзеров.

Мне от DHCP больше ничего не надо.

 

"Я сам бы написал, да вот <тут 1000 причин>"
- это как бы улыбнуло : )

 

Удивляет одно - почему вроде как огромный спрос на "нормальный DHCP", и вроде как существующие решения - дерьмо, и никто не удовлетворит предложение?

Странно. Толи спрос не так велик, толи решения уже есть и они удовлетворяют многих.

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

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

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


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

white_crow

Спрос на нормальный dhcp не так велик, поскольку проприетарные брас-решения сами умеют, в небольших локальных сетях хватит и isc dhcpd, а вот для промежуточных случаев люди выкручиваются как могут. Вон в рассылке nanog чувак писал, что он вынес файл leases в /dev/shm, ну разве это не уродство и костыль? Просто лично мне оно прямо сейчас не сильно надо, но в принципе я бы поменял isc dhcpd на что-нибудь нормальное в паре мест. Да и вообще единственная сложность в написании это failover для динамических пулов, всё остальное тривиально.

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


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

И ICS DHCP - трудится себе в продакшне годами, не хрюкает, есть не просит, обслуживает более 10тыс юзеров.

Мне от DHCP больше ничего не надо.

Если не секрет сколько их штук, и какое время лизы?

 

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

Скорее все этот вариант (имхо)

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


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

.. Я бы сам написал, но всё никак не найду время на это :(

Да, я бы тоже... Написал, переписал, пере...ал.. и... в том же духе, да вот только...

Что-то всегда мешает.. Вот пытаюсь вспомнить, а что же именно??

Гы-гы.. :)

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


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

Мне почудилось или тут уже 2 раза переписали

 

http://forum.nag.ru/forum/index.php?showtopic=64724&st=0

 

http://forum.nag.ru/forum/index.php?showtopic=64849&st=0

 

?

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


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

Если костыль работает легко и просто - то это не костыль : )

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


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

st_re

Те оба решения заточены под выдачу статических ip на основе mac/opt82/прочего

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


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

И ICS DHCP - трудится себе в продакшне годами, не хрюкает, есть не просит, обслуживает более 10тыс юзеров.

Мне от DHCP больше ничего не надо.

Если не секрет сколько их штук, и какое время лизы?

 

Их - это демонов, серверов?

1 шт. Сервачок 1U - уже не помню железо какое. 5 лет трудится. Там еще Fedora древняя стоит (так исторически сложилось : ).

Больше никаких задач на этот серв не вешал.

Сбоев не было (ни аппаратных, ни программных).

Но даже если умрет серв по любой из причин - рядом на любом серве запускается аналогичный демон. Вешается тот же IP (чтоб релеи все не перенастраиать) и в путь.

Конфиг генериться автоматом из биллинга, как я уже выше писал...

Благо ISC DHCP - ставиться очень быстро и легко...

 

****************

С временем лизы баловался по-разному.

Давно это было. Сейчас остановился на 1 час. Уже даже не помню - почему.

В принципе пофиг сколько. И сутки ставил. И 5 минут. Нормально справляется.

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

А в идеале - заранее инсталировать рядом, написать скриптик - который "смотрит" - работает ли текущий демон, и если умер - включить запасной...

В любом случае Zabbix пришлет весточку админу и диспетчер увидит аларм на панели, если умрет серв или даже только демон dhcp...

 

Мне почудилось или тут уже 2 раза переписали

 

http://forum.nag.ru/forum/index.php?showtopic=64724&st=0

 

http://forum.nag.ru/forum/index.php?showtopic=64849&st=0

 

?

 

да, читал я. Не все там как-то радужно.

Да и не охота что-то менять и быть бета-тестером.

Повторюсь - меня устраивает полностью ISC DHCPd.

"Работает -не трогай!"

*****

Вспомнил - 5 минут lease time ставил, когда не было у меня патча от dd. Проблема перетыкальщика решалась сама - через 5 минут. Этого вполне хватает потерпеть юзеру - после того, как он сменил дома железку...

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

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


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

st_re

Те оба решения заточены под выдачу статических ip на основе mac/opt82/прочего

 

ТАм, в первом сообщении в данной теме написано

Есть у меня некая доля клиентов, которые по тем или иным причинам обзаводиться домашними роутерами не хотят, и в то же время или имеют дома несколько ноутбуков, или включают в сеть ноуты своих друзей/знакомых/гостей. Все это хозяйство поочередно перетыкается, но dhсpd просто так ip не выдает, надо ждать окончания аренды (выставлено 15 мин.), используется опция 82, привязка ip к порту. Подобных клиентов эта ситуация напрягает и они начинают названивать.

 

Тут у него не статика ? Зачем тогда ждать окончания лизы ? Оно и так выдаст следующий из пула.. В общем или я чтото не понимаю или закоментарить в сорцах поиск лизы в таблице (в идиале конечно не закоментить поиск лизы, а заменить на поиск по opt82), или поточить код (если оно сразу не подходит) от одного из тех двоих, или плакать плачем ярославны далее, что времени нет написать на кошерном языке самому.

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


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

Статика, не статика. Не в этом суть. Если юзаешь ОПЦ82 - значит точно не динамика из общего пула, иначе нафига опц82?

Когда юзаешь опц82 (свич+port (либо еще VLAN - на выбор)) - значит выдаешь конкретный IP адрес юзеру, по которому можно его однозначно идентифицировать далее (в BRAS, в биллинге, в статистике).

Можно и пул вешать на каждую опцию - т.е. резервировать на одно домохозяйство (порт) - несколько адресов, но это не всегда возможно...

И вот в случае, когда на один порт - у тебя всего один IP. (например белые раздаешь):

исторически сложилось, что ISС демон проверяет файл с лизами для данного IP, и если есть уже лиза, но с другим маком - хрен выдаст адрес.

А нам тут как раз пофиг клиентский MAC, нам нужно только опц82 матчить.

 

Варианты:

 

1. в пул для каждой опции сразу впендюривать штуки три-четыре адреса (если серые - то без проблем), если только нет каких-либо топологических ограничений, связанных с жесткой топологией - типа вилан на свич, статическая маршрутизация, жестко выделенные диапазоны /24 на свич и т.д.

 

2. Ставить время лизы - 5 минут. и через 5 минут "перетыкальщик" таки получит свой ип. Кто-то боиться, что это нагрузка большая на серв. Ну и что? Не бойтесь : )

 

3. Записывать в файл лизов - "ничего" (/dev/null) и ребутать демон каждые 5 минут. (т.е. очищать его).

Звучит дико - но на самом деле реализуется легко в кроне и никто этого не заметит - демон стартует за секунды.

Да и все равно - нужно "освежать конфиг" и ребутать демона.... (Вот тут-то любители "онлайн" демонов с БД, которые не надо ребутать каждые 5 минут - закидывают меня гнилыми помидорами и плюются йадом от такого "ужаса" : )

 

4. Юзать патч от dd (но он запретил распростраянть - не ясно какая муха его укусила :)

Кстати - может этот "запрет" противоречит GPL ? Не могет он свободный код изменить и не показывать никому : )

Скорее тут просто русские понятия нарушаются - если аффтар по дружбе тебе дал код и попросил никому более не довать - значит ни давать? И пофиг на GPL : )

 

5. Самому глянуть в исходник и подправить тот участок кода...

 

6. Обратиться к разрабам - чтобы сделали искаробки данную фичу

 

7. Юзать другой демон

 

8. написать самому : )

 

P.S. Я защищаю ISC DHCP - потому что ничего больше не пробовал, не умею и не знаю. И...потому что он работает.

:)

Так же обстоит дело со свичами Zyxel, с серверами fujitsu, с биллингом Ideco, с программными роутерами MikroTik ROS для NAS/BRAS, CMTS Arris Cadant C3, DVB-C/IPTV Teleste Luminato, и прочее и прочее и прочее - оно работает, и я их не трогаю : )

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

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


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

Те оба решения заточены под выдачу статических ip на основе mac/opt82/прочего

Тот что на перле заточен под то, что админ сам допишет логику принятия решения о том какой адрес выдавать на основе тех параметров которые есть в запросе и сам решит откуда брать адреса: там даже mysql можно выкинуть очень просто и перейти на файлы.

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


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

судя по всему в dhcp.c, в void dhcpdiscover (packet, ms_nulltp)

find_lease не находит лизу (т.к. ниже как раз %s: network %s: no free leases).

 

А вот как найти лизу по опции 82..

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


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

3. Записывать в файл лизов - "ничего" (/dev/null) и ребутать демон каждые 5 минут. (т.е. очищать его).

Звучит дико - но на самом деле реализуется легко в кроне и никто этого не заметит - демон стартует за секунды.

Да и все равно - нужно "освежать конфиг" и ребутать демона.... (Вот тут-то любители "онлайн" демонов с БД, которые не надо ребутать каждые 5 минут - закидывают меня гнилыми помидорами и плюются йадом от такого "ужаса" : )

Если лизы нет то сервер клиенту аренду не продлит. В итоге клиент может потерять IP-адрес по истечении lease time и тут же получить его снова. При большом lease time это не заметно, при небольшом абоненты могут начать попискивать.

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


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

А что скажете про db2dhcp?

Постоянно дрочить базу DHCP запросами... не по феншую как-то, либо база должна быть отреплецирована от основной

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


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

А что мешает отреплецировать?

Я что спросил-то, столкнулся с вопросом, как в db2dhcp добавить отправку статического маршрута?

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


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

А что скажете про db2dhcp?

Постоянно дрочить базу DHCP запросами... не по феншую как-то, либо база должна быть отреплецирована от основной

Когда мы начали переводить сеть с pptp на dhcp, то узрели, что (db2dhcp) vs (mpd + freeradius + nibs) показал снижение нагрузки на mysql в несколько раз. mpd (pptp) дергает базу минимум раз в минуту на каждый pptp-тунель (старты/аливы/стопы), а db2dhcp дергает базу в самом худшем случае (при отключенном кэше) - раз в lease-интервал (у нас это 10 минут).

 

Но таки да, не по феншую! Лезть в базу через кучу костыльных прослоек или ребутать сервис для перечитывания километрового конфига при малейшем изменении в биллинге - это путь для истинных ценителей феншуя!

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

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


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

2 Alexandr Ovcharenko, а статич маршруты выдавали?

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


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

открываем donate`ы для того кто сделает патчик :)

 

Бесполезняк. Это в принципе основная причина по которой я не отвечаю на письма по патчу.

Расскажу всю историю как это было.

Я случайно узнал от своего коллеги, что есть острая необходимость в подобном патче.

На тот момент мне нужны были деньги, и я решил глянуть что к чему.

Я собрал стенд из двух свичей и роутера и стал тестить. Сраз скажу, я не админ и как оно работает представляю достаточно условно.

Глянув чуть глубже в код, я понял, что есть шанс не разобраться и потратить время зря.

Пару дней бился, было ничего не понятно. Но случайно нашел достаточно интересный момент в коде, где можно все сделать красиво.

И это не проверка мака. Тот путь (проверок итд) долго меня водил за нос по разным файлам и макаронным вызовам, пока не завел в тупик.

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

 

Так как все это я начинал с целью честно заработать денег на своем опыте и знаниях.

Я решил пойти по следующему пути: положиться на понимание товарищей по IT.

Я выложил свои координаты, чтобы ко мне лично обращались.

Каждому я говорил - я даю патч сразу и бесплатно, но с условием нераспространения и добровольного пожертвования в случае успешного использования.

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

Оказалось логика и реальность - разные вещи.

Патч успешно работает в нескольких десятках сетей, среди которых есть большие (десятки тысяч абонентов) на линуксах и фре (разрабатывал кстати под фрю изначально).

На начальном этапе переписки практически все усиленно кивали головой и соглашались, что работа профессионала стоит денег, и что совершенно не против пожертвовать на благо программиста, даже порывались сразу заплатить, просили координаты, куда переводить деньги.

Что парадоксально, после того, как я отправлял код, абсолютное большинство забивало напрочь, даже забывали мне отписаться об успешности установки. Я сам потом спрашивал, говорили, что ок.

Исключения составляли только те, у кого были вопросы по DHCP. Про деньги вспомнили только 3-4 человека (могу ошибаться, точно не помню), им отдельная благодарность, было приятно.

Остальные просто забили. Это было неприятно. Ну не пи#зди ты, что заплатишь, скажи честно. Было такое, пара человек честно сказали что не заплатят и почему. Я все равно отдавал патч, проблем нет.

 

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

 

Поэтому я перестал выдавать патч - так как он был изначально делан не для себя, а для зарабатывания.

Если бы у меня была сеть и я бы делал его для себя, я бы скорее всего просто отдал бы его в общественность.

В общем опрометчиво было ожидать взаимопонимания от коллег - админов, а жаль. Знания и опыт стОит денег.

 

P.S. Сам я придерживаюсь мнения, что все стОит денег. Уже давно у меня все ПО либо купленное лицензионное, либо свободное. И пожертвования в опенсорс тоже для меня не чужды. Я того же ждал от других, видимо зря. Не доросли еще в России до этого. До сих пор встречаю удивленных людей - а почему у тебя айфон не разлочен? Да потому что.

Изменено пользователем (= dd =)

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


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

Join the conversation

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

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

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

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

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

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

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