¿Cómo hago una configuración completa del servidor DNS BIND9 con un nombre de host?

53

Necesito una guía completa paso a paso sobre cómo producir dicha configuración de servidor.

¿Alguien puede ayudarme?

Artemisa
fuente

Respuestas:

119

Servidor DNS completo en ubuntu server 12.

En primer lugar, cambie la dirección IP de su servidor de DHCP a STATIC para esto use el siguiente comando

sudo nano /etc/network/interfaces

y añadir:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

Reiniciar demonios de redes

sudo /etc/init.d/networking restart

Antes de configurar un servidor DNS en Linux Ubuntu, primero debe hacer el nombre de dominio y luego continuará. Primero verificará su comando de nombre de host para esto es

sudo nano /etc/hostname

 nefitari       

(Este es el nombre de host de mi servidor Ubuntu, el suyo puede ser diferente. Puede cambiar esto según sus necesidades)

Ahora, después del nombre de host, debe crear un nombre de dominio para su servidor. Diga servername.domain.com, es una mejor práctica que siempre que esté configurando un servidor para uso doméstico, no use .com sino .hom o .net o lo que quiera. Dar el siguiente comando

  sudo nano /etc/hosts

agregue si no lo tiene:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

En mi archivo 127.0.0.1 es para localhost y he cambiado la segunda dirección IP 127.0.1.1 con la IP de mi servidor que es 192.168.1.5 ahora ingreso mi nombre de dominio con mi nombre de host nefitari primero, luego mi nombre de dominio autun.hom y luego alias nefitari . Puede seleccionar su propio nombre de host.abc.net o hostname.home.lan, etc., pero recuerde que cambiar este archivo debe reiniciar su servidor y luego iniciar sesión. Reiniciar es imprescindible

Ahora instale BIND9

 sudo apt-get install bind9

Después de la instalación, simplemente configure los archivos a continuación paso a paso

  • Opciones de configuración
  • Nombrado.conf.local
  • /etc/resolv.conf

Ahora configure el archivo llamado.conf.options. Este archivo se usa para direcciones IP de DNS. Esto significa que su servidor debe conectarse a algunos DNS externos. Cuando compra un nombre de dominio de un ISP, normalmente le da sus propias direcciones IP de DNS. Puede usar IP DNS abiertas de Google más o menos. En mi caso, estoy usando mi propio ISP DNS IP.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** Guarde el archivo y salga *** usando el control x presione y y sobrescriba el archivo

Ahora edite el archivo llamado.conf.local. Este es el archivo en el que definimos zonas de avance y zonas de retroceso. Significa que cuando ingresamos el nombre de dominio lo traducirá a la dirección IP y cuando ingresamos la dirección IP simplemente lo convertirá en nombre.

sudo nano /etc/bind/named.conf.local

Mostrará:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** Guarde el archivo y salga *** usando el control x presione y y sobrescriba el archivo

Ahora crearemos estos dos archivos de base de datos db.autun.hom y db.192 en la carpeta de zonas

Primero haga las zonas de directorio en / etc / bind /

  sudo mkdir /etc/bind/zones

Antes de crear archivos, permíteme aclararte que tengo diferentes dispositivos

IP de dispositivos

  • Servidor en sí 192.168.1.5
  • Gateway 192.168.1.1
  • Win7pc 192.168.1.50

Ahora en el directorio de zonas crearemos dos archivos primero db.autun.hom . Solo estoy copiando el db.local ya presente en la carpeta / etc / bind a la carpeta de zonas cambiando su nombre a db.autun.hom . Pondré estas IP en mi archivo db.autun.hom. Empecemos

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

Ahora usa el siguiente comando para editar el archivo

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

Guárdalo y sal

  • Webuser.autun.hom. es el correo electrónico que accederá al servidor de nombres. Puede escribir cualquier nombre en lugar de usuario web como administrador, root o host master, etc.
  • Autun.hom. es mi NS significa servidor de nombres
  • Autun.hom .cambiando a IP 192.168.1.5
  • @ IN A 127.0.0.1 y AAAA :: 1 se pueden comentar, no debería necesitarlo porque db.local ya está presente en / etc / bind, es solo una copia de ese archivo. Así que no es necesario, puedes eliminarlo
  • Cambiar Nefitari a IP 192.168.1.5
  • Gateway a IP 192.168.1.1
  • Win7pc puede nombrar sus PC con Windows o clientes Linux con cualquier nombre, pero recuerde que la IP de ese cliente debe estar insertada correctamente en el archivo. En mi caso di IP de Windows PC 192.168.1.50
  • Por último, estoy usando CNAME significa nombre canónico, es solo un alias para nefitari. Significa que puede acceder a su servidor ingresando www.autun.hom en lugar de nefitari.autun.hom. Puedes omitir esto o comentarlo. Depende de usted.

Ahora cree el archivo de zona de búsqueda inversa

sudo cp /etc/bind/db.127    /etc/bind/zones/db.192

