Jump to content
Local
Baneff

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

Recommended Posts

Доброго всем дня.

Стояла себе сетка з раздачей адресов по DHCP c FreeBSD  сервака через isc-dhcp44-server и всё работало. Захотелось раздавать адреса не в соответствии с МАС адресами клиентов, а в соответствии с сетевым интерфейсом, через который клиент подключен независимо от его MAC адреса. Для этого понадобилось установить isc-dhcp44-relay, который умеет снимать имена интерфейсов с входных запросов и передавать их DHCP серверу. И тут вылезла проблема. Если isc-dhcp44-relay и isc-dhcp44-server находятся на физически разных компах, то всё работает без проблем. Однако, держать отдельно специальный комп только под isc-dhcp44-server как-то не хочется, хотелось бы всё это впихнуть на один комп и вот тут - никак. Эти два продукта одной фирмы садятся в сетевой стек очень глубоко, на уровне BPF и пытаются одновременно занять одни и те-же ресурсы. Попытка поместить isc-dhcp44-server в Jail и даже в виртуальную машину тоже успеха не принесла. Попытки заменить на продукты других разработчиков пока не дали работоспособной конфигурации тоже. Кто-то сталкивался с такой задачей? Есть хоть какая-то возможность совместить оба продукта ISC на одном FreeBSD компе? Или, возможно, есть другое рабочее решение для раздачи IP адресов клиентам не по MAC-ам, а по интерфейсам подключения с помощью одного FreeBSD компа?

Спасибо.

Share this post


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

Доброго всем дня.

Стояла себе сетка з раздачей адресов по DHCP c FreeBSD  сервака через isc-dhcp44-server и всё работало. Захотелось раздавать адреса не в соответствии с МАС адресами клиентов, а в соответствии с сетевым интерфейсом, через который клиент подключен независимо от его MAC адреса. Для этого понадобилось установить isc-dhcp44-relay, который умеет снимать имена интерфейсов с входных запросов и передавать их DHCP серверу. И тут вылезла проблема. Если isc-dhcp44-relay и isc-dhcp44-server находятся на физически разных компах, то всё работает без проблем. Однако, держать отдельно специальный комп только под isc-dhcp44-server как-то не хочется, хотелось бы всё это впихнуть на один комп и вот тут - никак. Эти два продукта одной фирмы садятся в сетевой стек очень глубоко, на уровне BPF и пытаются одновременно занять одни и те-же ресурсы. Попытка поместить isc-dhcp44-server в Jail и даже в виртуальную машину тоже успеха не принесла. Попытки заменить на продукты других разработчиков пока не дали работоспособной конфигурации тоже. Кто-то сталкивался с такой задачей? Есть хоть какая-то возможность совместить оба продукта ISC на одном FreeBSD компе? Или, возможно, есть другое рабочее решение для раздачи IP адресов клиентам не по MAC-ам, а по интерфейсам подключения с помощью одного FreeBSD компа?

Спасибо.

 

разнести их по разным интерфейсам же

хз, можно ли дхцп сервер вынести в lo0, но если прокатит - вас ждет успех

либо на пустой бридж посадить

Share this post


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

разнести их по разным интерфейсам же

хз, можно ли дхцп сервер вынести в lo0, но если прокатит - вас ждет успех

либо на пустой бридж посадить

Они оба по интерфейсам не разводятся и чисто на lo0 не садятся, а сразу тупо пытаются сесть на 0.0.0.0/0:67 вне зависимости от настроек. Естественно, сразу у обоих это не получается. Можно посадить сервер на порт, отличный от 67, тогда запускаются оба. Но тогда непонятно, как заставить релей передавать запросы юзеров на нестандартный порт сервера. Ещё идеи есть?

Share this post


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

Они оба по интерфейсам не разводятся и чисто на lo0 не садятся, а сразу тупо пытаются сесть на 0.0.0.0/0:67 вне зависимости от настроек. Естественно, сразу у обоих это не получается. Можно посадить сервер на порт, отличный от 67, тогда запускаются оба. Но тогда непонятно, как заставить релей передавать запросы юзеров на нестандартный порт сервера. Ещё идеи есть?

Запросы передавать на другой порт с помощью фаервола

Share this post


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

Запросы передавать на другой порт с помощью фаервола

Интересная мысль, спасибо, попробую с помощью ipfw fwd перенаправить запросы на нестандартный порт.

Share this post


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

Интересная мысль, спасибо, попробую с помощью ipfw fwd перенаправить запросы на нестандартный порт.

ipfw_or_pf

Share this post


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

ipfw_or_pf

Да, но на этом компе только ipfw используется в даннй момент, не хочется плодить сущности. Как раз сейчас проверяю, о результатах доложусь.

Share this post


Link to post
Share on other sites

Пишите, инстересно узнать

Share this post


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

Они оба по интерфейсам не разводятся и чисто на lo0 не садятся, а сразу тупо пытаются сесть на 0.0.0.0/0:67 вне зависимости от настроек. Естественно, сразу у обоих это не получается. Можно посадить сервер на порт, отличный от 67, тогда запускаются оба. Но тогда непонятно, как заставить релей передавать запросы юзеров на нестандартный порт сервера. Ещё идеи есть?

Да херня же, не должно так быть.

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

Share this post


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

Да херня же, не должно так быть.

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

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

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

dhcpd    dhcpd            60531 8    udp4      *:67                           *:*

Share this post


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

Пишите, инстересно узнать

Не, не получается. Пытался завернуть запросы на нестандарный порт по всякому, но дхцп сервер не отвечает на такие попытки.

Share this post


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

accel-ppp вам в помощь

Ага, щаз. Под фрёй оно не живёт.

Share this post


Link to post
Share on other sites

Поверьте это лучшее что я видел для ipoe из open source.

Edited by fet4

Share this post


Link to post
Share on other sites
Только что, fet4 сказал:

Поверьте это лучшее что я видел для ipoe.

Верю, но смена оси не обсуждается, не от меня зависит.

Share this post


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

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

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

dhcpd    dhcpd            60531 8    udp4      *:67                           *:*

А конфиг под него как выглядит?

Раньше опция была dhcpd_ifaces

Share this post


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

А конфиг под него как выглядит?

Раньше опция была dhcpd_ifaces

Опция есть, говорит на каких интерфейсах слушать. Но тулза всё равно садится на *:67 без разговоров и это не отключается. В код лезть как-то лениво, видно придётся таки доставить второй комп, может заодно ещё для чего пригодится. Больше идей пока нет.

Share this post


Link to post
Share on other sites

понизьте версию по, или стороннее установите с нага возьмете

Share this post


Link to post
Share on other sites

Чем плох релей на коммутаторе? В крайнем случае, микротик?

2 поеделки ISC одновременно на одной машине работать не будут.

Share this post


Link to post
Share on other sites

Если уж очень хочется запустить всё на одной системе, то пользовать релей от ISC на radius или на Perl

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

Share this post


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

понизьте версию по, или стороннее установите с нага возьмете

Пробовал 3-ю версию - аналогично, да и безопасность пострадает, там дыры.С нага и прочее стороннее брал и пробовал, но проблема в том, что всё это потустороннее - это всё DHCP сервера, а рабочий DHCP релей с нужным функционалом по сути наличествует только один, вот этот самый ISC DHCP Relay. Это очень странно, но правильно работать с виланами, а не только с МАС-ами клиентов почему-то может только вот эта поделка. Значит, если мы ставим перед собой задачу все это запустить на одно компе, то первая половина задачи не обсуждается - сначала ставим ISC DHCP Relay. На а дальше всё, тупик. Как я уже говорил этот релей хоть и обеспечивает необходимый функционал, но при запуске сразу и без вариантов биндится на *:67, а после этого уже невозможно на этот комп поставить никакой DHCP сервер, поскольку ему тоже нужно биндиться на 67 порт хотя-бы на один IP адрес, но всё уже тупо занято релеем. Попытки привязать DHCP сервер к другому порту и потом мапить/перенаправлять порты к успеху не привели, возможно я что-то не так делал. Вывод я для себя сделал такой - не хочешь использовать релеи на свичах - ставь второйкомп и разноси физически релей и сервер, всё работает без проблем. Не хочешь ставить второй комп - только схема с релеями на свичах и сервером на компе, тоже работает. А вот первоначальная задача - обойтись одним компом без использования релеев свичей похоже решения не имеет, что обидно конечно.

Share this post


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

Чем плох релей на коммутаторе? В крайнем случае, микротик?

2 поеделки ISC одновременно на одной машине работать не будут.

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

Share this post


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

Если уж очень хочется запустить всё на одной системе, то пользовать релей от ISC на radius или на Perl

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

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

Share this post


Link to post
Share on other sites

Кстати, попробовал сейчас такую связку: релей на локальном компе, а сервер на виртуальном серваке, арендованом где-то в облаках за 3.5 евры в мес. Работает. Это, конечно, экстрим, на как вариант на крайняк... Между релеем и сервером идёт простой юникастовый обмен по udp с порта 67 на порт 67 и обратно, никакой магии. Попутно выяснилось, что продукты ISC действительно работают с клиентами через BPF на очень глубоком уровне стека, еще перед всякими файерволами и тому подобным. Запретить там что-то или перенаправить куда-то правилами файервола невозможно, обмен происходит ниже. Говорят так исторически сложилось, слишком древний и слмшком многоплатформенный продукт, получилось как смогли. Но вот с нелокальными ресурсами эта байда работает стандартно, потому физическое разнесение и помогает. Где-то так.

Share this post


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

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

 

Иначе на BSD системах никак не принять широковещалку, насколько я понимаю предмет.

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 к
       



×