LINUX.ORG.RU

Kea DHCP: поддержка регулярных выражений

 ,


0

1

Приветствую,

Имеется kea-dhcp-2.0.0, коим я вполне доволен вот уже несколько месяцев.

Имеется сервер с N специализированными smart-карточками, имеют свой управляющий интерфейс через псевдо сетевой интерфейс, создаваемый хостовым драйвером и доступным с именем

ens[0-9]+f[0-9]+
(ну это udev постарался). Через этот интерфейс карточка посылает dhcp запрос на получение адреса и различных опций от хоста. Эти карточки не имеют возможности себя как-то уникально идентифицировать, то есть с точки зрения хоста единственный способ это смотреть с какого интерфейса пришел запрос.

Хотелось бы понять — есть ли возможность пользоваться regexp'ами в kea? В документации ничего на этот счет не сказано.

PS. Полагаю что в крайнем случае можно было бы это реализовать в своем плагине, но это на крайний случай.

★★

карточка посылает dhcp запрос на получение адреса и различных опций от хоста. Эти карточки не имеют возможности себя как-то уникально идентифицировать

Если запросы от всех карт идентичны, как регексы помогут их различить?

А если они не идентичны (мак разный), то зачем регексы?

thesis ★★★★★
()
Ответ на: комментарий от thesis

Если запросы от всех карт идентичны, как регексы помогут их различить?

Потому что запросы идут от разных интерфейсов созданных по одному шаблону.

cruz7 ★★
() автор топика
Ответ на: комментарий от cruz7

А dhcp-серверу что с того? Ему прилетает dhcpdiscover, там идентификатора интерфейса, с которого он вылетел, нет.

thesis ★★★★★
()
Ответ на: комментарий от thesis

А dhcp-серверу что с того? Ему прилетает dhcpdiscover, там идентификатора интерфейса, с которого он вылетел, нет.

Читали ли вы мой вопрос внимательно? Там речь про Kea DHCP, который умеет много больше чем «классический» ISC dhcpd.

cruz7 ★★
() автор топика

выставлять в iptables -t mangle разные tos на разные интерфейсы и по нему отдавать dhcp например

hizel ★★★★★
()
Ответ на: комментарий от cruz7

Читали ли вы мой вопрос внимательно?

Неа. Но потом перечитал внимательно, и все равно не понял. Kea стоит на той же физической машине, на которой порождаются DHCP-запросы, что ли? Тогда да, вопрос имеет смысл.

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

thesis ★★★★★
()
Ответ на: комментарий от Anoxemian

pkt.iface ? Ты серьезно, или прикалываешься?

Почему? pkt.iface содержит имя локального интерфейса (естественно, меня не интересует имя интерфейса на стороне клиента), через который к нам поступил dhcp запрос. Это прекрасно работает, что вас удивляет?

cruz7 ★★
() автор топика
Ответ на: комментарий от thesis

Kea стоит на той же физической машине, на которой порождаются DHCP-запросы, что ли? Тогда да, вопрос имеет смысл.

Да, именно так: на хосте создается виртуальный сетевой интерфейс, который через PCI шину соединен с «внутренностями» smart NIC, и именно через этот виртуальный порт карточка посылает dhcp запросы на хост.

cruz7 ★★
() автор топика
Ответ на: комментарий от cruz7

Перечитай ОП, и задай этот вопрос себе, может?

Anoxemian ★★★★★
()
Ответ на: комментарий от cruz7

Имхо тогда только искать способы приколотить каждую карточку к фиксированному интерфейсу. Или чем-то править пакеты на лету. Или вешать отдельный сервер/релей на эту группу сетевух. А там точно-точно все пакеты к дхцп одинаковые? Дамп есть?

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от cruz7

Поясни суть проблем: на хосте создается виртуальный интерфейс. Он с адресом или без?

Если с адресом, то в конфиге заранее можно сделать свой subnet. ( если kea не требует наличия при старте всех описанных интерфейсов в interfaces-config)

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

Как отличить запрос именно из этого интерфейса о остальных?

Сделать на нем opt82 при помощи https://github.com/misje/dhcpoptinj

А opt82 можно различать при помощи https://github.com/vel21ripn/kea_flex_id

vel ★★★★★
()
Ответ на: комментарий от vel

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

Да, именно так дело и обстоит!

Сделать на нем opt82 при помощи https://github.com/misje/dhcpoptinj

Спасибо, буду копать!

cruz7 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.