Como sugerido nos comentários, eu obviamente não pesquisei o suficiente ...:)
No meu exemplo acima:
nano /etc/udev/rules.d/70-persistent-net.rules
Insira algo no seguinte, completo com os MACs certos no lugar certo:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b5:dd:d5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b5:dd:cb", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b5:dd:c1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
Dê ao seu servidor uma reinicialização e você verá algo como o seguinte:
eth0 Link encap:Ethernet HWaddr 00:0c:29:b5:dd:d5
inet addr:192.168.30.117 Bcast:192.168.30.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb5:ddd5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1260 (1.2 KB) TX bytes:468 (468.0 B)
eth1 Link encap:Ethernet HWaddr 00:0c:29:b5:dd:cb
inet addr:192.168.20.117 Bcast:192.168.20.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb5:ddcb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1260 (1.2 KB) TX bytes:468 (468.0 B)
eth2 Link encap:Ethernet HWaddr 00:0c:29:b5:dd:c1
inet addr:192.168.10.117 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb5:ddc1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1728 (1.7 KB)