Queries link local IP to wrong computer
Opened this issue · 5 comments
Versions
- Pi-hole: 5.18.2
- AdminLTE:
- FTL: 5.25.1
- Web version: 5.21
Platform
- OS and version: Debian Bullseye, kernel 6.1.21-V8+
- Platform: Raspberry Pi 3 Model B Plus Rev 1.3
Expected behaviour
When I select Recent Queries by clicking on the Bar Graph for a particular 10 mins period of the 24 hour history
I expect the report to show the activity of the client(s)
Actual behaviour / bug
When I select Recent Queries by clicking on the Bar Graph for a particular 10 mins period of the 24 hour history
The report to shows the activity of the wrong client, e.g. PC1 is associated with PC2's activity
Steps to reproduce
Steps to reproduce the behavior:
- Go to home/dashboard screen
- Click on any 10 min bar in the 24 hr history
- Scroll down or page forward (if there are many results)
- Inspect the results for mistakes
Debug Token
N/A
Screenshots
Additional context
The device "FX6300" was not switched-on on 06-May-2024. The lookups for Evernote and The Times were performed by another device.
All devices in the range 192.168.0.10 to 192.168.0.150 inclusive are given their IP4 address by PiHole DCHP.
IP6 is OFF.
PiHole host up time is 89 days.
All devices in the range 192.168.0.10 to 192.168.0.150 inclusive are given their IP4 address by PiHole DCHP.
Did you set static leases for these 2 machines?
If you didn't, IPs are not guaranteed to remain the same.
They do not have static addresses.
Then it's not possible to assume a device will always keep the same IP.
The database stores the query using the IP.
The database has the association between hostnames and IP, but this will vary from time to time.
The result is: the same hostname will possibly be linked to more than one IP (and each IP can be used by more than one device).
What do you see in Tools > Network page?
Added screen capture of Tools > Network.
I understand your comment about IP re-assignment, but I don't really see why the association record in the database doesn't contain a timestamp. I realise that you aren't using SQLServer System-Versioned Temporal Tables (and they really are quite useful if you haven't seen them) but I'd have thought that a timestamp would do the trick. Meanwhile I'll make some of my devices static.