Files in /etc/network/interfaces.d ignored, but not /etc/network/interfaces itself
I think I found it. From the manual, the problem seems to be with the source-directory
keyword. It looks that, since 16.04, it is not supported anymore.
So replacing
source-directory /etc/network/interfaces.d
with
source /etc/network/interfaces.d/*
seems to fix the problem.
I had approximately the same problem. It turns out source-directory
is supported on my system, but only includes files whose filenames consist of letters, numbers, dashes and underscores.
That is why my eth0.conf didn't get read, because it contained a dot.
Your Kernel 3.10 is too old for systemd
IFF using systemd-v230 or newer.
According to systemd
kernel requirements in github at (github.com - systemd README) you need version >= 3.12 if you are using systemd-v230
or newer:
REQUIREMENTS:
Linux kernel >= 3.12
Linux kernel >= 4.2 for unified cgroup hierarchy support
Lines 37, 38 and 39 are printed above.
You are running under ARM architecture which I frankly know little about. Google search tells me your armvl7
is used by Raspberry Pi and is a 32 bit kernel.
Updating your Kernel to modern times
If you want the latest (October 21, 2016) "Dirty COW" security protection (What is the "Dirty COW" bug, and how can I secure my system against it?) plus a host of other security patches, bug fixes and system improvements (after your 2013 version) you should be on kernel 4.4.0-47.
Unfortunately I don't know how to do that for a RaspberryPi. I have linked this question to people who use RaspberryPi and have asked them to critique this answer.