¿Por qué existen opciones de configuración con "option" y "list" en OpenWRT

En OpenWrt, el servidor DHCP/DNS dnsmasq utiliza dos tipos de declaraciones en su archivo de configuración (/etc/config/dhcp): option y list . Ambos se utilizan para definir parámetros de configuración, pero tienen propósitos diferentes debido a cómo manejan los valores asociados. A continuación, te explico las diferencias y por qué existen ambas opciones.

option: Para un solo valor

  • Propósito: La declaración option se utiliza cuando un parámetro solo puede tener un único valor.
  • Ejemplo:
option hostname 'mydevice'
  • Especificar una dirección IP estática para un dispositivo:
option ip '192.168.1.10'
  • Funcionamiento interno: Cuando dnsmasq procesa esta configuración, interpreta option como un campo con un único valor. Si intentas asignar varios valores a un option, solo se tomará el último valor especificado.

list: Para múltiples valores

  • Propósito: La declaración list se utiliza cuando un parámetro puede aceptar múltiples valores. Cada valor se añade como un elemento independiente en una lista.
  • Ejemplo:
list dhcp_option '3,192.168.1.1'
list dhcp_option '6,8.8.8.8,8.8.4.4'

Aquí, se están definiendo dos opciones DHCP:

  • 3,192.168.1.1: Configura la puerta de enlace predeterminada.
  • 6,8.8.8.8,8.8.4.4: Configura los servidores DNS (Google Public DNS).
  • Casos comunes:
  • Asignar varias opciones DHCP personalizadas:
list dhcp_option '26,1492'  # MTU para PPPoE
list dhcp_option '42,192.168.1.1'  # Servidor NTP
  • Definir múltiples servidores DNS:
list server '8.8.8.8'
list server '8.8.4.4'
  • Funcionamiento interno: dnsmasq interpreta cada entrada de list como un elemento independiente. Todos los valores se agregan a una lista interna, lo que permite que coexistan múltiples configuraciones para el mismo parámetro.

Diferencias clave entre option y list

CARACTERÍSTICAOPTIONLIST
Número de valoresUn solo valorMúltiples valores
Ejemplo de usooption domain 'example.com'list dhcp_option '3,192.168.1.1'
ComportamientoSobrescribe valores previosAgrega valores a una lista
Cuándo usarloCuando el parámetro es únicoCuando el parámetro admite múltiples valores

Be the first to comment