AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 449067
Accepted
Boris Burkov
Boris Burkov
Asked: 2018-06-12 02:17:47 +0800 CST2018-06-12 02:17:47 +0800 CST 2018-06-12 02:17:47 +0800 CST

Quem lê /etc/resolv.conf?

  • 772

Meu servidor Centos 7 não resolve nomes de domínio corretamente. Pelo que vejo, em sistemas Linux modernos /etc/resolv.confgeralmente é gerado com dhclient, dnsmasqou Network Manager.

Assim, tenho uma pergunta teórica geral sobre a pilha de rede nos Linux modernos:

Quem é responsável pela leitura /etc/resolv.conf? Quais players (serviços ou subsistemas de kernel) estão envolvidos na resolução de nomes de domínio?

RESPOSTA CURTA: O manual do Arch linux diz que a configuração de alto nível da resolução de nomes de domínio é feita /etc/nsswitch.conf e depende da glibcAPI Name Service Switch.

glibcusa nss-resolvefunção para enviar solicitações de DNS para servidores DNS.

Normalmente, em sistemas CentOS modernos, nss-resolve depende do systemd-resolved serviço. Se /etc/resolv.conffoi gerado por algo como dhclient-script, systemd-resolvedlê e funciona em modo de compatibilidade, emulando o comportamento de sistemas mais antigos como BINDo cliente DNS.

networking dns
  • 3 3 respostas
  • 5517 Views

3 respostas

  • Voted
  1. Best Answer
    JdeBP
    2018-06-12T04:28:50+08:002018-06-12T04:28:50+08:00

    As bibliotecas de cliente DNS sim.

    As bibliotecas C contêm clientes DNS que encerram 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 consultas. Existem muitos desses clientes DNS. O que está na biblioteca de tempo de execução C principal do seu sistema operacional provavelmente será o do BIND do ISC. Mas há um monte de outros da dnsbiblioteca de Daniel J. Bernstein através de c-ares para 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 eles lêem resolv.conf, que é o arquivo de configuração para a biblioteca cliente BIND C do ISC.

    O NSS está em camadas sobre isso e é configurado pelo nsswitch.conf. Uma das coisas que as pesquisas NSS podem invocar internamente é o cliente DNS e nsswitch.confé lida 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 pequena complicação nessa ideia 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-resolvedadiciona complicações semelhantes.)

    systemd-resolved, NetworkManager, connman, dhcpcd, resolvconfe outros ajustam o arquivo de configuração do cliente DNS BIND para alternar clientes DNS para conversar com diferentes servidores DNS proxy em tempo real. 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 proxy DNS na própria máquina ou em uma LAN. Daí o que o manual do FreeBSD diz sobre sistemas normalmente configurados, onde a ação padrão da biblioteca cliente DNS na ausência de resolv.confcorrespondências com o que os administradores de sistema Unix normalmente têm, que é um servidor DNS proxy escutando em 127.0.0.1. (O manual do FreeBSD resolv.confé na verdade doco que também se origina do BIND do ISC e, claro, também pode ser encontrado onde a biblioteca do cliente DNS do BIND foi incorporada em outros lugares, como a biblioteca GNU C.)

    Leitura adicional

    • Daniel J. Bernstein. A dnsbiblioteca . cr.yp.to.
    • Jonathan de Boyne Pollard (2017). O que é qualificação de nome DNS . Respostas Frequentes.
    • Jonathan de Boyne Pollard (2004). O que é a resolução de consulta DNS . Respostas Frequentes.
    • Jonathan de Boyne Pollard (2001). The Big Picture para "djbdns" . Respostas Frequentes.
    • Jonathan de Boyne Pollard (2000). servidores DNS "conteúdo" e "proxy". Respostas Frequentes.
    • 25
  2. Rob
    2018-06-12T02:42:14+08:002018-06-12T02:42:14+08:00

    Da página de manual do FreeBSD muito melhor, resolv.conf :

     The resolver configuration file contains information that is read by the
     resolver routines the first time they are invoked by a process.
    
     On a normally configured system this file should not be necessary.  The
     only name server to be queried will be on the local machine, the domain
     name is determined from the host name, and the domain search path is
     constructed from the domain name.
    
    • 7
  3. rexkogitans
    2018-06-13T01:08:11+08:002018-06-13T01:08:11+08:00

    O arquivo /etc/resolv.confé lido por chamadas *libc que executam a resolução do nome do host. Isso é principalmente getaddrinfoe o obsoleto gethostbyname.

    Se essas funções receberem um nome DNS, elas farão essas coisas na seguinte ordem:

    1. Tente resolver o nome do host localmente, ou seja, lendo /etc/hosts.
    2. Se isso falhar, consulte os servidores DNS listados em /etc/resolv.conf.
    3. Se isso também falhar, o nome do host não poderá ser resolvido.

    Desde que você mencionou dnsmasq : Este é um servidor DNS que é executado localmente. Então, em muitas distribuições Linux modernas, o /etc/resolv.confúnico ponto para 127.0.0.1(é onde o dnsmasq local escuta). O dnsmasq é então configurado para encaminhar as consultas aos servidores DNS da Internet; dnsmasq é configurado pelo Network Manager ao se conectar à Internet.

    • 1

relate perguntas

  • Pergunta sobre arquivos montados em rede

  • Um endereço IP pode terminar em 255 e não ser um endereço IP de transmissão?

  • Como faço para verificar se estou usando 9.9.9.9 para DNS?

  • Incapaz de identificar qual saída de endereço MAC do comando arp ou comando ip está correta

  • Roteador estranho funciona com centos 6 [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve