Cliente DNS
Os usuarios comúns non se comunican directamente co servidor DNS: a resolución de nomes faise de forma transparente polas aplicacións do cliente (como os navegadores e outras aplicacións que usan Internet). Ao realizar unha petición que require unha procura de DNS, a resolución deste proceso é levada a cabo polo cliente DNS do sistema operativo. O cliente DNS leva a cabo os seguintes pasos:
- Comproba que o nome a consultar é o seu propio nome.
- Compróbase o ficheiro
hostsdo sistema operativo. Se hai algunha concidencia no ficheiro, resólvese a consulta. - Compróbase na caché DNS. No caso de atopar algunha coincidencia gardada, resólvese a consulta.
- Se ningún dos pasos anteriores resolveu a consulta, envíase a petición ao servidor DNS configurado no adaptador de rede. Poden indicarse varios por se o primeiro falla e non devolve resposta. Nese caso, pasaríase a enviar a consulta ao segundo, e así sucesivamente.

Localhost
O nome localhost é un nome reservado para facer referencia á propia máquina, é dicir, á IP 127.0.0.1.
Mediante a edición do ficheiro hosts podemos facer que outros nomes fagan referencia á propia máquina. Por exemplo, se queremos que ownmachine apunte á propia máquina, habería que engadir a seguinte liña:
127.0.0.1 ownmachine
Ficheiro hosts
Os ficheiro hosts é un ficheiro de texto plano do sistema operativo que asigna nomes de hosts a direccións IP. Os cambios que se aplican neste ficheiro só se aplican ao propio sistema operativo, é dicir, os cambios que se realizan nel non van afectar a outros sistemas operativos instalados na propia máquina ou a outras máquinas da rede.
Este ficheiro contén liñas consistentes nunha dirección IP no primeiro campo de texto seguido dun ou máis nomes de host. Por exemplo:
10.0.1.100 server.self
10.0.1.101 ubuntu.self debian.self
O contido anterior establece as seguintes relacións:
| Nome de dominio | Dirección IP |
|---|---|
server.self | 10.0.1.100 |
ubuntu.self | 10.0.1.101 |
debian.self | 10.0.1.101 |
Un ficheiro hosts pode empregarse para resolver dominios que non existen e que queremos empregar para probas. É o caso do exemplo anterior: server.self, ubuntu.self e debian.self son dominios que non existen.
Un ficheiro hosts tamén se pode empregarse para bloquear dominios de forma local (só na máquina onde se modifica o ficheiro). Por exemplo, se queremos bloquear o dominio amazon.es, podemos engadir o seguinte:
127.0.0.1 amazon.es
Neste caso, todas as peticións que realicemos a amazon.es, enviaranse á nosa propia máquina. O efecto producido sería que non se mostra a páxina solicitada.
Caché DNS
Tanto os clientes DNS como os servidores DNS dispoñen dunha memoria caché. En ambos casos, o uso é o mesmo. Os cliente ou servidores DNS que reciben unha petición, buscan en primeiro lugar se dispoñen da resposta na caché. Se é así, serven a resposta; en caso contrario, iniciarían a procura noutros servidores DNS. Unha vez atopada a resposta, o cliente ou servidor DNS gardará o resultado na súa memoria caché para futuros usos e devolve o resultado.
Servidores DNS
A maioría de usuarios domésticos utilizan como servidor DNS o proporcionado polo provedor de servizos de Internet (Internet Service Provider, ISP). Noutros casos, os administradores de rede teñen configurados os seus propios servidores DNS.
O enderezo destes servidores pode ser configurado de dúas formas:
- Manual: a dirección IP ou direccións IP do servidor ou servidores DNS introdúcense manualmente na configuración de rede. Debemos coñecer previamente as direccións IP dos servidores DNS.
- Automática: é a forma máis común e realízase mediante DHCP.

Servidores DNS configurados en Linux
Podemos ver que servidores DNS temos configurados para todas as interfaces de rede co seguinte comando:
$ systemd-resolve --status
Exemplo de saída do comando
O servidor DNS para a interface de rede ens33 é 8.8.8.8:
$ 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: 8.8.8.8
DNS Servers: 8.8.8.8
DNS Domain: ~.
De maneira alternativa, tamén podemos empregar o seguinte comando para obter os servidores DNS que temo configurados en todas as interfaces de rede do equipo:
$ nmcli device show
Se queremos consultar a inforamación para unha interface de rede, debemos indicala. Recorda que as interfaces de rede que tes nunha máquina as podes ver co comando ip a. Para ver os servidores DNS configurados na interface ens33, executamos o seguinte comando:
$ nmcli device show ens33
Exemplo de saída do comando
O servidor DNS configurado para a interface de rede ens33 é 10.0.1.2:
$ nmcli device show ens33
GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 0A:CE:20:F2:63:AD
GENERAL.MTU: 1500
GENERAL.STATE: 100 (conectado)
GENERAL.CONNECTION: Conexión cableada 1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: activado
IP4.ADDRESS[1]: 10.0.1.10/24
IP4.GATEWAY: 10.0.1.2
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 10.0.1.2, mt = 100
IP4.ROUTE[2]: dst = 10.0.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]: 10.0.1.2
IP4.DOMAIN[1]: localdomain
IP6.ADDRESS[1]: fa23::23ca:2593:10dc:e5ad/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
No saída do exemplo anterior, podemos ver na fila IP4.DNS que a dirección IP do servidor DNS é 10.0.1.2.
Servidores DNS configurados en Windows
Podemos ver que servidores DNS temos configurados para todas as interfaces de rede co seguinte comando:
C:\> ipconfig /all