# grep auto /etc/network/interfaces auto lo # grep hotplug /etc/network/interfaces allow-hotplug enp0s31f6
# ifquery --read-environment --list --exclude=lo # as in unit file # # ifquery --read-environment --list --exclude=lo --allow auto # # ifquery --read-environment --list --exclude=lo --allow hotplug enp0s31f6 But if I convert enp0s31f6 to auto # grep /etc/network/interfaces auto lo auto enp0s31f6 # ifquery --read-environment --list --exclude=lo --allow hotplug # (as expected) # ifquery --read-environment --list --exclude=lo --allow auto enp0s31f6 # ifquery --read-environment --list --exclude=lo enp0s31f6 So with the interface set to auto, the ifquery in the unit file picks it up. With the interface set to allow-hotplug, it doesn't. I think this is part of the puzzle, but there is more to it. I think that there are some issues arising from how ifupdown and systemd (fail to) communicate about when exactly the network interface is fully up and working (particularly in the dhcp case). If you look at the work that has gone into ifupdown since the stretch release, it seems like there are some issues there that have now, hopefully, been resolved. Kind regards Vince