.TH DNSMASQ 8 .SH NOMBRE dnsmasq \- Un ligero servidor DHCP y DNS con caché. .SH SINOPSIS .B dnsmasq .I [OPCION]... .SH "DESCRIPCION" .BR dnsmasq es un ligero servidor DNS y DHCP. Su propósito es proveer servicios DNS y DHCP a una red de área local. .PP Dnsmasq acepta búsquedas DNS y las responde desde un pequeño caché local, o las reenvía hacia un servidor DNS real recursivo. Carga el contenido de /etc/hosts, de tal forma que nombres de hosts locales los cuales no aparecen en el DNS mundial puedan ser resueltos. También responde a búsquedas DNS para hosts configurados vía DHCP. .PP El servidor DHCP dnsmasq incluye soporte para assignación de direcciones estáticas, redes múltiples, DHCP-relay y especificadores de subredes RFC3011. Automáticamente envía un predeterminado sensible de opciones DHCP, y puede ser configurado para enviar cualquier opciones DHCP deseadas. Tambíen incluye soporte para BOOTP. .PP Dnsmasq incluye soporte para IPv6. .SH OPCIONES Nótese que en general parámetros ausentes son permitidos y deshabilitan funciones, por ejemplo "--pid-file=" deshabilita la escritura de un archivo PID. En BSD, a menos que la librería GNU getopt esté enlazada, la forma larga de las opciones no funciona en la línea de comandos, pero todavía es reconocida en el archivo de configuración. .TP .B \-h, --no-hosts No leer los nombres de hosts en /etc/hosts. .TP .B \-H, --addn-hosts= Archivo de hosts adicional. Leer el archivo especificado adicionalmente a /etc/hosts. Si se brinda -h, leer solo el archivo especificado. Esta opción puede ser repetida para más de un archivo de hosts adicional. .TP .B \-T, --local-ttl= Al responder con información desde /etc/hosts o desde el archivo de arriendos DHCP, dnsmasq fija el tiempo de vida a cero por predeterminado, significando que el remitente no debrá cachear la información por sí mismo. Esto es lo correcto a hacer en casi todas las situaciones. Esta opción permite que se especifique cierto tiempo de vida (en segundos) para estas respuestas. Esto reduce la carga sobre el servidor al costo de que los clientes usaran datos añejos bajo algunas circunstancias. .TP .B \-k, --keep-in-foreground No ir hacia el fondo al iniciar, pero aparte de eso correr como normal. La intención de esto es para cuando dnsmasq es corrido bajo daemontools o launchd. .TP .B \-d, --no-daemon Modo debug: no hacer un fork hacia el fondo, no crear un archivo PID, no cambiar el ID del usuario, generar un cache dump completo al recibir un SIGUSR1, bitacorear a stderr al igual que a syslog, no hacerle fork a procesos nuevos para manejar búsquedas TCP. .TP .B \-q, --log-queries Bitacorear los resultados de búsquedas DNS manejadas por dnsmasq. Habilitar un dump de caché completo al recibir un SIGUSR1. .TP .B \-8, --log-facility= Fijar la facilidad a la cual dnsmasq deberá enviar mensajes syslog, esto es DAEMON por predeterminado, y LOCAL0 cuando en modo debug. .TP .B \-x, --pid-file= Especificar un path alterno donde dnsmasq debe guardar su PID. Normalmente es /var/run/dnsmasq.pid. .TP .B \-u, --user= Especificar el userid al cual dnsmasq debe cambiarse despues de iniciar. Dnsmasq normalmente debe ser iniciado como root, pero soltará los privilegios root despues del inicio, cambiando a otro usuario. Normalmente este usuario es "nobody", pero eso se puede cambiar con esta opción. .TP .B \-g, --group= Especificar el grupo como el cual dnsmasq correrá. El predeterminado es "dip", si está disponible, para facilitar el acceso a /etc/ppp/resolv.conf el cuál normalmente no es globalmente leíble. .TP .B \-v, --version Mostrar el número de versión. .TP .B \-p, --port= Escuchar en el puerto en vez del puerto estándar DNS (53). Principalmente útil para debugging. .TP .B \-P, --edns-packet-max= Especificar el paquete UDP EDNS.0 más grande que es soportado por el reenviador DNS. Por predeterminado es 1280, lo cual es el máximo recomendado en RFC2671 para ethernet. .TP .B \-Q, --query-port= Enviar búsquedas outbound desde, y escuchar por respuestas en, el puerto UDP en vez de usar uno escojido a la hora de inicio. Esto es útil para simplificar las reglas del firewall; sin esto, su firewall tendría que permitir conecciones desde servidores DNS foráneos hacia un rango de puertos UDP, o adaptarse dinámicamente al puerto siendo usado por la actual instancia de dnsmasq. .TP .B \-i, --interface= Escuchar solo en las interfaces especificadas. Dnsmasq automaticamente agrega la interface loopback a la lista de interfaces para usar cuando la opción .B \--interface es usada. Si ninguna opcion .B \--interface o .B \--listen-address es brindada, dnsmasq escucha en todas las interfaces disponibles excepto cualquiera fijada con la opcion .B \--except-interface Interfaces IP alias (eg "eth1:0") no pueden ser utilizadas con .B --interface o .B --except-interface , usar --listen-address en vez. .TP .B \-I, --except-interface= No escuchar en la interface especificada. Nótese que el orden de las opciones .B \--listen-address .B --interface y .B --except-interface no importa y la opcion .B --except-interface siempre invalida a las otras. .TP .B \-2, --no-dhcp-interface= No proveer DHCP en la interface especificada, pero sí proveer servicio DNS. .TP .B \-a, --listen-address= Escuchar en la(s) dirección(es) IP especificada(s). Las opciones .B \--interface y .B \--listen-address ambas pueden ser brindadas, y en tal caso el juego de ambas direcciones IP y interfaces es usada. Nótese que si ninguna opción .B \--interface es brindada, pero sí se brinda la opción .B \--listen-address entonces dnsmasq no escuchará automáticamente en la interface loopback. Para obtener esto, la dirección IP 127.0.0.1 debe ser explícitamente dada como una opción .B \--listen-address .TP .B \-z, --bind-interfaces En sistemas que inluyen el soporte, dnsmasq acopla la dirección de comodín, aún cuando está escuchando solamente en algunas interfaces. Entonces descarta búsquedas a las cuales no debe responder. Esto tiene la ventaja de funcionar aún cuando interfaces van y vienen y cambian direcciones. Esta opción forza a dnsmasq a acoplarse realmente solo a las interfaces en las cuales está escuchando. Casi la única vez que esto es útil es cuando se está corriendo otro servidor DNS (o otra instancia de dnsmasq) en la misma máquina. Fijar esta opción tambien habilita multiples instancias de dnsmasq, las cuales proveen servicio DHCP en la misma máquina. .TP .B \-y, --localise-queries Retornar respuestas a búsquedas DNS desde /etc/hosts las cuales dependen de la interface donde entró la búsqueda. Si un nombre en /etc/hosts tiene mas de una dirección asociada con el, y por lo menos una de esas direcciones está en la misma subred de la interface donde fue enviada, entónces retornar solo las direcciones en esa subred. Esto permite a un servidor tener direcciones múltiples en /etc/hosts correspondientes a cada una de sus interfaces y cada host recibirá la respuesta adecuada dependiendo de cual red tengan adjunta. Por el momento, esta facilidad está limitada a IPv4. .TP .B \-b, --bogus-priv Búsquedas privadas reversas raras. Toda búsqueda para rangos de IP privados (192.168.x.x, etc.) los cuales no se encuentren en /etc/hosts o en el archivo de arriendos DHCP es respondida con "dominio no existente" en vez de ser reenviada upstream. .TP .B \-V, --alias=,[,] Modificar direcciones IPv4 retornadas desde servidores DNS upstream; es remplazada con . Si la máscara opcional es brindada, entonces cualquier dirección que coincida con la enmascarada será re-escrita. Así que, por ejemplo, .B --alias=1.2.3.0,6.7.8.0,255.255.255.0 mapeará 1.2.3.56 a 6.7.8.56 y 1.2.3.67 a 6.7.8.67. Esto es lo que ruteadores Cisco PIX llaman "DNS doctoring". .TP .B \-B, --bogus-nxdomain= Transformar respuestas que contienen la dirección IP brindada en respuestas tipo "Dominio no existe". La intención de esto es actuar en contra de una movida desviada hecha por Verisign en septiembre del 2003, cuando comenzaron a retornar la dirección de un servidor de publicidad en respuesta a búsquedas por nombres no registrados, en vez de la correcta respuesta NXDOMAIN. Esta opción le dice a dnsmasq que debe forjear la respuesta correcta cuando ve este comportamiento. Desde septiembre 2003 la dirección IP siendo retornada por Verisign es 64.94.110.11 .TP .B \-f, --filterwin2k Algunas versiones de Windows hacen búsquedas DNS periódicas las cuales no reciben respuestas sensibles desde el DNS público y pueden causar problemas activando enlaces marcación-en-demanda. Esta opción filtra dichas búsquedas. Las búsquedas filtradas son para registros tipo SOA y SRV, al igual que tipo ANY donde el nombre pedido contiene _, para atrapar búsquedas LDAP. .TP .B \-r, --resolv-file= Leer las direcciones IP de servidores DNS upstream desde , en vez de /etc/resolv.conf. Para el formato de este archivo, ver .BR resolv.conf (5) Las únicas líneas relevantes a dnsmasq son las de servidores DNS. A dnsmasq se le puede decir que revise más de un archivo resolv.conf, el primer archivo especificado remplaza al predeterminado, y los subsiguientes archivos son agregados a la lista. Esto es solo permitido cuando haciendo polling; el archivo con la actual fecha de modificación más nueva es el que es usado. .TP .B \-R, --no-resolv No leer /etc/resolv.conf. Obtener los servidores DNS upstream solo desde la línea de comandos o desde el archivo de configuración de dnsmasq. .TP .B \-1, --enable-dbus Permitir que la configuración de dnsmasq sea actualizada vía llamadas de método DBus. La configuración que puede ser cambiada es servidores DNS upstream (y dominios correspondientes) y limpieza de caché. Esta opción requiere que dnsmasq haya sido compilado con soporte para DBus. .TP .B \-o, --strict-order Por predeterminado, dnsmasq enviará búsquedas a cualquiera de los servidores upstream que conoce, y trata de favorecer servidores los cuales sabe que están activos. Fijar esta opcion forza a dnsmasq a probar cada búsqueda con cada servidor estrictamente en el orden que aparecen en /etc/resolv.conf .TP .B \-n, --no-poll No revisar periodicamente a /etc/resolv.conf en busca de cambios. .TP .B \-D, --domain-needed Le dice a dnsmasq que no debe reenviar búsquedas para nombres sencillos, sin puntos o partes de dominios, a servidores upstream. Si el nombre no se conoce desde /etc/hosts o desde DHCP entonces una respuesta "no encontrado" es devuelta. .TP .B \-S, --server=[/[]/[domain/]][[#][@[#]]] Especificar la dirección IP de servidores upstream directamente. Fijar esta opción no suprime la lectura de /etc/resolv.conf, use -R para hacer eso. Si uno a más dominios opcionales son brindados, ese servidor es usado solo para esos dominios y las búsquedas son hechas usando el servidor especificado solamente. La intención de esto es para el uso con servidores DNS privados: si usted tiene un servidor DNS en su red el cual lidea con nombres de la forma xxx.internal.thekelleys.org.uk en 192.168.1.1 entonces brindar la opción .B -S /internal.thekelleys.org.uk/192.168.1.1 enviará todas las búsquedas de máquinas internas a ese servidor DNS, todas las demás búsquedas serán enviadas a los servidores en /etc/resolv.conf. Una especificación de dominio en blanco .B // tiene el significado especial de "solo nombres no calificados", o sea nombres sin ningun punto en ellos. Un puerto no-estándar puede ser especificado como parte de la dirección IP usando el caracter #. Más de una opción -S es permitida, con partes de dominio o dirección IP repetidas como sea necesario. También se permite una opción -S la cual brinda un dominio pero ninguna dirección IP; esto le dice a dnsmasq que un dominio es local y puede responder a búsquedas desde /etc/hosts o DHCP pero nunca deberá reenviar búsquedas en ese dominio a ningún servidor upstream. .B local es un sinónimo de .B server para hacer los archivos de configuración mas claros en este caso. La segunda dirección IP opcional después del carácter @ le dice a dnsmasq como fijar la dirección de remitente de las búsquedas hacia este servidor DNS. Debe ser una dirección perteneciente a la máquina en la cual corre dnsmasq, o de forma contraria esta línea de servidor será bitacoreada y después ignorada. La opción query-port es ignorada para cualquier servidores que tengan una dirección remitente especificada, pero el puerto puede ser especificado directamente como parte de la dirección remitente. .TP .B \-A, --address=//[domain/] Especificar una dirección IP para retornar por cualquier host en los dominios brindados. Búsquedas en estos dominios nunca son reenviadas, y siempre son respondidas con la dirección IP especificada, la cual puede ser IPv4 o IPv6. Para brindar ambas direcciones IPv4 y IPv6 para un dominio, usar opciones -A repetidas. Nótese que /etc/hosts y arriendos DHCP invalidan esto para nombres individuales. Un uso común para esto es redireccionar el dominio doubleclick.net entero a algún servidor web local amigable para evitar banners de publicidad. La especificación funciona de la misma forma que con --server, con la facilidad adicional que /#/ coincide con cualquier dominio. De tal forma, --address=/#/1.2.3.4 siempre retornará 1.2.3.4 para cualquier búsqueda no respondida desde /etc/hosts o DHCP y que no haya sido enviada a un servidor DNS upstream por una directiva --server mas especifica. .TP .B \-m, --mx-host=[[,],] Retornar un record llamado apuntando hacia un nombre de host brindado (opcionalmente), o el host especificado en la opción --mx-target, o si esa opción no es brindada, el host en el cual dnsmasq está corriendo. El predeterminado es útil para redireccionar correo de sistemas en la red local hacia un servidor central. La opción de preferencia es opcional, y su predeterminado es 1 si no es brindada. Más de un record MX puede ser brindado para un host. .TP .B \-t, --mx-target= Especificar el target predeterminado para el record MX devuelto por dnsmasq. Ver --mx-host. Si --mx-target es brindado, pero no --mx-host, entonces dnsmasq devuelve un record MX conteniendo el target MX para búsquedas MX en el hostname de la máquina donde dnsmasq está corriendo. .TP .B \-e, --selfmx Retornar un record MX apuntándose a sí mismo para cada máquina local. Máquinas locales son aquellas en /etc/hosts o con arriendos DHCP. .TP .B \-L, --localmx Retornar un record MX apuntando al host brindado por mx-target (o la máquina donde dnsmasq está corriendo) para cada máquina local. Máquinas locales son aquellas en /etc/hosts o con arriendos DHCP. .TP .B \-W, --srv-host=<_service>.<_prot>.[],[[,[,[,]]]] Retornar un record SRV DNS. Ver RFC2782 para detalles. Si no es brindada, el dominio se predetermina a el brindado por .B --domain. El predeterminado para el dominio target está vacío, y el predeterminado para puerto es uno y los predeterminados para peso y prioridad son cero. Tener cuidado al transponer data desde archivos de zona BIND: los números de puerto, peso, y prioridad están en un orden diferente. Más de un record SRV para un servicio/dominio es permitido, todos los que coincidan son retornados. .TP .B \-Y, --txt-record=[[,],] Retornar un récord DNS TXT. El valor del récord TXT es una serie de strings, así que cualquier número puede ser incluido, dividido por comas. .TP .B \-c, --cache-size= Fijar el tamaño del caché de dnsmasq. El predeterminado es 150 nombres. Fijar el tamaño a cero deshabilita el caché. .TP .B \-N, --no-negcache Deshabilitar caché negativo. El caché negativo le permite a dnsmasq recordar resultados tipo "dominio no existe" desde servidores DNS upstream y responder búsquedas idénticas sin reenviarlas nuevamente. Esta opción deshabilita el caché negativo. .TP .B \-F, --dhcp-range=[[net:]network-id,],[[,],][,] Habilitar el servidor DHCP. Direcciones serán distribuidas desde el rango hasta y desde direcciones definidas estáticamente en opciones .B dhcp-host Si el tiempo de arriendo es brindado, entonces arriendos serán dados por esa cantidad de tiempo. El tiempo de arriendo es en segundos, o minutos (ej. 45m), o horas (ej. 1h), o el literal "infinite". Esta opción puede ser repetida, con diferentes direcciones para habilitar servicio DHCP en más de una red. Para redes conectadas diréctamente (en otras palabras, redes en las cuales la máquina corriendo dnsmasq tiene una interface) la máscara de subred es opcional. Es requerida para redes que reciben servicio DHCP vía un agente de relay. La dirección de broadcast siempre es opcional. En algunos sistemas rotos, dnsmasq solo puede escuchar en una interface cuando se usa DHCP, y el nombre de esa interface debe ser brindado usando la opcion .B interface Esta limitación actualmente afecta a OpenBSD. Siempre se permite tener más de un rango dhcp (dhcp-range) en una subred. El parametro opcional network-id es una etiqueta alfanumerica la cual marca esta red de tal forma que opciones dhcp puedan ser especificadas en base a cada red. Cuando es prefijada con 'net:' entonces el significado cambia de "fijar etiqueta" a "coincidir con etiqueta". La dirección final puede ser remplazada por la palabra .B static la cual le dice a dnsmasq que debe habilitar DHCP para la red especificada, pero no alocar dinámicamente direcciones IP. Solo hosts que tienen direcciones estáticas brindadas vía .B dhcp-host o desde /etc/ethers serán servidas. .TP .B \-G, --dhcp-host=[[]|[id:[][*]]][net:][,][,][,][,ignore] Especificar parámetros por host para el servidor DHCP. Esto permite que una máquina con una dirección de hardware particular sea siempre alocada el mismo nombre de host, dirección IP, y tiempo de arriendo. Un nombre de host especificado de esta manera toma presedencia sobre cualquiera suministrado por el cliente DHCP en la máquina. También se permite omitir la direccion de hardware y incluir el nombre host; en tal caso la dirección IP y los tiempos de arriendo serán aplicables a cualquier máquina que reclame ese nombre. Por ejemplo: .B --dhcp-host=00:20:e0:3b:13:af,wap,infinite le dice a dnsmasq que debe darle a la máquina con dirección ethernet 00:20:e0:3b:13:af el nombre wap, y un arriendo DHCP infinito. .B --dhcp-host=lap,192.168.0.199 le dice a dnsmasq que siempre debe alocarle a la maquina lap la dirección IP 192.168.0.199. Direcciones alocadas de esta manera no tienen que estar dentro del rango dado con la opción --dhcp-range, pero deben estar en la red siendo servida por el servidor DHCP. Se permite usar identificadores de clientes en vez de direcciones de hardware para identificar hosts prefijando 'id:'. O sea que: .B --dhcp-host=id:01:02:03:04,..... se refiere al host con identificador de cliente 01:02:03:04. También se permite especificar el ID de cliente como texto, así: .B --dhcp-host=id:clientidastext,..... La opción especial id:* significa "ignorar cualquier ID de cliente y usar solamente direcciones MAC." Esto es útil cuando un cliente presenta un ID de cliente algunas veces pero otras no. Si un nombre aparece en /etc/hosts, la dirección asociada puede ser alocada a un arriendo DHCP, pero solo si existe una opción .B --dhcp-host la cual especifica el nombre también. La palabra clave "ignore" le dice a dnsmasq que no debe ofrecer jamás un arriendo DHCP a una máquina. La máquina puede ser especificada por dirección de hardware, ID de cliente, o nombre de host, por ejemplo: .B --dhcp-host=00:20:e0:3b:13:af,ignore Esto es útil cuando hay otro servidor DHCP en la red para ser usado por algúnas máquinas. net: fija la etiqueta network-id cuando sea que esta directiva dhcp-host está en uso. Esto puede ser usado para enviar selectivamente opciones DHCP a este host. Direcciones ethernet (pero no client-ids) pueden tener bytes comodínes, así que por ejemplo .B --dhcp-host=00:20:e0:3b:13:*,ignore causará que dnsmasq ignore un rango de direcciones ethernet. Nótese que el "*" necesitará ser escapado o escrito entre comillas en la línea de comandos, pero no en el archivo de configuración. Direcciones de hardware normalmente coinciden con cualquier tipo de red (ARP), pero es posible restringirlas a un tipo ARP singular precediendolo con el tipo ARP (en HEX) y "-". Así que .B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 solo coincidaría una dirección de hardware Token-Ring, dado que el tipo ARP para Token-Ring es 6. .TP .B \-Z, --read-ethers Leer /etc/ethers en busca de información sobre hosts para el servidor DHCP. El formato de /etc/ethers es una dirección de hardware, seguida por ya sea un nombre de host o una dirección IP. Al ser leidas por dnsmasq, estas líneas tienen exáctamente el mismo efecto que opciones .B --dhcp-host que contienen la misma información. .TP .B \-O, --dhcp-option=[,[,]][vendor:],[[,]] Especificar opciones diferentes o extra a clientes DHCP. Por predeterminado, dnsmasq envía algunas opciones estándar a clientes DHCP. La máscara de subred y dirección broadcast son fijadas igual a las del host que corre dnsmasq, y el servidor DNS y ruteador a la dirección de la máquina que corre dnsmasq. Si la opción de nombre de dominio ha sido fijada, es enviada. Esta opción permite que esos predeterminados sean sobrescritos, o que sean especificadas otras opciones. es el numero de la opción, como especificado en RFC2132. Por ejemplo, para fijar a ruta predeterminada a 192.168.4.4, hágase un .B --dhcp-option=3,192.168.4.4 y para fijar la dirección de servidor de tiempo a 192.168.0.4, hágase un .B --dhcp-option=42,192.168.0.4 La dirección especial 0.0.0.0 es entendida que significa "la dirección de la máquina que corre dnsmasq". Tipos de data permitidos son direcciones IP de cuatro puntos, un número decimal, dígitos hex separados por colones, y un string de texto. Si las network-ids opcionales son brindadas, entonces esta opcion es solo enviada cuando todas las network-ids coinciden. Tener cuidado: niguna verificación es hecha sobre si el número de tipo correcto es enviado, y es muy posible persuadir a dnsmasq para que genere paquetes DHCP ilegales mediante uso inadecuado de esta opción. Cuando el valor es un número decimal, dnsmasq debe determinar qué tan grande es el objeto de data. Esto es hecho mediante una examinación del número de opción, y/o el valor, pero puede ser invalidado agregándole una opción de una sola letra de esta forma: b = un byte, s = dos bytes, i = cuatro bytes. Esto es principalmente útil con opciones encapsuladas tipo vendedor (ver abajo) donde dnsmasq no puede determinar el tamaño de data usando el número de opción. Data de opción la cual consiste solo de puntos y dígitos será interpretada por dnsmasq como una dirección IP, y será insertada dentro de una opción de esa manera. Para forzar un string literal, usar comillas. Por ejemplo, cuando se usa la opción 66 para enviar una IP literal como un nombre de servidor TFTP, es necesario hacer: .B --dhcp-option=66,"1.2.3.4" Opciones encapsuladas vendor-class también pueden ser especificadas usando --dhcp-option: por ejemplo .B --dhcp-option=vendor:PXEClient,1,0.0.0.0 envía la clase de vendedor "PXEClient" y la clase encapsulada de vendedor especifica "mftp-address=0.0.0.0". Solo se permite una clase para cualquier host, pero opciones múltiples son permitidas, con tal que tengan la misma clase de vendedor. La dirección 0.0.0.0 no es tratada de forma especial en opciones de clase encapsuladas. .TP .B \-U, --dhcp-vendorclass=, Mapear desde un string vendor-class a un network id. La mayoría de los clientes DHCP proveen una "vendor class" la cual representa, en cierto sentido, el tipo de host. Esta opción mapea clases de vendedor a network ids, de tal forma que opciones DHCP pueden ser selectivamente entregadas a diferentes clases de hosts. Por ejemplo .B dhcp-vendorclass=printers,Hewlett-Packard JetDirect peritiría que opciones sean fijadas solo para impresoras HP así: .B --dhcp-option=printers,3,192.168.4.4 El string vendor-class es coordinado con el vendor-class proveido por el cliente, para permitir coincidencias borrosas. .TP .B \-j, --dhcp-userclass=, Mapear desde un string user-class a un network id (con coordinación substring, como con vendor-class). La mayoría de los clientes DHCP proveen un "user class" el cual es configurable. Esta opción mapea clases user a network ids, de tal manera que opciones DHCP puedan ser selectivamente enviadas a diferentes tipos de hosts. Es posible, por ejemplo, usar esto para especificar una impresora diferente para hosts en la clase "accounts" que para los de la clase "engineering". .TP .B \-4, --dhcp-mac=, Mapear desde una dirección MAC a una network id. La dirección MAC puede incluir comodínes. Por ejemplo: .B --dhcp-mac=3com,01:34:23:*:*:* fijaría el tag "3com" a cualquier host el cual su MAC coincida con el patrón. .TP .B \-J, --dhcp-ignore=[,] Cuando todos los network ids brindados coincidan con el juego de network ids derivados de las clases net, host, y vendor, ignorar el host y no brindarle un arriendo DHCP. .TP .B \-M, --dhcp-boot=[net:,],[[,]] Fijar opciones BOOTP que han de ser devueltas por el servidor DHCP. Estas se necesitan para máquinas que bootean desde la red, y decirle a la máquina donde conseguir su configuración inicial. Si las network id opcionales son brindadas, deben coincidir con esta opción para ser enviadas. Nótese que network ids son prefijadas con "net:" para distinguirlas. .TP .B \-X, --dhcp-lease-max= Limita a dnsmasq a el número especificado de arriendos DHCP. El predeterminado es 150. El limite es para prevenir ataques DoS desde hosts que crean cientos de arriendos y usan mucha de la memoria del proceso dnsmasq. .TP .B \-K, --dhcp-authoritative Esta opción debe ser fijada cuando dnsmasq es definitivamente el único servidor DHCP en la red. Cambia el comportamiento de RFC de tal manera que pedidos desde hosts no conocidos no serán ignorados. Esto permite que hosts nuevos puedan conseguir un arriendo sin sin un timeout bajo toda circunstancia. También permite que dnsmasq reconstruya su base de datos de arriendos sin que cada cliente requiera un arriendo, si la base de datos es perdida. .TP .B \-3, --bootp-dynamic Habilitar alocación dinámica de direcciones IP a clientes BOOTP. Usar esto con cuidado, ya que cada cirección alocada a un cliente BOOTP es arrendada para siempre, y consecuentemente queda no-disponible para uso por otros hosts. .TP .B \-5, --no-ping Por predetermindado, el servidor DHCP tratará de asegurarse que una dirección no esté en uso antes de alocarsela a un host. Hace esto enviando un echo ICMP (ping) a la dirección referente. Si recibe una respuesta, entonces la dirección debe estar siendo usada, y se repite la prueba con otra. Esta opcion deshabilita esta prueba. Usar con cuidado. .TP .B \-l, --dhcp-leasefile= Usar el archivo especificado para almacenar informacion de arriendos DHCP. Si esta opcion es brindada, pero ninguna opcion dhcp-range es brindada, entonces se activa comportamiento tipo dnsmasq versión 1. El archivo brindado se asume es un archivo de arriendos dhcpd ISC y es analizado en busca de arriendos los cuales son agregados al sistema DNS si tienen un nombre de host. Esta funcionalidad pudo haber sido excluida de dnsmasq a la hora de compilación, y en tal caso ocurrirá un error. En todo caso, nótese que la integración de archivos de arriendo ISC es una caracterísctica depreciada. No debería ser usada en instalaciones nuevas, y será eliminada en versiones futuras. .TP .B \-6 --dhcp-script= Cuando sea que un arriendo DHCP nuevo es creado, o uno viejo es destruido, el binario especificado por esta opción es ejecutado. Los argumentos para el binario son "add", "old", o "del", la dirección MAC del host (o ""), la dirección IP, y el hostname, si es conocido. "add" significa que un arriendo ha sido creado, "del" que ha sido destruido, y "old" es una notificación de un arriendo existente cuando dnsmasq inicia o un cambio a una MAC o nombre host de un arriendo existente. Este proceso es ejecutado como el usuario sin privilegios como corre dnsmasq, así que puede ser necesario inhibir el dejar el usuario root, usando la directiva .B -u si el ejecutable necesita privilegios root. El ambiente es heredado del usuario que ha invocado a dnsmasq, y todos los descriptores están cerrados excepto stdin, stdout y stderr los cuales están abiertos a /dev/null (excepto en modo debug). Este guión no es invocado concurrentemente: si cambios de arriendos subsiguientes ocurren, el guión no es invocado otra vez hasta que cualquier invocación existennte haga exit. Al inicio de dnsmasq, el guión será invocado para todos los arriendos existenetes mientras van siendo leidos desde el archivo de arriendos. Arriendos vencidos serán llamados con "del" y otros con "old". debe ser un path absoluto, ninguna búsqueda PATH ocurre. .TP .B \-s, --domain= Especifica el dominio para el servidor DHCP. Esto tiene dos efectos: Primeramente, causa que el servidor DHCP le devuelva el dominio a cualquier host que lo pida. Segundamente, fija el dominio para el cual es legal para hosts configurados mediante DHCP reclamar. La intención es restringir nombres de host para que un host no-confiado en la LAN no pueda proclamar su nombre vía DHCP, como por ejemplo "microsoft.com" y capturar tráfico no destinado a ella. Si ningún sufijo de dominio es especificado, entonces cualquier nombre de host con una parte de dominio (o sea con un punto) será negada y logeada. Si un sufijo es especificado, entonces nombres de host con una parte de dominio son permitidos, con tal que la parte de dominio coincida con el sufijo. Adicionalmente, cuando un sufijo es fijado, entonces nombres de host sin parte de dominio tienen el sufijo agregado como una parte de dominio opcional. Por ejemplo, en mi red puedo fijar .B --domain=thekelleys.org.uk y tener una maquina cuyo nombre host DHCP es "laptop". La dirección IP de esa máquina es disponible desde .B dnsmasq como "laptop" y "laptop.thekelleys.org.uk". Si el dominio es brindado como "#" entonces el dominio es leido desde la primera directiva de búsqueda en /etc/resolv.conf (o equivalente). .TP .B \-E, --expand-hosts Agregar el dominio a nombres simples (sin un punto) en /etc/hosts de la misma manera que con nombres derivados de DHCP. .TP .B \-C, --conf-file= Especificar un archivo de configuración diferente. La opción conf-file también es permitida en archivos de configuración, para incluir múltiples archivos de configuración. .TP .B \-7, --conf-dir= Leer todos los archivos dentro del directorio brindado como archivos de configuración. Archivos cuyos nombres terminen con ~ o comienzen con . o comienzen y terminen con # son ignorados. Esta opción puede ser brindada en la línea de comandos o en un archivo de configuración. .SH ARCHIVO DE CONFIGURACION Al inicio, dnsmasq lee .I /etc/dnsmasq.conf, si existe. (En FreeBSD, el archivo es .I /usr/local/etc/dnsmasq.conf ) (ver las opciónes .B \-C y .B \-7 porfavor.) El formato de este archivo consiste de una opción por línea, exáctamente como las opciones largas detalladas en la sección OPCIONES pero sin el "--" al frente. Líneas que comienzan con # son comentarios y son ignoradas. Para opciones que solo pueden ser especificadas una sola vez, la línea de comandos invalida el archivo de configuración. La comillas son permitidas en el archivo de configuración: entre comillas tipo " los significados especiales de ,:. y # son eliminados y los siguientes escapes son permitidos: \\\\ \\" \\t \\a \\b \\r y \\n. El último corresponde a tab, bell, backspace, return y newline. .SH NOTAS Al recibir un SIGHUP .B dnsmasq libera su cache y entonces recarga .I /etc/hosts. Si .B --no-poll está fijado entnces SIGHUP también re-lee .I /etc/resolv.conf. SIGHUP NO re-lee el archivo de configuración. .PP Al recibir un SIGUSR1, .B dnsmasq escribe estadisticas de caché al log del sistema. Escribe el tamaño del caché, el numero de nombres que han tenido que ser removidos del caché antes de que vencieran para hacer espacio para nombres nuevos y el número total de nombres que han sido insertados en el caché. En modo .B --no-daemon o cuando logeo completo está habilitado (-q), una descarga completa de el contenido del caché es hecha. .PP Dnsmasq es un reenviador de búsquedas DNS: no puede responder búsquedas arbitrarias comenzando desde los servidores root pero reenvía dichas búsquedas a un servidor DNS recursivo, el cual es típicamente proveído por el proveedor de Internet. Por predeterminado, dnsmasq lee .I /etc/resolv.conf para descubir las direcciones IP de los servidores DNS upstream que debe usar, dado a que esta información es normalmente almacenada allí. Amenos que .B --no-poll sea usado, .B dnsmasq revisa el tiempo de modificación de .I /etc/resolv.conf (o equivalente si .B \--resolv-file es usado) y lo re-lee si ha cambiado. Esto permite que servidores DNS séan fijados dinámicamente vía PPP o DHCP ya que ambos protocolos brindan esta información. La ausencia de .I /etc/resolv.conf no es un error ya que pudo haber sido creada antes de que una conexión PPP haya existido. Dnsmasq simplemente sigue revisando en caso de que .I /etc/resolv.conf sea creado en algún momento. A dnsmasq se le puede decir que revise más de un archivo resolv.conf. Esto es útil en una laptp, donde ambos PPP y DHCP podrían estar siendo usados: dnsmasq puede ser fijado para revisar ambos: .I /etc/ppp/resolv.conf y .I /etc/dhcpc/resolv.conf y usará el contenido de cualquiera que haya cambiado mas recientemente, brindando así la habilidad de cambio automático entre servidores DNS. .PP Servidores upstream también pueden ser especificados en la línea de comandos o en el archivo de configuración. Estas especificaciones de servidor ocpionalmente llevan un nombre de dominio el cual le dice a dnsmasq que debe usar ese servidor solo para encontrar nombres en ese dominio en particular. .PP Para configurar dnsmasq para que actúe como caché para el host donde está corriendo, poner un "nameserver 127.0.0.1" en .I /etc/resolv.conf para así forzar procesos locales a enviar búsquedas a dnsmasq. Entonces o espesificar los servidores upstream diréctamente a dnsmasq usando opciones .B \--server o poniendo sus direcciones reales en otro archivo, digamos .I /etc/resolv.dnsmasq y correr dnsmasq con la opcion .B \-r /etc/resolv.dnsmasq Esta segunda técnica permite la actualización dinámica de las direcciones de servidores mediante PPP o DHCP. .PP Direcciones en /etc/hosts harán "sombra" a diferentes direcciones para los mismos nombres en servidores DNS upstream, así que "miempresa.com 1.2.3.4" en /etc/hosts se asegurará que las búsquedas por "miempresa.com" siempre retornarán 1.2.3.4 aún si búsquedas en el servidor DNS upstream devolverían una dirección diferente. Hay una excepción a esto: si el servidor DNS upstream contiene un CNAME que apunta a un nombre sombreado, entonces buscando el CNAME a travéz de dnsmasq resultará en que la dirección no-sombreada será asociada con el destino del CNAME. Para circumventar esto, agregar en CNAME a /etc/hosts de tal manera que el CNAME es sombreado también. .PP El sistema network-id funciona de la siguiente manera: Para cada pedido DHCP, dnsmasq colecciona un juego de etiquetas network-id válidas, una del .B dhcp-range usado para alocar la dirección, una de cualquier .B dhcp-host que coincida, y posiblemente muchas de clases de vendedor y usuario que coinicdan que hayan sido enviadas por el cliente DHCP. Cualquier opcion .B dhcp-option que tenga etiquetas network-id será usada en preferencia de una opción .B dhcp-option, sin etiqueta, con tal que _todas_ las etiquetas coincidan en alguna parte del juego coleccionado describido arriba. El prefijo "#" en una etiqueta significa "no" así que --dhcp=option=#purple,3,1.2.3.4 envía la opción cuando la etiqueta network-id "purple" no está en el juego de etiquetas válidas. .PP Si el network-id en un .B dhcp-range es prefijado con "net:", entonces su significado cambia de "fijar etiqueta" a "coincidir con etiqueta". O sea que si hay más de un dhcp-range en enu subred, y una tiene una etiqueta network-id la cual está fijada (por ejemplo una opcion de clase de vendedor) entonces hosts que fijen la etiqueta network-id serán alocados direcciones en el rango etiquetado. .PP El servidor DHCP de dnsmasq funcionará como servidor BOOTP tambien, con tal que las direcciones MAC y IP de los clientes sean brindadas, ya sea usando configuraciones .B dhcp-host o en .I /etc/ethers , y una configuración .B dhcp-range esté presente para activar el servidor DHCP en una red particular. (Fijar --bootp-dynamic elimina la necesidad de mapeos estáticos.) El Parámetro de nombre de archivos en un pedido BOOTP es revisado para ver si coincide con algún network-id en configuraciónes .B dhcp-option permitiendo algún control sobre las opciones devueltas a diferentes clases de hosts. .SH ARCHIVOS .IR /etc/dnsmasq.conf .IR /usr/local/etc/dnsmasq.conf .IR /etc/resolv.conf .IR /etc/hosts .IR /etc/ethers .IR /var/lib/misc/dnsmasq.leases .IR /var/db/dnsmasq.leases .IR /var/run/dnsmasq.pid .SH VER TAMBIEN .BR hosts (5), .BR resolver (5) .SH AUTOR Este manual fue escrito por Simon Kelley . Traducido a español por Christopher Chatham .