Send dhcp-users mailing list submissions to
        dhcp-users@lists.isc.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.isc.org/mailman/listinfo/dhcp-users
or, via email, send a message with subject or body 'help' to
        dhcp-users-requ...@lists.isc.org

You can reach the person managing the list at
        dhcp-users-ow...@lists.isc.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of dhcp-users digest..."


Today's Topics:

   1. Re: dont-use-fsync real world impact (Simon Hobson)
   2. Re: Override dynamic lease with static reservation (Simon Hobson)
   3. Re: dont-use-fsync real world impact (Niall O'Reilly)
   4. Re: Configuring option 82 (Niall O'Reilly)
   5. Re: Override dynamic lease with static reservation
      (Niall O'Reilly)


----------------------------------------------------------------------

Message: 1
Date: Sun, 29 Sep 2019 16:43:56 +0100
From: Simon Hobson <dh...@thehobsons.co.uk>
To: Users of ISC DHCP <dhcp-users@lists.isc.org>
Subject: Re: dont-use-fsync real world impact
Message-ID: <d350af7a-bda4-4332-a33d-df48c54e3...@thehobsons.co.uk>
Content-Type: text/plain; charset=us-ascii

Jure Sah <e...@juresah.si> wrote:

> I see, so if theoretically the DHCP server could work in such a way as
> to "fsync asynchronously" (oxymoron I know), in that the lease could be
> written to disk before it is offered to the client, but not necessarily
> before the next lease could be served, then this would adhere to the
> RFC, represent no real performance penalty, while also not limiting the
> rate at which requests can be served.
> 
> What changes would be required for this to work? A memory pool of
> offered IP addresses which are not to be assigned to new clients?
> Rotating a pool of physical disks to store leases in? Multiple
> synchronised DHCP servers?


I suspect it would be a very very major redesign of the code. I would guess a 
multi-threaded server where each thread could handle one request - writing a 
lease record and responding to the client before being available to handle 
another request. As long as the lease record were built in a local buffer and 
written in an atomic write, then lease file integrity would be assured.
I suspect it would need a single thread responsible for arbitrating access to 
the database - allowing service threads to acquire an address for a client and 
mark it as in use as an atomic operation to prevent race conditions between 
competing service threads.

Given that the existing single-thread code can handle large numbers of clients 
with suitable hardware, and there are methods (see below) for splitting the 
load if needed, and there are few users needing this level of performance, I 
can't see this being a good use of developer time. Of course, if you really 
need something, then the ISC are open to people who will sponsor development 
work.

BTW - I don't know how much of this applies to Kea, which is ISCs replacement 
for the venerable DHCP server. Not sure of the status at the moment, but at 
launch, Kea (while having some advantages) was not feature complete against the 
older server.


Jure Sah <e...@juresah.si> wrote:

> Well I quite disagree, even with SSD RAID arrays, the ultimate
> performance is finite, whereas demands on a DHCP service for instance by
> mobile clients is quite significant and it's easy to have too many
> customers for a single server.

You can have multiple servers on a network.
It's a bit more involved if you have a huge flat network, but that would be 
poor network design anyway. Particularly if you have multiple networks 
(different subnets, or more correctly, multiple broadcast domains) then it's 
fairly easy to have different servers (or pairs) serving groups of networks. 
You can also have multiple failover pairs, and a server can be in different 
failover relationships with different pools. You can have (say) four servers on 
one network, either as simply A-B and C-D with half the available pool 
configured on each pair, or it can be done A-B, B-C, C-D, and D-A with a 
quarter of the pool configured on each failover pairing. Particularly with the 
latter arrangement, you can reduce overlap on DHCP-Discover messages by getting 
one half of each pair to ignore clients until they have been trying for a 
certain time, or perhaps using Agent-CircuitID (at the expense of more 
processing).
In the past, one rather ingenious idea was to have a local server at each 
access point (the specific case in mind was a distributed wireless access 
system where access points did not necessarily have battery backup) - with no 
permanent storage. Each of these servers has a failover pairing with a central 
server. Normal operation is handled by the remote server using RAM-disk for 
very fast storage with failover (which is async) providing a backup to the 
central server. If the remote server fails or has maintenance etc, a relay 
agent can be turned on to allow the central server to handle clients, and the 
remote server can reload it's database from the central server using the 
failover protocol when it restarts. This does, however, trade off a certain 
amount of risk in that there is a window between local operations and the 
result being reflected via failover in the central database.

So a few options there.



------------------------------

Message: 2
Date: Sun, 29 Sep 2019 17:22:44 +0100
From: Simon Hobson <dh...@thehobsons.co.uk>
To: Christian Kratzer <c...@cksoft.de>, Users of ISC DHCP
        <dhcp-users@lists.isc.org>
Subject: Re: Override dynamic lease with static reservation
Message-ID: <b1d7e253-ecf2-486f-868b-c58e4947a...@thehobsons.co.uk>
Content-Type: text/plain; charset=us-ascii

Christian Kratzer <ck-li...@cksoft.de> wrote:

> Summary:
> 
> This is default isc dhcp behaviour.
> 
> From all that I remember from looking at the code host always takes precence 
> from dynamic leases.

Well, I've just checked and concur - adding a host entry with fixed address 
does cause a request for the dynamic lease to be Nacked - lease unavailable. A 
discover is replied to with the fixed address. That's with version 4.2.2.
There must have been a change somewhere, because I do recall that in the past 
(and it's going back some years now) I distinctly remember having to edit the 
leases file to remove dynamic leases in order to force clients to get the fixed 
address. Just adding the host entry was not sufficient at some time in the past.



------------------------------

Message: 3
Date: Mon, 30 Sep 2019 08:55:32 +0100
From: "Niall O'Reilly" <niall.orei...@ucd.ie>
To: "Users of ISC DHCP" <dhcp-users@lists.isc.org>
Subject: Re: dont-use-fsync real world impact
Message-ID: <f2b7967d-893a-460b-8483-f329a7ba8...@ucd.ie>
Content-Type: text/plain; markup=markdown

On 28 Sep 2019, at 12:33, Jure Sah wrote:

> I see, so if theoretically the DHCP server could work in such a way as
> to "fsync asynchronously" (oxymoron I know), in that the lease could be
> written to disk before it is offered to the client, but not necessarily
> before the next lease could be served, then this would adhere to the
> RFC, represent no real performance penalty, while also not limiting the
> rate at which requests can be served.
>
> What changes would be required for this to work?

Have you read the documentation for the delayed-ack and max-ack-delay
statements?

> [...]
>
> I am just trying to find a solution to this problem that is infinitely
> scalable.

To echo Steinar Haug, neither the network nor the client population is
infinitely scalable.

IMHO, it makes sense to have infrastructure scale in proportion to
demand, and to use monitoring to identify both when there is insufficient
headroom and where the real choke-points are.

The most significant bottleneck to DHCP services which I ever had to deal
with was due to excessive fsync in the syslog process, not even in dhcpd.

Niall O'Reilly


------------------------------

Message: 4
Date: Mon, 30 Sep 2019 10:58:47 +0100
From: "Niall O'Reilly" <niall.orei...@ucd.ie>
To: "Users of ISC DHCP" <dhcp-users@lists.isc.org>
Subject: Re: Configuring option 82
Message-ID: <e1dd6580-f4f2-4911-af25-026f85318...@ucd.ie>
Content-Type: text/plain; charset=utf-8; format=flowed

On 27 Sep 2019, at 12:32, Surya Teja wrote:

> In one of the google forum I have read the statement saying like?
>
> The internal implementation in ISC DHCPD of classes is such that it 
> scales in a non-linar way - O(N^2) or something. So suddenly you'll 
> end up with dhcpd eating 100% CPU.
>
> So I just want to avoid the classes?

I think you may find that the documentation for dhcpd.conf,
if you read it carefully, will give you more useful insight
than "one of the google forum".

In particular, this:

     SUBCLASSES
        In addition to classes, it is possible to declare subclasses.  A
        subclass is a class with the same name as a regular class, but 
with a
        specific submatch expression which is hashed for quick matching. 
  This
        is essentially a speed hack - the main difference between five 
classes
        with match expressions and one class with five subclasses is 
that it
        will be quicker to find the subclasses.

I hope this helps.

Niall O'Reilly


------------------------------

Message: 5
Date: Mon, 30 Sep 2019 11:08:08 +0100
From: "Niall O'Reilly" <niall.orei...@ucd.ie>
To: "Users of ISC DHCP" <dhcp-users@lists.isc.org>
Subject: Re: Override dynamic lease with static reservation
Message-ID: <b472b7f4-981d-49ad-ae86-2123d1872...@ucd.ie>
Content-Type: text/plain; markup=markdown

On 29 Sep 2019, at 17:22, Simon Hobson wrote:

> Just adding the host entry was not sufficient at some time in the past.

>From my experience, I can confirm this.

Configuring 'deny known-clients;' in the relevant pool specification(s)
was enough to prevent continued use of the previously-used dynamic
lease.

Niall O'Reilly


------------------------------

Subject: Digest Footer

_______________________________________________
dhcp-users mailing list
dhcp-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/dhcp-users


------------------------------

End of dhcp-users Digest, Vol 131, Issue 26
*******************************************

Reply via email to