These commands worked on Slackware
Code:
ifconfig eth0 add 10.0.0.41
ifconfig eth0:0 broadcast 10.0.0.255 netmask 255.255.255.0
As you can see from the usage in the second command the first command created eth0:0 (in addition to the original eth0). IDK how far this technique can be used to satisfy all your requirements but it may be a good start.
An alternative approach may be to configure the physical NIC as a bridge and to tap into it with three virtual adapters, say eth0, 1 and 2. I did read "
Tunneling (like TUN/TAP or GRE): this must be supported on both sides, this is not acceptable solution for me since I cannot change the way how my ISP works" but AIUI this technique is used when hosting virtual machines and, as far as the rest of the LAN is concerned, eth0, 1 and 2 don't function any differently from real NICs on the network.