Перейти до

FreeBSD, isc-dhcp44-relay + isc-dhcp44-server на одном компе


Рекомендованные сообщения

В 21.12.2018 в 15:13, Baneff сказал:

Захотелось раздавать адреса не в соответствии с МАС адресами клиентов, а в соответствии с сетевым интерфейсом, через который клиент подключен независимо от его MAC адреса.

 

повесить на разные интерфейсы разные подсети

и в dhcp-server разделять через subnet

также можно запускать несколько экземпляров dhcpd с привязкой к нужному интерфейсу

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 58
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Ну зачем это писать? Вы пробовали? Вы читали что я выше писал? Каждый экземпляр садится НА ВСЕ адреса. Запуск второго экземпляра невозможен. Привязка к интерфейсам на это никак не в

1 час назад, RockManX сказал:

повесить на разные интерфейсы разные подсети

и в dhcp-server разделять через subnet

также можно запускать несколько экземпляров dhcpd с привязкой к нужному интерфейсу

 

ТС похоже имел ввиду 82-ю опцию.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, RockManX сказал:
 

также можно запускать несколько экземпляров dhcpd с привязкой к нужному интерфейсу

 

Ну зачем это писать? Вы пробовали? Вы читали что я выше писал? Каждый экземпляр садится НА ВСЕ адреса. Запуск второго экземпляра невозможен. Привязка к интерфейсам на это никак не влияет. Именно это и проблема.

48 минут назад, a_n_h сказал:

ТС похоже имел ввиду 82-ю опцию.

При чём тут 82-я опция? О ней ни слова выше не было и это вообще из другой оперы. Нужна тупая привязка к виланам, привязка к портам и свичам не требуется, так как не поддерживают те свичи такого функционала.

  • Sad 1
Ссылка на сообщение
Поделиться на других сайтах
21 час назад, Baneff сказал:

Ну зачем это писать? Вы пробовали? Вы читали что я выше писал? Каждый экземпляр садится НА ВСЕ адреса. Запуск второго экземпляра невозможен. Привязка к интерфейсам на это никак не влияет. Именно это и проблема.

попробовал 

действительно даже при указании интерфейса вешается на всех

надо пересобрать dhcpd чтоб вешался не через BPF, а через socket

тогда будет прибит туда куда хотим и запускать несколько эклемплятор

так чем плох вариант с сабнетами?

Відредаговано RockManX
прогуглил
Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, RockManX сказал:

попробовал 

действительно даже при указании интерфейса вешается на всех

надо пересобрать dhcpd чтоб вешался не через BPF, а через socket

тогда будет прибит туда куда хотим и запускать несколько эклемплятор

так чем плох вариант с сабнетами?

Опять же, вы пробовали? А я пробовал :). ISC DHCP - система многоплатформенная и документация одна общая на все платформы. Да, там написано, что можно собрать с опцией слушать сокеты, а не BPF, вот только там не написано что под FreeBSD эта опция не работает. То есть опция принимается, всё компилится и собирается, но результат тот-же. Тут выше уже писали, что это видимо связано с тем, что на FreeBSD нет другой возможности слушать бродкаст, только вот так. Если так, то даже ковыряние в сырцах ничего не даст, тем более, что это уже слишком, задача того не стоит и всё-же решается просто разделением на два физических сервака.

 

А про вариант с сабнетами я не понял, поясните подробнее, плиз. Поделить сеть на подсети можно, конечно, только это приведёт к потере дефицитных адресов и непонятно как это поможет.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Baneff сказал:

Опять же, вы пробовали? А я пробовал :). ISC DHCP - система многоплатформенная и документация одна общая на все платформы. Да, там написано, что можно собрать с опцией слушать сокеты, а не BPF, вот только там не написано что под FreeBSD эта опция не работает. То есть опция принимается, всё компилится и собирается, но результат тот-же. Тут выше уже писали, что это видимо связано с тем, что на FreeBSD нет другой возможности слушать бродкаст, только вот так. Если так, то даже ковыряние в сырцах ничего не даст, тем более, что это уже слишком, задача того не стоит и всё-же решается просто разделением на два физических сервака.

 

А про вариант с сабнетами я не понял, поясните подробнее, плиз. Поделить сеть на подсети можно, конечно, только это приведёт к потере дефицитных адресов и непонятно как это поможет.

обязательно попробую, но не в этом году ;)

 

сейчас получается оба интерфейса в бридже и смотрят в одну подсеть или как? суть вопроса не до конца ясен

