one host with multiple concurrent leases from different pools

Simon Hobson dhcp1 at thehobsons.co.uk
Fri Oct 31 10:05:09 UTC 2008


Curt Rask wrote:

>I have a similar issue to the one quoted below.

I don't think it is.

>I have all of my network (DHCP relay points) and DHCP statements 
>configured to hand out IP's to a single device.  The problem I am 
>finding is that during the initiation phase (DHCP Discover, Offer, 
>Request, ACK), each of the leases negates the previous one.  The 
>IP's being handed out are the correct IP's for the VLAN in question, 
>it's just the server seems to think that the new "discover" 
>supplants the existing lease info.

It is behaving correctly I believe.

>For my configuration, the "host" is a network device that is VLAN 
>aware and uses the same MAC address for each of VLAN interface that 
>request an IP.   The relay agent is not a router.  It is another 
>switch that has some L3 ability.  When it relays, it sets the GIADDR 
>to the one and only 1 IP address it uses for management.  It also 
>sets option 82 information for Remote-ID, and Circuit-ID.  The 
>circuit ID contains physical interface information, as well as VLAN 
>information which is unique to the host.  Additionally, the UID of 
>the client is the same, regardless of which VLAN it makes a request 
>on.

OK, here is what I think is happening :

Firstly, your switch is NOT setup correctly. "... switch that has 
some L3 ability.  When it relays, it sets the GIADDR to the one and 
only 1 IP address it uses for management ..." does not describe a 
proper multi-network relay agent which would set the GI-Addr 
correctly to an address appropriate to each physical network to which 
it is connected. This means that you have to workaround the issue by 
incorrectly using a shared network statement when you do not in fact 
have a shared network - each VLAN is a DIFFERENT network.

Then we have this bit - "... the UID of the client is the same, 
regardless of which VLAN it makes a request on." This means that the 
client is THE SAME CLIENT whichever network it is on - both the MAC 
address and Client ID are the same, therefore it is the same client 
(not a number of different clients).

My only guess as to why it might be freeing the other leases is this :

Client comes along and matches class "B" but not class "A".
Client previously had a lease in a pool permitted for Class A, but 
this time it does NOT match Class A.
Server identifies that client does not match Class A, whilst it IS 
currently connected to that physical network, and deletes the active 
lease as the client is not entitled to it.

Perhaps someone more intimate with the code could confirm if this is the case.


What I suggest you need to do is fix your broken relay agent - it 
needs to correctly set GI-Addr to an address valid for a subnet on 
each VLAN. Then remove the incorrect shared-network statements.

If you can fix these two problems then i think you'll find that the 
setup will work correctly.

-- 
Simon Hobson

Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.


More information about the dhcp-users mailing list