DHCP dynamic clients not showing as expected

wiki.ipfire.org - DHCP Server

At the end of the DHCP Configuration page there should be a list of all my dynamic leases, but it does not show. I can refresh the page a few times and eventually entries will show up, but I would expect to see them all there, always.

So I assume some of the DHCP Options for polling the devices needs to be set, but out of these, I am not sure what to choose:

Option name Option value
all-subnets-local flag
arp-cache-timeout uint32
bootfile-name string
boot-size uint16
broadcast-address ip-address
cookie-servers ip-address [, ip-address… ]
default-ip-ttl uint8
default-tcp-ttl uint8
dhcp-client-identifier data-string
domain-search domain-list
finger-server ip-address [, ip-address… ]
font-servers ip-address [, ip-address… ]
host-name string
ieee802-3-encapsulation flag
ien116-name-servers ip-address [, ip-address… ]
impress-servers ip-address [, ip-address… ]
interface-mtu uint16
ip-forwarding flag
irc-server ip-address [, ip-address… ]
log-servers ip-address [, ip-address… ]
lpr-servers ip-address [, ip-address… ]
mask-supplier flag
max-dgram-reassembly uint16
merit-dump string
mobile-ip-home-agent ip-address [, ip-address… ]
ms-classless-static-routes string
netbios-dd-server ip-address [, ip-address… ]
netbios-node-type uint8
netbios-scope string
nis-domain string
nisplus-domain string
nisplus-servers ip-address [, ip-address… ]
nis-servers ip-address [, ip-address… ]
nntp-server ip-address [, ip-address… ]
non-local-source-routing flag
ntp-servers ip-address [, ip-address… ]
path-mtu-aging-timeout uint32
path-mtu-plateau-table uint16 [, uint16… ]
perform-mask-discovery flag
policy-filter ip-address ip-address [, ip-address ip-address… ]
pop-server ip-address [, ip-address… ]
resource-location-servers ip-address [, ip-address… ]
rfc3442-classless-static-routes string
root-path string
router-discovery flag
router-solicitation-address ip-address
smtp-server ip-address [, ip-address… ]
static-routes ip-address ip-address [, ip-address ip-address… ]
streettalk-directory-assistance-server ip-address [, ip-address… ]
streettalk-server ip-address [, ip-address… ]
swap-server ip-address
tcp-keepalive-garbage flag
tcp-keepalive-interval uint32
tftp-server-name string
time-offset int32
time-servers ip-address [, ip-address… ]
trailer-encapsulation flag
www-server ip-address [, ip-address… ]
x-display-manager ip-address [, ip-address… ]
string type “quoted string” or 00:01:FF…
ip-address type 10.0.0.1 | www.dot.com
domain-list type “example.com”, “eng.example.com”, “sales.example.com
int,uint types numbers
flag type on | off
Your custom option definition Option value
any-name code NNN=boolean|((un)?signed )?integer (8|16|32)|ip-address|text|string|encapsulate \w+|array of ip-address
a-string code 100=string
a-number code 101=signed integer 8
wpad code 252=text
wpad “server.fr

Suggestions?

Wait… default lease time is set to 60 minutes and max to 120… that should explain it, if there is zero activity they will flush out in 2 hours. I think changing those values to something significantly higher will help.

1 Like

If your client computer stays connected to the network and stays turned on then the lease time won’t cause it to lose its connection. At 50% of the lease time the client will ask the dhcp server if it can renew the lease and as the machine is the same one as originally asked for the lease then the lease will be extended. There will be no interruption in connection.

If the client is disconnected from the network (plug pulled out) or is turned off then when the lease time has expired that IP address will still show in the connections list but with the lease time crossed out indicating that the computer used to be connected but is no more.

As long as there are remaining dynamic ip’s available in the range you have specified then those will be used in preference to an expired lease. Only when there are no more unused IP’s available then dhcp will start using expired leases.

The expired leases stay in the Dynamic Leases table for ever currently, unless the dhcp section for green or blue is disabled and saved and then re-enabled and saved. Then all expired leases will be removed from the dynamic leases table.

The only leases that you will see in the dynamic leases table are those from the dynamic range. The leases in the Current Fixed Leases Table do not show up in the Dynamic Leases table. A problem can occur if you have an IP that is specified in the Current Fixed Leases table and it is also in the specified dynamic range. This is not allowed. All fixed leases should be outside the dynamic leases range. Having them overlap can cause unexpected things to happen with dhcp ip assignment.

Dynamic leases that have been assigned to a pc will automatically show in the table without needing any other dhcp options. If they are not showing up then there is a problem with the setup of the dhcp IP’s in some form or other.

Maybe you could show a screenshot of the dhcp server WUI page and indicate which IP’s are not showing up in the Dynamic Leases table

1 Like

I hav several clients connected all the time. I can show you a screenshot from Lansweeper that I use to monitor them if you like. Nothing has been plugged out, some wireless devices come and go.

The specified table ranges from 192.168.1.2 - 192.168.1.250. I have currently 5 entries I have made static.

Most of my devices use DHCP and have not been setup with static IP’s.

There are currently 53 devices on my Lan, including wireless, and including the static ones.

The lease table is still not populating and I do not know what the WUI page you refer to is.
https://192.168.1.1:444/cgi-bin/dhcp.cgi ?

Ah, Web User Interface.

I see some dhcp lease entries in the log summary

Never had problems with that before. My File server is on 10, my NAS is on 100, they have been for at least a decade and through completely different typs of network equipment, spanning from Asus to Zyxel, including Ubiquiti and Mikrotik and D-Link. Worked with those routing tables.

Considering I can use the very simple Host Editor to assign names to IP addressess and actually have that working as a name lookup without using the IP, I can of course remake the address range to suite the dhcp table requirements.

