miércoles, 27 de junio de 2012

DNS (BIND) en CentOS 6.2

Bueno, hoy voy a postear como hacer un servidor de nombres de dominio DNS primario (maestro).
Un servidor de nombres de dominio tiene como principal funcionalidad el transformar nombre fáciles de recordar en ip’s ya que es mucho más fácil recordar un nombre que un numero de dirección ipv4 (imaginemos que pasaría si tendríamos que recordar una ipv6
L), dicho servidor será el BIND una distribución de DNS de la universidad de Berkeley.
Bueno si se ha tenido experiencia previa con CentOS 5.X se notara una diferencia ya que no se necesita el caching-nameserver porque se incorporo en la versión de 9.7 al paquete principal de BIND, y las direcciones de los archivos de configuración del named son más fáciles de encontrar y configurar.



yum install bind*


Verificamos nuestra ip en la red

Ahora configuramos para que nuestro Linux para usar ip estática y no de forma dinámica por DHCP, nos dirigimos a la parte superior derecha del sistema operativo y cambiamos la configuración de la tarjeta de red con una nueva ip

Click en “editar las conexiones”, editamos nuestra tarjeta de red en este caso la eth1 (tener en cuenta de colocar la propia ip en el campo Servidores DNS) y marcar la casilla “disponible para todos los usuarios”


Verificamos en nuestro archivo de configuración ubicado en: /etc/sysconfig/network-scripts/ifcfg-Auto_eth1
Y reiniciamos el servicio: service network restart

Modificaremos el archivo network donde colocaremos el nombre de nuestro equipo con nuestro dominio recordemos usar nombres FQDN, en este usaremos dnsvm1.uce.com.ec para nuestro equipo.

nano  /etc/sysconfig/network

Modificamos nuestro archivo resolv.conf para incluir otro servidor DNS, si se existiera otro adicional en nuestra red con la misma sintaxis nameserver xxx.xxx.xxx.xxx

nano /etc/resolv.conf
Configuramos el archivo hosts para agregar el nombre de nuestro equipo con el dominio según la ip del mismo.

nano /etc/hosts

Ahora a configurar los archivos del demonio named, y permitiendo las consultas de cualquier ip en nuestro dominio.

nano /etc/named.conf

agregamos las líneas:

·         listen-on port 53 { xxx.xxx.xxx.xxx ; };

·         allow-query        { any; };


Copiar los archivos named.localhost, named.loopback con los nombres forward.zone y reverse.zone respectivamente. Estos nuevos archivos sirven para definir las zonas frontales e inversas del DNS.


Al final de este archivo named.conf tenemos una línea “include”, editaremos el archivo que esta especificado ahí.

nano /etc/named.rfc1912.zones

Editamos las zonas localhost.localdomain, hacemos una copia de la zona 1.0.0.127.in-addr.arpa  y editamos dicha copia.






Editamos los archivos forward.zone y reverse.zone como sigue:



Cambiamos de propietario y grupo a los archivos forward y reverse.


Iniciamos el servicio named, si se desea que el servicio se ejecute cada vez que se inicia la maquina ejecutamos:

service named start

chkconfig named on

Probamos el funcionamiento del servidor con los 3 tipos de pruebas dig, nslookup y host
Pruebas de Zona Frontal

·         dig dnsvm1.uce.com.ec

Como resultado obtenemos un NOERROR, en caso de tener NXDOMAIN significa que nuestra zona frontal está mal configurada y debemos revisar la configuración del mismo

·         nslookup dnsvm1.uce.com.ec

·         host dnsvm1.uce.com.ec

Pruebas de Zona Inversa

·         dig –x 192.168.10.107

Como resultado obtenemos un NOERROR, en caso de tener NXDOMAIN significa que nuestra zona inversa está mal configurada y debemos revisar la configuración del mismo

·         nslookup 192.168.10.107

·         host 192.168.10.107



