From 816496ae72764912aa40ac78192877e3da73de45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20I=C3=B1iguez=20Goia?= Date: Sun, 12 Mar 2023 21:37:11 +0100 Subject: [PATCH] dns monitor: ignore some dns answers Ignore those DNS answers that we don't need or use. --- daemon/dns/systemd/monitor.go | 4 ++-- daemon/main.go | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/daemon/dns/systemd/monitor.go b/daemon/dns/systemd/monitor.go index b9fc58f5..15ef2ec1 100644 --- a/daemon/dns/systemd/monitor.go +++ b/daemon/dns/systemd/monitor.go @@ -41,8 +41,8 @@ const ( DNSTypeA = 1 // DNSTypeAAAA AAAA DNSTypeAAAA = 28 - // DNSTypeCname cname - DNSTypeCname = 5 + // DNSTypeCNAME cname + DNSTypeCNAME = 5 ) // QuestionMonitorResponse represents a DNS query diff --git a/daemon/main.go b/daemon/main.go index 669962bd..f46668c2 100644 --- a/daemon/main.go +++ b/daemon/main.go @@ -248,10 +248,16 @@ func initSystemdResolvedMonitor() { log.Debug("%d SYSTEMD RESPONSE Q: %s", i, q.Name) }*/ for i, a := range response.Answer { + if a.RR.Key.Type != systemd.DNSTypeA && + a.RR.Key.Type != systemd.DNSTypeAAAA && + a.RR.Key.Type != systemd.DNSTypeCNAME { + log.Debug("systemd-resolved, excluding answer: %#v", a) + continue + } domain := a.RR.Key.Name ip := net.IP(a.RR.Address) log.Debug("%d systemd-resolved monitor response: %s -> %s", i, domain, ip) - if a.RR.Key.Type == systemd.DNSTypeCname { + if a.RR.Key.Type == systemd.DNSTypeCNAME { log.Debug("systemd-resolved CNAME >> %s -> %s", a.RR.Name, domain) dns.Track(a.RR.Name, domain) } else {