… but I will have to remake a number of custom mappings in a few different places. Like a backup software that is currently going towards the IP of locations instead of hostnames, and several similar occurances.

Still, is this matter the cause for dynamic entries not showing up?

The fact, you did have problems, doesn’t mean this configuration is okay. You just had luck.

The manual for the DHCP server states that a mix of dynamic and fixed leases is unpreditable in behaviour. So you should separate them.

If you have 53 devices on the LAN ( with fixed IPs < 192.168.1.128 ) I suggest to define the dynamic range as 192.168.1.128 - 192.168.1.254 ( giving pool of 127 IPs, more then twice the number of devices ).

I am not fond of either luck or unpredictable in IT… causes all kinds of problems…

It is nearly impossible in software development to build a general solution. The DWIM ( do what I mean ) program isn’t possible.
All software has requirements and conditions to be valid. And validation takes these in account.

In case of the DHCP server one condition is that the sets of fixed lease IPs and dynamic lease IPs are disjunct. So you can’t state how the program reacts on violation of this condition.

I did not say you were wrong… now did I… ? :wink:

I know about software development, been there projected and managed that. Not network stuff though.

Sorry, I used the acronym because it is shorter to type but of course not all people on the forum are familiar with it to start with.

In your log summary you have warnings that some hosts have both static and dynamic mappings.

Yes, other people have had similar situations work for a long time but there have been a few people on the forum who have ended up complaining that their fixed ip pc was not able to get its fixed ip because it had been given to another pc as a dynamic ip. Typically this has occurred when a fixed ip machine is turned off or disconnected for some maintenance that has been longer than the remaining lease time and when it was turned back on the IP had been given to another machine.

My first thought would be no but I also can not say that it cannot be the reason.
All my physical and vm systems have separated fixed and dynamic ranges as per the ISC dhcp server manual and the IPFire dhcp wiki page. I have never had a problem with any dynamic assigned IP showing up in the dynamic IP table.
On the forum the complaint has usually been that if the dynamic pool is large enough compared to the number of clients then expired dynamic leases stay in the table for nearly ever, unless a reboot or disable/enable of the dhcp subnet is carried out. There has not been any complaint, or bug reported that the dynamic IP’s are not showing up in the Dynamic IP table.

If it is difficult to separate the dynamic and fixed IPs to non-overlapping ranges, then I can setup a vm on my testbed to evaluate overlapping dynamic and fixed IP’s and see what result I get. I will not be able to do that for a few days as I have other IPFire activities to complete, that I am currently working on.

3 Likes

I was having a look at your DHCP WUI page and noted that you have defined external DNS addresses for primary and secondary rather than the IPFire green IP address.

This will mean that your clients on green will likely use those external dns addresses directly and not go through the IPFire unbound DNS server.

In IPFire there is some bridge software that runs between unbound and dhcp that flags up new clients that have occurred. That is probably not occurring because you are using external DNS servers directly and that could make the clients not appear in the Dynamic Leases table.
I am not certain on this as I have not had a look through the code that runs for the Dynamic Leases table to see where it gets its information from. However it might be an easy check to carry out to see if using the IPFire unbound dns proxy server then makes the Dynamic Leases show up. You can use the same DNS servers you have used on the dhcp page in the DNS page

1 Like

I will look into that and see if it makes any difference, I could also just let it use the default ISP DNS.

Thanks so far

Just for information about

2 Likes

I gave back the default ISP DNS entries to see if that helps and I think I may have static addressing on both client and routing, so I guess that is also confusing the DHCP. Cleaning that up…

Don’t I need a second DHCP server instance to run a second IP span?

Gateway 192.168.1.1
DHCP0 192.168.1.2 - 192.168.1.101 (keeping servers and infrastructure stuff there)
DHCP1 192.168.1.110 - 192.168.255 (clients)

Short answer: No

Detailed answer:

  • Your green network is 192.168.1.0/24.
    The network address is 192.168.1.0
    The broadcast address is 192.168.1.255
    So the set of IPs for devices is P={‘192.168.1.1’ … ‘192.168.1.254’}
  • Set P can be divided into to subsets F=“set of fixed(‘static’) IPs” and D=“set of dynamic IPs”.
  • The DHCP server leases IPs out of the set S=F+D, condition F ∩ D = Ø
    F is defined in ‘host’ definitions, D is defined as ‘pool’ definition inside the ‘subnet’ definitions in dhcpd.conf.
  • The DHCP server searches an IP for the MAC given in the request in the host list first. If no match is found, it selects an unused IP out of D based on the network the request arrived.
  • As shown above the ISC dhcpd handles DHCP requests for all networks entirely, so there is no need to use an own server for each subset of addresses in each network.

FYI:

The DHCP server does have more functions than used in IPFire, but a main concept of our project is the configuration by the WebGUI ( besides the basic config with setup ). So the WebGUI defines the structure of DHCP serving.
All configurations should be done with the WebGUI. Manual modifications must be chosen with some knowledge. The database used by the WebGUI are a bunch of settings files. Web pages generate the necessary config files on demand of the admin ( usually by pressing ‘save’).

5 Likes

TIP!

So I enabled WIO and it can show me the ARP table and lo and behold, there I see all my leases.

A little hint

The routing table can be seen in:
WUI → Status → Network (other)

obraz

In WIO, once clients have been added, new clients will not add themselves automatically.

Best

3 Likes

Now I can see DHCP leases on the DHCP page.

I really don’t know what happened or what I did for that to work.

Technology GIFs | Tenor

aaaand now they are gone from Current dynamic leases.

I only noticed because I had to add my new Solar Converter to a fixed IP on Blue.

What might be going on?

Rebooted, had to reboot twice, it failed on getting Red running at first (!).

No diff.