Ahora usa el siguiente comando para editar el archivo

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

Guárdalo y sal

Ahora, cuando haya terminado con su archivo de zona, debe verificar si funciona correctamente o no ingresando el siguiente comando para el archivo de zona de reenvío

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

Ahora verifique el archivo de zona inversa

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

Si la salida de su zona de verificación con nombre es la misma que la anterior, está funcionando bien; de lo contrario, cometió algún error en el archivo.

Ahora edite el archivo resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Ingrese las siguientes líneas en su archivo resolv.conf y guárdelo

Reiniciar el enlace

sudo /etc/init.d/bind9 restart

Después de comenzar, verifique su configuración en el archivo de registro

tail -f /var/log/syslog

no debe tener ningún error en el registro

Comprobación de zonas hacia adelante

host –l autun.hom

La salida debería gustarle

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

Ahora usa NSLOOKUP

nslookup autun.hom

SALIDA

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

Utilizar DIG

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

La salida debe ser similar a la anterior, verificar el estado: NOERROR significa que está resolviendo la sección SECCIÓN DE RESPUESTA: gateway.autun.hom se resuelve en 192.168.1.1

Comprobación de zona inversa

 host 192.168.1.1

Salida

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

Si te da un error como el siguiente

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Esto significa que cometió algún error en el archivo /etc/bind/named.conf.local en la zona inversa Si la IP de su servidor es 192.168.1.5 , su zona inversa se ve así

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

En algún momento la gente cometió un error al invertir la ip como (solo un ejemplo)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

Use NSLOOKUP

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

Si obtiene errores similares a NXDOMAIN o SERVFAIL, significa que uno de sus archivos de zona no funciona correctamente

Ahora puede hacer ping a ubuntu.com o excavar ubuntu.com por primera vez, llevará varios milisegundos resolver el nombre ubuntu.com, pero cuando lo ejecute por segunda vez, tardará 1, 2 o 3 segundos, normalmente de 1 a 10 mili. los segundos son normales y significa que su DNS funciona correctamente

Configurar clientes

ventanas laterales

  • abrir conexiones de red
  • seleccione cambiar la configuración del adaptador
  • seleccione propiedades
  • seleccione la versión del protocolo de internet IPv4

y aquí da la dirección IP (en mi caso es 192.168.1.50 ¿recuerdas win7pc?)

  • Dirección IP 192.168.1.50
  • Máscara de subred 255.255.255.0
  • Gateway predeterminado 192.168.1.1
  • DNS primario 192.168.1.5 (mi nueva IP del servidor DNS BIND)
  • en la misma ventana seleccione Avanzar
  • seleccione la pestaña DNS
  • Escriba en el cuadro de texto a continuación aquí En sufijo DNS para esta conexión: autun.hom
  • haga clic en ok
  • haga clic en validar configuración al salir
  • haga clic en Aceptar

y ya está, abra CMD

ping gateway

debe darte algunas respuestas

similar

ping 192.168.1.1 or 5

debe darte algunas respuestas

Prueba tu servidor al mundo exterior

Ahora puede hacer ping a ubuntu.com o cavar ubuntu.com por primera vez, llevará varios milisegundos resolver el nombre ubuntu.com, pero cuando lo ejecute por segunda vez, tomará de 1 a 10 mili segundos, su tiempo normal y significa que su DNS funciona correctamente Configuración de clientes

ventanas laterales

abrir conexiones de red seleccionar cambiar la configuración del adaptador seleccionar propiedades seleccionar la versión del protocolo de internet IPv4

y aquí da la dirección IP (en mi caso es 192.168.1.50 ¿recuerdas win7pc?)

Dirección IP 192.168.1.50

Máscara de subred 255.255.255.0

Gateway predeterminado 192.168.1.1

DNS primario 192.168.1.5 (mi nueva IP del servidor DNS BIND)

seleccione Avanzado (en la misma ventana)

seleccione la pestaña DNS

Escriba en el cuadro de texto a continuación aquí En sufijo DNS para esta conexión: autun.hom

haga clic en ok

haga clic en validar configuración al salir

haga clic en ok

y ya está, abra CMD

Código:

 ping gateway

debe darte algunas respuestas

similar

Código:

 ping 192.168.1.1 or 5

debe darle algunas respuestas, puede usar el código NSLOOKUP :

 nslookup gateway

CLIENTES DE LINUX

Código:

 sudo nano /etc/network/interfaces

escriba las siguientes líneas

Código:

 auto eth0
 iface eth0 inet dhcp

Ahora reinicie Network Deamons

Código:

 sudo /etc/init.d/networking restart

para forzar al cliente a renovar el comando IP

Código:

 sudo dhclient -r

Ahora obtenga una nueva IP:

Código:

 sudo dhclient

Si está ejecutando el servidor DHCP en su red, ingrese el nombre de dominio y el servidor de nombres en el archivo dhcpd.conf; Por ejemplo, tengo un servidor DNS llamado nefitari.autun.hom y la dirección IP es 192.168.1.5 como en

