I have this Arch Linux based ODROID-U3 I use as DLNA server, local web server…etc…and also as local DNS caching server.
For some strange reason pdnsd doesn’t seem to start correctly on Arch Linux.

[root@server ~]# systemctl status pdnsd -l
● pdnsd.service - proxy name server
   Loaded: loaded (/usr/lib/systemd/system/pdnsd.service; enabled)
   Active: failed (Result: exit-code) since Sat 2000-01-01 20:02:07 CET; 14 years 7 months ago
  Process: 182 ExecStart=/usr/bin/pdnsd (code=exited, status=3)
 Main PID: 182 (code=exited, status=3)

Jan 01 20:02:06 server systemd[1]: Starting proxy name server...
Jan 01 20:02:06 server systemd[1]: Started proxy name server.
Jan 01 20:02:06 server pdnsd[182]: Error in config file (line 11): Failed to get IP address of eth0: Cannot assign requested address
Jan 01 20:02:07 server systemd[1]: pdnsd.service: main process exited, code=exited, status=3/NOTIMPLEMENTED
Jan 01 20:02:07 server systemd[1]: Unit pdnsd.service entered failed state.

Adding After=network-online.target and Wants=network-online.target in the Unit section of the startup script doesn’t seem to make any difference.
So far the only workaround which really works is adding the line After=multi-user.target in the service script.

[root@server ~]# vi /etc/systemd/system/multi-user.target.wants/pdnsd.service

[Unit]
Description=proxy name server
After=network.target
After=multi-user.target

[Service]
ExecStart=/usr/bin/pdnsd

[Install]
WantedBy=multi-user.target