Резервирование адреса в DHCP из диапазона раз



  • То что такое сделать нельзя я понял. Но непонятно, какого спрашивается хрена?! В винде это делается легко и непринужденно, но почему здесь это сделать нельзя?!



  • Ну наверное есть причины. Спланируйте свою сеть и выделите диапазон для таких резервов.



  • Сеть давно спланирована и в ней есть много резервов по всему диапазону. Теперь стоит задача перевести это все с винды на пф. И тут вот такой неприятный сюрприз!



  • Как нибудь обойти это можно?



  • Если спросить меня, то я не в курсе.



  • В английской части форума дали ссылку на статью http://doc.pfsense.org/index.php/Why_can't_I_have_static_mappings_inside_my_DHCP_range%3F

    Правильно ли я понимаю что служба DHCP в pfsense перед тем как выдать адрес проверяет его занятость просто пингом?



  • Скорее всего действительно так. И если в сети уже есть ip прикрыты фаерволом режущим icmp, то появится второй ip.
    Это пол беды. Беда когда первый ip - адрес умного маршрутизатора, который такое поведение считает атакой на интерфейс и отключает его на 5 минут.



  • @nomeron:

    … И если в сети уже есть ip прикрыты фаерволом режущим icmp, то появится второй ip...

    По моему под это подходят компьютеры с вин ХП с установками по умолчанию, при которых она на пинги не отвечает. Следовательно ее адрес может быть выдан пф-ом много раз.
    Мне кажется или DHCP сервер в pfsense в его текущей реализации просто непригоден к эксплуатации?!



  • Одного не понимаю в чём паника, что нельзя разнести это в вашей ситуации?



  • А что, в функции DHCP сервера должно входить проверка выдаваемого адреса в сети?
    Мне кажется это не его функционал.
    У DHCP сервера имеется внутренняя база аренды адресов и база резервированных адресов по MAC. При обращении клиента берется свободный IP адрес по базе выданных, либо IP из резерва согласно MAC клиента.
    За наличие других DHCP серверов в сети, либо статических адресов DHCP сервер ответственности не несет, это задача админа сети.



  • @dvserg:

    А что, в функции DHCP сервера должно входить проверка выдаваемого адреса в сети?
    Мне кажется это не его функционал. …

    Вот и мне так кажется, однако в статье ссылку на которую я привел выше, пишут что он это делает и именно из-за этого нельзя назначить резервирование в диапазоне раздачи. Кроме того похоже какой либо адрес, выданный компьютеру который не отвечает на пинг, может быть выдан повторно какому либо другому компьютеру. Хотя возможно я просто неправильно перевел и понял текст статьи, но мою догадку подтверждает и nomeron.



  • @yragan:

    Одного не понимаю в чём паника, что нельзя разнести это в вашей ситуации?

    Паники нет. Можно конечно и разнести, но я тут наслушался что опенсорс это круто по функциональности и бесплатно! Нафига же мне бегать перенастраивать руками железки?!



  • 1. В моей практике небыло такого, чтобы сенс отдал 2 одинаковых адреса кому-либо.
    2. Возможность резервирования в сенсе есть (правда не из диапазона раздаваемых). Лично я не вижу никакой проблем в том, чтобы отдать под раздачу например 192.168.1.100-254, а руками в резервацию ссылать с 192.168.1.60-99, и под статику оставить все остальное.
    "Сеть давно спланирована и в ней есть много резервов по всему диапазону." А назначить им другие адреса нельзя? У Вас к ним что-то привязано именно по IP, а не по имени? Ели по имени-то при нормально работающем ДНС-проблем не возникнет, а если по IP… то извините, но опять встает вопрос о планировании сети и ее сервисов, т.к. что-то привязывать к адресам, выдаваемых динамчески, пускай даже резервированных-не логично (ИМХО).



  • @a.kozlov:

    …2. Возможность резервирования в сенсе есть (правда не из диапазона раздаваемых). ...

    Вот это и хреново! Тем более что никаких принципиальных преград для этого не существует!

    @a.kozlov:

    … Лично я не вижу никакой проблем в том, чтобы отдать под раздачу например 192.168.1.100-254, а руками в резервацию ссылать с 192.168.1.60-99, и под статику оставить все остальное.
    "Сеть давно спланирована и в ней есть много резервов по всему диапазону." А назначить им другие адреса нельзя? У Вас к ним что-то привязано именно по IP, а не по имени? Ели по имени-то при нормально работающем ДНС-проблем не возникнет, а если по IP... то извините, но опять встает вопрос о планировании сети и ее сервисов, т.к. что-то привязывать к адресам, выдаваемых динамчески, пускай даже резервированных-не логично (ИМХО).

    Вопрос о планировании уже давно не стоит! Как оно есть так и должно остаться!
    И похоже пф не справится с текущим положением дел. Прийдется оставить DHCP на винде, которая легко и непринужденно может делать резервирования в диапазоне раздачи и не занимается  херней типа "checks via ping to ensure that an IP is not actively in use when making assignments."



  • Если Вам принципиально нужно все оставить как есть, и есть такая-же принципиальная задача перейти на опенсорс, то могу предложить использовать ISC DHCP server. Там все конфигурится руками, и со своими задачами справляется более, чем на 5+.



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

    По поводу опенсорса - это не сколько не круче платного софта. Существует разные по своему качеству и функциональности проекты, и исходя из этого приходится делать выбор в ту или иную сторону.



  • @a.kozlov:

    … могу предложить использовать ISC DHCP server. Там все конфигурится руками, и со своими задачами справляется более, чем на 5+.

    http://www.isc.org/software/dhcp  он? Хотелось бы иметь все в одной коробочке и с централизованным управлением типа пф-вовского веб-интерфейса. А при использовании ISC DHCP server, как я понимаю, придется еще один ящик ставить, что с точки зрения надежности вроде как логично (один сервис - один сервер), но вроде уже и не такой высоконагруженный сервис, чтобы под него отдельный ящик ставить.



  • @dvserg:

    На сколько видел в примерах конфигурации DHCPD резервирование из диапазона технически возможно.

    Прямым путем из веб-интерфейса или обходным, типа "you may remove the input validation check from the PHP file that drives the DHCP editor page."?

    @dvserg:

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

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



  • Я в пф dhcp попробовал и отказался очень быстро. Неудобно настраивать и нет гибкости.
    Основная конфигурация висит у меня на ubuntu.
    Под ubuntu 10.04 с dhcpd никаких проблем нет. Там диапазоны задаются произвольные. И вроде дублирующихся адресов нет. Но у меня очень большие сроки аренды. У клиентов адреса практически неизменны.
    От windows пришлось отойти из-за того, что когда сервер обслуживает несколько физических подсетей, адрес при изменении сети не меняется (и простые методы типа ipconfig /release и отключение\включение адаптера не помогают)



  • @Lexuz:

    @dvserg:

    На сколько видел в примерах конфигурации DHCPD резервирование из диапазона технически возможно.

    Прямым путем из веб-интерфейса или обходным, типа "you may remove the input validation check from the PHP file that drives the DHCP editor page."?

    @dvserg:

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

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

    1. "you may remove the input validation check from the PHP file that drives the DHCP editor page." - нужно закомментировать валидатор в php.
    2. сам не до конца понял, разберусь - скажу.



  • @Lexuz:

    @a.kozlov:

    … могу предложить использовать ISC DHCP server. Там все конфигурится руками, и со своими задачами справляется более, чем на 5+.

    http://www.isc.org/software/dhcp   он? Хотелось бы иметь все в одной коробочке и с централизованным управлением типа пф-вовского веб-интерфейса. А при использовании ISC DHCP server, как я понимаю, придется еще один ящик ставить, что с точки зрения надежности вроде как логично (один сервис - один сервер), но вроде уже и не такой высоконагруженный сервис, чтобы под него отдельный ящик ставить.

    Да, он. Если железо, на котором крутиться pfSense нормальное, то можешь и тут развернуть. DHCP не тот сервис под который надо отдельную машину заводить…

    @nomeron:

    Я в пф dhcp попробовал и отказался очень быстро. Неудобно настраивать и нет гибкости.
    Основная конфигурация висит у меня на ubuntu.
    Под ubuntu 10.04 с dhcpd никаких проблем нет. Там диапазоны задаются произвольные. И вроде дублирующихся адресов нет. Но у меня очень большие сроки аренды. У клиентов адреса практически неизменны.
    От windows пришлось отойти из-за того, что когда сервер обслуживает несколько физических подсетей, адрес при изменении сети не меняется (и простые методы типа ipconfig /release и отключение\включение адаптера не помогают)

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



  • VLANами попахивает со всеми вытекающими..но это уже другая тема.

    Под это и делалось. Еще попахивает релеями + option 60, чтобы желающих поднять свой сервер обрезать.
    Для web интерфейса dhcp можно использовать Webmin, там такой модуль есть.
    Но на практике оказалось удобнее править файл конфигурации вручную (у Webmin такая возможность тоже есть)



  • У DHCP сервера имеется внутренняя база аренды адресов и база резервированных адресов по MAC. При обращении клиента берется свободный IP адрес по базе выданных, либо IP из резерва согласно MAC клиента.
    За наличие других DHCP серверов в сети, либо статических адресов DHCP сервер ответственности не несет, это задача админа сети.

    У меня сложилось мнение, что некоторые реализации dhcp  пытаются все таки определить занятые адреса двумя путями.
    1. icmp ping
    2. анализ текущей таблицы arp



  • 1. Да, таки пытаются (Conflict Detection Attempts). Вот подтверждение http://adminbook.ru/index.php?men3=4/17

    Вот поведение для Виндового сервера DHCP, но думаю актуально и для других.

    По умолчанию сервер проверяет только список адресов, уже выданных в аренду. Сеть не опрашивается для получения списка используемых адресов. В то же время в интенсивно работающей сети этот адрес может быть присвоен другому компьютеру администратором, или же к сети может подключиться компьютер с неистекшим сроком аренды, хотя сервер DHCPсчитает срок истекшим. В любом случае происходит конфликт адресов, вызывающий проблемы в сети. Чтобы этого не случалось, задайте число попыток распознавания конфликтов больше 0.



  • По поводу dhcp в пф ситуация видимо плачевная
    Вся конфигурация храниться в config.xml                           
    И параметр <range>не является массивом.     
    Значит выбросы будет крайне трудно сделать модификацией кода services_dhcp.php

    <dhcpd><opt1><range><from>192.168.1.240</from>
                                    <to>192.168.1.245</to></range>
                            <defaultleasetime><maxleasetime><netmask></netmask>
                            <failover_peerip><gateway>192.168.1.1</gateway>
                            <domain><domainsearchlist><ddnsdomain><tftp><ldap><next-server><filename><rootpath><numberoptions><dnsserver>192.168.1.1</dnsserver></numberoptions></rootpath></filename></next-server></ldap></tftp></ddnsdomain></domainsearchlist></domain></failover_peerip></maxleasetime></defaultleasetime></opt1></dhcpd></range>



  • @nomeron:

    По поводу dhcp в пф ситуация видимо плачевная
    Вся конфигурация храниться в config.xml                           
    И параметр <range>не является массивом.     
    Значит выбросы будет крайне трудно сделать модификацией кода services_dhcp.php</range>

    Не понятно, объясните что значит выбросы? Какова цель?



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



  • Что убрать проверку на вхождения адреса в диапазон, надо в services_dhcp.php
    закомментировать следующий кусок кода (с 309 строки)
    if (is_array($a_maps)) {
    foreach ($a_maps as $map) {
    if (empty($map['ipaddr']))
    continue;
    if ((ip2ulong($map['ipaddr']) > $dynsubnet_start) &&
    (ip2ulong($map['ipaddr']) < $dynsubnet_end)) {
    $input_errors[] = sprintf(gettext("The DHCP range cannot overlap any static DHCP mappings."));
    break;
    }
    }
    }



  • @nomeron:

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

    Ну это то-же самое решение, что и у разработчиков pfSense. Только они предлагают выделить все исключения в отдельный единый диапазон.
    Ваш вариант удобней для пользователя и реализуем, но немного геморнее в плане PHP кода.


Locked