Skip to content

Incorrect caching behaviour for certain domain #2590

@bobvandevijver

Description

@bobvandevijver

Versions

  • Pi-hole: 6.1.4
  • Web: 6.2.1
  • FTL: 6.2.3

Platform

  • OS and version: Debian 12 Bookworm
  • Platform: VM

Expected behavior

gitlab.yyy.zzz needs to resolve to proxy01.xxx.yyy.zzz, which resolves to an IPv4/6-address.

Actual behavior / bug

For some reason, the CNAME record in the FTL cache becomes yyy.zzz instead of proxy01.xxx.yyy.zzz. See the line numbered log:

01 - Jul 31 18:21:43 dnsmasq[535872]: query[A] gitlab.yyy.zzz from 192.168.1.160
02 - Jul 31 18:21:43 dnsmasq[535873]: query[AAAA] gitlab.yyy.zzz from 192.168.1.160
03 - Jul 31 18:21:43 dnsmasq[535872]: forwarded gitlab.yyy.zzz to x:y:z::1112
04 - Jul 31 18:21:43 dnsmasq[535872]: reply gitlab.yyy.zzz is <CNAME>
05 - Jul 31 18:21:43 dnsmasq[535872]: reply proxy01.xxx.yyy.zzz is x.y.25.213
06 - Jul 31 18:21:43 dnsmasq[535873]: forwarded gitlab.yyy.zzz to x:y:z::1112
07 - Jul 31 18:21:43 dnsmasq[535873]: reply gitlab.yyy.zzz is <CNAME>
08 - Jul 31 18:21:43 dnsmasq[535873]: reply proxy01.xxx.yyy.zzz is v:x:y:z:c0:1:0:100
09 - Jul 31 18:21:43 dnsmasq[535874]: query[A] gitlab.yyy.zzz from 192.168.1.160
10 - Jul 31 18:21:43 dnsmasq[535874]: cached gitlab.yyy.zzz is <CNAME>
11 - Jul 31 18:21:43 dnsmasq[535874]: cached proxy01.xxx.yyy.zzz is x.y.25.213
12 - Jul 31 18:21:43 dnsmasq[535876]: query[AAAA] gitlab.yyy.zzz from 192.168.1.160
13 - Jul 31 18:21:43 dnsmasq[535876]: cached gitlab.yyy.zzz is <CNAME>
14 - Jul 31 18:21:43 dnsmasq[535876]: cached proxy01.xxx.yyy.zzz is v:x:y:z:c0:1:0:100
15 - Jul 31 18:21:43 dnsmasq[535877]: query[HTTPS] gitlab.yyy.zzz from 192.168.1.160
16 - Jul 31 18:21:43 dnsmasq[535877]: cached gitlab.yyy.zzz is <CNAME>
17 - Jul 31 18:21:43 dnsmasq[535877]: forwarded gitlab.yyy.zzz to x:y:z::1112
18 - Jul 31 18:21:43 dnsmasq[535877]: reply gitlab.yyy.zzz is <CNAME>
19 - Jul 31 18:21:43 dnsmasq[535877]: reply proxy01.xxx.yyy.zzz is NODATA
20 - Jul 31 18:21:47 dnsmasq[535887]: query[A] gitlab.yyy.zzz from 192.168.1.160
21 - Jul 31 18:21:47 dnsmasq[535887]: cached gitlab.yyy.zzz is <CNAME>
22 - Jul 31 18:21:47 dnsmasq[535887]: cached yyy.zzz is x.y.232.182
23 - Jul 31 18:21:47 dnsmasq[535888]: query[AAAA] gitlab.yyy.zzz from 192.168.1.160
24 - Jul 31 18:21:47 dnsmasq[535888]: cached gitlab.yyy.zzz is <CNAME>
25 - Jul 31 18:21:47 dnsmasq[535888]: cached yyy.zzz is v:x:y:z:dcad:beff:feef:40
26 - Jul 31 18:21:47 dnsmasq[535889]: query[HTTPS] gitlab.yyy.zzz from 192.168.1.160
27 - Jul 31 18:21:47 dnsmasq[535889]: cached gitlab.yyy.zzz is <CNAME>
28 - Jul 31 18:21:47 dnsmasq[535889]: cached yyy.zzz is NODATA
29 - Jul 31 18:21:51 dnsmasq[535899]: query[AAAA] gitlab.yyy.zzz from 192.168.1.160
30 - Jul 31 18:21:51 dnsmasq[535899]: cached gitlab.yyy.zzz is <CNAME>
31 - Jul 31 18:21:51 dnsmasq[535899]: cached yyy.zzz is v:x:y:z:dcad:beff:feef:40
32 - Jul 31 18:21:51 dnsmasq[535900]: query[HTTPS] gitlab.yyy.zzz from 192.168.1.160
33 - Jul 31 18:21:51 dnsmasq[535900]: cached gitlab.yyy.zzz is <CNAME>
34 - Jul 31 18:21:51 dnsmasq[535900]: cached yyy.zzz is NODATA
35 - Jul 31 18:21:51 dnsmasq[535903]: query[A] gitlab.yyy.zzz from 192.168.1.160
36 - Jul 31 18:21:51 dnsmasq[535903]: cached gitlab.yyy.zzz is <CNAME>
37 - Jul 31 18:21:51 dnsmasq[535903]: cached yyy.zzz is x.y.232.182
38 - Jul 31 18:21:55 dnsmasq[535905]: query[AAAA] gitlab.yyy.zzz from 192.168.1.160
39 - Jul 31 18:21:55 dnsmasq[535905]: cached gitlab.yyy.zzz is <CNAME>
40 - Jul 31 18:21:55 dnsmasq[535905]: cached yyy.zzz is v:x:y:z:dcad:beff:feef:40
41 - Jul 31 18:21:55 dnsmasq[535906]: query[A] gitlab.yyy.zzz from 192.168.1.160
42 - Jul 31 18:21:55 dnsmasq[535906]: cached gitlab.yyy.zzz is <CNAME>
43 - Jul 31 18:21:55 dnsmasq[535906]: cached yyy.zzz is x.y.232.182
  1. Lines 1 - 14: look great, normal A/AAAA resolving
  2. Line 15-16: looks okay for a HTTPS action
  3. Line 17: Wait, why is a cached CNAME forwarded to the upstream resolver? Maybe because of the HTTPS query?
  4. Line 18-19: The response looks good
  5. Line 20-21: New query, looks cached
  6. Line 22: Wait, looks like it is now using the wrong CNAME
  7. Line 20-43: Cache is incorrect

Steps to reproduce

Not sure how, it only happens sporadically.

Debug Token

Additional context

This might have been an issue for quite some time, but as gitlab.yyy.zzz recently changed (two weeks back) it now comes forward. In the past, it was a CNAME for yyy.zzz, which is where it is falling back to.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions