Listar servidores DNS no Mavericks


10

Como verificar qual servidor DNS foi usado para resolver um nome de host específico na rede VPN?

Estou usando o cliente VPN proprietário fornecido pela empresa e quero ver o endereço IP do servidor DNS, mas

networksetup -getdnsservers <service name>

não lista nenhum servidor DNS. No entanto, posso executar ping em qualquer servidor da rede interna, portanto, o DNS aparentemente está funcionando.

Como a pesquisa de DNS funciona no OSX com / sem conexões VPN?

Respostas:


6

Primeiro, se networksetup -getdnsservers <service name>não mostrar nada, você não tem nada listado em Preferências do Sistema> Netowrk em "Servidores DNS:".

Segundo, é importante observar que o OS X não lida com DNS como a maioria dos sistemas. Por https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Essencialmente, isso significa que o OS X tem vários clientes DNS, dependendo da sua configuração. O resultado desses vários serviços significa que há situações nas quais o Safari para acessar um site ( http://www.example.com ) leva você a um endereço IP que o OS X recuperou do DNS (por exemplo, 1.2.3.4) enquanto ao mesmo tempo, realizando uma escavação

$ dig www.example.com  

retornará resultados diferentes. (talvez 2.3.4.5)

O motivo disso está na maneira como o OS X lida com o DNS.

Se você executar, $ man digobtém, entre outras coisas, o seguinte:

AVISO no Mac OS X O comando dig não usa a resolução de nome e endereço do host ou os mecanismos de roteamento de consulta DNS usados ​​por outros processos em execução no Mac OS X. Os resultados das consultas de nome ou endereço impressas pelo dig podem diferir dos encontrados por outros processos que usam o nome nativo do Mac OS X e os mecanismos de resolução de endereços. Os resultados das consultas DNS também podem diferir das consultas que usam a biblioteca de roteamento DNS do Mac OS X.

Também $man nslookupretornará algo semelhante

AVISO no Mac OS X O comando nslookup não usa a resolução de nome e endereço do host ou os mecanismos de roteamento de consulta DNS usados ​​por outros processos em execução no Mac OS X. Os resultados das consultas de nome ou endereço impressas pelo nslookup podem diferir dos encontrados por outros processos que usam o nome nativo do Mac OS X e os mecanismos de resolução de endereços. Os resultados das consultas DNS também podem diferir das consultas que usam a biblioteca de roteamento DNS do Mac OS X.

Tudo isso é realmente uma maneira bastante longa de dizer, a melhor maneira de ver quais servidores DNS estão sendo usados ​​é ver Preferências do Sistema> Rede

As entradas "Servidor DNS:" geralmente estão lá, e "Pesquisar domínios:" permitirá pesquisar endereços incompletos.

Se "Servidor DNS:" não estiver presente, o OS X tentará usar o endereço em "Roteador:" para DNS.

E, além de toda essa diversão, existem utilitários e outros processos que podem não estar usando a Biblioteca de Roteamento DNS do OS X, e eles atingirão diretamente o conteúdo do /etc/resolv.conf.

A resposta curta é a seguinte:

  1. Se você seguir o conteúdo de Preferências do Sistema> Rede, verá a mesma coisa que a maioria dos processos está usando.
  2. O conteúdo de Preferências do sistema> Rede deve preencher /etc/resolv.conf, mas nem sempre.
  3. Alguns outros processos (como dig e nslookup) estão acessando o /etc/resolv.conf diretamente.

E, além de tudo isso - se você não estiver usando os clientes VPN integrados ao OS X, é possível que rotas adicionais e servidores DNS estejam sendo usados ​​e que networksetup -getdnsservers <service name>não sejam exibidos. Seu cliente VPN pode ter a capacidade de mostrar as rotas e os servidores DNS, eu sei que o meu faz.

Sei que isso não responde exatamente à sua pergunta, mas espero que isso ajude você a perceber que nem sempre é fácil descobrir qual é a "verdade" em relação ao DNS em um Mac. Geralmente, você está seguro assumindo que o conteúdo de Preferências do Sistema> Rede ou o conteúdo de networksetup -getdnsservers <service name>são de onde você está obtendo seu DNS. No entanto, se as coisas parecerem estranhas, lembre-se de que também existem outras possibilidades. Use dig para ajudar a determinar se existem diferenças em andamento.

Por último, para aqueles leitores que estão se perguntando como obter o <service name>em networksetup -getdnsservers <service name>, tente usarnetworksetup -listallnetworkservices

Conta


Obrigado pela explicação. Isso é o que eu suspeitava: aparentemente, qualquer coisa que está na rede VPN está sendo olhou para cima via VPN de gateway listados na tabela de roteamento ...
Robusta

Consegui pegar o endereço do servidor DNS usando o tcpdump na interface da VPN.
Robusta

8

no OSX Mavericks (10.9 - na verdade, 10.6.3, acredito), se você quiser ver a configuração DNS ativa:

scutil --dns

A primeira entrada (resolvedor 1) é declaradamente a configuração ativa ... embora eu tenha visto muitos casos em que esse não é o caso.

de man scutil

 The --dns option reports the current DNS configuration.  The first listed
 resolver(5) configuration is considered to be the "default" configura-
 tion.  Additional "supplemental" configurations follow.  Those containing
 a "domain" name will be used for queries matching the specified domain.
 Those without will be used as a "default" configuration in addition to
 the first listed.

IME, se o que você vê aqui não corresponde ao que você espera (por exemplo, rede> avançado> dns), pode ser necessário desativar / ativar o adaptador de rede apropriado para que ele seja atualizado ...

Outras dicas no OSX recente:

Com 10.7 ou 10.8, os domínios de pesquisa não se aplicam a pesquisas com um ponto neles. ie - www.test não anexará domínios de pesquisa, onde www será. há uma correção:

sudo vim /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Add <string>-AlwaysAppendSearchDomains</string>after line 16
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/mDNSResponder</string>
        <string>-launchd</string>
        <string>-AlwaysAppendSearchDomains</string>
    </array>

Agora descarregue e recarregue o serviço mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

a rede> avançado> a configuração de DNS é -PER INTERFACE-. Então, se você usa sem fio e com fio ... você precisa configurar os dois.

também há outra maneira - / etc / resolver - um exemplo aqui: / etc / resolv / files funcionam no Mountain Lion para resolução de DNS? e mais aqui: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

Quanto a tentar fazer um nslookup - é sabido que o nslookup (e o host e o dig) não seguem o mecanismo de resolução OSX (extremamente exclusivo e misturado). Use ping.


Essa deve ser a resposta aceita. scutil --dnsmostra a configuração real do DNS que o sistema operacional está usando.
Nate

2

Normalmente, eu usaria (em ambientes unix, e isso é possivelmente um pouco antigo) algo como os seguintes exemplos.

Primeiramente, você pode procurar um endereço IP ou uma entrada de nome DNS individualmente, e ele informará o servidor que foi usado para fornecer a resposta. Você pode pesquisar uma única entrada na linha de comando ou entrar no nslookupprograma e pesquisar várias entradas sem precisar digitar novamente o comando:

nslookup

Default Server:  redacted.organisation.com
Address:  10.47.xxx.xxx

> ibm.com
Server:  redacted.organisation.com
address:  10.47.xxx.xxx

Non-authoritative answer:
Name:    ibm.com
Address:  129.42.38.1

> sun.com (etc etc, use quit or exit to get out)

Em segundo lugar, este comando (note que eu executei isso em uma caixa do Windows, no unix / OS X, o comando ipconfig / all é o ifconfig -a e os resultados da saída podem diferir ligeiramente), que lista os dados de configuração de IP para cada interface em seu sistema, portas físicas, conexões sem fio, VNCs etc., exibindo quais dados DNS e IP estão associados a cada rota fora da máquina, você receberá muitas entradas de volta, uma para cada adaptador / porta de rede genuína e também várias quantidades de portas virtuais, dependendo do seu configuração, no meu exemplo, removi a maioria dos resultados, mas mostrei meu adaptador VPN e as entradas DNS (redigidas) que ele possui.

C:\Users\dawilkin>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : XXX-XXXXX
   Primary Dns Suffix  . . . . . . . : XX.XXXXX.com
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : XXX.com
                                       XX.XXX.com
                                       XX.XXX.com
                                       XXX.co.uk
                                       XXX.com

Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . : XXX.com
   Description . . . . . . . . . . . : Cisco AnyConnect VPN Virtual Miniport Ada
pter for Windows x64
   Physical Address. . . . . . . . . : 00-XX-9A-XX-XX-00
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.47.XX.XX(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 10.47.XX.X
   DNS Servers . . . . . . . . . . . : 10.47.XX.X
                                       10.31.XX.X
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connecti
on
   Physical Address. . . . . . . . . : 3C-97-XX-XX-XX-3C
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter Wireless Network Connection 3:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter #
2
   Physical Address. . . . . . . . . : A4-4E-31-42-33-41
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Infelizmente, o nslookup responde que não consegue encontrar servidores na minha rede VPN. Além disso, o ifconfig não lista nenhum servidor DNS para nenhuma interface, incluindo o que corresponde à VPN.
Robusta

Talvez você esteja usando arquivos host codificados. Os servidores que você está procurando na Internet ou na sua organização?
stuffe

downvote por causa da saída do windows ipconfig que não possui contexto útil em um ambiente OSX - o OSX possui seu próprio ambiente de resolução DNS único (e com muitos sabores).
afiado

Cara, apenas vote, não precisamos saber o porquê.
stuffe

1

O que nslookupte diz? Isso me dá meu servidor DNS na segunda linha.

$ nslookup stackexchange.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   stackexchange.com
Address: 198.252.206.16

Quando eu entro no servidor interno (que pertence à VPN), o nslookup tenta usar meu roteador wifi como DNS e não consegue encontrar o servidor: [... ~] $ nslookup> xxxxxxxxxxx.com Servidor: 192.168.1.1 Endereço: 192.168.1.1 # 53
Robusta
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.