I have searched and search, to no avail. Connectivity works from Proxmox 8.x and 9.x hosts to both phpIPAM and PowerDNS. I have tested the connectivity via curl from each host in the cluster. Subnet exists in phpIPAM, zone exists in PowerDNS, and reverse zone exists in PowerDNS. All zones in PowerDNS are set to Primary. Here are some configuration bits:
zones.cfg:
vnets.cfg:
subnets.cfg:
dns.cfg:
ipams.cfg:
curl tests for PowerDNS API connectivity:
curl test for phpIPAM API connectivity:
I don't see any errors in the Proxmox logs, nor do I see any calls in the PowerDNS API webserver logs or the phpIPAM access/error logs except from my curl tests. I have been beating my head on my desk for a minute now trying to figure out what is wrong or not configured properly. Any help would be greatly appreciated!
zones.cfg:
Code:
vlan: jtx1
bridge vmbr0
dns powerdns
dnszone example.com
ipam phpipam
reversedns powerdns
vnets.cfg:
Code:
vnet: vlan220
zone jtx1
tag 220
subnets.cfg:
Code:
subnet: jtx1-10.253.220.0-24
vnet vlan220
dnszoneprefix jtx
gateway 10.253.220.1
dns.cfg:
Code:
powerdns: powerdns
key <REDACTED>
url http://pdns-master.jtx.example.com:8081/api/v1/servers/localhost
ttl 300
ipams.cfg:
Code:
pve: pve
phpipam: phpipam
section 1
token <REDACTED>
url https://ipam.jtx.example.com/api/pve/
curl tests for PowerDNS API connectivity:
Code:
# curl -v -H 'X-API-Key: <REDACTED>' http://pdns-master.jtx.example.com:8081/api/v1/servers/localhost/zones/jtx.example.com
* Host pdns-master.jtx.example.com:8081 was resolved.
* IPv6: (none)
* IPv4: 10.253.220.5
* Trying 10.253.220.5:8081...
* Connected to pdns-master.jtx.example.com (10.253.220.5) port 8081
* using HTTP/1.x
> GET /api/v1/servers/localhost/zones/jtx.example.com HTTP/1.1
> Host: pdns-master.jtx.example.com:8081
> User-Agent: curl/8.14.1
> Accept: */*
> X-API-Key: <REDACTED>
>
* Request completely sent off
< HTTP/1.1 200 OK
< Access-Control-Allow-Origin: *
< Connection: close
< Content-Length: 9234
< Content-Security-Policy: default-src 'self'; style-src 'self' 'unsafe-inline'
< Content-Type: application/json
< X-Content-Type-Options: nosniff
< X-Frame-Options: deny
< X-Permitted-Cross-Domain-Policies: none
< X-Xss-Protection: 1; mode=block
<
curl test for phpIPAM API connectivity:
Code:
# curl https://ipam.jtx.example.com/api/pve/subnets/7 --header "token: <REDACTED>" -i
HTTP/1.1 200 OK
Date: Fri, 28 Nov 2025 00:35:37 GMT
Server: Apache/2.4.62 (Debian)
Set-Cookie: phpipam=gc9rlfirsj4mdipptmdsecado1; expires=Sat, 29 Nov 2025 00:35:37 +0000; Max-Age=86400; path=/; SameSite=Lax; Secure; HttpOnly;
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Vary: Accept-Encoding
Content-Length: 1105
Content-Type: application/json; charset=utf-8
{"code":200,"success":true,"data":{"id":7,"subnet":"10.253.220.0","mask":"24","sectionId":1,"description":"JTX-220-SERVER","linked_subnet":null,"firewallAddressObject":null,"vrfId":null,"masterSubnetId":0,"allowRequests":1,"vlanId":3,"showName":0,"device":1,"permissions":"{\"3\":\"1\",\"2\":\"2\"}","pingSubnet":1,"discoverSubnet":1,"resolveDNS":1,"DNSrecursive":1,"DNSrecords":1,"nameserverId":2,"scanAgent":2,"customer_id":1,"isFolder":0,"isFull":0,"isPool":0,"tag":2,"threshold":0,"location":1,"editDate":"2025-11-21 11:51:43","lastScan":null,"lastDiscovery":null,"nameservers":{"id":2,"name":"JTX Local NS","namesrv1":"10.253.220.5;10.253.220.13","description":"JTX Local NS","permissions":"1","editDate":"2025-11-26 23:31:46"},"gatewayId":12,"gateway":{"ip_addr":"10.253.220.1","id":12},"calculation":{"Type":"IPv4","IP address":"\/","Network":"10.253.220.0","Broadcast":"10.253.220.255","Subnet bitmask":"24","Subnet netmask":"255.255.255.0","Subnet wildcard":"0.0.0.255","Min host IP":"10.253.220.1","Max host IP":"10.253.220.254","Number of hosts":"254","Subnet Class":"private A"}},"time":0.003}
I don't see any errors in the Proxmox logs, nor do I see any calls in the PowerDNS API webserver logs or the phpIPAM access/error logs except from my curl tests. I have been beating my head on my desk for a minute now trying to figure out what is wrong or not configured properly. Any help would be greatly appreciated!
Last edited: