---
title: "Dig para principiantes"
date: 2019-05-24
language: es
topics: ["cloud", "cyber-security", "data", "linux", "networking", "programming", "server", "web", "work"]
source_url: https://willem.com/es/2019-05-24_dig-para-principiantes/
---
# Dig para principiantes

*Una herramienta de red muy útil, explicada*

> Cuando construyes sitios web, apps o servicios de correo electrónico, antes o después te topas con los nombres de dominio y su configuración. Cuando todo funciona como debe, casi nada de esto se ve. Pero para diagnosticar un fallo en la configuración de un dominio, a veces hay que cavar un poco más hondo... ¡sigue leyendo y aprende cómo!

## El sistema de nombres de dominio (DNS)

Internet usa direcciones numéricas del protocolo de internet (IP) para localizar e identificar ordenadores, servicios (en la nube) y dispositivos conectados. En lugar de memorizar todas esas direcciones IP, el sistema de nombres de dominio se ha convertido en el directorio esencial de toda la red mundial, que une nombres con números.

Estás leyendo esto en **willem.com**, pero en realidad ese nombre de dominio es solo un puntero a una máquina física conectada a internet (con cables, de verdad). Uno de esos cables está conectado a la dirección IP **87.253.135.162**. El servidor DNS se encarga de que los números (direcciones IP) correctos se correspondan con los nombres (de dominio).

![El sistema de nombres de dominio (DNS) une nombres de dominio con direcciones IP, que a su vez viajan por cables. Estás leyendo esto (en serio) a través del cable conectado al servidor de esta foto.](https://willem.com/global/images/b02bcfa4dfab.webp)

## Distribuido y descentralizado

Cuando los estadounidenses diseñaron ARPANET a principios de los años setenta, uno de sus requisitos militares era que la red sobreviviera a ataques (de enemigos). Lo lograron con la conmutación de paquetes, una forma de que varias personas compartan y reutilicen los cables de la red de distintas maneras. Si una parte de la red se daña, los paquetes de información se reenvían por otras partes.

![Un mapa de ARPANET en 1973... ¡imagínate cartografiar internet hoy! (Dominio público)](https://willem.com/global/images/0ecb8ad41dca.webp)

Para conseguir la máxima supervivencia, no existe un único servidor DNS raíz. En su lugar, el sistema de nombres de dominio delega la responsabilidad de asignar los nombres y sus correspondencias, designando un servidor de nombres autorizado para cada dominio.

Por eso hay tantos servidores y configuraciones DNS distintos. Con tantas maneras y tantos sitios donde algo puede fallar, necesitas una herramienta para escarbar.

## dig (domain information groper)

El comando 'dig' es una herramienta para preguntar a los servidores de nombres DNS por direcciones IP, nombres de host, servidores de correo y otros ajustes de red. El comando dig está disponible en Unix, macOS, GNU/Linux y Windows.

### Usar dig para consultar servidores de nombres

Puedes usar dig para obtener información de un dominio con solo escribir: 'dig willem.com'. Mira la siguiente captura con su explicación:

![Usando dig para obtener información sobre un nombre de dominio, willem.com](https://willem.com/global/images/35dfaed28848.webp)

- 1) **dig willem.com** devuelve toda la información sobre la pregunta, la respuesta, la autoridad (quien respondió) y las estadísticas de la consulta (por ejemplo, cuánto tardó en llegar la respuesta). 

- 2) **dig +short willem.com** omite toda la información extra y devuelve solo la respuesta. Aquí se ve que **willem.com** apunta a la dirección IP **87.253.135.162**.

- 3) **dig +short willem.com MX** te muestra los registros de intercambio de correo (MX). Los registros MX son clave para que el correo llegue al servidor correcto. Básicamente indican la oficina de correos responsable del correo de ese dominio. Para **willem.com** es un servicio de correo llamado **online.lemmid.com**. Otros servicios de correo populares son Office365 y Google Gmail. Con dig puedes averiguar qué servicio de correo usa alguien.

- 4) **dig +short willem.com NS** te muestra los servidores de nombres responsables de atender las consultas de este dominio. Normalmente son los servidores del registro de dominios, es decir, de tu proveedor de dominios. Con dig puedes averiguar qué tipo de proveedor de dominios usa alguien (en el caso de **willem.com**, es **Lemmid**). 

- 5) **dig +short willem.com TXT** devuelve el registro de texto del dominio, donde encontrarás el llamado registro SPF. El registro SPF es otra pieza clave del correo, así que vale la pena escarbar un poco más en SPF. 

## Sender Policy Framework (SPF)

Para detectar remitentes falsificados en el correo (lo que se llama suplantación de correo o email spoofing), en 2004 se definió el estándar SPF. Se llamaba originalmente "Sender Permitted From", y es una forma de comprobar si alguien puede enviar correo en nombre de un dominio. SPF permite al propietario de un dominio especificar qué ordenadores están autorizados a enviar correo con direcciones FROM de ese dominio.

Si el propietario de un dominio publica un registro SPF, es menos probable que los spammers y los estafadores (ab)usen del dominio para enviar correos falsos haciéndose pasar por él. Por eso es menos probable que un dominio protegido con SPF acabe en la lista negra de los filtros de spam, y es más probable que el correo legítimo de ese dominio llegue a su destino. Eso sí, un registro SPF mal configurado puede estropear la entrega del correo.

### Usar dig para consultar registros SPF

Con el comando dig puedes consultar un registro SPF y ver cuál es exactamente la política de envío. Mira la siguiente captura con su explicación:

![Usando dig para obtener información sobre los registros SPF de un nombre de dominio, google.com](https://willem.com/global/images/a865a4e8afcd.webp)

- 1) **dig +short TXT google.com** nos muestra el registro TXT configurado para google.com, que es donde se encuentra el registro SPF (entre otras cosas). El registro SPF de **google.com** es **"v=spf1 include:_spf.google.com ~all"**. La parte **include:** significa que para este dominio también hay que cargar valores SPF externos. 

- 2) **dig +short TXT _spf.google.com** muestra cuáles son esos valores SPF externos de **google.com**. En este caso revela otros tres include: "_netblocks.google.com", "_netblocks2.google.com" y (qué original...) "_netblocks3.google.com". 

- 3) **dig +short TXT _netblocks.google.com** (y las variantes 2 y 3) indican las direcciones IP concretas que pueden enviar correo en nombre de **google.com**. Como Google es una gran empresa de internet, hay muchas direcciones IP en estas listas. Si te fijas bien, verás que algunas llevan un sufijo "/", como "/24". Es la forma de anotar un bloque entero (como una calle) de direcciones IP. 

## Los bloques IP explicados

La forma más fácil de entender la notación de bloques de direcciones IP es con estos ejemplos:

- **/8 = 255.0.0.0**

- **/16 = 255.255.0.0**

- **/24 = 255.255.255.0**

- **/32 = 255.255.255.255**

Donde ves un '0' en las direcciones de arriba, entran todos los demás valores. Así, por ejemplo, 173.194.0.0/16 significa en realidad "todas las direcciones que empiezan por '173.194' ". Con 255 posiciones posibles en cada octeto, ¡son 255x255=65025 direcciones distintas!

## Conclusión

Para resolver problemas hay que saber dónde está el problema. Con el comando dig puedes conocer la configuración de una red y de un dominio.

Con las respuestas de un comando a otro puedes escarbar hasta las entrañas de la maravillosa red. ¡Buena suerte!
