Список DNS-серверів у Mavericks


10

Як перевірити, який DNS-сервер використовувався для вирішення певного імені хоста в мережі VPN?

Я використовую фірмовий клієнт VPN і хочу побачити IP-адресу DNS-сервера, але

networksetup -getdnsservers <service name>

взагалі не перераховує жодних серверів DNS. Тим не менш, я можу пінг будь-який сервер у внутрішній мережі, тому DNS, очевидно, працює.

Як DNS-пошук працює на OSX з / без підключень VPN?

Відповіді:


6

По-перше, якщо networksetup -getdnsservers <service name> нічого не показується, у вас немає жодного переліку в Системних налаштуваннях & gt; Мережа в розділі "Сервери DNS:".

По-друге, важливо відзначити, що OS X не обробляє DNS, як більшість систем. Пер https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html По суті це означає, що OS X має декілька клієнтів DNS в залежності від вашої конфігурації. Результат цих кількох служб означає, що існують ситуації, коли використання Safari для доступу до веб-сайту ( http://www.example.com ) перенесе вас на IP-адресу, яку OS X витягнула з DNS (наприклад, 1.2.3.4), одночасно виконуючи копання

$ dig www.example.com  

поверне різні результати. (можливо, 2.3.4.5)

Причина цього полягає в тому, що OS X обробляє DNS.

Якщо ви працюєте $ man dig ви отримуєте, серед іншого, таке:

ПРИМІТКА до Mac OS X          Команда dig не використовує ім'я хоста та роздільну здатність адреси або          механізми маршрутизації запитів DNS, що використовуються іншими процесами, запущеними на Mac          OS X. Результати імен або адресних запитів, надрукованих копією, можуть відрізнятися          від інших процесів, які використовують рідну назву Mac OS X          механізми вирішення адрес. Також можуть бути отримані результати запитів DNS          відрізняються від запитів, які використовують бібліотеку маршрутизації DNS Mac OS X.

Також $man nslookup повернеться щось подібне

ПРИМІТКА до Mac OS X          Команда nslookup не використовує ім'я хосту та роздільну здатність адреси або запит DNS          Механізми маршрутизації, що використовуються іншими процесами, запущеними на Mac OS X. Результати імені або          Запити адрес, надруковані nslookup, можуть відрізнятися від тих, які знайдені іншими процесами          використовуйте власне ім'я та механізми вирішення адрес Mac OS X. Результати DNS          Запити також можуть відрізнятися від запитів, які використовують бібліотеку маршрутизації DNS Mac OS X.

Все це дійсно досить довгий спосіб сказати, що кращий спосіб побачити, які DNS-сервери використовуються, це подивитися на System Preferences & gt; Мережа

Записи "DNS-сервер:" зазвичай є, а "Пошук доменів" - дозволяє шукати неповні адреси.

Якщо "DNS Server:" немає, то OS X спробує використати адресу в "Router:" для DNS.

І, на додаток до всього цього задоволення, є утиліти та інші процеси, які не можна використовувати бібліотеку маршрутизації DNS OS X, і вони будуть безпосередньо натискати на вміст /etc/resolv.conf.

Коротка коротка відповідь така:

  1. Якщо ви переходите до вмісту системних налаштувань & gt; Мережа, ви дивитеся на те ж саме більшість процеси.
  2. Зміст системних налаштувань & gt; Мережа, слід заповнити /etc/resolv.conf, але не завжди.
  3. Деякі інші процеси (наприклад, dig і nslookup) звертаються безпосередньо до /etc/resolv.conf.

Крім того, якщо ви не використовуєте клієнти VPN, вбудовані в OS X, можливо, що додаткові маршрути і сервери DNS використовуються networksetup -getdnsservers <service name> не покажуть. Ваш клієнт VPN може мати можливість показувати вам маршрути і DNS-сервери, я знаю, що мій робить.

Я знаю, що це точно не відповідає на ваше запитання, але, сподіваюся, це допоможе вам зрозуміти, що не завжди легко з'ясувати, що таке "правда" щодо DNS на Mac. Як правило, ви впевнені, що вміст системних налаштувань & gt; Мережі або вмісту networksetup -getdnsservers <service name> звідки ви отримуєте свій DNS. Однак, якщо речі здаються дивними, майте на увазі, що є й інші можливості. Використовуйте dig, щоб допомогти визначити, чи існують відмінності.

Останнє, для тих читачів, які цікавляться, як отримати <service name> в networksetup -getdnsservers <service name>, спробуйте використати networksetup -listallnetworkservices

Білл


Дякуємо за пояснення. Ось що я підозрював: мабуть, все, що знаходиться в мережі VPN, шукається через шлюз VPN, зазначений у таблиці маршрутизації ...
Robusta

Я зміг зловити адресу DNS-сервера за допомогою tcpdump на інтерфейсі VPN.
Robusta

8

в OSX Mavericks (10.9 - насправді 10.6.3, я вважаю), якщо ви хочете бачити активну конфігурацію DNS:

scutil --dns

Згідно з повідомленнями, перша запис (resolver # 1) є активною конфігурацією ... хоча я бачив багато випадків, коли це не так.

від людини 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, якщо те, що ви бачите тут, не відповідає очікуваному (тобто, мережі & gt; розширені & gt; dns), вам може знадобитися вимкнути / увімкнути відповідний мережний адаптер для оновлення ...

Інші поради в останніх версіях OSX:

З 10.7 або 10.8 домени пошуку не застосовуються до пошуку з крапкою в них. тобто - www.test не додавати домени пошуку взагалі, де www буде. є виправлення:

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>

Тепер вивантажте та перезавантажте службу mDNSResponder:    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

мережа & gt; розширений & gt; dns конфігурація -per INTERFACE-. Таким чином, якщо ви використовуєте бездротові та провідні ... ви повинні встановити обидва.

є ще один спосіб - / etc / resolver - один з прикладів: Чи працюють файли / etc / resolver / files у програмі Mountain Lion для розв'язання DNS? і більше тут: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

Що стосується спроби зробити nslookup - добре відомо, що nslookup (і host і dig) не слідує (надзвичайно унікальний і змішаний) механізм розв'язання OSX. Використовуйте ping.


Це має бути прийнята відповідь. scutil --dns показує фактичну конфігурацію DNS, яку використовує ОС.
Nate

2

Я б звичайно використовував (на unix середовищах, і це, можливо, трохи старої школи) щось на зразок наступних прикладів.

По-перше, ви можете шукати IP-адресу або запис імені DNS окремо, і він буде повідомляти сервер, який був використаний для надання відповіді. Ви можете шукати один запис у командному рядку або ввести nslookup програми та пошук декількох записів без повторного введення команди:

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)

По-друге, ця команда (зауважимо, що я запустив це на вікні вікна, на unix / OS X команду ipconfig / all замість цього ifconfig -a і вихідні результати можуть трохи відрізнятися) перераховує дані конфігурації ip для кожного інтерфейсу вашої системи, фізичні порти, бездротові з'єднання, VNCs тощо, показуючи, які дані DNS і IP пов'язані з кожним маршрутом з машини, ви отримаєте багато записів назад, один для кожного справжнього мережевого порту / адаптера, а також різні обсяги віртуальних портів теж залежно від вашої конфігурації, в моєму прикладі я видалив більшість результатів, але показав мій VPN-адаптер і (відредаговані) записи DNS.

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

На жаль, nslookup відповідає, що не може знайти сервери в моїй мережі VPN. Крім того, ifconfig не перераховує будь-які DNS-сервери для будь-якого інтерфейсу, включаючи той, який відповідає VPN.
Robusta

Можливо, ви використовуєте жорстко закодовані файли. Чи є сервери, які ви шукаєте, в Інтернеті або в організації?
stuffe

downvote через висновок windows ipconfig, який не має корисного контексту в середовищі OSX - OSX має власну унікальну (і багато смаку) середовище для вирішення DNS.
keen

Чувак, просто голосуй, нам не потрібно знати, чому.
stuffe

1

Що робить nslookup кажу тобі? Це дає мені мій DNS-сервер на другому рядку.

$ 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

Коли я вводжу внутрішній сервер (який належить VPN), nslookup намагається використовувати мій wifi маршрутизатор як DNS, а потім не може знайти сервер: [... ~] $ nslookup & gt; xxxxxxxxxxx.com Сервер: 192.168.1.1 Адреса: 192.168.1.1 # 53
Robusta
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.