Перейти до

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 користувачів

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

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

    • Від Remez
      Ценник 5,500
       
      в наличии 3 шт
       
       





    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від Plastilin
      Вітаю. Маю наступний комплект. Ubilling на Debian + Mikrotik CHR як маршрутизатор. Наче все запустилось, але виникло питання яке не вдається розрулити. Читав Wiki, ковиряв, читав знову Wiki, знову ковиряв - не допомогло.
      Чи можливо якось визначити конкретну IP адресу з пулу який видає Mikrotik клієнту через Radius? Мені пропонує обрати наступну вільну адресу з пулу при спробі зміни адреси?
      З цього з'являється додаткове питання, чи можливо контролювати доступ користувачам у яких IP назначений статично, тобто прописаний вручну? Наприклад при зміні статусу не активний - пхати до Firewall Mikrotik правила заборони доступу з IP адреси визначеної вручну, навіть якщо вона не отримана по DHCP.
       
      UPD: з першою частиною знайшов: IP_CUSTOM=1 в alter.ini 
    • Від safelock
      hello.
      How to configure dhcp snooping in zte C320 v2.1.0?
      In c220 I set: 
       
      In C320 v2.1.0 I don't have option to set trust port? how to declared trust port?
       
    • Від rocker_ilko
      Продам сервера Dell r430 шасі на 8 дисків 2.5 sata  2 cpu e5 2630 v3/ без памяті/без хдд/2 блока живлення/idrack enterprise  = 8000грн
       
      Dell r720 шасі на 16 дисків 2,5   2 cpu e5 2660 v2/32gb/raid 710/2 блока живлення/idrack enterprise  = 8000грн
       
      Dell r730xd шасі на 24 диска 2,5   2 cpu e5 2650 v4/без памяті/raid 730/2 блока живлення/idrack enterprise  = 17000грн
       
      В наявності є і інші моделі серверів

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