powerdns recursor容器化不支持servive-name

异常日志

Fatal error
error="Unable to convert presentation address 'pdns-auth'"

PowerDNS Recursor 4.9.x 中,forward-zones 不支持 Docker service name 作为地址解析,要求填写 IP 地址

虽然 Docker 内部 DNS 可以解析:pdns-auth -> 172.x.x.x但是 Recursor 配置解析阶段不会调用 Docker DNS,所以失败。


解决

使用 Docker 容器固定IP

docker-compose:

1
2
3
4
5
networks:
dns: # 定义网络信息
ipam:
config:
- subnet: 172.20.0.0/24

pdns-auth:

1
2
3
4
5
pdns-auth:
image: powerdns/pdns-auth-49
networks:
dns:
ipv4_address: 172.20.0.10

recursor:

1
forward-zones=example.com=172.20.0.10:53

这样容器重启 IP 不变。