• Dnsmasq en CentOS 7.3 – Redes PYME

    por  • 20 febrero, 2017 • Desde Linux • 0 Comentarios

    ¡Hola amigos!. Dedicamos este artículo a Dnsmasq un muy sencillo programa que brinda los servicios DNSDHCP mediante un solo software. La mejor documentación que existe sobre este software es la instalada con el propio paquete ubicada en /usr/share/doc/dnsmasq-2.66/, el archivo de configuración -lleno de ejemplos- /etc/dnsmasq.conf, y la obtenida mediante el comando man dnsmasq. También es muy saludable visitar su Sitio Oficial.

    [root@dns ~]# ls -l /usr/share/doc/dnsmasq-2.66/
    total 136
    -rw-r--r--. 1 root root 18007 abr 17  2013 COPYING
    -rw-r--r--. 1 root root 59811 nov 11 13:20 CHANGELOG
    -rw-r--r--. 1 root root  5164 abr 17  2013 DBus-interface
    -rw-r--r--. 1 root root  5009 abr 17  2013 doc.html
    -rw-r--r--. 1 root root 25075 abr 17  2013 FAQ
    -rw-r--r--. 1 root root 12019 abr 17  2013 setup.html
    • El procedimiento descrito en el post, también es válido para Debian 8 “Jessie”. El archivo de configuración /etc/dnsmasq es el mismo. En Jessie, acaso solo necesario instalar su paquete dnsmasq y más nada. Lo escribo porque considero innecesario confeccionar un artículo aparte para el Dnsmasq en Debian. Por suerte, los directorios relativos a la documentación y configuración, son los mismos. 😉

    El Dnsmaq es una creación de Simon Kelley <simon@thekelleys.org.uk>.

    ¿Qué es Dnsmasq?

    El Software Libre Dnsmasq es un servidor DNS Forwarder y DHCP para las pequeñas redes de computadoras. Ejemplo típico son las Redes existentes en nuestras PYMES. Demanda pocos recursos de hardware para su funcionamiento y se puede ejecutar en diversas plataformas como Linux, BSD, Android y OS X. Se incluye en casi todos los repositorios de las distribuciones Linux y BSD.

    El servidor DHCP del Dnsmasq puede arrendar direcciones IP de forma dinámica y estática, para múltiples redes con rangos diferentes de direcciones IP. Está integrado con el servidor DNS y permite que las máquinas locales que obtengan una dirección IP, aparezcan como registradas en el DNS con sus correctos registros DNS, tanto directos como inversos.

    La forma de trabajo nativa del Dnsmasq de guardar en su caché los registros DNS obtenidos mediante las consultas a sus Forwarders, reduce la carga en éstos y mejora el rendimiento general de la velocidad de respuesta a las diferentes consultas DNS.

    Soporta estándares modernos tales como IPv6 y DNSSEC, Arranque – Boot a través de la red con soporte para los protocolos BOOTP, TFTP, y PXE.

    En el universo Linux, el Dnsmasq es muy utilizado en los servidores para Máquinas sin Disco Duro y Clientes Ligeros. En Microsoft® Windows, con el software ARDENCE®, se utiliza como servidor DHCP un equivalente -al Dnsmasq- que denominan Tellurian.

    ¿En cuál escenario podemos utilizar al Dnsmasq?

    Si ejecutamos man dnsmasq en CentOS, obtendremos la página de ese manual en el idioma inglés. En el archivo dnsmasq.8.gz -en español- que se instala con la distribución Debian 8 “Jessie”, se refleja exactamente lo siguiente:

    LÍMITES

    • Los valores predeterminados para limites de recursos  son  generalmente conservadores,  y  apropiados  para  uso en dispositivos tipo enrutador encrustrado con procesadores lentos y poca  memoria.  En  hardware  más  capáz,  es  posible  incrementar  los  límites,  y  soportar muchos mas clientes. Lo siguiente se aplica a dnsmasq-2.37: versiones  previas  no escalaban tan bien.
    • Dnsmasq  es capaz de soportar con DNS y DHCP a por lo menos mil (1,000) clientes. Los tiempos de arriendo no deben ser muy cortos (menos de una hora).  El valor de –dns-forward-max puede ser aumentado: comience con el equivalente a el número de clientes y auméntelo si parece  lento  el DNS.  Nótese  que  el rendimiento DNS depende también de los servidores DNS upstream. El tamaño del caché DNS puede ser incrementado: el límite obligatorio es 10,000 nombres y el predeterminado (150) es muy bajo. El enviarle un SIGUSR1 a dnsmasq hace que  bitacore  información  que  es útil  para  afinar  el  tamaño  de  caché.  Ver  la  sección NOTAS para detalles.
    • El servidor TFTP incorporado es capáz de soportar varias transferencias simultáneas  de  archivos:  el  límite absoluto está relacionado con el número de file-handles permitidos a un proceso y la habilidad del  sys‐tem  call  select()  a  soportar números grandes de file-handles. Si el límite es fijado demasiado alto con –tftp-max será  de-escalado  y  el límite  real  será bitacoreado al inicio. Nótese que más transferencias son posibles cuando el mismo archivo es enviado qué cuando cada  transferencia envía un archivo diferente. Es  posible  usar dnsmasq para negar publicidad Web usando una lista de servidores de banners bien conocidos, todos resolviendose a 127.0.0.1 o 0.0.0.0  en  /etc/hosts o en un archivo hosts adicional. La lista puede ser muy larga. Dnsmasq ha sido probado exitósamente con  un  millón  de nombres.  Ese  tamaño  de archivo necesita un CPU de 1GHz y aproximadamente 60MB de RAM.

    No escribí ni edité los párrafos anteriores en lo absoluto. Se reflejan tal y cual vienen en el man en español del dnsmasq 2.72 del repositorio del Debian 8.6. A partir de ellos y de la práctica en el uso de éste software, podemos inferir que es poco común -que no imposible- encontrar un escenario en nuestras redes PYMES que sobrepase la cantidad de 1000 clientes o computadoras conectadas a la LAN.

    • Dnsmasq  es capaz de soportar con DNS y DHCP a por lo menos mil (1,000) clientes.

    Consideraciones al margen

    Siempre me llamó la atención que el premiado software ClearOS Enterprise 5.2 SP1 utilizara el Dnsmasq -unido a su NTP– como Servidor de Infraestructura por defecto, y que lo continúe utilizando como tal -al menos hasta las versiones 7.xxx- en releases pagas que supone instalen un Active Directory® basado en Samba 4. Lástima para nosotros, los amantes del Software Libre, que la compañía ClearFoundationdejara de proveer software de esa calidad en versiones posteriores a la 5.xxx en evidentes aras de mejores ganancias monetarias. Pienso que es contraproducente para la propia compañía.

    A pesar de que soy un fan de Debian –y no quiero hacer en lo absoluto una propaganda de mi elección muy personal– siempre he admirado a la Compañía Red Hat®, Inc cuyo modelo de negocios la ha ubicado como líder indiscutible del Software Libre. Además, es el Patrocinador del clon binario CentOS -software 100% libre- de su sistema operativo estrella Red Hat® Enterprise Linux – RHEL. Por algo se dice que CentOS es un RHEL sin soporte 😉

    • Tengo funcionando un Samba Clasic NT 4.0 Style Primary Domain Controller basado en el ClearOS Enterprise 5.2 SP1 desde hace mas de 4 años en la red de una empresa con clientes Windows XP, 7, 8, Windows Server 2003 y Windows server 2012 . ¿Qué hay que hacer cosquillas a un par de valores del registro de cada cliente Windows de versión superior a la XP?, es cierto. ¿Que funciona de lo mejor?, también es cierto. ¿Que el número de equipos no llega a los 100?, cierto también.

    Sentido Común

    • Aunque para mi “El Sentido Común es el menos común de los sentidos”, ubíquese ante todo en Sus Necesidades y luego seleccione el escenario artístico de acuerdo a lo que Usted necesita expresar y resolver según Su Propio Guión.
    • No utilice un misil transcontinental para matar un mosquito. No se complique la vida innecesariamente: comience por la solución mas sencilla. Sino resuelve con esa, eleve un punto la complejidad, y así sucesivamente.

    Instalemos CentOS 7 y el Dnsmasq

    Para la instalación del sistema base nos guiamos por el artículo CentOS 7 Hypervisor I y en la selección de paquetes marcamos solamente la opción de “Servidor de Infraestructura“. Los parámetros generales que utilizaremos en la confección de este artículo son los siguientes:

    Nombre FQDN de la máquina virtual:  dns.desdelinux.fan
    Dirección IP:                10.10.10.5
    

    CentOS 7 instala el dnsmasq por defecto

    Si Estimados Lectores, en CentOS 7 el paquete dnsmasq se instala durante la instalación de un Servidor de Infraestructura y supongo que en otras opciones también.

    [root@dns ~]# yum info dnsmasq
    Complementos cargados:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Paquetes instalados
    Nombre        : dnsmasq
    Arquitectura  : x86_64
    Versión       : 2.66
    Lanzamiento   : 21.el7
    Tamaño        : 464 k
    Repositorio   : installed
    Desde el repositorio   : centos-base
    Resumen       : A lightweight DHCP/caching DNS server
    URL           : http://www.thekelleys.org.uk/dnsmasq/
    Licencia      : GPLv2
    Descripción :Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP
               : server. It is designed to provide DNS and, optionally, DHCP, to a
               : small network. It can serve the names of local machines which are
               : not in the global DNS. The DHCP server integrates with the DNS
               : server and allows machines with DHCP-allocated addresses to appear
               : in the DNS with names configured either in each host or in a
               : central configuration file. Dnsmasq supports static and dynamic
               : DHCP leases and BOOTP for network booting of diskless machines.

    La versión del dnsmasq instalado es la 2.66, y corresponde a la versión de CentOS:

    [root@dns ~]# cat /proc/version
    Linux version 3.10.0-514.6.1.el7.x86_64 (builder@kbuilder.dev.centos.org)
    (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) )
    #1 SMP Wed Jan 18 13:06:36 UTC 2017

    Habilitemos y configuremos el dnsmasq

    [root@dns ~]# nano /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.10.10.5  dns.desdelinux.fan  dns
    
    [root@dns ~]# hostname
    dns
    [root@dns ~]# hostname -f
    dns.desdelinux.fan
    
    
    [root@dns ~]# systemctl enable dnsmasq
    [root@dns ~]# systemctl start dnsmasq
    [root@dns ~]# systemctl status dnsmasq
    ● dnsmasq.service - DNS caching server.
       Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
       Active: active (running) since sáb 2017-02-18 11:47:19 EST; 4s ago
     Main PID: 1179 (dnsmasq)
       CGroup: /system.slice/dnsmasq.service
               └─1179 /usr/sbin/dnsmasq -k
    
    feb 18 11:47:19 dns systemd[1]: Started DNS caching server..
    feb 18 11:47:19 dns systemd[1]: Starting DNS caching server....
    feb 18 11:47:19 dns dnsmasq[1179]: started, version 2.66 cachesize 150
    feb 18 11:47:19 dns dnsmasq[1179]: compile time options: IPv6 GNU-getopt DB...th
    feb 18 11:47:19 dns dnsmasq[1179]: reading /etc/resolv.conf
    feb 18 11:47:19 dns dnsmasq[1179]: ignoring nameserver 127.0.0.1 - local in...ce
    feb 18 11:47:19 dns dnsmasq[1179]: read /etc/hosts - 3 addresses
    Hint: Some lines were ellipsized, use -l to show in full.

    No olvidar el paso siguiente:

    [root@dns ~]# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.original

    Direcciones IP fijas

    Con el Dnsmasq, las direcciones de los servidores o equipos que requieran de una IP fija -tanto IPv4 como IPv6- se declaran en el archivo /etc/hosts:

    [root@dns ~]# nano /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    
    # Servidores
    10.10.10.1      sysadmin.desdelinux.fan         sysadmin
    10.10.10.3  ad-dc.desdelinux.fan            ad-dc
    10.10.10.4      fileserver.desdelinux.fan       fileserver
    10.10.10.5  dns.desdelinux.fan          dns
    10.10.10.6  proxyweb.desdelinux.fan         proxyweb
    10.10.10.7  blog.desdelinux.fan         blog
    10.10.10.8  ftpserver.desdelinux.fan        ftpserver
    10.10.10.9  mail.desdelinux.fan         mail

    Creemos el archivo /etc/dnsmasq.conf

    [root@dns ~]# nano /etc/dnsmasq.conf
    # -------------------------------------------------------------------
    # O P C I O N E S   G E N E R A L E S
    # -------------------------------------------------------------------
    domain-needed   # No pasar nombres sin la parte del dominio
    bogus-priv  # No pasar direcciones en el espacio no enrutado
    expand-hosts    # Adiciona automaticamente el dominio al host
    interface=eth0  # Interface. OJO con la Interface
    # except-interface=eth1 # NO escuchar por esta NIC
    strict-order    # Orden en que consulta el archivo /etc/resolv.conf
    
    # Incluya muchas mas opciones de configuración
    # mediante un archivo o ubicando los archivos
    # de configuración adicionales en un directorio
    # conf-file=/etc/dnsmasq.more.conf
    conf-dir=/etc/dnsmasq.d
    
    # Relativos al Nombre del Dominio
    domain=desdelinux.fan   # Nombre del dominio
    
    # El Servidor de Tiempo es 10.10.10.1
    address=/time.windows.com/10.10.10.1
    
    # Envía una opción vacía del valor WPAD. Se requiere para que 
    # se comporten bien los clientes Windos 7 y posteriores. ;-)
    dhcp-option=252,"\n"
    
    # Archivo donde declararemos los HOSTS que serán "baneados"
    addn-hosts=/etc/banner_add_hosts
    
    # -------------------------------------------------------------------
    # R E G I S T R O S   C N A M E    M X    T X T
    # -------------------------------------------------------------------
    # Este tipo de registro requiere de una entrada
    # en el archivo /etc/hosts
    # ej: 10.10.0.7 blog.desdelinux.fan blog
    # cname=ALIAS,REAL_NAME
    cname=www.desdelinux.fan,blog.desdelinux.fan
    
    # REGISTROS MX
    # Devuelve un registro MX con el nombre "desdelinux.fan" con destino
    # al equipo mail.desdelinux.fan y prioridad de 10
    mx-host=desdelinux.fan,mail.desdelinux.fan,10
    
    # El destino por defecto para los registros MX que se creen
    # utilizando la opción localmx será:
    mx-target=mail.desdelinux.fan
    
    # Devuelve un registro MX apuntando al mx-target para TODAS
    # las máquinas locales
    localmx
    
    # Registros TXT. Podemos declarar también un registro SPF
    txt-record=desdelinux.fan,"v=spf1 a -all"
    txt-record=desdelinux.fan,"DesdeLinux, su Blog dedicado al Software Libre"
    
    # -------------------------------------------------------------------
    
    # -------------------------------------------------------------------
    # R A N G O   Y   S U S   O P C I O N E S
    # -------------------------------------------------------------------
    # Rango IPv4 y tiempo de arrendamiento
    # De la 1 a la 29 son para los Servidores y otras necesidades
    dhcp-range=10.10.10.30,10.10.10.250,8h
    
    dhcp-lease-max=222      # Cantidad máxima de direcciones a arrendar
                            # por defecto son 150
    # Rango IPV6
    # dhcp-range=1234::, ra-only
    
    # Opciones para el RANGO
    # O P C I O N E S
    dhcp-option=1,255.255.255.0 # NETMASK
    dhcp-option=3,10.10.10.253  # ROUTER GATEWAY
    dhcp-option=6,10.10.10.5    # DNS Servers
    dhcp-option=15,desdelinux.fan   # DNS Domain Name
    dhcp-option=19,1        # option ip-forwarding ON
    dhcp-option=28,10.10.10.255 # BROADCAST
    dhcp-option=42,10.10.10.1   # NTP
    # dhcp-option=40,DCH        # NIS Domain Name
    # dhcp-option=41,10.10.10.5 # NIS Server
    # SERVIDOR WINS SAMBA4 EXTERNO  #
    # dhcp-option=44,10.10.10.5 # WINS
    # dhcp-option=45,10.10.10.5 # Datagramas NetBIOS
    # SERVIDOR WINS SAMBA4 EXTERNO  #
    # dhcp-option=46,8      # Nodo NetBIOS
    # dhcp-option=73,10.10.10.3 # Finger Server
    
    dhcp-authoritative              # DHCP Autoritario en la subnet
    # -------------------------------------------------------------------
    
    # -------------------------------------------------------------------
    # L O G G I N G   A L    /var/log/messages
    # -------------------------------------------------------------------
    log-queries
    
    # F I N   del archivo /etc/dnsmasq.conf
    # -------------------------------------------------------------------

    Comprobemos la sintaxis y reiniciemos el servicio

    [root@dns ~]# dnsmasq --test
    dnsmasq: syntax check OK.
    [root@dns ~]# systemctl restart dnsmasq
    [root@dns ~]# systemctl status dnsmasq
    ● dnsmasq.service - DNS caching server.
       Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
       Active: active (running) since sáb 2017-02-18 12:48:05 EST; 5s ago
     Main PID: 1288 (dnsmasq)
       CGroup: /system.slice/dnsmasq.service
               └─1288 /usr/sbin/dnsmasq -k
    
    feb 18 12:48:05 dns systemd[1]: Started DNS caching server..
    feb 18 12:48:05 dns systemd[1]: Starting DNS caching server....
    feb 18 12:48:05 dns dnsmasq[1288]: started, version 2.66 cachesize 150
    feb 18 12:48:05 dns dnsmasq[1288]: compile time options: IPv6 GNU-getopt DB...th
    feb 18 12:48:05 dns dnsmasq-dhcp[1288]: DHCP, IP range 10.10.10.30 -- 10.10....h
    feb 18 12:48:05 dns dnsmasq[1288]: reading /etc/resolv.conf
    feb 18 12:48:05 dns dnsmasq[1288]: ignoring nameserver 127.0.0.1 - local in...ce
    feb 18 12:48:05 dns dnsmasq[1288]: read /etc/hosts - 11 addresses
    feb 18 12:48:05 dns dnsmasq[1288]: failed to load names from /etc/banner_ad...ry
    Hint: Some lines were ellipsized, use -l to show in full.

    Observemos que en la salida anterior el systemctl status dnsmasq nos devuelve el error:

    feb 18 12:48:05 dns dnsmasq[1288]: failed to load names from /etc/banner_ad...ry
    

    quejándose de que no encuentra el archivo /etc/banner_add_hosts.

    [root@dns ~]# touch /etc/banner_add_hosts
    [root@dns ~]# systemctl restart dnsmasq.service 
    [root@dns ~]# systemctl restart dnsmasq.service 
    [root@dns ~]# systemctl status dnsmasq.service 
    ● dnsmasq.service - DNS caching server.
       Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
       Active: active (running) since sáb 2017-02-18 12:54:26 EST; 7s ago
     Main PID: 1394 (dnsmasq)
       CGroup: /system.slice/dnsmasq.service
               └─1394 /usr/sbin/dnsmasq -k
    
    feb 18 12:54:26 dns systemd[1]: Started DNS caching server..
    feb 18 12:54:26 dns systemd[1]: Starting DNS caching server....
    feb 18 12:54:26 dns dnsmasq[1394]: started, version 2.66 cachesize 150
    feb 18 12:54:26 dns dnsmasq[1394]: compile time options: IPv6 GNU-getopt DB...th
    feb 18 12:54:26 dns dnsmasq-dhcp[1394]: DHCP, IP range 10.10.10.30 -- 10.10....h
    feb 18 12:54:26 dns dnsmasq[1394]: reading /etc/resolv.conf
    feb 18 12:54:26 dns dnsmasq[1394]: ignoring nameserver 127.0.0.1 - local in...ce
    feb 18 12:54:26 dns dnsmasq[1394]: read /etc/hosts - 11 addresses
    feb 18 12:54:26 dns dnsmasq[1394]: read /etc/banner_add_hosts - 0 addresses
    Hint: Some lines were ellipsized, use -l to show in full.

    Y ya tenemos los servicios DNS y DHCP en ejecución.

    Importante

    • Si modificamos el archivo /etc/dnsmasq.conf debemos reiniciar el servicio para que los cambios tengan efecto.
    • Si modificamos el archivo /etc/hosts para eliminar, modificar o adicionar una IP fija con su correspondiente nombre del host, debemos reiniciar el servicio para que los cambios tengan efecto.
    • systemctl reload dnsmasq.service no se puede utilizar con éste servicio.

    Abrimos los puertos necesarios en el Firewall

    En el artículo de mi amigo y colega Luigys Toro –aka lagarto– “Cómo abrir puertos en el Firewall de Centos 7” se explica muy bien el procedimiento que debemos seguir para abrir los puertos en el Firewall que CentOS instala por defecto. Aun no se como aplicar las reglas del contexto Selinux al servicio dnsmasq en CentOS. Si alguien lo conoce, favor de iluminarnos.

    Los archivos /etc/protocols y /etc/services son una muy buen guía para saber cuales puertos necesitamos abrir para que funcionen bien los servicios DNS y DHCP que brinda el Dnsmasq.

    [root@dns ~]# firewall-cmd --get-active-zones
    public
      interfaces: eth0
    

    Servicio domain o Servidor de Nombre de Dominio (dns). Protocolo swipeIP with Encryption

    [root@dns ~]# firewall-cmd --zone=public --add-port=53/tcp --permanent
    success
    
    [root@dns ~]# firewall-cmd --zone=public --add-port=53/udp --permanent
    success

    Servicio bootps o BOOTP server (dhcp). Protocolo ippcInternet Pluribus Packet Core

    [root@dns ~]# firewall-cmd --zone=public --add-port=67/tcp --permanent
    success
    
    [root@dns ~]# firewall-cmd --zone=public --add-port=67/udp --permanent
    success
    
    [root@dns ~]# firewall-cmd --reload
    success
    
    [root@dns ~]# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: eth0
      sources: 
      services: dhcpv6-client ssh
      ports: 53/udp 67/tcp 53/tcp 67/udp
      protocols: 
      masquerade: no
      forward-ports: 
      sourceports: 
      icmp-blocks: 
      rich rules:

    Importante

    • Si vamos a brindar los servicios de arrendamiento de direcciones IPv6, también debemos abrir los puertos dhcpv6-server 547/tcp y dhcpv6-server 547/udp.

    Comprobaciones

    Comprobemos mediante varias consultas DNS como está funcionando nuestro flamante Dnsmasq recién instalado. Para ello seleccionamos el conocido equipo sysadmin.desdelinux.fan, y desde ese equipo, que está conectado a la LAN ejecutaremos varias consultas, no sin antes comprobar que está bien configurado el archivo /etc/resolv.conf:

    buzz@sysadmin:~$ cat /etc/resolv.conf 
    # Generated by NetworkManager
    search desdelinux.fan
    nameserver 10.10.10.5

    La configuración del archivo /etc/resolv.conf es correcta. Empecemos las consultas

    buzz@sysadmin:~$ host dns
    dns.desdelinux.fan has address 10.10.10.5
    Host dns.desdelinux.fan not found: 5(REFUSED)
    dns.desdelinux.fan mail is handled by 1 mail.desdelinux.fan.

    Con la configuración propuesta, podemos desechar la salida del comando host sin opciones cuando del Dnsmasq se trata, al devolver líneas como la siguiente:

    Host dns.desdelinux.fan not found: 5(REFUSED)

    Sino deseamos ese tipo de salida, debemos utilizar el comando host con las opciones -t A, -t CNAME, -t NS, -t SOA, -t SIG, -t AXFR. Consulte man host para más información:

    buzz@sysadmin:~$ host -t A dns.desdelinux.fan
    dns.desdelinux.fan has address 10.10.10.5
    
    [root@dns ~]#  host -t A dns
    dns.desdelinux.fan has address 10.10.10.5
    
    buzz@sysadmin:~$ dig dns
    
    buzz@sysadmin:~$ host 10.10.10.5
    5.10.10.10.in-addr.arpa domain name pointer dns.desdelinux.fan.

    Dnsmasq no está concebido para un esquema Maestro – Esclavo

    buzz@sysadmin:~$ host -t AXFR desdelinux.fan
    Trying "desdelinux.fan"
    Host desdelinux.fan not found: 5(REFUSED)
    ; Transfer failed.

    Tampoco está concebido para devolver registros NS y SOA

    buzz@sysadmin:~$ host -t NS desdelinux.fan
    Host desdelinux.fan not found: 5(REFUSED)
    
    buzz@sysadmin:~$ host -t SOA desdelinux.fan
    Host desdelinux.fan not found: 5(REFUSED)
    
    buzz@sysadmin:~$ dig IN SOA desdelinux.fan
    buzz@sysadmin:~$ dig IN NS desdelinux.fan
    

    Si soporta los registro MX, CNAME, y TXT

    buzz@sysadmin:~$ host -t A www
    www.desdelinux.fan is an alias for blog.desdelinux.fan.
    blog.desdelinux.fan has address 10.10.10.7
    buzz@sysadmin:~$ host -t MX desdelinux.fan
    desdelinux.fan mail is handled by 10 mail.desdelinux.fan.
    
    buzz@sysadmin:~$ host -t CNAME www
    www.desdelinux.fan is an alias for blog.desdelinux.fan.
    
    buzz@sysadmin:~$ host -t A blog.desdelinux.fan
    blog.desdelinux.fan has address 10.10.10.7
    
    buzz@sysadmin:~$ host -t TXT desdelinux.fan
    desdelinux.fan descriptive text "DesdeLinux, su Blog dedicado al Software Libre"
    desdelinux.fan descriptive text "v=spf1 a -all"

    Consultas sobre registros PTR

    buzz@sysadmin:~$ host -t PTR 10.10.10.7
    7.10.10.10.in-addr.arpa domain name pointer blog.desdelinux.fan.
    
    buzz@sysadmin:~$ host 10.10.10.7
    7.10.10.10.in-addr.arpa domain name pointer blog.desdelinux.fan.

    Clientes Microsoft® Windows

    Muy saludable es ejecutar en una consola del servidor dns.desdelinux.fan el comando journalctl -f ANTES de encender una máquina el que cual se ejecute un sistema operativo Microsoft® Windows, para ver la enorme cantidad de consultas DNS a diferentes sitios que efectúa. De verdad que es muy entretenido. 😉

    Si queremos evitar que las consultas relativas a algunos de esos sitios, viajen hacia los servidores Raíces – Root Servers o hacia los Forwarders que declaremos en el archivo /etc/resolv.conf, podemos hacer buen uso del archivo /etc/banner_add_host, llenándolo con tantos sitios necesitemos declarar. Ejemplo:

    [root@dns ~]# nano /etc/banner_add_hosts
    127.0.0.1   windowsupdate.com
    127.0.0.1   ctldl.windowsupdate.com
    127.0.0.1   ocsp.verisign.com
    127.0.0.1   csc3-2010-crl.verisign.com
    127.0.0.1   www.msftncsi.com
    127.0.0.1   ipv6.msftncsi.com
    127.0.0.1   teredo.ipv6.microsoft.com
    127.0.0.1   ds.download.windowsupdate.com
    127.0.0.1   download.microsoft.com
    127.0.0.1   fe2.update.microsoft.com
    127.0.0.1   crl.microsoft.com
    127.0.0.1   www.download.windowsupdate.com
    127.0.0.1   win8.ipv6.microsoft.com
    127.0.0.1   spynet.microsoft.com
    127.0.0.1   spynet1.microsoft.com
    127.0.0.1   spynet2.microsoft.com
    127.0.0.1   spynet3.microsoft.com
    127.0.0.1   spynet4.microsoft.com
    127.0.0.1   spynet5.microsoft.com
    127.0.0.1   office15client.microsoft.com
    127.0.0.1   addons.mozilla.org
    127.0.0.1   crl.verisign.com
    
    [root@dns ~]# dnsmasq --test
    dnsmasq: syntax check OK.
    
    [root@dns ~]# systemctl restart dnsmasq.service 
    [root@dns ~]# systemctl status dnsmasq.service
    
    [root@dns ~]# host -t A spynet4.microsoft.com
    spynet4.microsoft.com has address 127.0.0.1
    
    [root@dns ~]# host -t A www.download.windowsupdate.com
    www.download.windowsupdate.com has address 127.0.0.1
    • El formato del archivo /etc/banner_add_hosts es igual al del archivo /etc/hosts. Recordemos que la lista de los dominios a “banear” puede ser tan larga como necesitemos, acorde a lo expresado en el acápite LÍMITES de éste artículo.

    Para comprobar desde el cliente seven.desdelinux.fan que arendó la dirección IP:

    buzz@sysadmin:~$ host -t A seven
    seven.desdelinux.fan has address 10.10.10.115

    ejecutamos en el propio cliente Windows el comando cmd:

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
    
    C:\Users\buzz>nslookup
    Default Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    > dns
    Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    Name:    dns.desdelinux.fan
    Address:  10.10.10.5
    
    > ftpserver
    Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    Name:    ftpserver.desdelinux.fan
    Address:  10.10.10.8
    
    > www
    Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    Name:    blog.desdelinux.fan
    Address:  10.10.10.7
    Aliases:  www.desdelinux.fan
    
    > mail
    Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    Name:    mail.desdelinux.fan
    Address:  10.10.10.9
    
    > sysadmin
    Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    Name:    sysadmin.desdelinux.fan
    Address:  10.10.10.1
    
    > www.download.windowsupdate.com
    Server:  dns.desdelinux.fan
    Address:  10.10.10.5
    
    Name:    www.download.windowsupdate.com
    Address:  127.0.0.1
    
    > quit
    
    C:\Users\buzz>

    Resumen

    Hasta aquí hemos visto unas pocas características principales del Dnsmasq. Sugiero lean y estudien los archivos mencionados en el primer párrafo de éste artículo, si desean conocer mas sobre sobre éste magnífico -y sorprendente- programa. Mediante su uso podemos facilitarnos la vida grandemente.

    Por el año 2014 leí el artículo “How To: Samba4 AD PDC + Windows XP, Vista and 7“. El creador del artículo declara sin sonrojo alguno: “I hate bind, so it’s dnsmasq to the rescue” (Sic) que mas o menos quiere decir “Yo odio el BIND, de forma que el Dnsmasq sale al rescate“. Que conste que esa frase no la digo yo.

    De paso les comento que, en ese artículo el Autor no deja claro el origen de algunos registros DNS y en términos generales no es una buena guía para implementar un Active Directory® basado en Samba 4. Si me llamó la atención su fanática preferencia por el Dnsmasq.

    Para nada odio al BIND. Lo demuestran mis cuatro -4- artículos anteriores:

    Como he escrito en ocasiones anteriores, casi nunca recomiendo, sino que sugiero. En el caso del Dnsmasq si recomiendo su uso en las Redes PYMES.

    Próxima entrega

    La próxima entrega –creo, pienso– la dedicaré a la integración del Dnsmasq con un Microsoft® Active Directory®. Será un buen punto de entrada para un artículo –muy– posterior que versará sobre cómo hacer un AD-DC con Samba 4 y el Dnsmasq.

    El artículo Dnsmasq en CentOS 7.3 – Redes PYME aparece primero en Dnsmasq en CentOS 7.3 – Redes PYME.

    Artículo original: Dnsmasq en CentOS 7.3 – Redes PYME

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *