Comme une réponse DHCP est basée sur l'adresse MAC de l'interface demandeuse, avec une seule interface physique, la réponse est "vous ne pouvez pas". La seule façon de le faire serait d'utiliser un script.
Peut-être quelque chose comme (avec une sous-interface définie sur le primaire) :
- L'interface principale émet le DHCP et obtient l'adresse IP
- macchanger modifie l'adresse MAC de l'interface
- La sous-interface émet le DHCP et obtient l'adresse IP
- Rétablir l'adresse mac avec macchanger
Tuez le client DHCP, afin qu'il ne s'exécute pas automatiquement plus tard. Déterminez la durée du bail de l'adresse IP qui vous a été attribuée et planifiez l'exécution de ce script avant l'expiration du bail.
Mettre à jour
Pour cela, vous aurez besoin d'installer iproute2. La commande suivante ajoute une interface virtuelle liée à une interface eth0 existante :
ip link add link eth0 address 00:11:22:33:44:55 virtual0 type macvlan
Remplacez le nom mac et "virtual0" de l'interface par ce que vous voulez. Activez-le :
ip link set virtual0 up
Configurez ensuite en utilisant dhcpd ou dhclient ou ifconfig selon vos besoins. J'ai testé cela sur Debian squeeze - votre distribution n'a peut-être pas tout le nécessaire activé dans le noyau (macvlan en particulier).
Comme @JesseChisholm l'a suggéré, il est beaucoup plus facile de demander la bonne chose au serveur DHCP au lieu de faire des configurations réseau complexes.
Pour OpenWRT, je pourrais simplement exécuter :
# udhcpc -i eth0:1 -x 0x3d:0100BEEFC0FFEE
Ce qui a eu pour résultat d'avoir deux adresses IP du même serveur DHCP.
Le 0x36 est l'option 61 qui est l'option d'identification du client. Après le :il y a une option d'octet hexadécimal. Cela vient de l'option d'aide 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)