LinuxParty
El servicio Domain Name Server (DNS) se utiliza para la resolución de nombres de hosts. Los Servidores DNS maestros (servidor primario) son los manejadores de datos de zona originales y el/los servidores DNS esclavos (servidor secundario) son sólo servidores de respaldo que se utilizan para copiar la misma información de la zona de los servidores maestros. El Servidor Maestro resolverá los nombres de cada anfitrión que hemos definido en la base de datos de zona; y utilizará el protocolo UDP, ya que los protocolos UDP nunca usan el proceso de reconocimiento, mientras que TCP utiliza reconocimiento. Los servidores DNS también utilizan protocolos UDP para resolver la petición de consulta a la mayor brevedad.
Cómo funciona DNS
Comprender como funcionan los servidores DNS podría ser poco confuso para los novatos. He aquí una breve explicación sobre la forma de la obran los DNS.
Digamos, si necesitamos acceder a cualquier sitio web ¿Cómo lo vamos a hacer? Sólo tienes que escribir en el navegador www.google.com y pulsa Enter. Hmm eso es todo lo que sabemos, pero el hecho es, ¿qué pinta el DNS en todo esto? Mientras escribimos www.google.com el sistema buscará www.google.com. Cada vez que escriba algún nombre de dominio, hay un . (Punto) al final de la www.google.com que indican que debe buscarse en el servidor raíz.
A nivel mundial existen 13 servidores raíz disponibles para resolver las consultas. Al principio, cuando pulsamos Enter tras escribir www.google.com pasará una solicitud a nuestro resolutor local, que tiene entrada sobre nuestro DNS servidor y esclavo. Si ellos no tienen información sobre dicha consulta solicitada pasarán la solicitud al dominio de nivel superior (TLD), si el TLD no encuentra la solicitud, se lo pasará a un servidor autorizado saber su petición, él remitirá a los servidores autoridad, aquí sólo www.google.com se definió como la dirección 72.36.15.56.
En poco tiempo el servidor autorizado dará la respuesta a TLD y TLD pasará al servidor raíz y la raíz proporcionará la información al navegador, por lo tanto, el navegador caché se quedará con la petición DNS para su uso futuro. Por lo tanto este largo proceso acabará de resolverse en milisegundos. Si no conocen la solicitud, ellos responderán como NXDOMAIN. Eso quiere decir, no hay registro alguno, no fueron encontrados en la base de datos de zona. Espero que esto hace que entienda cómo funcionan los DNS.
Mi entorno de pruebas
Para este artículo, estoy usando 3 máquinas, 2 para la configuración del servidor (maestro y esclavo) y 1 para el cliente.
-------------------------------------------------- -
Servidor Maestro DNS
-------------------------------------------------- -
Dirección IP: 192.168.0.200
Host-name: masterdns.linuxpartylocal.com
OS: Centos 6.5 final
-------------------------------------------------- -
Servidor Esclavo DNS
-------------------------------------------------- -
Dirección IP: 192.168.0.201
Host-name: slavedns.linuxpartylocal.com
OS: Centos 6.5 final
-------------------------------------------------- -
Máquina Cliente para utilizar DNS
-------------------------------------------------- -
Dirección IP: 192.168.0.210
Host-name: node1.linuxpartylocal.com
OS: Centos 6.5 final
Paquetes requeridos:
bind, bind-utils, bind-chroot
Los archivos de configuración utilizados
archivo de configuración: /etc/named.conf
archivo de script: /etc/init.d/named
Puerto y protocolos usados
53, UDP
Configuración DNS del Servidor Maestro.
En primer lugar, compruebe la versión, dirección IP, nombre de host y Distribución del Servidor Maestro DNS, antes de seguir adelante para la configuración.
Mira también:
Tipos de Registro DNS
$ sudo ifconfig | grep inet $ hostname $ cat /etc/redhat-release
Una vez que usted confirma que las opciones anteriores son correctas, es tiempo de avanzar para instalar los paquetes requeridos.
$ sudo yum install bind* -y
Instalación y configuración de Bind
Después de instalar los paquetes necesarios, ahora vamos a definir los archivos de zona en el archivo de configuración del maestro 'named.conf'.
$ sudo vim /etc/named.conf
A continuación se realiza la entrada de mi archivo named.conf, cambiar el archivo de configuración según su necesidad.
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.0.200; }; # Aquí tenemos que añadir nuestra IP Maestro Servidor DNS. listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; 192.168.0.0/24; }; # Rango de subred donde se permite a mis anfitriones para consultar nuestros DNS. allow-transfer { localhost; 192.168.0.201; }; # Aquí tenemos a nuestro IP del servidor DNS esclavo. recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; ## Definir nuestro archivo forward y reverse Zone aquí Zona linuxpartylocal.com. zone"linuxpartylocal.com" IN { type master; file "linuxpartylocal.fwd.zone"; allow-update { none; }; }; zone"0.168.192.in-addr.arpa" IN { type master; file "linuxpartylocal.rev.zone"; allow-update { none; }; }; ##### include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
Los siguientes son la explicación de cada configuración que usamos en encima de archivo.
- listen-on port 53 – se utiliza para el DNS para escuchar en interfaces disponibles.
- Master DNS – Define, su dirección de IP del DNS maestro escuchar la consulta.
- Slave DNS – definir su DNS esclavo, que se utiliza para sincronizar la información de nuestra zona para resolver las huestes del amo.
- recursion no – si su conjunto Yes, consultas recursivas hará que el servidor en ataque DDOS.
- Zone Name – definir su nombre de la zona definida aquí como linuxpartylocal.com.
- type master (tipo de maestro) – como este sistema se ha configurado para un servidor maestro, para servidor esclavo será esclavo.
- linuxpartylocal.fwd.zone – este archivo tiene la información de host para esta zona.
- allow-update none (actualización permite ninguno) – si no será definido. no utiliza DNS dinámico (DDNS).
Crear archivos de zona maestras
Lo primero debemos definir la zona de entrada de búsqueda. Aquí tenemos que crear los archivos de zona con el nombre, tal como lo hemos definido en el archivo named.conf como abajo.
linuxpartylocal.fwd.zone linuxpartylocal.rev.zone
Utilizamos los archivos de configuración de ejemplo para la creación de archivos de zona "forward" (zona de entrada de búsqueda), para esto tenemos que copiar los archivos de configuración de ejemplo.
$ sudo cp /var/named/named.localhost /var/named/linuxpartylocal.fwd.zone $ sudo cp /var/named/named.loopback /var/named/linuxpartylocal.rev.zone
Una vez, si has copiado los archivos de configuración, ahora editaremos estos archivos de zonas utilizando el editor vim .
$ sudo vim /var/named/linuxpartylocal.fwd.zone
Antes de definir nuestra información del host en el archivo de zona forward, primero vamos echar un vistazo en el archivo de zona.
Vamos a cambiarlos....
Esta es mi configuración de zona delantera (forward), anexar la siguiente entrada y hacer cambios según su necesidad.
$TTL 86400 @ IN SOA masterdns.linuxpartylocal.com. root.linuxpartylocal.com. ( 2014090401 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ) ; minimum ; Name server's @ IN NS masterdns.linuxpartylocal.com. @ IN NS slavedns.linuxpartylocal.com. ; Name server hostname to IP resolve. @ IN A 192.168.0.200 @ IN A 192.168.0.201 ; Hosts in this Domain @ IN A 192.168.0.210 @ IN A 192.168.0.220 masterdns IN A 192.168.0.200 slavedns IN A 192.168.0.201 node1 IN A 192.168.0.210 rhel1 IN A 192.168.0.220
Guarde y salga del archivo usando wq!. Use TAB para conseguir un formato decente en el archivo de zona.
Ahora, debe crear el archivo de búsqueda inversa, ya hemos hecho una copia del archivo de bucle de retorno en el nombre de linuxpartylocal.rev.zone. Así, que utilice este archivo para configurar nuestra búsqueda inversa.
$ sudo vim /var/named/linuxpartylocal.rev.zone
Antes de definir nuestra información de host en el archivo de zona inversa, le echamos un vistazo rápido muestra inversa como se muestra a continuación.
Esta es la configuración de mi zona inversa, anexe la entrada de abajo y hacer cambios como su necesidad.
$TTL 86400 @ IN SOA masterdns.linuxpartylocal.com. root.linuxpartylocal.com. ( 2014090402 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 86400 ) ; minimum ; Name server's @ IN NS masterdns.linuxpartylocal.com. @ IN NS slavedns.linuxpartylocal.com. @ IN PTR linuxpartylocal.com. ; Name server hostname to IP resolve. masterdns IN A 192.168.0.200 slavedns IN A 192.168.0.201 ;Hosts in Domain node1 IN A 192.168.0.210 rhel IN A 192.168.0.220 200 IN PTR masterdns.linuxpartylocal.com. 201 IN PTR slavedns.linuxpartylocal.com. 210 IN PTR node1.linuxpartylocal.com. 220 IN PTR rhel1.linuxpartylocal.com.
Guarde y salga del archivo usando wq! Use TAB para conseguir un formato decente en el archivo de zona.
Compruebe el dueño del grupo del fichero forward y archivos de consulta inversa, antes de comprobar los posibles errores en la configuración.
$ sudo ls -l /var/named/
Aquí podemos ver que ambos ficheros son titularidad del usuario root, ya que los archivos Cambie el grupo a named de ambos archivos mediante comandos siguientes.
$ sudo chgrp named /var/named/linuxpartylocal.fwd.zone $ sudo chgrp named /var/named/linuxpartylocal.rev.zone
Después de establecer la propiedad correcta en los archivos, verificar nuevamente:
$ sudo ls -l /var/named/
Ahora, comprobar los errores en los archivos de zona, antes de iniciar el servicio DNS. Primero revise el archivo named.conf, a continuación, comprobar otros archivos de zona.
$ sudo named-checkconf /etc/named.conf $ sudo named-checkzone masterdns.linuxpartylocal.com /var/named/linuxpartylocal.fwd.zone $ sudo named-checkzone masterdns.linuxpartylocal.com /var/named/linuxpartylocal.rev.zone
Por defecto iptables estaba corriendo y nuestro servidor DNS se limita a localhost, si el cliente quiere resolver el nombre de nuestro servidor DNS, entonces tenemos que permitir la petición de entrada, para eso necesitamos añadir una regla a iptables de entrada para el puerto 53.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Ahora, compruebe que la regla se ha añadido correctamente en la cadena INPUT.
$ sudo iptables -L INPUT
A continuación, guardar las reglas y reinicie el firewall.
$ sudo service iptables save $ sudo service iptables restart
Inicie el servicio named y hacer que sea persistente.
$ sudo service named start $ sudo chkconfig named on $ sudo chkconfig --list named
Por último, pruebe los archivos de zona DNS Maestro configurados (forward y reverse), usando las dig y nslookup.
$ dig masterdns.linuxpartylocal.com [Forward Zone]
$ dig -x 192.168.0.200
$ nslookup linuxpartylocal.com $ nslookup masterdns.linuxpartylocal.com $ nslookup slavedns.linuxpartylocal.com
Bien! hemos configurado un DNS maestro, ahora tenemos que configurar un servidor DNS esclavo. Sigamos adelante para configurar un servidor esclavo, Esto no tomará mucho tiempo más que la configuración maestra.
Configuración Servidor Esclavo DNS
En la máquina Esclavo, también necesitamos instalar los mismos paquetes como se muestra en la Maestra, así que vamos a instalar usando los siguientes comandos.
$ sudo yum install bind * -y
Abrir el archivo y editar 'named.conf' de nuestra base de datos de zona y el puerto de escucha.
$ sudo vim /etc/named.conf
Haga los cambios como se muestra, según sus necesidades.
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.0.201}; # Our Slave DNS server IP listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; 192.168.0.0/24; }; recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; ## Define our slave forward and reverse zone, Zone files are replicated from master. zone"linuxpartylocal.com" IN { type slave; file "slaves/linuxpartylocal.fwd.zone"; masters { 192.168.0.200; }; }; zone"0.168.192.in-addr.arpa" IN { type slave; file "slaves/linuxpartylocal.rev.zone"; masters { 192.168.0.200; }; }; ##### include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
Iniciar el servidor DNS:
$ sudo service named start
Después de reiniciar el servicio bind, no tenemos para definir la información de zona de forma individual, ya que nuestro permite transferir (allow-transfer) y se replicará la información de zona desde el servidor maestro como se muestra en la imagen de abajo.
$ sudo service named start
Verificar, la información de la zona con el comando cat.
$ sudo cat /var/named/slaves/linuxpartylocal.fwd.zone $ sudo cat /var/named/slaves/linuxpartylocal.rev.zone
A continuación, abrir el puerto 53 DNS en iptables para permitir la conexión de entrada.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Guarde la configuración, reinicie el servicio y conviértalo en un servicio persistente.
$ sudo service iptables save $ sudo service iptables restart
$ sudo chkconfig iptables on $ sudo chkconfig --list iptables
Configurar la máquina del cliente
setup
En el lado del cliente tenemos que asignar el servidor primario (192.168.0.200) y el secundario (192.168.0.201) en la configuración de la red para obtener asignar un nombre de host. Para ello, ejecute el comando setup para definir todas estas entradas como se muestra en la imagen.
Si no, editar el archivo '/etc/reslov.conf' y añadir las siguientes entradas.
$ vim /etc/resolv.conf
search linuxpartylocal.com nameserver 192.168.0.200 nameserver 192.168.0.201
Ahora, comprobar la IP, nombre de host y el nombre del servidor de búsqueda.
$ ifconfig | grep inet $ hostname $ nslookup linuxpartylocal.com
Now, check the forward & Reverse DNS look-up using.
Ahora, comprobar los servidores DNS forward y reverse utilizando:
$ dig masterdns.linuxpartylocal.com $ dig -x 192.168.0.200
Explicación de la salida dig:
- Header - Este dice todo lo que hemos pedido y cómo fue el resultado.
- Status - Estado, si hubo error, eso significa que la solicitud de consulta enviado por nosotros fue un éxito sin ningún error.
- Question - La consulta ha sido realizada por nosotros, aquí mi pregunta era masterdns.linuxpartylocal.com.
- Answer (Respuesta) - La solicitud de consultas por resolver si hay información disponible.
- Authority - La respuesta de los servidores de nombre de dominio y la zona.
- Additional - Información adicional con respecto a los servidores de nombres, detalles tales como nombre-host y la dirección IP.
- Query time (Tiempo de consulta) - ¿Cuánto tiempo le tomó la resolución de los nombres de los servidores anteriores.
Finalmente comprobar nuestro nodo y hacer un ping.
$ dig node1.linuxpartylocal.com
$ ping masterdns.linuxpartylocal.com -c 2 $ ping slavedns.linuxpartylocal.com -c 2 $ ping 192.168.0.200 -c 2 $ ping 192.168.0.201 -c 2
Se acabó, la instalación queda completada, aquí hemos configurado tanto en el servidor DNS primario (maestro) y el esclavo (secundario).
Otros artículos:
-
Internet
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge
- La propuesta de la ICANN / Verisign permitiría a cualquier gobierno confiscar nombres de dominio
- Listado errores HTTP, estados de respuesta del servidor
- Códigos html estados de respuesta del servidor