LINUX.ORG.RU
решено ФорумAdmin

Можно ли средствами networkd-dispatcher получить событие выдачи сервером DHCP адреса клиенту?

 ,


0

1

Всем привет.

Решил попробовать настроить на systemd-networkd DHCP сервер (ага и так можно, DHCPServer=yes). И он даже работает. Через DBus можно узнавать статус и прочее.

Вот захотелось получить событие в момент выдачи IP для клиента и вроде как для этих целей есть networkd-dispatcher.

Но документация скуданая, надо ковырять. Прежде чем ковырять решил спросить - вдруг кто уже знает как?

Отвечаю сам себе.
Перелопатил исходники systemd. И вот что я выяснил. Нельзя :)
Но есть костыль. systemd посылает signal средствами dbus когда обновляется его внутренняя таблица leases (и то только когда включена опция static leases). Этот сигнал не содержит информации о конкретном выданном ip для клиента, но можно пробежаться по всей таблице и отфильтровать те, у которых время жизни условно «от сейчас и далее» или если знать предыдущую итерациию, сравнить на изменения.
Да, так себе способ. Но сервис ещё сырой и такой себе.
Я написал свой патч со своим signal и немного расширил выдачу. Теперь у себя я знаю. Патч конечно ещё сырой, но я причешу и попробую зареквестить его. Но судя по тому, что подобный реквест с расширением функционала dhcp leases висит уже бесконечно долго там, шансов у меня нисколько.

Spider55
() автор топика