subnet хх.хх.хх.128 netmask 255.255.255.128 {
  range хх.хх.хх.194 хх.хх.хх.204;
  option domain-name-servers хх.хх.хх.205,1.1.1.1;
  option subnet-mask 255.255.255.128;
  option routers хх.хх.хх.205;
ххх
}

subnet хх.хх.хх.0 netmask 255.255.255.192 {
  range хх.хх.хх.20 хх.хх.хх.60;
  option domain-name-servers хх.хх.хх.13,1.1.1.1;
  option subnet-mask 255.255.255.192;
  option routers хх.хх.хх.13;
  default-lease-time 600;
  max-lease-time 7200;
}

subnet хх.хх.хх.96 netmask 255.255.255.224 {
  range хх.хх.хх.115 хх.хх.хх.125;
  option domain-name-servers хх.хх.хх.101,8.8.4.4;
  option subnet-mask 255.255.255.224;
  option routers хх.хх.хх.101;
  deny unknown-clients;
 host ххх {
   hardware ethernet хх:хх:хх:хх:хх:хх;
   fixed-address хх.хх.хх.хх;
 }
}

сеть поделена на части, разные части привязаны к разным интерфейсам

с какого интерфейса прийдёт запрос, такой сабнет этот запрос обработает

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

теряем примерно 2-3 адреса за каждый сегмент, смотря как на этот вопрос смотреть, у меня это не принципиально

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, RockManX сказал:

обязательно попробую, но не в этом году ;)

 

сейчас получается оба интерфейса в бридже и смотрят в одну подсеть или как? суть вопроса не до конца ясен


subnet хх.хх.хх.128 netmask 255.255.255.128 {
  range хх.хх.хх.194 хх.хх.хх.204;
  option domain-name-servers хх.хх.хх.205,1.1.1.1;
  option subnet-mask 255.255.255.128;
  option routers хх.хх.хх.205;
ххх
}

subnet хх.хх.хх.0 netmask 255.255.255.192 {
  range хх.хх.хх.20 хх.хх.хх.60;
  option domain-name-servers хх.хх.хх.13,1.1.1.1;
  option subnet-mask 255.255.255.192;
  option routers хх.хх.хх.13;
  default-lease-time 600;
  max-lease-time 7200;
}

subnet хх.хх.хх.96 netmask 255.255.255.224 {
  range хх.хх.хх.115 хх.хх.хх.125;
  option domain-name-servers хх.хх.хх.101,8.8.4.4;
  option subnet-mask 255.255.255.224;
  option routers хх.хх.хх.101;
  deny unknown-clients;
 host ххх {
   hardware ethernet хх:хх:хх:хх:хх:хх;
   fixed-address хх.хх.хх.хх;
 }
}

сеть поделена на части, разные части привязаны к разным интерфейсам

с какого интерфейса прийдёт запрос, такой сабнет этот запрос обработает

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

теряем примерно 2-3 адреса за каждый сегмент, смотря как на этот вопрос смотреть, у меня это не принципиально

Спасибо, вариант рабочий, но увы. Там дорогие белые адреса и их мало. Потеря 75% адресов недопустима. Как раз всё и затевалось, чтобы получить соответствие один интерфейс = один IP адрес.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, RockManX сказал:

обязательно попробую, но не в этом году

Жду ответа, как соловей лета. Возможно я что-то сделал не так. Спасибо.

Ссылка на сообщение
Поделиться на других сайтах
В 21.12.2018 в 20:26, Baneff сказал:

Полностью согласен - херня и так не должно быть. Однако факт налицо:

> sockstat -l
USER     COMMAND    PID     FD PROTO  LOCAL ADDRESS    FOREIGN ADDRESS

dhcpd    dhcpd            60531 8    udp4      *:67                           *:*

 

 

>sockstat -l | grep dhcp
dhcpd    dhcpd      19939 8  udp4   192.168.0.103:67          *:*
 

>dhcpd -v
Internet Systems Consortium DHCP Server 4.4.1
Copyright 2004-2018 Internet Systems Consortium.

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, xnet.com.ua сказал:

 

 

>sockstat -l | grep dhcp
dhcpd    dhcpd      19939 8  udp4   192.168.0.103:67          *:*
 

>dhcpd -v
Internet Systems Consortium DHCP Server 4.4.1
Copyright 2004-2018 Internet Systems Consortium.

Так это, не сдерживайте себя. Как вы дошли до жизни такой? Покайтесь, может вам послабление выйдет!

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