Código:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

fuente

fossfreedom
fuente
77
Es una pena que esta página tenga 3726 vistas uniq y la respuesta solo tenga un voto a favor. Si fue útil para usted, ¡vótelo!
Fotanus
12
Esta respuesta es correcta, excepto la parte sobre la edición /etc/resolv.conf. Desde Ubuntu 12.04 no edita ese archivo a mano, sino que configura resolvconf para hacerlo. Establezca RESOLVCONF = yes en / etc / default / bind9 para que BIND 9 nombrado registre su dirección de escucha local 127.0.0.1 con resolvconf cuando se inicie. Asegúrese de que /etc/resolv.conf sea un enlace simbólico a ../run/resolvconf/resolv.conf.
jdthood
1
Errores de syslog: (network unreachable) resolving './NS/IN': 2001:500:3::42#53son de bind que intentan resolver consultas de forma recursiva utilizando ipv6. Edición /etc/default/bind9y uso lo OPTIONS="-u bind -4"arregla. Más información: serverfault.com/questions/77325/unreachable-resolving-domain
no es un parche el
Acabo de recibir la configuración con el servidor Ubuntu 16.04 y todavía funciona. El tutorial de Serverguide sobre DNS es una pesadilla en comparación con esta explicación. Sin embargo, tuve que correcta de error en los listados: en el archivo db.192antes de IN NS nefitari.una @falta. También tuve que agregar el FQDN, por lo que mi línea de trabajo se veía así @ IN NS nefitari.autun.hom., ignoré la sección resolv.conf y seguí el consejo de jdthood. El enlace ya estaba allí desde la instalación predeterminada del servidor.
CatMan
1
@fotanus Creo que es porque es tan largo que la gente se olvidó de volver a votar para arriba \
CodyBugstein
1

La respuesta es solo una adición a la gran descripción anterior.

Consejo para solucionar problemas

Ten mucho cuidado con los muchos '.' en los archivos de configuración ya que cada uno es importante. Una sola falta '.' puede detener el funcionamiento del servidor DNS. No debe contar con mensajes de error claros.

Aprendí que es una buena práctica usar un número de serie más revelador. Es muy importante incrementar el número de serie cada vez que se modifica la configuración, por ejemplo, se agregan nuevas entradas. Si no se incrementa, un DNS secundario no podrá sincronizar la nueva configuración. El formato sugerido es YYYYMMDDssdónde ssestá el número de serie "antiguo". Por lo tanto, al aumentar, debe aumentar ssen +1 y establecer la fecha en la fecha actual. Esto me pareció muy útil para solucionar problemas de configuración. En el registro del sistema, puede ver claramente la fecha y la serie del archivo utilizado.

En Ubuntu 16.04, cambiar resolv.conf está en desuso. Como jdthood escribe en su comentario, reemplace el paso con el siguiente procedimiento: - Cambiar / etc / default / bind9: la nueva voluntad debería verse así:

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

vea el comentario de not-a-patch para los problemas de IPV6.

  • poner un enlace simbólico de /etc/resolv.conf en /run/resolvconf/resolv.conf

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

Configuración sin conexión

La configuración es exactamente la misma, e incluso un poco más fácil, ya que puede omitir las secciones de reenvío. No tienen que estar presentes, por lo que no es necesario editar el /etc/bind/names.con.options.

Redes de clase B

Hay algunos cambios menores necesarios para que esto funcione para redes de clase B (antes de que haya comentarios, no hay ninguna razón por la cual una red local, incluso en casa, no podría ser una red de clase B en lugar de una red de clase C) . En este ejemplo utilizo el número de red 172.20.xx (creo que la notación formal es 172.20.0.0. Para más información google rfc1918).

Use la descripción de la primera respuesta, reemplace todas las IP 192.168.xx con 172.20.xx, use para el servidor IP 172.20.0.100 y modifique los archivos de la siguiente manera:

  • se db.192convierte el nombre del archivo db.172.
  • el archivo named.conf.localobtiene una sección de zona inversa diferente:

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • El archivo de zonas inversas cambia a:

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

El resto es igual.

Espero que sea útil para alguien.

Hombre gato
fuente
¿Funciona esto si desea utilizar las direcciones 172.16 y 172.20?
kojow7
@ kojow7. Muy buena pregunta No lo sé, pero para averiguarlo, puede verificar solo para incluir una segunda zona y un segundo archivo inverso. Es fácil de probar con el comando nslookup. O, tal vez lo mejor fue, simplemente use una máscara de red que incluya ambos 172.16. y 172.20. La máscara de red no sería tan simple como 255.255.0.0 pero contiene otros números además de 0 y 255, pero en la red puede encontrar tutoriales sobre cómo resolverlo en caso de que aún no lo sepa. En caso de que lo haya resuelto, considere publicarlo aquí en beneficio de otros.
CatMan