Saltar al contenido principal

Caché DNS

Unha caché DNS, tamén chamada caché de resolución de DNS (DNS resolver cache), é unha base de datos temporal mantida polo sistema operativo dun ordenador. Esta base de datos contén rexistros de todas as consultas recentes realizadas a outros servidores DNS, habitualmente servidores DNS de Internet.

A función dunha caché DNS é acelerar o proceso de consulta de dominios, xa que realizar unha consulta na propia máquina é moito máis rápida que realizar unha consulta a outra máquina de Internet. Ademais, permite reducir a carga do resto de servidores DNS, xa que se van a realizar moitas menos peticións.

A caché DNS ten algúns inconvenientes:

  • Un dominio pode cambiar de dirección IP en calquer momento, polo que non podemos almacenar rexistros de forma indefinida. Existe un parámetro denominado TTL (Time To Live) que determina canto tempo pode estar un rexistro na caché. A actualización da caché realízase de forma automática en base aos TTL definidos, pero tamén podemos forzar a vaciala completamente de forma manual.
  • Un atacante malicioso pode engadir rexistros que son incorrectos co obxectivo de suplantar un dominio. Desta forma, cando se realice unha consulta DNS a un dominio, obterase unha dirección IP que non é a correcta. Esta técnica denomínase DNS spoofing ou envelenamento da caché DNS (DNS cache poisoning).

Imos ver que comandos poden ser útiles para administrar a caché DNS dun sistema operativo.

Linux

Consultar caché

Para consultar estatísticas dos dominios que están na caché temos que executar o seguinte comando:

$ systemd-resolve --statistics
Exemplo de saída do comando
$ systemd-resolve --statistics
DNSSEC supported by current servers: no

Transactions
Current Transactions: 0
Total Transactions: 59

Cache
Current Cache Size: 3
Cache Hits: 5
Cache Misses: 27

DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0

Vaciar caché

Podemos vaciar a caché DNS co seguinte comando:

$ systemd-resolve --flush-caches 

O comando anterior non devolve ningunha saída.

Outra forma de vaciar a caché é reiniciando o servizo systemd-resolved:

$ sudo systemctl restart systemd-resolved

O comando anterior tampouco devolve ningunha saída.

Se executamos novamento o comando para consultar as estatísticas, podemos ver que está todo a cero:

$ systemd-resolve --statistics
Saída do comando
$ systemd-resolve --statistics
DNSSEC supported by current servers: no

Transactions
Current Transactions: 0
Total Transactions: 0

Cache
Current Cache Size: 0
Cache Hits: 0
Cache Misses: 0

DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0

Configuración DNS

Para obter o dominio ou dirección IP do servidor DNS ao cal se realizan as consultas DNS, debemos executar o seguinte comando:

$ systemd-resolve --status
Exemplo de saída do comando
$ systemd-resolve --status
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no

Link 2 (ens33)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 10.0.1.2
DNS Servers: 10.0.1.2
DNS Domain: ~.
localdomain

No exemplo anterior, vemos que as consultas se envían ao servidor DNS coa dirección IP 10.0.1.2.

Windows

Consultar caché

Para realizar a consulta dos dominios en caché no sistema operativo Windows, temos que executar o seguinte comando:

C:\> ipconfig /displaydns
Exemplo de saída do comando
C:\> ipconfig /displaydns

Configuración IP de Windows

vortex.data.microsoft.com
----------------------------------------
Nombre de registro . : vortex.data.microsoft.com
Tipo de registro . . : 5
Período de vida . . . : 31
Longitud de datos . . : 8
Sección . . . . . . . : respuesta
Registro CNAME. . . . : asimov.vortex.data.trafficmanager.net


Nombre de registro . : asimov.vortex.data.trafficmanager.net
Tipo de registro . . : 1
Período de vida . . . : 31
Longitud de datos . . : 4
Sección . . . . . . . : respuesta
Un registro (host). . : 40.77.226.250



settings-win.data.microsoft.com
----------------------------------------
Nombre de registro . : settings-win.data.microsoft.com
Tipo de registro . . : 5
Período de vida . . . : 10
Longitud de datos . . : 8
Sección . . . . . . . : respuesta
Registro CNAME. . . . : settingsfd-geo.trafficmanager.net


Nombre de registro . : settingsfd-geo.trafficmanager.net
Tipo de registro . . : 1
Período de vida . . . : 10
Longitud de datos . . : 4
Sección . . . . . . . : respuesta
Un registro (host). . : 51.124.78.146



www.xunta.gal
----------------------------------------
Nombre de registro . : www.xunta.gal
Tipo de registro . . : 1
Período de vida . . . : 8754
Longitud de datos . . : 4
Sección . . . . . . . : respuesta
Un registro (host). . : 85.91.64.109

O comando anterior vainos mostrar unha lista dos rexistros que están gardados na caché DNS. Para cada un dos rexistros, hai gardados diferentes tipos de datos. En xeral, a saída do comando é bastante longa, xa que mostra todos os rexistros gardados.

Vaciar caché

Podemos vaciar a caché DNS co seguinte comando:

C:\> ipconfig /flushdns
Saída do comando
C:\> ipconfig /flushdns

Configuración IP de Windows

Se vació correctamente la caché de resolución de DNS.

Unha vez executado o comando, indícase que a operación se levou a cabo correctamente.

Configuración DNS

Para obter a dirección IP do servidor DNS ao cal se realizan as consultas DNS, debemos executar o seguinte comando:

C:\> ipconfig /all
Exemplo de saída do comando
C:\> ipconfig /all

Configuración IP de Windows

Nombre de host. . . . . . . . . : HOST
Sufijo DNS principal . . . . . :
Tipo de nodo. . . . . . . . . . : híbrido
Enrutamiento IP habilitado. . . : no
Proxy WINS habilitado . . . . . : no

Adaptador de Ethernet Ethernet:

Sufijo DNS específico para la conexión. . :
Descripción . . . . . . . . . . . . . . . : Realtek PCIe GBE Family Controller
Dirección física. . . . . . . . . . . . . : F6-6A-BD-AA-24-6C
DHCP habilitado . . . . . . . . . . . . . : sí
Configuración automática habilitada . . . : sí
Dirección IPv4. . . . . . . . . . . . . . : 10.0.2.30(Preferido)
Máscara de subred . . . . . . . . . . . . : 255.255.255.0
Concesión obtenida. . . . . . . . . . . . : domingo, 17 de enero de 2021 9:42:16
La concesión expira . . . . . . . . . . . : domingo, 17 de enero de 2021 12:54:12
Puerta de enlace predeterminada . . . . . : 10.0.2.1
Servidor DHCP . . . . . . . . . . . . . . : 10.0.2.1
Servidores DNS. . . . . . . . . . . . . . : 1.1.1.1
NetBIOS sobre TCP/IP. . . . . . . . . . . : habilitado

No exemplo anterior, podemos observar que o servidor DNS configurado é o 1.1.1.1.