Investigué un poco.
Lo primero que aprendí es que es posible asignar arrendamientos DHCP en función de criterios distintos a una dirección MAC.
De las preguntas frecuentes de dhcp :
¿Qué es una identificación de cliente?
Lo que se denomina ID de cliente a los efectos del protocolo DHCP es lo que el protocolo utiliza para identificar la computadora cliente. Por defecto, las implementaciones de DHCP suelen emplear la dirección MAC del cliente para este propósito, pero el protocolo DHCP permite otras opciones. Algunas implementaciones de DHCP tienen una opción de configuración para especificar la ID de cliente que desea. Una alternativa a la dirección MAC es simplemente una cadena de caracteres de su elección. En cualquier caso, para que DHCP funcione, debe estar seguro de que ningún otro cliente está utilizando la ID de cliente que elija, y debe estar seguro de que el servidor DHCP lo aceptará.
Entonces, aunque aparentemente no es compatible con la interfaz web de luci en openWRT, dnsmasq sí mismo admite client_id y múltiples direcciones MAC (con alguna advertencia).
Desde la página de manual de dnsmasq :
-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, set: tag] [, ipaddr] [, hostname] [, lease_time] [, ignore] Especifique por parámetros de host para el servidor DHCP . Esto permite que a una máquina con una dirección de hardware particular se le asigne siempre el mismo nombre de host, dirección IP y tiempo de arrendamiento. Un nombre de host especificado como este anula cualquier proporcionado por el cliente DHCP en la máquina. También está permitido omitir la dirección de hardware e incluir el nombre de host, en cuyo caso la dirección IP y los tiempos de arrendamiento se aplicarán a cualquier máquina que reclame ese nombre. Por ejemplo --dhcp-host = 00: 20: e0: 3b: 13: af, wap, infinite le dice a dnsmasq que le dé a la máquina la dirección de hardware 00: 20: e0: 3b: 13: af el nombre wap, y un infinito Arrendamiento de DHCP. --dhcp-host = lap, 192.168.0.199 le dice a dnsmasq que siempre asigne a la máquina la dirección IP 192.168.0.199.
(...)
Se permite usar identificadores de cliente en lugar de direcciones de hardware para identificar hosts mediante el prefijo 'id:'. Por lo tanto: --dhcp-host = id: 01: 02: 03: 04, ..... se refiere al host con el identificador de cliente 01: 02: 03: 04. También está permitido especificar la ID del cliente como texto, de esta manera: --dhcp-host = id: clientidastext, .....
(...)
Como caso especial, es posible incluir más de una dirección de hardware. por ejemplo: --dhcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12,192.168.0.2 Esto permite que una dirección IP se asocie con múltiples direcciones de hardware, y le da permiso a dnsmasq abandonar una concesión de DHCP a una de las direcciones de hardware cuando otra solicita una concesión. Tenga en cuenta que esto es algo peligroso, solo funcionará de manera confiable si solo una de las direcciones de hardware está activa en cualquier momento y no hay forma de que dnsmasq lo haga cumplir. Por ejemplo, es útil asignar una dirección IP estable a una computadora portátil que tenga interfaces cableadas e inalámbricas.
Opté por la solución multi-mac (porque no traté de averiguar cómo podría especificar la identificación del cliente en el lado del cliente, que es algo que debe hacerse para cada cliente por separado, y la alternativa multi-mac es Una solución para todos los portátiles en la casa.)
Eludí la interfaz luci y agregué directamente a /etc/dnsmasq.conf la siguiente línea:
dhcp-hostsfile = / etc / dnsmasq-dhcphosts.conf
y /etc/dnsmasq-dhcphosts.conf contiene líneas del siguiente formato:
mac1, mac2, ip
(Mantengo esta configuración en un archivo separado para evitar que se sobrescriba en la próxima actualización).
Funciona bien.