La herramienta NSlookup


     Nslookup (Name System Lookup) es una herramienta que nos permite obtener información, relacionada con el dominio o el host,  en una red mediante la consulta a un servidor de nombres (DNS). Nos permite diagnosticar los posibles problemas de configuración que pudieran haber surgido en el DNS.

     Nslookup se puede ejecutar en dos modos: interactivo y no interactivo.



     Modo no interactivo.
     Útil cuando sólo se necesita devolver un fragmento de datos. Sintaxis:
          Nslookup [-opción] [hostname] [server]
Si omitimos el nombre del servidor, nslookup utiliza el nombre de servidor DNS por defecto, es decir, el que tengamos en la máquina desde la que lanzamos el comando.


     Modo interactivo
     Para iniciar el modo interactivo sólo necesitamos escribir nslookup en la línea de comandos:
root@brslinux-desktop:/# nslookup
>
     Si queremos utilizar otro servidor de nombres, que no sea el de por defecto, para la consulta debemos utilizar el comando “server” o “lserver”.

     Si escribimos “help” o “?” en el símbolo de sistema se muestra una lista con los comandos disponibles:

> ?
Comandos: (los identificadores se muestran en mayúsculas, [] significa opcional)


NOMBRE          - imprimir información acerca de NOMBRE de host o de dominio con el servidor predeterminado
NOMBRE1 NOMBRE2 - igual que el anterior, pero se usa NOMBRE2 como servidor
help o ?        - imprimir información acerca de comandos comunes
set OPCIÓN      - establecer una opción
    all                 - opciones de impresión, servidor actual y host
    [no]debug           - imprimir información de depuración
    [no]d2              - imprimir información de depuración exhaustiva
    [no]defname         - anexar el nombre de dominio a cada consulta
    [no]recurse         - pedir respuesta recursiva a la consulta
    [no]search          - usar la lista de búsqueda de dominios
    [no]vc              - usar siempre un circuito virtual
    domain=NOMBRE       - establecer nombre de dominio predeterminado en NOMBRE
    srchlist=N1[/N2/.../N6] - establecer dominio en N1 y lista de búsqueda en N1,N2, etc.
    root=NOMBRE         - establecer servidor raíz en NOMBRE
    retry=X             - establecer número de reintentos en X
    timeout=X           - establecer intervalo de tiempo de espera inicial en X segundos
    type=X              - establecer tipo de consulta (p. ej., A,AAAA,A+AAAA,ANY,CNAME,MX,NS,PTR,SOA,SRV)
    querytype=X         - igual que type
    class=X             - establecer clase de consulta (p. ej., IN (Internet), ANY)
    [no]msxfr           - usar transferencia de zona rápida MS
    ixfrver=X           - versión actual que se usará en la solicitud de transferencia IXFR
server NOMBRE     - establecer el servidor predeterminado en NOMBRE con el servidor predeterminado actual
lserver NOMBRE    - establecer el servidor predeterminado en NOMBRE con el servidor inicial
root              - establecer el servidor predeterminado actual en la raíz
ls [opt] DOMINIO [> ARCHIVO] - enumerar las direcciones de DOMINIO (opcional: enviar el resultado a ARCHIVO)
    -a          -  enumerar nombres canónicos y alias
    -d          -  enumerar todos los registros
    -t TIPO     -  enumerar los registros del tipo de registro RFC dado (p. ej. A,CNAME,MX,NS,PTR etc.)
view ARCHIVO    - ordenar un archivo de resultados 'ls' y verlo con pg
exit            - salir del programa



     Todo lo que escribamos en el símbolo del sistema y que no se reconozca como un comando válido se supone que es un nombre de host y se intenta resolver utilizando el servidor predeterminado. Para interrumpir comandos interactivos, presione CTRL+C. Para salir del modo interactivo y volver al símbolo del sistema, escribir "exit" en el símbolo del sistema.

     Es posible modificar el modo de consulta del comando nslookup usando el argumento set, que nos permite establecer varias opciones. Para ver una lista completa de las opciones escribir “set all”:


> set all
Servidor predeterminado:  aag-dns-vip1.ehningen.de.ibm.com
Address:  9.0.136.50


