Zrobiłem trochę badań.
Najpierw dowiedziałem się, że można przypisywać dzierżawę DHCP na podstawie kryteriów innych niż adres MAC.
Z FAQ dhcp :
Co to jest identyfikator klienta?
To, co nazywa się identyfikatorem klienta dla celów protokołu DHCP, jest tym, co jest używane przez protokół do identyfikacji komputera klienckiego. Domyślnie implementacje DHCP zwykle wykorzystują do tego celu adres MAC klienta, ale protokół DHCP dopuszcza inne opcje. Niektóre implementacje DHCP mają opcję konfiguracji, aby określić żądany identyfikator klienta. Alternatywą dla adresu MAC jest po prostu ciąg znaków do wyboru. W każdym razie, aby DHCP mógł działać, musisz mieć pewność, że żaden inny klient nie używa wybranego przez Ciebie identyfikatora klienta, i upewnij się, że serwer DHCP go zaakceptuje.
Następnie, chociaż najwyraźniej nie jest obsługiwany przez interfejs internetowy luci w openWRT, sam dnsmasq obsługuje identyfikator_klienta i wiele adresów MAC (z pewną ostrożnością).
Z dnsmasq strony man :
-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, set: tag] [, ipaddr] [, nazwa hosta] [, lease_time] [, ignoruj] Określ parametry hosta dla serwera DHCP . Dzięki temu maszynie o określonym adresie sprzętowym zawsze można przydzielić tę samą nazwę hosta, adres IP i czas dzierżawy. Określona w ten sposób nazwa hosta zastępuje dowolną dostarczoną przez klienta DHCP na komputerze. Dopuszczalne jest również pominięcie adresu sprzętowego i podanie nazwy hosta, w którym to przypadku adres IP i czasy dzierżawy będą miały zastosowanie do każdej maszyny, która ma taką nazwę. Na przykład --dhcp-host = 00: 20: e0: 3b: 13: af, wap, infinite informuje dnsmasq, aby nadał maszynie adres sprzętowy 00: 20: e0: 3b: 13: af nazwę wap i nieskończony Dzierżawa DHCP. --dhcp-host = okrążenie, 192.168.0.199 mówi dnsmasqowi, aby zawsze przydzielał okrążeniu maszyny adres IP 192.168.0.199.
(...)
Dozwolone jest używanie identyfikatorów klienta zamiast adresów sprzętowych do identyfikowania hostów przez prefiks „id:”. Zatem: --dhcp-host = id: 01: 02: 03: 04, ..... odnosi się do hosta o identyfikatorze klienta 01: 02: 03: 04. Dozwolone jest również określenie identyfikatora klienta jako tekstu, na przykład: --dhcp-host = id: clientidastext, .....
(...)
W szczególnym przypadku można podać więcej niż jeden adres sprzętowy. np .: --dhcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12,192.168.0.2 Pozwala to na powiązanie adresu IP z wieloma adresami sprzętowymi i daje uprawnienia dnsmasq porzucić dzierżawę DHCP na jeden z adresów sprzętowych, gdy inny poprosi o dzierżawę. Uważaj, że jest to niebezpieczna rzecz, będzie działać niezawodnie tylko wtedy, gdy tylko jeden z adresów sprzętowych będzie aktywny w dowolnym momencie i nie ma możliwości, aby dnsmasq wymusił to. Przydatne jest na przykład przydzielenie stabilnego adresu IP laptopowi, który ma interfejsy przewodowe i bezprzewodowe.
Wybrałem rozwiązanie dla wielu komputerów Mac (ponieważ nie próbowałem dowiedzieć się, w jaki sposób mogę określić identyfikator klienta po stronie klienta, co należy zrobić dla każdego osobnego klienta, a alternatywą dla wielu komputerów Mac jest jedno rozwiązanie dla wszystkich urządzeń przenośnych w domu).
Ominąłem interfejs luci i dodałem bezpośrednio do /etc/dnsmasq.conf następującą linię:
dhcp-hostsfile = / etc / dnsmasq-dhcphosts.conf
i /etc/dnsmasq-dhcphosts.conf zawiera wiersze o następującym formacie:
mac1, mac2, ip
(Trzymam tę konfigurację w osobnym pliku, aby zapobiec zastąpieniu jej przez następną aktualizację).
Działa w porządku.