це ви кайтеся))))
man треба читати.
 

 The local-address statement

           local-address address;

           This statement causes the DHCP server to listen for DHCP requests
           sent to the specified address, rather than requests sent to all
           addresses.  Since serving directly attached DHCP clients implies
           that the server must respond to requests sent to the all-ones IP
           address, this option cannot be used if clients are on directly
           attached networks; it is only realistically useful for a server
           whose only clients are reached via unicasts, such as via DHCP relay
           agents.

           Note:  This statement is only effective if the server was compiled
           using the USE_SOCKETS #define statement, which is default on a
           small number of operating systems, and must be explicitly chosen at
           compile-time for all others.  You can be sure if your server is
           compiled with USE_SOCKETS if you see lines of this format at
           startup:

            Listening on Socket/eth0

           Note also that since this bind()s all DHCP sockets to the specified
           address, that only one address may be supported in a daemon at a
           given time.
 

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
8 часов назад, xnet.com.ua сказал:

це ви кайтеся))))
man треба читати.
 

 The local-address statement

           local-address address;

           This statement causes the DHCP server to listen for DHCP requests
           sent to the specified address, rather than requests sent to all
           addresses.  Since serving directly attached DHCP clients implies
           that the server must respond to requests sent to the all-ones IP
           address, this option cannot be used if clients are on directly
           attached networks; it is only realistically useful for a server
           whose only clients are reached via unicasts, such as via DHCP relay
           agents.

           Note:  This statement is only effective if the server was compiled
           using the USE_SOCKETS #define statement, which is default on a
           small number of operating systems, and must be explicitly chosen at
           compile-time for all others.  You can be sure if your server is
           compiled with USE_SOCKETS if you see lines of this format at
           startup:

            Listening on Socket/eth0

           Note also that since this bind()s all DHCP sockets to the specified
           address, that only one address may be supported in a daemon at a
           given time.
 

Настоящие джедаи маны и матчасти не читают :). Но, я сделал над собой усилие раз такое дело, прочитал этот фрагмент. Да, наверное dhcpd можно таки привязать только к одному IP, виноват. Однако решению исходной задачи это никак не поможет, увы. Надо ещё и dhcp relay такому научить, а тут облом, у него вообще даже конфига нет. Релей всё равно сядет на все адреса и всё равно запустить dhcpd server после этого не получится ибо порт менять нельзя, только 67.

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

Для интересующихся результатом по сути вопроса топика. Таки было принято решение ограничится одним тазиком, который уже есть и на доступе стоит. Там установить DHCP relay для обеспечения основной задачи - добавление в запросы клиентов информации об интерфейсах, с которого пришли эти запросы. Это требуется для дальнейшей раздачи клиентам параметров в соответствии с интерфейсом, к которому они подключены, а не в соответствии с МАС адресом клиента, как это предполагает стандартная схема. А вот DHCP сервер было решено расположить на арендованном виртуальном сервере, который где-то там в облаках. Почему так? Посчитали, что расходы на покупку, обслуживание, охлаждение и бесперебойное электрообеспечение своего второго физического сервака не имеют смысла по сравнению со стоимостью аренды виртуалки - 3.5 евро/мес при помесячной оплате, при оплате наперёд - скидка. Там у заказчика имеется уже такой арендованный виртуальный сервер для других целей, так вот, поинтересовался я аптаймом того сервака и был сильно удивлён. Таки смотрите сами:

> uptime
11:44  up 506 days,  1:47, 1 users, load averages: 0,07 0,12 0,14

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

И для себя попутно сделал я ещё один вывод: всё что можно унести в облачные виртуалки нужно туда уносить, надёжность от этого повысится, стоимость эксплуатации уменьшится. Где-то так. Комментарии приветствуются.

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Licoze сказал:

Hyper-v sever + виртуальные свитчи пробовали?

Посмотрел. Очень познавательно и увлекательно, но это же Windows. А тут FreeBSD и смена OS не обсуждается.

Ссылка на сообщение
Поделиться на других сайтах
6 hours ago, Baneff said:

....

со стоимостью аренды виртуалки - 3.5 евро/мес при помесячной

....

 

Ого, а чего так дорого? :)

 

Quote

И для себя попутно сделал я ещё один вывод: всё что можно унести в облачные виртуалки нужно туда уносить, надёжность от этого повысится, стоимость эксплуатации уменьшится. Где-то так. Комментарии приветствуются.

 

Правильный вывод. Давно уже выносится на виртуалки - биллинги, мониторинги и т.п. Тем более, делается образ сервера, который можно развернуть в любой момент на новом месте. Хотя, ни разу такой потребности не возникало.

Відредаговано vop
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, vop сказал:

Ого, а чего так дорого? :)

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

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Baneff сказал:

Посмотрел. Очень познавательно и увлекательно, но это же Windows. А тут FreeBSD и смена OS не обсуждается.

У меня в данный момент на виртуалке в hyper-v крутится freeBSD 11.2 с pfsense, никаких проблем.

При чем сам по себе Hyper-V Server бесплатный.

Відредаговано Licoze
Ссылка на сообщение
Поделиться на других сайтах
1 hour ago, Baneff said:

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

Ну это была почти шутка. :) Хотя, я беру тут https://www.hetzner.com/cloud по 2.49

Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, vop сказал:

Ну это была почти шутка. :) Хотя, я беру тут https://www.hetzner.com/cloud по 2.49

Не, спасибо, хецнеру больше не доверяю, лучше уж платить на евру больше но спать спокойно. Чисто имхо, если что.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Licoze сказал:

У меня в данный момент на виртуалке в hyper-v крутится freeBSD 11.2 с pfsense, никаких проблем.

При чем сам по себе Hyper-V Server бесплатный.

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

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

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Baneff сказал:

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

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

Да не надо к нему винду покупать, винду надо если ты хочешь gui, смысл предложенного в том чтобы разделить их на разные виртуалки и не париться(как я понял на разных физ тачках проблем нет). 

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
1 час назад, Licoze сказал:

Да не надо к нему винду покупать, винду надо если ты хочешь gui, смысл предложенного в том чтобы разделить их на разные виртуалки и не париться(как я понял на разных физ тачках проблем нет). 

Сорри, я  в виндах не силён, уровень эдвансед юзер онли. То есть что, серверную винду без gui раздают бесплатно под многоядерные двухпроцессорные тазики? И к этой винде бесплатно же раздают Hyper-V Server ? Или этот бесплатный Hyper-V Server грузится и работает сам, без винды? И потом над этим всем можно наплодить виртуалок без существенной потери производительности и под разные системы включая FreeBSD и всё это бесплатно? Типа ярмарка невиданной щедрости? Просто интересно на дальнейшее.

 

Но, предположим, что бесплатно таки. То есть беру вот я фрю, на которой по IPoE терминирутся с DHCP релеем коло 3000 юзеров плюс файервол плюс NAT плюс шейпер и плюс три внешних канала с full view BGP с общей полосой около 3гбит/с и всё это водружаю на виртуалку? А в соседнюю виртуалку ставлю фрю под DHCP сервер, DNS,  биллинг, почту, веб сервер и всю прочую мелочёвку? И будет мне счастье на одном компе всё это крутить без общей потери производительности? Лично я очень сомневаюсь, но может быть я отстал от жизни? Правда интересно.

Відредаговано Baneff
Ссылка на сообщение
Поделиться на других сайтах
16 hours ago, Baneff said:

Не, спасибо, хецнеру больше не доверяю, лучше уж платить на евру больше но спать спокойно. Чисто имхо, если что.

 

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

 

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

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • Від stack-systems
      продам сервера HPE Proliant DL380 Gen10 8SFF 2U 800W Rack - 69000 грн с ндс (цена обсуждаемая)
       
      есть кол-во, новые, в коробках, остаток с проекта
       
      можем доукомплектовать - Intel Xeon 4114 / 16GB / доп. блок питания 800w или по запросу





       
    • Від AvaloncheG
      IBM System x3550 (Type 7978) 1 x Xeon E5335 DDR2 4x1Gb 667MHz - 1200грн.
      IBM System x3650 (Type 7979AC1) 1 x Xeon E5335 DDR2 2x1Gb 667MHz - 1200грн.
      IBM System x3650 M3 (7945L4G) 2 x Xeon 6C X5660 DDR3 16Gb 1333MHz - 5000грн.
      IBM System x3650 M3 (7945L4G) 2 x Xeon 6C X5660 DDR3 48Gb 1333MHz - 6000грн.
      IBM System x3550 M4 (7914E9G) 2 x Xeon E5-2620 DDR3 24Gb 1600MHz - 8000грн.
       
      +380975649269
    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від FantoM_EscapE
      Хочу перенести свій білінг NODENY із фізичного сервера на віртуальний. Шукаю адміна який зможе допомогти у цьому питанні, так як нашого адміна банально призвали до війська. Вся схема на даний момент робоча, маю доступи до всього. Потрібно проінсталити на новішу версію FREEBSD, бо на моїй 10 річній вже не працюють нові SSL сертифікати. Кого зацікавила дана пропозиція - прошу у приватні повідомлення. обсудимо ціну і строки. або пишіть на будь-який месенджер 0677792091

×
×
  • Створити нове...