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.