Работают ли / etc / resolver / files в Mountain Lion для разрешения DNS?

31

Может кто-нибудь сказать мне, если добавление файла в / etc / resolver будет работать для разрешения DNS с использованием DNS-сервера, отличного от того, что раздается через DHCP?

Моя проблема заключается в том, что я хочу использовать OpenDNS для домашнего DNS-разрешения клиентов, чтобы воспользоваться возможностями фильтрации и защиты от мошенничества, но существенным недостатком является то, что здесь, в Австралии, такие вещи, как контент Apple, доставляются через CDN (Akamai), который будет затем сервер контента с использованием точки доставки в США.

Я хочу, чтобы адрес DNS-сервера, передаваемый через DHCP, был адресом локального маршрутизатора (DNSMasq с использованием DNS-серверов OpenDNS), а затем, например, поместите файл с именем apple.com в / etc / resolver со следующей строкой :

nameserver 203.12.160.35

Идея состоит в том, что любой DNS-запрос к apple.com будет обрабатываться DNS-сервером TPG (моего ISP), а не демоном DNSMasq локальных маршрутизаторов с использованием серверов OpenDNS.

Итак, я сделал это, и вывод scutil --dns :

DNS configuration

resolver #1
  search domain[0] : harland
  nameserver[0] : 192.168.10.1
  nameserver[1] : 192.168.10.1
  if_index : 4 (en2)
  reach    : Reachable,Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

resolver #8
  domain   : apple.com
  nameserver[0] : 8.8.8.8

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : harland
  nameserver[0] : 192.168.10.1
  nameserver[1] : 192.168.10.1
  if_index : 4 (en2)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address
macbookair:resolver

Теперь вывод nslookup на apple.com:

macbookair:resolver ilium007$ nslookup apple.com
Server:     192.168.10.1
Address:    192.168.10.1#53

Non-authoritative answer:
Name:   apple.com
Address: 17.149.160.49
Name:   apple.com
Address: 17.172.224.47

macbookair:resolver 

Таким образом, я не использую сервер TPG DNS - я все еще решаю против 192.168.10.1, который является локальным маршрутизатором. Имеет ли значение порядок разрешения? то есть. запись, созданная после размещения файла apple.com в / etc / resolver, является resolver # 8:

resolver #8
  domain   : apple.com
  nameserver[0] : 8.8.8.8

Мне бы очень хотелось, чтобы это работало - любая помощь будет принята с благодарностью.

ilium007
источник

Ответы:

43

Этот вопрос кажется немного старым, но я все равно на него отвечу, так как у меня была похожая проблема:

Да, это работает.

Ваша первая проблема заключается в том, что у вас явно неверный IP ( 8.8.8.8вместо 203.12.160.35) /etc/resolver/apple.com. Убедитесь, что содержимое этого файла действительно:

nameserver 203.12.160.35

Тогда scutil --dnsдолжна быть запись, подобная этой:

resolver #8
  domain   : apple.com
  nameserver[0] : 203.12.160.35

Вторая проблема в том , что вы пытались проверить его с помощью nslookupкоторой не используют механизмы разрешения DNS из OS X. Если вы посмотрите на странице людей nslookupвы найдете это:

Mac OS X NOTICE
   The nslookup command does not use the host name and address resolution or the DNS 
   query routing mechanisms used by other processes running on Mac OS X.  The results of 
   name or address queries printed by nslookup may differ from those found by other
   processes that use the Mac OS X native name and address resolution mechanisms. The 
   results of DNS queries may also differ from queries that use the Mac OS X DNS routing 
   library.

Чтобы проверить настройки DNS, вы можете сделать

dns-sd -G v4 images.apple.com

и проверьте, дает ли он тот же IP, что и

nslookup images.apple.com 203.12.160.35
apfelsaft
источник
1
Стоит также отметить, что это можно использовать для указания сервера имен для конкретного домена верхнего уровня. Например, если файл с именем «dev», то все запросы для «example.dev» будут отправлены на этот сервер имен. Это полезно для корпоративных сетей, особенно если вы не находитесь в локальной сети компании (например, при подключении к VPN)
Abhi Beckert,
2
Your first problem is that you obviously have the wrong IP (8.8.8.8)Не обязательно; 8.8.8.8и 8.8.4.4являются DNS-серверами Google. Как они получили эти октеты, я не знаю.
Qix
3
По состоянию на 10.10, кажется, что нет каталога / etc / resolver.
Сорин
2
Вам нужно создать его самостоятельно в 10.10.
Алан Шутко