Protože odpověď DHCP je založena na MAC adrese požadujícího rozhraní, s jediným fyzickým rozhraním je odpověď „nemůžete“. Jediný způsob, jak to udělat, by byl pomocí skriptu.
Možná něco jako (s dílčím rozhraním definovaným na primárním):
- Primární rozhraní vydá DHCP a získá IP adresu
- macchanger změní MAC adresu rozhraní
- Podrozhraní vydává DHCP a získává IP adresu
- Vraťte mac adresu pomocí macchangeru
Zabijte klienta dhcp, aby se později automaticky nespustil. Zjistěte dobu zapůjčení přidělené IP adresy a naplánujte spuštění tohoto skriptu před vypršením zapůjčení.
Aktualizovat
K tomu budete potřebovat nainstalovaný iproute2. Následující příkaz přidá virtuální rozhraní vázané na existující rozhraní eth0:
ip link add link eth0 address 00:11:22:33:44:55 virtual0 type macvlan
Nahraďte mac a "virtual0" název rozhraní za cokoliv, co se vám líbí. Zapněte jej:
ip link set virtual0 up
Poté podle potřeby nakonfigurujte pomocí dhcpd nebo dhclient nebo ifconfig. Testoval jsem to na Debian squeeze – vaše distro nemusí mít v jádře povoleno vše potřebné (zejména macvlan).
Jak navrhl @JesseChisholm, je mnohem snazší zeptat se na správnou věc serveru DHCP namísto složitého nastavování sítě.
Pro OpenWRT bych mohl jednoduše spustit:
# udhcpc -i eth0:1 -x 0x3d:0100BEEFC0FFEE
Což vedlo ke dvěma IP adresám ze stejného dhcp serveru.
0x36 je možnost 61, což je možnost ID klienta. Po :je možnost hexadecimálního bajtu. Toto přišlo z možnosti nápovědy 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)