[Networkmanager] Check if a DHCP server is responsive

Frédéric Martinsons frederic.martinsons at gmail.com
Fri May 5 09:38:49 UTC 2023


https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1619
, for those interested to look at.

On Thu, 4 May 2023 at 15:33, Frédéric Martinsons <
frederic.martinsons at gmail.com> wrote:

>
>
> On Thu, 4 May 2023 at 14:39, Thomas Haller <thaller at redhat.com> wrote:
>
>> On Thu, 2023-05-04 at 14:33 +0200, Frédéric Martinsons wrote:
>> >
>> >
>> > Le jeu. 4 mai 2023, 14:06, Thomas Haller <thaller at redhat.com> a
>> > écrit :
>> > > Hi,
>> > >
>> > > On Thu, 2023-05-04 at 11:47 +0200, Frédéric Martinsons wrote:
>> > > > Hello list,
>> > > >
>> > > > I would like to add some monitoring of the dhcp servers via the
>> > > > machines which request ip addresses from it (no access to the
>> > > > server
>> > > > itself)
>> > > > For the moment, we are only aware of the outage of this server
>> > > > when
>> > > > the lease expired.
>> > > >
>> > > > I first check if NM has a dbus api for that and didn't find one,
>> > > > the
>> > > > I use a Nagios plug-in as a standalone program
>> > > > (
>> > > > https://github.com/nagios-plugins/nagios-plugins/blob/master/plugi
>> > > > ns
>> > > > -root/check_dhcp.c) but it seems to not work on all cases I have
>> > > > (strong firewalling among other).
>> > > >
>> > > > I don't want to use nmap or other external tools that I didn't
>> > > > already have on the machines (I have strong constraint on the
>> > > > size
>> > > > available)
>> > > >
>> > > > Since our machines used NM to manage ethernet , I decided to look
>> > > > at
>> > > > the code to know how the things are handled and if a can have the
>> > > > possibility to "ping" (just emit a DISCOVER and listen for OFFER
>> > > > without accepting the lease). I first came up with a solution
>> > > > that
>> > > > involves instantiating a  NMDhcpClient to use an internal dhcp
>> > > > mechanism. It worked but I had to patch NM code to avoid messing
>> > > > with
>> > > > the system (I don't want to read the already accepted lease or
>> > > > modify
>> > > > the current lease). Moreover my binary had to link with almost
>> > > > all NM
>> > > > code which makes it very big.
>> > > >
>> > > > I finally came up with a minimal solution by mimicking what is
>> > > > done
>> > > > in  nm-dhcp-nettools.c and talking directly to the n-dhcp4
>> > > > library.
>> > > >
>> > > > Long story short, I'm wondering if this "ping dhcp" capability is
>> > > > a
>> > > > feature fitted to enter as a standalone binary (or a
>> > > > dedicated DBus
>> > > > endpoint) in NM code ?
>> > >
>> > > I don't see how such functionality would fit into NetworkManager.
>> > > But
>> > > maybe it does, if you have a specific suggestion please make it.
>> > >
>> > > Instead, I would use/build a separate tool for that. If it's a
>> > > specific
>> > > tool for that purpose, then the API would be simple. If it's a more
>> > > general tool (e.g. integrate it into ISC dhclient) then it is
>> > > already
>> > > more complicated to make the functionality general purpose and fit
>> > > it
>> > > into a more general tool.
>> >
>> > It could be generic since during my search, I found several request
>> > for such a case (but people seems happy with the tools that are
>> > already available like Nagios plug-in)
>> >
>> > > There are several DHCP client libraries and implementations. For
>> > > example there is https://github.com/nispor/mozim
>> > >
>> > > I would actually use nettools' n-dhcp4 library (which you already
>> > > investigated) and build a specialized one-purpose tool on top of
>> > > that.
>> > > That should be relatively straight forward, and if API is missing
>> > > for
>> > > making it happen, it probably can be accepted upstream.
>> > >
>> > > https://github.com/nettools/n-dhcp4
>> > >
>> > >
>> > > Thomas
>> >
>> > This is exactly what I have done (thank you very much for the code in
>> > NM which help me to achieve that), I just wanted to know if someone
>> > here could be interdested to have that ship directly in NM but I
>> > heard you, loud and clear.
>> >
>> >  Thank you Thomas for the answer.
>>
>>
>> Hi,
>>
>> maybe I just lack of imagination for how it could fit. Patch welcome,
>> if you see a use-case :)
>>
>>
>> Thomas
>>
>>
> Ok I'll submit a merge request soon for  providing such a little tool and
> we will discuss the usage (and if it can remain a standalone binary or
> if it should be more integrated) there.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/networkmanager/attachments/20230505/77e15b90/attachment.htm>


More information about the Networkmanager mailing list