[Networkmanager] Check if a DHCP server is responsive

Frédéric Martinsons frederic.martinsons at gmail.com
Thu May 4 13:33:10 UTC 2023


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/20230504/b592359a/attachment-0001.htm>


More information about the Networkmanager mailing list