Whilst installing and configuring shorewall (my go-to iptables firewall management tool on Ubuntu), each time I started it, it just stopped all external connectivity, despite having it "correctly configured".
After a few moments, I thought to just check that I did indeed have an eth0 and ran ifconfig - lo and behold, the cryptically name enp4s0 was my Ethernet interface.
/etc/network/interfaces also had an entry for this cryptic new device and lo - but nothing else.
|Wait. What happened to eth0?|
Changing my eth0 interface definitions in shorewall to enp4s0 quickly got my firewall running as expected.
This is, apparently, is a side-effect of the introduction of systemd (I've never, up until now, understood why everyone seems to hate systemd). This (initially somewhat counter-intuitively, perhaps) is called "predictable network interface names".
In a way it is predictable - such a name will never change as you add and remove (other) NICs - ethn could occasionally change places (chaos ensues!) as you reconfigured NICs in a Linux server. But for those that are used to the single NIC in a system being called eth0, well, it's not at all predictable! What this interface will be called depends on your system, so get used to figuring out what NICs are called before you configure them.
So, if you wonder why your networking is not behaving as expected in more modern Ubuntu server editions (15.x onwards, I believe), check to see what your interfaces are actually called! Knowing where to find out what NIC is what within an OS is useful, no matter what OS it is (Windows servers with multiple NICs can also be a bit of a 'mare).