[Pdns-users] powerdns recursor 5.1 doesn't support non-yaml syntax?

Otto Moerbeek otto at drijf.net
Fri Aug 30 10:19:00 UTC 2024


On Fri, Aug 30, 2024 at 12:08:34PM +0200, prochazka at cortex.cz wrote:

> Re-reply for list.
> 
> Well...
> 
> 5.0.x had existing default old-style recursor.conf (default values, no
> modifications done). After upgrade this file was rewritten to new
> recursor.conf with yaml syntax (so all default values are gone).
> 
> tldr; this is upgrade 5.0.8 -> 5.1.1 (alltime pdns repository), not the new
> install.

If the existing recursor.conf file is *unmodified* it indeed gets
overwritten. That's unfortunate, but hard to avoid with most packaging
methods I think. Something that should have be noted in the upgrade
guide.

> 
> Renaming recursor-local.conf to recursor-local.yml:

That is not the right solution: a solution is either:

1) use the previously existing recursor.conf, so that all config is in old-style
2) Covert the additional config files to YAML format and rename them to .yml.

All config files need to be in the same format. You cannot mix old
style and new style.

https://docs.powerdns.com/recursor/appendices/yamlconversion.html contains
the docs on the conversion of a (working) old-style config to YAML.

	-Otto

> ###recursor-local.yml
> #Ansible managed
> 
> allow-from=127.0.0.1,192.168.0.0/16,SUBNET_IPV4,SUBNET_IPV4,::1/128,SUBNET_IPV6,SUBNET_IPV4
> local-address=::1,ADDR_IPV6,127.0.0.1,ADDR_IPV4
> local-port=53
> max-negative-ttl=300
> query-local-address=0.0.0.0,::
> serve-rfc1918=no
> 
> forward-zones=
> forward-zones+=internal1.cortex.cz=ADDR;ADDR;ADDR
> forward-zones+=internal2.cortex.cz=ADDR;ADDR;ADDR
> forward-zones+=168.192.in-addr.arpa=ADDR;ADDR;ADDR
> forward-zones+=x.x.x.x.x.x.x.x.ip6.arpa=ADDR;ADDR;ADDR
> forward-zones+=internal3.cortex.cz=ADDR;ADDR;ADDR
> 
> ###syslog
> 2024-08-30T11:15:19.559023+02:00 hostname systemd[1]: Starting
> pdns-recursor.service - PowerDNS Recursor...
> 2024-08-30T11:15:19.616148+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 PowerDNS Recursor 5.1.1 (C) PowerDNS.COM BV
> 2024-08-30T11:15:19.616222+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 Using 64-bits mode. Built using gcc 12.2.0 on Jul 22 2024 13:49:14
> by root at localhost.
> 2024-08-30T11:15:19.616250+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 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.
> 2024-08-30T11:15:19.616339+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 msg="Processing main YAML settings" subsystem="config" level="0"
> prio="Notice" tid="0" ts="1725009319.615" path="/etc/powerdns/recursor.conf"
> 2024-08-30T11:15:19.616367+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 msg="Processing YAML settings" subsystem="config" level="0"
> prio="Notice" tid="0" ts="1725009319.616"
> path="/etc/powerdns/recursor.d/recursor-local.yml"
> 2024-08-30T11:15:19.616493+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 msg="YAML config found, but error occurred processing it"
> error="invalid type: string \"allow-from=127.0.0.1,192.168.0.0/16,SUBNET_IPV4,SUBNET_IPV4,::1/128,SUBNET_IPV6,SUBNET_IPV4
> local-address=::1,ADDR_IPV6,127.0.0.1,ADDR_IPV4 local-port=53
> max-negative-ttl=300 query-local-address=0.0.0.0,:\", expected struct
> Recursorsettings at line 3 column 1" subsystem="config" level="0"
> prio="Error" tid="0" ts="1725009319.616"
> configname="/etc/powerdns/recursor.conf"
> 2024-08-30T11:15:19.616575+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 msg="Trying to read YAML from .yml or .conf failed, failing back to
> old-style config read" subsystem="config" level="0" prio="Warning" tid="0"
> ts="1725009319.616" configname="/etc/powerdns/recursor.conf"
> 2024-08-30T11:15:19.616649+02:00 hostname pdns-recursor[8741]: Aug 30
> 11:15:19 msg="Fatal error" error="Trying to set unknown setting 'dnssec:'"
> subsystem="config" level="0" prio="Critical" tid="0" ts="1725009319.616"
> exception="PDNSException"
> 2024-08-30T11:15:19.618127+02:00 hostname systemd[1]: pdns-recursor.service:
> Main process exited, code=exited, status=1/FAILURE
> 2024-08-30T11:15:19.618355+02:00 hostname systemd[1]: pdns-recursor.service:
> Failed with result 'exit-code'.
> 2024-08-30T11:15:19.618644+02:00 hostname systemd[1]: Failed to start
> pdns-recursor.service - PowerDNS Recursor.
> 
> 
> For me, upgrade 5.0.8 -> 5.1.1 breaks because it overwrite even default
> old-style recursor.conf and all shit with mix yaml/old-style happens.
> 
> Prochazka
> 
> 
> Dne 2024-08-30 10:46, Otto Moerbeek via Pdns-users napsal:
> > On Fri, Aug 30, 2024 at 10:16:22AM +0200, Otto Moerbeek via Pdns-users
> > wrote:
> > 
> > > On Fri, Aug 30, 2024 at 09:33:17AM +0200, Prochazka via Pdns-users
> > > wrote:
> > > 
> > > > Hi,
> > > >
> > > > i upgraded one of the 5.0.x recursor to 5.1.1 from pdns repo. We have
> > > > modifications in the /etc/powerdns/recursor.d/recursor-local.conf in the
> > > > non-yaml syntax. After upgrade i see /etc/recursor.conf include
> > > > /etc/powerdns/recursor.d/ but modifications are ignored. Why? I don't see
> > > > (or missed info) in the documentation about not supporting old syntax on
> > > > 5.1.x.
> > > >
> > > > Please confirm.
> > > >
> > > > Thanks
> > > > Prochazka
> > > 
> > > 5.1.1 accepts both YAML and old-style settings. It tries to read the
> > > the recursor.conf file as YAML, but if that fails falls back to old
> > > style.  Please share more details (exact config files and log), so we
> > > can diagnose what is going on.
> > 
> > Additional info: if the main recursor.conf file is YAML format, only
> > .yml included file are processed. Could that be happening here?
> > 
> > Our packages do not overwrite existing .conf files, but will install
> > default .conf file in YAML format for new installs.
> > 
> > 	-Otto
> > _______________________________________________
> > Pdns-users mailing list
> > Pdns-users at mailman.powerdns.com
> > https://mailman.powerdns.com/mailman/listinfo/pdns-users
> 


More information about the Pdns-users mailing list