Além de DNS e /etc/hosts, de onde mais podem vir as informações de host em um Mac?

Além de DNS e /etc/hosts, de onde mais podem vir as informações de host em um Mac?

Todos os nomes e endereços foram alterados. example.com é um domínio que possuo.

% ping foo.example.com
PING foo.example.com (1.1.1.1)

1.1.1.1 é um endereço IP do qual nunca ouvi falar. O mesmo para outros programas (ssh, curl)

% host foo.example.com
foo.example.com has address 2.2.2.2

2.2.2.2 é o endereço IP correto.

% grep foo /etc/hosts
(empty)

Isso está no Mac. No Linux, eu procuraria /etc/nsswitch.conf para outras fontes de informações do host. Existe algo semelhante no Mac?

Responder1

O macOS possui um sistema sofisticado de roteamento DNS com escopo definido para coisas como VPN. Portanto, se você, por exemplo, tiver uma conexão VPN para “trabalhar” agora, as consultas pelos nomes de domínio do seu trabalho podem estar indo para um servidor DNS no trabalho.

Para ver a lista completa, execute:

scutil --dns

Para consultar o DNS como o sistema faz, use:

dns-sd -G v4v6 example.com
dns-sd -q example.com 255 255

(você tem que apertar Ctrl-C para sair dns-sd).

Os comandos host, dige nslookupsão comandos unix antigos para solução de problemas de servidores DNS que contêm seu próprio código de resolução de DNS e não usam as bibliotecas do sistema. Portanto, se você não especificar qual servidor deseja que eles usem, eles apenas obterão os do autogenerated /etc/resolv.conf, que só será preenchido com os servidores padrão para consultas sem escopo. Mas uma ferramenta como pingprovavelmente apenas chama gethostbyname(3)que usa o roteamento DNS com escopo definido do sistema.

Editado para adicionar: devo também mencionar que o macOS pode obter informações de resolução de nome de host para endereço IP de vários outros meios, incluindo:

  1. mDNS (Apple Bonjour/IETF ZeroConf)
  2. Open Directory (um esquema Apple em LDAP)
  3. Outro LDAP
  4. Diretório Ativo
  5. GANHA
  6. Serviço de nomes NetBIOS
  7. NIS (anteriormente YellowPages/yp; o serviço de informações de rede Sun/Oracle)

Você pode editar essas configurações com a dsclferramenta de linha de comando ou com o aplicativo Directory Utility, que fica oculto em:

/System/Library/CoreServices/[Applications]/Directory\ Utility.app

informação relacionada