Como una respuesta de DHCP se basa en la dirección MAC de la interfaz solicitante, con una única interfaz física, la respuesta es "no se puede". La única forma de hacerlo sería con un script.
Tal vez algo como (con una subinterfaz definida en la primaria):
- La interfaz principal emite DHCP y obtiene la dirección IP
- macchanger cambia la dirección MAC de la interfaz
- La subinterfaz emite DHCP y obtiene la dirección IP
- Revertir la dirección mac con macchanger
Mata al cliente dhcp para que no se ejecute automáticamente más tarde. Calcule el tiempo de arrendamiento de la dirección IP que le dieron y programe este script para que se ejecute nuevamente antes de que expire el arrendamiento.
Actualizar
Para esto necesitará iproute2 instalado. El siguiente comando agrega una interfaz virtual vinculada a una interfaz eth0 existente:
ip link add link eth0 address 00:11:22:33:44:55 virtual0 type macvlan
Reemplaza el nombre mac y "virtual0" de la interfaz por lo que quieras. Enciéndelo:
ip link set virtual0 up
Luego configure usando dhcpd o dhclient o ifconfig según sea necesario. He probado esto en Debian squeeze:es posible que su distribución no tenga habilitado todo lo necesario en el kernel (particularmente macvlan).
Como sugirió @JesseChisholm, es mucho más fácil preguntar lo correcto al servidor DHCP en lugar de realizar configuraciones de red complejas.
Para OpenWRT podría simplemente ejecutar:
# udhcpc -i eth0:1 -x 0x3d:0100BEEFC0FFEE
Lo que resultó en tener dos direcciones IP del mismo servidor dhcp.
El 0x36 es la opción 61, que es la opción de identificación del cliente. Después de:hay una opción de byte hexadecimal. Esto vino de la opción de ayuda de udhcpc:
# udhcp --help
BusyBox v1.22.1 (2014-10-08 16:34:50 HKT) multi-call binary.
Usage: udhcpc [-fbqRB] [-t N] [-T SEC] [-A SEC/-n]
[-i IFACE] [-s PROG] [-p PIDFILE]
[-oC] [-r IP] [-V VENDOR] [-F NAME] [-x OPT:VAL]... [-O OPT]...
...
-x OPT:VAL Include option OPT in sent packets (cumulative)
Examples of string, numeric, and hex byte opts:
-x hostname:bbox - option 12
-x lease:3600 - option 51 (lease time)
-x 0x3d:0100BEEFC0FFEE - option 61 (client id)