Creating eth0 with consistent network device naming

Have you tried creating a blank /etc/udev/rules.d/80-net-name-slot.rules?

Since Udev v197, udev has implemented predictable network interface names, by creating a blank file in that path then rebooting, you should have your interface names back to what they were.

Reference: Predictable Network Interface Names


Short-term solution:

% sudo modprobe dummy
% sudo ip l set dev dummy0 name MyEth11
% sudo ip ad ad 192.168.255.254/30 dev MyEth11
% ip ad show dev MyEth11
14: MyEth11: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN 
    link/ether 6e:73:12:ad:db:8e brd ff:ff:ff:ff:ff:ff
    inet 192.168.255.254/30 scope global MyEth11
% sudo ip l set MyEth11 up

Since udev v209 this is done the following way:

$ sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

See also, Predictable Network Interface Names - I don't like this, how do I disable this?

NOTE: In that same section a couple of other methods are mentioned as well:

You basically have four options:

  1. You disable the assignment of fixed names, so that the unpredictable kernel names are used again. For this, simply mask udev's rule file for the default policy:

    $ ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
    
  2. You create your own manual naming scheme, for example by naming your interfaces "internet0", "dmz0" or "lan0". For that create your own .link files in /etc/systemd/network/, that choose an explicit name or a better naming scheme for one, some, or all of your interfaces. See systemd.link(5) for more information.

You pass the net.ifnames=0 on the kernel command line