bibliotecas cliente DNS fazem.
As bibliotecas C contêm clientes DNS que envolvem pesquisas de nome para endereço no protocolo DNS e as entregam a servidores DNS proxy para fazer todo o trabalho pesado de resolução de consulta. Existem muitos desses clientes DNS. O que está na biblioteca principal de tempo de execução do seu sistema operacional provavelmente será o do BIND do ISC. Mas há toda uma carga de outros da biblioteca dns
do Daniel J. Bernstein através do c-ares até adns.
Embora vários deles contenham seus próprios mecanismos de configuração nativos, eles geralmente têm um modo de compatibilidade de biblioteca BIND, onde leem resolv.conf
, que é o arquivo de configuração da biblioteca cliente BIND C do ISC.
O NSS é sobreposto em cima disso e é configurado por nsswitch.conf
. Uma das coisas que as pesquisas NSS podem invocar internamente é o cliente DNS, e nsswitch.conf
é lido pelo código NSS na biblioteca C para determinar se e onde as pesquisas são entregues ao cliente DNS e como lidar com as várias respostas.
(Há uma ligeira complicação a essa idéia causada pelo Name Services Cache Daemon, nscd. Mas isso simplesmente adiciona um cliente extra de camada superior na biblioteca C, falando um protocolo idiossincrático para um servidor local, que por sua vez atua como um cliente DNS falando o protocolo DNS para um servidor DNS proxy. systemd-resolved
adiciona complicações semelhantes.
systemd-resolved
, NetworkManager
, connman
, dhcpcd
, resolvconf
e outros ajustam o arquivo de configuração do cliente BIND DNS para alternar entre clientes DNS e conversar com servidores DNS proxy diferentes durante a execução. Isso está fora do escopo desta resposta, especialmente porque há muitas respostas neste site da WWW que já lidam com os detalhes bizantinos que esse mecanismo envolve.
A maneira mais tradicional de fazer as coisas no mundo Unix é executar um servidor DNS proxy na própria máquina ou em uma LAN. Daí o que o manual do FreeBSD diz sobre os sistemas normalmente configurados, onde a ação padrão da biblioteca cliente DNS na ausência de resolv.conf
corresponde ao que os administradores do sistema Unix normalmente têm, que é um servidor DNS proxy escutando em 127.0.0.1. (O manual do FreeBSD para resolv.conf
é, na verdade, doco que também é originado do BIND do ISC, e pode também ser encontrado onde a biblioteca cliente DNS do BIND foi incorporada em outros lugares como a biblioteca GNU C .)
Leitura adicional
- Daniel J. Bernstein. A biblioteca
dns
. cr.yp.to. - Jonathan de Boyne Pollard (2017). Qual é a qualificação do nome DNS . Respostas frequentemente dadas.
- Jonathan de Boyne Pollard (2004). Qual resolução de consulta DNS é . Respostas frequentemente dadas.
- Jonathan de Boyne Pollard (2001). O Grande Quadro para "djbdns" . Respostas frequentemente dadas.
- Jonathan de Boyne Pollard (2000). servidores DNS "content" e "proxy". Respostas mais frequentes.