I am not sure I understand what you wish to do, add a new virtual interface or rename an existing one. In any case, you and Zina are both using obsolete commands, please switch to using iproute2 commands, for exactly the reason pointed out by Zina, i.e., that some features (like detecting virtual interfaces) are not available to ifconfig and equally old utilities like route.
Add a new virtual interface. You do it as follows:
ip link add link usb0 myeth0 type macvlan
dhclient myeth0
ip addr show
where usb0 is my ethernet device (if yours is called differently, please adjust accordingly). In a concrete case (my laptop) yields what follows:
# ip link add link usb0 myeth0 type macvlan
# dhclient -v myeth0
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/myeth0/be:6b:e7:1a:f6:50
Sending on LPF/myeth0/be:6b:e7:1a:f6:50
Sending on Socket/fallback
DHCPDISCOVER on myeth0 to 255.255.255.255 port 67 interval 3 (xid=0x99d2cf3e)
DHCPREQUEST of 192.168.73.41 on myeth0 to 255.255.255.255 port 67 (xid=0x3ecfd299)
DHCPOFFER of 192.168.73.41 from 192.168.73.1
DHCPACK of 192.168.73.41 from 192.168.73.1
bound to 192.168.73.41 -- renewal in 19941 seconds.
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 9c:eb:e8:2c:32:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.73.74/24 brd 192.168.73.255 scope global dynamic usb0
valid_lft 38149sec preferred_lft 38149sec
inet6 fe80::7470:2421:63cd:c4c1/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 60:57:18:58:03:db brd ff:ff:ff:ff:ff:ff
inet 192.168.73.45/24 brd 192.168.73.255 scope global dynamic wlan0
valid_lft 1240sec preferred_lft 1240sec
inet6 fe80::489e:3c3b:4b1b:6cb4/64 scope link
valid_lft forever preferred_lft forever
4: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
valid_lft forever preferred_lft forever
inet6 fe80::800:27ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
5: myeth0@usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
link/ether be:6b:e7:1a:f6:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.73.41/24 brd 192.168.73.255 scope global myeth0
valid_lft forever preferred_lft forever
inet6 fe80::bc6b:e7ff:fe1a:f650/64 scope link
valid_lft forever preferred_lft forever
Here, my ethernet card is called usb0, and I have added a new virtual interface onto it of the macvlan type. The command ip addr show displays also the interface MAC address (another possible command to identify the MAC address would be ip link show). The expression myeth0@usb0 shows that this is a virtual interface built on the hardware of the usb0 interface. Also, you may notice that the two interfaces have distinct MAC addresses, which makes it very easy to handle ARP traffic between the two.
Rename your current interface. You may do this with a udev rule, by creating the file /etc/udev/rules.d/70-persistent-net.rules manually, which means that you do not have to worry about any update script overwriting it. Add to it the following line:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="01:02:03:04:05:06", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
where you will have to change the MAC address to the one of your card.
But, if you are like me (i.e., very impatient), then you may wish a more radical solution: I modified the following line in /etc/default/grub to look as follows:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
This will restore the naming conventions of yore (eth0, usb0, wlan0,...), which I found just good enough.
EDIT:
the answer to 7wp's question below (how do I make this permanent), depends on distro. In debian and derivatives (Ubuntu, Mint, MXLinux,...) you add to the ethernet stanza in /etc/network/interfaces, assuming eth0 to be the name of your ethernet NIC:
auto eth0
iface eth0 inet dhcp
post-up ip link add link eth0 mynewNICname type macvlan
post-up dhclient mynewNICname
post-down dhclient -r mynewNICname
That's all.
lshw -class network
? (under serial) And you should see the name withcat /proc/net/dev
and create the corresponding config in/etc/network/interfaces