Inicio » Linux » Configuración de un servidor DNS en Centos 7
Compartir en facebook
Compartir en twitter
Compartir en linkedin
Compartir en whatsapp
Compartir en telegram
Compartir en email

Configuración de un servidor DNS en Centos 7

La configuración de un servidor DNS en Linux Centos 7 es muy sencilla. Primero de todo, tendremos que instalar el producto bind.

Curso de Servidores Linux en CENTOS para principiantes

Curso de Servidores Linux en CENTOS para principiantes

Instalación de bind

yum -y install bind bind-utils

Configuración del fichero named.conf

Seguidamente, en el fichero /etc/named.conf, definimos la zona del servicio que queremos resolver. En este caso, quiero resolver el nombre de servicio main.webserver.local:

zone «webserver.local» IN {
type master;
file «forward.webserverlocal.db«;
allow-update { none; };
};

zone «2.0.0.10.in-addr.arpa» IN {
type master;
file «reverse.webserverlocal.db«;
allow-update { none; };
};

Configuración del fichero forward

En el fichero forward.webserverloca.db definimos las IPs y el nombres del servicio. Es decir, un servicio puede apuntar a varios servidores como puede ocurrir con google.com:

C:\Users\dmartinez28>nslookup www.google.com
Server: resolver.hp.net
Address: 16.110.135.51

Non-authoritative answer:
Name: www.google.com
Addresses: 2607:f8b0:4000:815::2004
74.125.195.105
74.125.195.147
74.125.195.99
74.125.195.104
74.125.195.106
74.125.195.103

C:\Users\dmartinez28>

Así que veamos nuestro fichero de «forward»:

[[email protected] ~]# cat /var/named/forward.webserverlocal.db
$TTL 86400
@ IN SOA maindns.webserver.local. root.webserver.local. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS maindns.webserver.local.
@ IN NS secondarydns.webserever.local.
@ IN A 10.0.0.2
@ IN A 10.0.0.3
maindns IN A 10.0.0.2
secondarydns IN A 10.0.0.3
[[email protected] ~]#

Configuración del fichero reverse

En el fichero «reverse» definimos el camino de respuesta, por llamarlo de alguna manera:

[[email protected] ~]# cat /var/named/reverse.webserverlocal.db
$TTL 86400
@ IN SOA main.webserver.local. root.webserver.local. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS masterdns.webserver.local.
maindns IN A 10.0.0.2
secondarydns IN A 10.0.0.3
101 IN PTR maindns.webeserver.local.
102 IN PTR secondarydns.unixmen.local.
[[email protected] ~]#

Probando el servidor de DNS

Una vez definidos todos los parámetros, reiniciamos el servicio named con el comando systemctl restart named.

En nuestro fichero /etc/resolv.conf, tenemos que apuntar a la IP donde corre el servicio de DNS. En el caso para este ejemplo, todo lo he ubicado en el mismo servidor:

[[email protected] ~]# cat /etc/resolv.conf
nameserver 10.0.0.2
[[email protected] ~]#

Finalmente, probamos la resolución del nombre vía DNS:

[[email protected] ~]# dig maindns.webserver.local

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> maindns.webserver.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33754
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;maindns.webserver.local. IN A

;; ANSWER SECTION:
maindns.webserver.local. 86400 IN A 10.0.0.2

;; AUTHORITY SECTION:
webserver.local. 86400 IN NS secondarydns.webserever.local.
webserver.local. 86400 IN NS maindns.webserver.local.

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Nov 12 13:27:25 CET 2018
;; MSG SIZE rcvd: 120

[[email protected] ~]#

A lo mejor estás más acostumbrado al antiguo nslookup:

[[email protected] ~]# nslookup maindns.webserver.local
Server: 10.0.0.2
Address: 10.0.0.2#53

Name: maindns.webserver.local
Address: 10.0.0.2

[[email protected] ~]#

También voy a comprobar el servidor WEB de pruebas que tengo arrancado en cada uno de los servidores:

[[email protected] ~]# curl -s http://maindns.webserver.local
<html>
<body>
Hola desde el Webserver 1
</body>
</html>
[[email protected] ~]# curl -s http://secondarydns.webserver.local
<html>
<body>
Hola desde el Webserver 2
</body>
</html>
[[email protected] ~]#

Configuración del DNS por round robin

Ahora queremos que si la aplicación de un servidor cae, el servicio se siga dando por el otro servidor WEB. A esta configuración se la denomina «alta disponibilidad» por round robin de DNS.

Lo que voy a hacer es configurar el DNS para que un mismo nombre apunte a varias IPs distintas. Cada IP está levantada en un servidor (sistema operativo) diferente, por lo que si cae el «Webserver 1», el servicio se seguirá dando por el «Webserver 2».

El nombre del servicio al que voy a apuntar se llama webservertest y tengo un servidor WEB arrancado en el servidor con IP 10.0.0.2 y el otro Webserver en el servidor 10.0.0.3.

El resultado es el siguiente:

[[email protected] named]# curl -s http://webservertest
<html>
<body>
Hola desde el Webserver 1
</body>
</html>
[[email protected] named]# systemctl stop httpd
[[email protected] named]# curl -s http://webservertest
<html>
<body>
Hola desde el Webserver 2
</body>
</html>
[[email protected] named]#

Como podemos observar, aunque para el Apache del servidor con IP 10.0.0.2, la URL sigue dando servicio a través del Apache con IP 10.0.0.3.

Para conseguir esto, he configurado nuevas entradas en el DNS. Veámoslas:

  • Fichero /etc/named.conf:

# webservertest
zone «webservertest» IN {
type master;
file «forward.webservertest.db»;
allow-update { none; };
};

zone «reverse.webservertest» IN {
type master;
file «reverse.webservertest.db»;
allow-update { none; };
};

  • Fichero  /var/named/forward.webservertest.db:

$TTL 86400
@ IN SOA webservertest. root.webserver.local. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)

@ IN NS webservertest.
@ IN NS webserevertest.
@ IN A 10.0.0.2
@ IN A 10.0.0.3
webservertest IN A 10.0.0.2
webservertest IN A 10.0.0.3

Vemos que el mismo nombre de servicio apunta a IPs distintas.

  • Fichero /var/named/reverse.webservertest.db:

$TTL 86400
@ IN SOA webservertest. root.webservertest. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)

@ IN NS webservertest.
webservertest IN A 10.0.0.2
webservertest IN A 10.0.0.3
101 IN PTR webservertest.
102 IN PTR webservertest.

Publicidad

Raiola Networks

Recibe los últimos artículos en tu correo:

About Author

Contenido Relacionado

Linux
David Martínez Perales

Guía de Linux

Tabla de contenidos1 Historia de Linux2 ¿Qué es una distribución Linux y cuál instalar?3 ¿Cómo iniciar una sesión en Linux?4

Leer más »

Artículos Recientes

Deja un comentario