Da eine DHCP-Antwort auf der MAC-Adresse der anfragenden Schnittstelle basiert, lautet die Antwort bei einer einzigen physikalischen Schnittstelle „Sie können nicht“. Der einzige Weg, dies zu tun, wäre mit einem Skript.
Vielleicht so etwas wie (mit einer auf der primären Schnittstelle definierten Subschnittstelle):
- Primäre Schnittstelle gibt DHCP aus und erhält IP-Adresse
- macchanger ändert die MAC-Adresse der Schnittstelle
- Sub-Schnittstelle gibt DHCP aus und erhält IP-Adresse
- Mac-Adresse mit Macchanger zurücksetzen
Beenden Sie den DHCP-Client, damit er später nicht automatisch ausgeführt wird. Berechnen Sie die Lease-Dauer der IP-Adresse, die Sie erhalten haben, und planen Sie, dass dieses Skript erneut ausgeführt wird, bevor die Lease abläuft.
Aktualisieren
Dazu muss iproute2 installiert sein. Der folgende Befehl fügt eine virtuelle Schnittstelle hinzu, die an eine vorhandene eth0-Schnittstelle gebunden ist:
ip link add link eth0 address 00:11:22:33:44:55 virtual0 type macvlan
Ersetzen Sie den Namen mac und "virtual0" der Schnittstelle durch einen beliebigen Namen. Einschalten:
ip link set virtual0 up
Konfigurieren Sie dann je nach Bedarf mit dhcpd oder dhclient oder ifconfig. Ich habe dies auf Debian Squeeze getestet - Ihre Distribution hat möglicherweise nicht alles Notwendige im Kernel aktiviert (insbesondere macvlan).
Wie @JesseChisholm vorgeschlagen hat, ist es viel einfacher, den DHCP-Server nach dem Richtigen zu fragen, anstatt komplexe Netzwerkeinstellungen vorzunehmen.
Für OpenWRT könnte ich einfach ausführen:
# udhcpc -i eth0:1 -x 0x3d:0100BEEFC0FFEE
Was dazu führte, dass wir zwei IP-Adressen vom gleichen DHCP-Server hatten.
Die 0x36 ist Option 61, die die Client-ID-Option ist. Nach dem :gibt es eine Hex-Byte-Option. Dies kam von der Hilfeoption von 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)