22 comentarios:

  1. oyeeeeeeeee paiii x l blog.. pero me sale este error... dime donde estoy mal
    -----------------------------------------------
    los datos son:
    hostname squid3
    direccion dns 10.129.140.5
    en el script /etc/sysconfig/network TENGO HOSTNAME=squid3.hcjb.local

    Si esta configurado mi script named.rfc19
    zone "hcjb.local" IN {
    type master;
    file "forward.zone";
    allow-update { none; };
    };

    zone "localhost" IN {
    type master;
    file "named.localhost";
    allow-update { none; };
    };

    zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
    type master;
    file "named.loopback";
    allow-update { none; };
    };

    zone "1.0.0.127.in-addr.arpa" IN {
    type master;
    file "named.loopback";
    allow-update { none; };
    };

    zone "140.129.10.in-addr.arpa" IN {
    type master;
    file "reverse.zone";
    allow-update { none; };
    };


    EL ERROR QUE ME SALE ES

    Starting named:
    Error in named configuration:
    zone hcjb.local/IN: loaded serial 0
    zone localhost/IN: loaded serial 0
    zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    zone 140.129.10.in-addr.arpa/IN: NS 'squid3.hcjb.local.140.129.10.in-addr.arpa' has no address records (A or AAAA)
    zone 140.129.10.in-addr.arpa/IN: not loaded due to errors.
    _default/140.129.10.in-addr.arpa/IN: bad zone


    donde estoy mall?? paii x la atencion prestadaa.. ayudameee

    ResponderEliminar
    Respuestas
    1. Saludos.
      Podrias colocar los archivos forward.zone y reverse.zone para poder ayudarte mejor?, ya que el error que te retorna dice que te falta una entrada A ipv4.
      (zone 140.129.10.in-addr.arpa/IN: NS 'squid3.hcjb.local.140.129.10.in-addr.arpa' has no address records (A or AAAA))

      Eliminar
    2. Este comentario ha sido eliminado por el autor.

      Eliminar
  2. paiiiii x la atención prestada guille, esto tengo en FORWARD.ZONE
    $TTL 1D
    @ IN SOA squid3.hcjb.local. root.squid3.hcjb.local (
    0 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    IN NS squid3.hcjb.local.
    squid3 IN A 10.129.140.5


    Y EN REVERSE.ZONE TENGO:

    $TTL 1D
    @ IN SOA squid3.hcjb.local. root.squid3.hcjb.local. (
    0 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    IN NS squid3.hcjb.local
    5 IN PTR squid3.hcjb.local


    AYUDAME XFIS!!! :)

    ResponderEliminar
    Respuestas
    1. Saludos.
      Mira, el la zona inversa (reverse.zone) tienes la falta de los puntos al final del nombre de dominio, tu configuracion debe quedar asi para q funcione:
      $TTL 1D
      @ IN SOA squid3.hcjb.local. root.squid3.hcjb.local. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      IN NS squid3.hcjb.local.
      5 IN PTR squid3.hcjb.local.

      recuerda siempre el punto al final de cada nombre de dominio.
      Espero con esto haberte ayudado.
      Att: Guillermo

      Eliminar
  3. ejej paiiiiiiii ya me salio una parte ahora tengo otro error:
    ** server can't find squid3.hcjb.local: NXDOMAIN
    y mi archivo forward es:


    $TTL 1D
    @ IN SOA squid3.hcjb.local. root.squid3.hcjb.local. (
    0 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    IN NS squid3.hcjb.local.
    squid3 IN A 10.129.140.5


    la zona inversa si me saliiooo gracias!!

    ResponderEliminar
  4. Excelente tutorial, me ha salido a la perfeccion!!!

    Me sirvio bastante porque ha cambiado bastante con respecto a la configuracion de Centos 5.5.

    Saludos desde Peru. =)

    ResponderEliminar
  5. Excelente ha sido de mucha ayuda gracias

    ResponderEliminar
  6. Amigo primeramente agradecerte por el tutotial me ha servido de mucha ayuda logre configurar mi servidor dns aparte segun vi tu nic es hecho por ecuatoriano.... osea primero Ecuador.... ahora no se si me puedas ayudar, nesecito configurar ademas de dns un servidor de correo que se pueda leer en oulook, evolution, etc ... y tambien con conexion a internet osea via web,..... aparte de eso tambien los servicios de servidor web alojar mi pagina .....es un trabajo final para la universidad por favor rogaria que me ayudes... Saludos Ecuador

    ResponderEliminar
  7. Excelente tu tutorial! Con tu tutorial pude resolverlo!

    ResponderEliminar
  8. bueno ya tengo perfectamente configurado el servidor ahora que sigue jejeje muchas gracias por el tutorialisimo tan bueno

    ResponderEliminar
  9. Saludos mi estimado amigo, muchas gracias por tu manual super bien para alguien q esta iniciando en este mundo de LINUX, en el server me funciona calidad. pero en el mismo segmento de red otros Host no resuelve, me puedes ayudar q estoy haciendo mal. necesito para implementar un servidor Zimbra. Gracias por tu apoyo.

    ResponderEliminar
  10. hermano he tratado de hacer configuración y me arroja el siguiente error:

    Error in named configuration:
    zone localhost.localdomain/IN: loaded serial 0
    zone localhost/IN: loaded serial 0
    zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    zone 0.in-addr.arpa/IN: loaded serial 0
    data/uptbal.zone:2: SOA record not at top of zone (IN.uptbal)
    dns_rdata_fromtext: data/uptbal.zone:13: near eol: unexpected end of input
    zone uptbal/IN: loading from master file data/uptbal.zone failed: not at top of zone
    zone uptbal/IN: not loaded due to errors.
    local/uptbal/IN: not at top of zone
    zone 1.168.192.in-addr.arpa/IN: loaded serial 2013110501
    zone 0.16.172.in-addr.arpa/IN: loaded serial 2013110501
    zone uptbal.co.ve/IN: NS 'dns1.uptbal.co.ve' is a CNAME (illegal)
    zone uptbal.co.ve/IN: not loaded due to errors.
    public/uptbal.co.ve/IN: bad zone
    zone 73.248.201.in-addr.arpa/IN: loaded serial 2013110501

    si me puedes ayudar te lo agradezco

    ResponderEliminar
  11. Hola, tengo un problema con la zona inversa, comparando con lo que aquí se pone la debo de tener bien, pero al hacer la comprobación me sale lo siguiente:

    named-checkzone gonzalonazareno.org /var/cache/bind/db.192.168.200
    zone gonzalonazareno.org/IN: NS 'servidor.gonzalonazareno.org' has no address records (A or AAAA)
    zone gonzalonazareno.org/IN: not loaded due to errors.


    Siendo mi fichero de configuración de la zona inversa:

    $TTL 300
    @ IN SOA servidor.gonzalonazareno.org. admin.servidor.gonzalonazareno.org. (
    1 ; Serial
    604800 ; Refresh
    86600 ; Retry
    2419200 ; Expire
    300) ; Default TTL
    IN NS servidor.gonzalonazareno.org.
    254 IN PTR servidor.gonzalonazareno.org.

    Lo dejo por si alguien ve el error, si es que lo hay y me echa una mano. Un saludo, y muchas gracias.

    ResponderEliminar
  12. porque mi servidor Bind DNS no tiene internet, aún haciendo las pruebas de funcionamiento de zonas, no tengo errores

    ResponderEliminar
    Respuestas
    1. bueno yo mismo me voy a responder
      al configurar el archivo /etc/resolv.conf se debe poner el servidor DNS que nos dará salida a internet
      y despues solamente ejecutar service named restart
      si aplicamos service network restart y luego el service named restart, se borrará la configuración del /etc/resolv.conf
      por este motivo ya no tendría acceso a internet, aún estando bien configuradas las zonas

      Eliminar
  13. bendito sea... tengo ya un mes tratando de configurar el dns en centos... ya no se ni por donde voy. tengo IP PUBLICA y quiero hacer una zona pero nunca funciona... ayuda por favor...

    ResponderEliminar
  14. Muy bueno el tutorial, me ayudo mucho.
    Gracias!! :)

    ResponderEliminar
  15. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  16. hola, hace tiempo lo configure y me salio todo... ahora lo necesito configurar pero... todas las pruebas me salen correctas y no puedo hacer ping a ningun nombre ni ip, aparte de la de mi dns y la de gateway... es decir no tengo salida a internet... porfa ayuda!!!
    pd: el archivo resolv.conf esta bien

    ResponderEliminar
  17. Este comentario ha sido eliminado por el autor.

    ResponderEliminar