Ich habe ein bisschen recherchiert.
Das erste, was ich gelernt habe, ist, dass es möglich ist, DHCP-Leases basierend auf anderen Kriterien als einer MAC-Adresse zuzuweisen.
Aus der DHCP- FAQ :
Was ist eine Kunden-ID?
Was als Client-ID für die Zwecke des DHCP-Protokolls bezeichnet wird, ist das, was vom Protokoll zur Identifizierung des Client-Computers verwendet wird. Standardmäßig verwenden DHCP-Implementierungen für diesen Zweck normalerweise die MAC-Adresse des Clients, das DHCP-Protokoll lässt jedoch andere Optionen zu. Einige DHCP-Implementierungen verfügen über eine Setup-Option zur Angabe der gewünschten Client-ID. Eine Alternative zur MAC-Adresse ist einfach eine Zeichenfolge Ihrer Wahl. In jedem Fall müssen Sie sicher sein, dass kein anderer Client die von Ihnen gewählte Client-ID verwendet, damit DHCP funktioniert, und Sie müssen sicher sein, dass der DHCP-Server dies akzeptiert.
Dann unterstützt dnsmasq, obwohl es anscheinend nicht von der luci-Webschnittstelle unter openWRT unterstützt wird, client_id und mehrere MAC-Adressen (mit einigen Vorsichtsmaßnahmen).
Von der dnsmasq Manpage :
-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, set: tag] [, ipaddr] [, hostname] [, lease_time] [, ignore] Geben Sie die Hostparameter für den DHCP-Server an . Auf diese Weise kann einem Computer mit einer bestimmten Hardwareadresse immer derselbe Hostname, dieselbe IP-Adresse und dieselbe Lease-Zeit zugewiesen werden. Ein so angegebener Hostname überschreibt den vom DHCP-Client auf dem Computer angegebenen Hostnamen. Es ist auch zulässig, die Hardwareadresse und den Hostnamen wegzulassen. In diesem Fall gelten die IP-Adresse und die Lease-Zeiten für alle Computer, die diesen Namen beanspruchen. Beispiel: --dhcp-host = 00: 20: e0: 3b: 13: af, wap, infinite weist dnsmasq an, der Maschine die Hardwareadresse 00: 20: e0: 3b: 13: af und einen unendlichen Namen zuzuweisen DHCP-Lease. --dhcp-host = lap, 192.168.0.199 weist dnsmasq an, der Maschinenrunde immer die IP-Adresse 192.168.0.199 zuzuweisen.
(...)
Es ist zulässig, Client-IDs anstelle von Hardwareadressen zu verwenden, um Hosts durch das Präfix "id:" zu identifizieren. Also: --dhcp-host = id: 01: 02: 03: 04, ..... bezieht sich auf den Host mit der Client-ID 01: 02: 03: 04. Es ist auch zulässig, die Client-ID wie folgt als Text anzugeben: --dhcp-host = id: clientidastext, .....
(...)
Als Sonderfall ist es möglich, mehr als eine Hardwareadresse anzugeben. Beispiel: --dhcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12,192.168.0.2 Dies ermöglicht die Zuordnung einer IP-Adresse zu mehreren Hardwareadressen und erteilt die Berechtigung dnsmasq Aufgeben einer DHCP-Lease an eine der Hardwareadressen, wenn eine andere nach einer Lease fragt. Beachten Sie, dass dies gefährlich ist und nur dann zuverlässig funktioniert, wenn zu einem bestimmten Zeitpunkt nur eine der Hardware-Adressen aktiv ist und dnsmasq dies nicht erzwingen kann. Es ist beispielsweise nützlich, einem Laptop, der sowohl kabelgebundene als auch kabellose Schnittstellen hat, eine stabile IP-Adresse zuzuweisen.
Ich habe mich für die Multi-Mac-Lösung entschieden (weil ich nicht herausgefunden habe, wie ich die Client-ID auf der Clientseite angeben kann, was für jeden einzelnen Client erforderlich ist, und die Multi-Mac-Alternative ist) eine Lösung für alle tragbaren Geräte im Haus.)
Ich habe die luci-Schnittstelle umgangen und die folgende Zeile direkt zu /etc/dnsmasq.conf hinzugefügt:
dhcp-hostsfile = / etc / dnsmasq-dhcphosts.conf
und /etc/dnsmasq-dhcphosts.conf enthält Zeilen des folgenden Formats:
mac1, mac2, ip
(Ich behalte diese Konfiguration in einer separaten Datei, um zu verhindern, dass sie beim nächsten Update überschrieben wird.)
Funktioniert gut.