On 2025/04/30 12:41, Otto Moerbeek wrote:
On Tue, Apr 29, 2025 at 03:18:44PM +0100, Robby Pedrica via Pdns-users wrote:
Hi pdns community
I've got an odd issue where some clients do not get a response from either
of my 2 recursors. Both are v5.1.4 deployed via docker with fairly std
configs. Generally the logs will indicate if something is not in the
allowed-from list but these clients don't show there. For all intents and
purposes, the recursors work normally and well for all my other clients.
Since you left out specifics, it's not possible for us to see what is
going wrong. Please read
https://blog.powerdns.com/2016/01/18/open-source-support-out-in-the-open
and try again with no information edited except secrets like
passwords.
-Otto
Hi Otto
1 - thank you very much for your reply
2 - my apologies for the delayed response however I've been travelling
the last week
3 - I intimately understand the requirement to provide as much
information as possible as I provide support myself; in this case, I
spent a significant amount of time troubleshooting and collecting
information on the issue - |I thought I had provided everything relevant
but it's clear from your reply that that is not the case; however what
is not clear, is what I left out (and the provided link does not assist
with specifics either).
I'm going to make the assumption that you are referring to the
recursor.yml configuration file, and therefore provide that here in full
(minus secrets):
///
######### SECTION incoming #########
incoming:
listen:
- 0.0.0.0
- '::'
allow_from:
# - 0.0.0.0/0
- 127.0.0.1
- 172.0.0.0/8 # docker networks
- 10.10.10.0/24 # client subnet
##### The load factor used when PowerDNS is distributing queries to
worker threads
# distribution_load_factor: 0.0
##### Launch this number of distributor threads, distributing queries to
other threads
# distributor_threads: 0
port: 53
proxy_protocol_from: [105.55.55.33/32]
use_incoming_edns_subnet: true
##### Maximum number of requests handled concurrently per TCP connection
# max_concurrent_requests_per_tcp_connection: 10
##### Maximum number of simultaneous TCP clients
max_tcp_clients: 128
######### SECTION logging #########
logging:
common_errors: true
disable_syslog: false
# facility: ''
loglevel: 6
##### Suppress logging of questions and answers
quiet: false
######### SECTION nod #########
nod:
##### Log newly observed domains.
log: true
##### Track newly observed domains (i.e. never seen before).
# tracking: false
######### SECTION outgoing #########
outgoing:
edns_subnet_allow_list: !override
- 0.0.0.0/0.
max_busy_dot_probes: 50
######### SECTION packetcache #########
packetcache:
##### Disable packetcache
# disable: false
######### SECTION recursor #########
recursor:
daemon: false
etc_hosts_file: /etc/hosts
hint_file: /etc/named.root.txt
lua_config_file: /etc/proxy-map.lua
##### Launch this number of threads listening for and processing TCP queries
# tcp_threads: 1
##### Launch this number of threads
threads: 4
##### string reported on version.pdns or version.bind
# version_string: '*runtime determined*'
write_pid: true
######### SECTION webservice #########
webservice:
address: 0.0.0.0
allow_from: !override
- 10.10.11.0/24
api_key: ---
##### Amount of logging in the webserver (none, normal, detailed)
loglevel: normal
password: ---
port: 8082
webserver: true
######### SECTION dnssec #########
dnssec:
log_bogus: false
max_dnskeys: 2
validation: process
######### SECTION ecs #########
ecs:
##### List of client netmasks for which EDNS Client Subnet will be added
add_for:
- 0.0.0.0/0
- ::/0
///
The related proxy-map.lua:
///
-- protobufServer("10.10.11.50:514" , "maxQueuedEntries=100",
"logQueries=true", "logResponses=true", "logMappedFrom=false")
protobufServer("10.10.11.50:514")
-- AE
addProxyMapping("10.10.10.0/24", "41.55.55.33")
///
I can't provide less sanitised information in the pcap and logs as that
would expose sensitive information (which I think is reasonably
sanitised). But let me know on this point in any case.
If you are however referring to something else, then I would appreciate
you specifying the additional information that you would require to
assist me in collecting that info.
Appreciate your time
Robby
Design:
client ---> firewall --- ipsec vpn --- firewall ---> recursor ---> internet
Troubleshooting:
- check for blocks due to allow_from (nothing listed for these clients)
- check local firewall rules (nothing special or different for specific
clients)
- tcpdump on the recursor hosts show queries hitting those hosts
- pcaps on both firewalls show good traffic
- the start of the logs show the ACL for allow_from is correct
PDNS-rec Config:
------------------------
//
/######### SECTION incoming #########
incoming:
listen:
- 0.0.0.0
- '::'
allow_from:
- x.x.x.x/y
- etc.
port: 53
proxy_protocol_from: [a.a.a.a/b]
use_incoming_edns_subnet: true
max_tcp_clients: 128/
//
PDNS-rec docker config:
---------------------------------
//
/---
version: '2.0'
services:
recursor:
image: powerdns/pdns-recursor-51:latest
restart: always
ports:
- "53:53"
- "53:53/udp"
- "8082:8082"
logging:
driver: "syslog"
volumes:
- ./recursor.yml:/etc/powerdns/recursor.yml
- ./named.root.txt:/etc/named.root.txt
- ./proxy-map.lua:/etc/proxy-map.lua/
//
PDNS-rec logs:
---------------------
recursor_1 | Apr 29 13:53:49 PowerDNS Recursor 5.1.4 (C) PowerDNS.COM BV
recursor_1 | Apr 29 13:53:49 Using 64-bits mode. Built using gcc 10.2.1
20210110 on Apr 8 2025 10:17:24 by root@localhost.
recursor_1 | Apr 29 13:53:49 PowerDNS comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it according to
the terms of the GPL version 2.
recursor_1 | Apr 29 13:53:49 msg="Processing main YAML settings"
subsystem="config" level="0" prio="Notice" tid="0" ts="1745934829.121"
path="/etc/powerdns/recursor.yml"
recursor_1 | Apr 29 13:53:49 msg="YAML config found and processed"
subsystem="config" level="0" prio="Notice" tid="0" ts="1745934829.121"
configname="/etc/powerdns/recursor.yml"
recursor_1 | Apr 29 13:53:49 msg="Enabling IPv4 transport for outgoing
queries" subsystem="config" level="0" prio="Notice" tid="0"
ts="1745934829.123"
recursor_1 | Apr 29 13:53:49 msg="Setting access control"
subsystem="config" level="0" prio="Info" tid="0" ts="1745934829.125"
acl="allow-from" addresses="x.x.x.x/y a.a.a.a/b etc."
recursor_1 | Apr 29 13:53:49 msg="Will not send queries to"
subsystem="config" level="0" prio="Notice" tid="0" ts="1745934829.132"
addresses="127.0.0.0/8 10.0.0.0/8 100.64.0.0/10 169.254.0.0/16
192.168.0.0/16 172.16.0.0/12 ::1/128 fc00::/7 fe80::/10 0.0.0.0/8
192.0.0.0/24 192.0.2.0/24 198.51.100.0/24 203.0.113.0/24 240.0.0.0/4 ::/96
::ffff:0:0/96 100::/64 2001:db8::/32 0.0.0.0 ::"
PDNS-rec host pcap:
------------------------------
tcpdump -i any -v 'host <client-ip>'
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size
262144 bytes
14:01:49.419703 IP (tos 0x0, ttl 124, id 45946, offset 0, flags [none],
proto UDP (17), length 83)
<client-hostname>.65424 > <recursor-hostname>.domain: 16579+ [1au] A?
canary.officeapps.live.com. (55)
14:01:49.419758 IP (tos 0x0, ttl 123, id 45946, offset 0, flags [none],
proto UDP (17), length 83)
<client-hostname>.65424 > 172.24.0.2.domain: 16579+ [1au] A?
canary.officeapps.live.com. (55)
14:01:49.419766 IP (tos 0x0, ttl 123, id 45946, offset 0, flags [none],
proto UDP (17), length 83)
<client-hostname>.65424 > 172.24.0.2.domain: 16579+ [1au] A?
canary.officeapps.live.com. (55)
Any ideas on what could be wrong or what I'm missing here is appreciated.
Regards
Robby
_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users
_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users