Jump to content
Local
Baneff

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

Recommended Posts

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
1 час назад, RockManX сказал:

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

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

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

 

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

Share this post


Link to post
Share on other sites
2 часа назад, RockManX сказал:
 

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

 

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

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

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

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

  • Sad 1

Share this post


Link to post
Share on other sites
21 час назад, Baneff сказал:

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

попробовал 

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

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

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

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

Edited by RockManX
прогуглил

Share this post


Link to post
Share on other sites
8 минут назад, RockManX сказал:

попробовал 

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

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

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

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

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

 

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

Share this post


Link to post
Share on other sites
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 адреса за каждый сегмент, смотря как на этот вопрос смотреть, у меня это не принципиально

Share this post


Link to post
Share on other sites
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 адрес.

Share this post


Link to post
Share on other sites
1 час назад, RockManX сказал:

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

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

Share this post


Link to post
Share on other sites
В 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.

Share this post


Link to post
Share on other sites
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.

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

Share this post


Link to post
Share on other sites

це ви кайтеся))))
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.
 

Share this post


Link to post
Share on other sites
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.

Edited by Baneff

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites
15 минут назад, Licoze сказал:

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

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

Share this post


Link to post
Share on other sites
6 hours ago, Baneff said:

....

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

....

 

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

 

Quote

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

 

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

Edited by vop

Share this post


Link to post
Share on other sites
1 час назад, vop сказал:

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

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

Share this post


Link to post
Share on other sites
4 часа назад, Baneff сказал:

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

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

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

Edited by Licoze

Share this post


Link to post
Share on other sites
1 hour ago, Baneff said:

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

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

Share this post


Link to post
Share on other sites
17 минут назад, vop сказал:

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

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

Share this post


Link to post
Share on other sites
2 часа назад, Licoze сказал:

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

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

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

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

Share this post


Link to post
Share on other sites
2 часа назад, Baneff сказал:

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

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

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

Share this post


Link to post
Share on other sites
1 час назад, Licoze сказал:

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

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

 

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

Edited by Baneff

Share this post


Link to post
Share on other sites
16 hours ago, Baneff said:

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

 

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

 

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

Edited by vop

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Impulsee
      День добрый!
      Есть Связка Ubilling+NAS на freebsd. 
      Настроена на Виртуалке VMware. 
      Без VLAN все работает идеально. Трафик бегает, IP раздается, Денюжка зачисляется и т.д.
      Появилась потребность поднять 3 VLAN на локальном интерфейсе для Абонов. 
      Сделал: /etc/rc.conf
       
      Вывод /etc/firewall.conf 
       
       
      Сети, шаблоны NAS, в биллинге прописал. Абоны IP получают через VLAN. Интернет есть....
       
      НО:
       
      При отрицательном балансе на em1 все отключается мгновенно, и отправляет в кабинет. 
      А на VLAN сетях Интернет есть. 
       
      Кусок /var/stargazer/allconnect.log

       
      кусок /var/log/stargazer.log
       
       
      Подскажите, плиз, в какую сторону копать?
       
    • By dxservice
      Продам серверы IBM Server BladeCenter HS21 XM, с двумя процессорами E5440 и с 16gb ram, без HDD (при желании можно добавить)
      7995G5G
      Цена 2000 грн
       

       

       




    • By SieG
      Supermicro 1026T-M3F
      Материнка: x8dtl-3f
      Процессора: Е5649 х2
      Радиаторы: родные.
      ОЗУ: 48гб (8гб х6)
      Корзин нет.
      Рельсы в комплекте.

      9000грн.
       
      ---
       
      Supermicro 1026T-M3F
      Материнка: x8dtl-3f
      Процессора: Е5620 х2
      Радиаторы: родные.
      ОЗУ: 24гб (8гб х3)
      Корзин нет.
      Рельсы в комплекте.

      6000грн.
    • By anarh1111
      Продам сервачек dell R620 
      В комплекте:
      --2 блока питания
      --1 проц e5-2620 six Core
      --2 саласки 2,5"
      --1 планка на 8ГБ
       
      Пишите в личку 
      по Киеву могу доставку организовать
      Так же есть планки памяти по 8 Гб-700 грн./штука
       
      Цена 10500 грн.
       




    • By 46Tolik
      Продам сервер HP ProLiant DL380p G8 8x3.5. Без нюансов.
       
      Комплектация:
      Процессоры два Xeon E5-2665 8 core (всего 16 ядер/32 потока)
      Оперативная память - 64 Gb DDR3 (8x8Gb)
      SAS RAID HP Smart Array P420i + 2GB CASH with FBWC + capasitor
      Сетевая карта HP Ethernet 1Gb 4-port 331FLR
      Блоки питания два 460 Watt Platinum 94%
       
      цена 24 к
       
      Комплектация:
      Процессоры два Xeon E5-2620 6 core (всего 12 ядер/24 потока)
      Оперативная память - 32 Gb DDR3
      SAS RAID HP Smart Array P420i + 2GB CASH with FBWC + capasitor
      Сетевая карта HP Ethernet 1Gb 4-port 331FLR
      Блоки питания два 460 Watt Platinum 94%
       
      цена 18 к
       



×