Saltar al contenido principal

Crear unha zona directa

A creación dunha zona consiste na realización dunha serie de pasos, os cales podemos resumir nos seguintes:

  • Crear un ficheiro de zona. De xeito opcional, antes da creación de ningún ficheiro de zona, podemos crear un directorio onde vaiamos gardar todos os ficheiros de zona de BIND.
  • No ficheiro de zona, definir os rexistros de recursos necesarios. Ao inicio do ficheiro definiremos o TTL e, como mínimo, o rexistro SOA.
  • Enlazar o ficheiro de zona creado no ficheiro de configuración /etc/bind/named.conf.local.
  • Comprobar a configuración coa utilidade named-checkconf.
  • Reiniciar BIND para aplicar os cambios.
  • Opcionalmente, podemos comprobar o estado do servizo de BIND para comprobar que non se producíu ningún error.
  • Por último, configurar os clientes para que utilicen o servidor BIND configurado.

A continuación, descríbense cada un dos pasos de forma detallada.

Crear o directorio para os ficheiros de zona

O primeiro que imos facer é crear unha carpeta zones que gardará todos os ficheiros de zona do servidor de nomes primario.

$ sudo mkdir /etc/bind/zones
Directorio para os ficheiros de zona

A creación do directorio non é obrigatorio, só é para manter unha mellor organización dos ficheiros de zona. Este paso só o temos que facer a primeira vez que creamos un ficheiro de zona.

Crear o ficheiro de zona

Se queremos engadir unha nova zona para o dominio servidor.com, antes de nada, temos que crear un novo ficheiro de zona:

$ sudo nano /etc/bind/zones/db.servidor.com
Nomes dos ficheiros de zonas

O nome do ficheiro pode ser calquera, xa que o importante é que coincida coa ruta que se indique despois no ficheiro /etc/bind/named.conf.local.

Como alternativa, en lugar de escribir manualmente todos os rexistros, podemos tomar como base un ficheiro que xa existe. Un deles pode ser /etc/bind/db.local. Podemos duplicalo da seguinte forma:

$ sudo cp /etc/bind/db.local /etc/bind/zones/db.servidor.com

Definir o TTL

Independentemente de se o creamos desde cero ou o duplicamos para modificar, temos que definir correctamente os rexistros de recursos. En primeiro lugar, imos indicar o TTL. Recordemos que o TTL (Time To Live) é un parámetro que determina canto tempo pode estar un rexistro na caché dun cliente ou servidor DNS. Podemos poñerlle 1 día, o cal en segundos equivale a 86400:

$TTL	86400
@ IN SOA servidor.com. root.servidor.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS servidor.com.
@ IN A 192.168.1.100

Definir o rexistro SOA

A continuación, o primeiro dos rexistros DNS que debemos indicar é o rexistro SOA:

$TTL	86400
@ IN SOA servidor.com. root.servidor.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS servidor.com.
@ IN A 192.168.1.100

É importante respectar a sintaxe tal e como está indicada no exemplo: non pode faltar ningún punto e coma nin paréntesis. No caso de non facelo, obteremos errores. Podemos obviar, iso si, os comentarios e os paréntesis. É dicir, isto tamén sería válido:

$TTL	86400
@ IN SOA servidor.com. root.servidor.com. 2 604800 86400 2419200 604800;
@ IN NS servidor.com.
@ IN A 192.168.1.100

Definir o resto de rexistros

Despois do rexistro SOA, definimos o resto de rexistros. Por exemplo, podemos indicar un rexistro NS e un rexistro A:

$TTL	604800
@ IN SOA servidor.com. root.servidor.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS servidor.com.
@ IN A 192.168.1.100

O rexistros indican:

  • O servidor de nomes para servidor.com é servidor.com..
  • O dominio servidor.com corresponde coa dirección IP 192.168.1.100.

Enlazar o ficheiro de zona

Unha vez rematado de editar o ficheiro de zona, para que este se teña en conta, temos que agregalo ao ficheiro /etc/bind/named.conf.local:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "servidor.com" {
type master;
file "/etc/bind/zones/db.servidor.com";
};

Na configuración indícase:

  • A zona é servidor.com.
  • O tipo de servidor DNS é primario (master).
  • O ficheiro de zona atópase na ruta /etc/bind/zones/db.servidor.com.

Comprobar a configuración

Para comprobar que os ficheiros de zona non conteñen errores, executamos o seguinte comando:

$ sudo named-checkconf

Este comando devolverá algún tipo de mensaxe no caso de conter erros ou non devolverá nada se todo está ben.

Reiniciar BIND

Reiniciamos BIND para aplicar os cambios:

$ sudo systemctl restart named

Consultar o estado de BIND

Consultamos o estado de BIND para comprobar que non se produciron errores:

$ systemctl status named
Exemplo de saída do comando
$ systemctl status named
● named.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-02-01 09:36:59 CET; 4s ago
Docs: man:named(8)
Main PID: 24769 (named)
Tasks: 8 (limit: 4615)
Memory: 27.7M
CGroup: /system.slice/named.service
└─24769 /usr/sbin/named -f -4 -u bind

feb 01 09:36:59 vm2-us named[24769]: managed-keys-zone: loaded serial 37
feb 01 09:36:59 vm2-us named[24769]: zone 0.in-addr.arpa/IN: loaded serial 1
feb 01 09:36:59 vm2-us named[24769]: zone servidor.com/IN: loaded serial 2
feb 01 09:36:59 vm2-us named[24769]: zone 127.in-addr.arpa/IN: loaded serial 1
feb 01 09:36:59 vm2-us named[24769]: zone 255.in-addr.arpa/IN: loaded serial 1
feb 01 09:36:59 vm2-us named[24769]: zone localhost/IN: loaded serial 2
feb 01 09:36:59 vm2-us named[24769]: all zones loaded
feb 01 09:36:59 vm2-us named[24769]: running
feb 01 09:37:00 vm2-us named[24769]: resolver priming query complete

Se non se producíu ningún error, no resultado do comando deberíamos ver unha liña que conteña o seguinte texto:

zone servidor.com/IN: loaded

Configurar os clientes

Agora tan só queda configurar os equipos clientes para que empreguen o noso servidor DNS. Unha vez realizado iso, cando soliciten a resolución de servidor.com, devolverase a dirección IP 192.168.1.100.