Establecer opciones:
  nodebug
  defname
  search
  recurse
  nod2
  novc
  noignoretc
  puerto=53
  tipo=A+AAAA
  clase=IN
  tiempo de espera=2
  reintento=1
  raíz=A.ROOT-SERVERS.NET.
  dominio=ibm.es
  MSxfr
  versiónIXFR=1
  srchlist=ibm.es/ibm.com


     Para buscar diferentes tipos de registros para un nombre de dominio podemos utilizar el comando “set type” o “set q[uerytype]”. Como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre. Por ejemplo:

  • set type=mx: Permite obtener información relacionada con el(los) servidor(es) de correo de un dominio. El tipo MX asocia un nombre de dominio a una lista de MTAs (Mail Transfer Agents), o servidores de intercambio de correo, para ese dominio. Permite balanceo de carga y prioridad para utilizar más de un servicio de correo. 
  • set type=ns: Establece la asociación que existe entre un nombre de dominio y los servidores de nombres que almacenan la información de dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres. 
  • set type=a: Permite obtener información de un host de la red. Es el modo de consulta predeterminado. Traduce nombres de servidores a direcciones IPv4.
  • set type=soa: Permite mostrar la información del campo SOA (inicio de autoridad). Proporciona información autorizada sobre una zona DNS, incluyendo el nombre del servidor primario de la zona, email del administrador de dominio, número de serie del dominio y diferentes timers relativos a la actualización de la zona.
  • set type=cname : Permite mostrar información relacionada con los alias. Se utiliza para crear nombres de servidores de alojamiento adicionales, o alias, para los servidores de alojamiento de un dominio. Es usado cuando se están corriendo múltiples servicios (como ftp y servidor web) en un servidor con una sola dirección ip. Cada servicio tiene su propia entrada de DNS (como ftp.xxxxx.com. y www.xxxxx.com.)  
  • set type=hinfo: Permite mostrar, siempre y cuando los datos estén disponibles, la información relacionada con el tipo y el sistema operativo del host.

     En la siguiente tabla podéis ver una lista más completa de los tipos más comunes de RR (Resource Record) que puede almacenar el DNS:

NumberRRRFCDescription
1ARFC 1035IPv4 Network address (Dirección de red IPv4)
2NSRFC 1035Authoritative name server (Servidor de nombres)
5CNAMERFC 1035Canonical alias name (Nombre canónico)
6SOARFC 1035Start of zone authority (Autoridad de la zona)
11WKSRFC 1035Well-known service; obsoleto en favor de SRV
12PTRRFC 1035Pointer to a domain name (Indicador). También conocido como registro inverso
15MXRFC 1035Mail exchange record (Registro de intercambio de correo)
16TXTRFC 1035Text record (Información textual)
17RPRFC 1183Responsible person (Persona responsable)
18AFSDBRFC 1183AFS-type services (BBDD registros AFS)
25KEYRFC 2535IPSEC key (Clave para IPSEC)
28AAAARFC 3596IPv6 Network address (Dirección de red IPv6)
29LOCRFC 1876Location (Localización). Permite indicar la localización geográfica del dominio
33SRVRFC 2872Service locator (Servicios). Indica los servicios que ofrece el dominio
37CERTRFC 4398Certificate record (Registro de certificados). Almacena PKIX, SPKI, PGP, …
44SSHFPRFC 4255SSH Public Key Fingerprint (Huella dactilar de la clave pública SSH)
48DNSKEYRFC 4034DNS Key record (Clave de registro DNS). Registro de claves utilizadas en DNSSEC
49DHCIPRFC 4701DHCP Identifier (Identificador DHCP). Se utiliza junto con la opción FQDN de DHCP
99SPFRFC 4408Sender Policy Framework. Se utiliza para combatir el Spam

     Es posible consultar directamente desde otro servidor de nombres. Para ello se utilizan los comandos “lserver” para utilizar el servidor de nombres local y “server xxxxx” para cambiar a ese servidor de nombres.


C:\Users\Usuario>nslookup
Servidor predeterminado:  aag-dns-vip1.ehningen.de.ibm.com
Address:  9.0.136.50
> server ns1.google.com
Servidor predeterminado:  ns1.google.com
Address:  216.239.32.10
>

     Con nslookup podemos transferir toda una zona mediante el comando "ls". La finalidad o utilidad de esto es ver todos los host que hay dentro de un dominio remoto. Generalmente las transferencias de zonas están bloqueadas en el servidor DNS de modo que sólo direcciones autorizadas puedan realizar esta función.

     Si se utiliza ls sin argumentos se devolverá una lista de todas las direcciones y datos del servidor de nombres. El modificador -a devolverá alias y nombres canónicos, -d devolverá todos los datos y -t filtrará por tipo.

     Las transferencias de zona se pueden bloquear en el servidor DNS de manera que sólo las direcciones o las redes autorizadas puedan realizar esta función.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.