Во-первых, простите мое невежество, так как я все еще привык к работе с DNS. Я новичок в сети.

Основной вопрос: как определить источник записи DNS? Или, может быть, точнее спросить: как мне определить, где в моей сети имя хоста переводится в IP?

Особенности:

  • Actiontek MI424WR-GEN3I (предоставляется в составе службы FiOS)
  • MacBookPro под управлением OS X Yosemite
  • VMWare Fusion
  • Сервер Ubuntu 14, работающий на виртуальной машине VMWare

Сценарий: я на Mac под управлением OS X Yosemite с Ubuntu 14, работающей на виртуальной машине VMWare. Я изучаю веревки при настройке сайта Drupal (не относящиеся конкретно к проблеме), и я настроил виртуальные хосты на сервере Ubuntu. Принимая это как процесс пошагового выполнения, я сначала создал запись в моем файле hosts:192.168.1.22 cwb1.local

Это работало нормально, поэтому я стал более амбициозным и удалил эту запись файла hosts и создал запись DNS на своем маршрутизаторе, указав имя хоста cwb1.local на IP 192.168.1.22. Похоже, это сработало очень хорошо. Тайна в том, что с тех пор я удалил эту запись DNS, и теперь, насколько я могу судить, у меня нет записи, связывающей это имя хоста и IP друг с другом, но происходят две странные вещи:

  1. Я могу пинговать имя хоста и успешно вернуть IP
  2. Я могу перейти к http://cwb1.local в моем браузере и получить доступ к моему сайту Drupal.

Я очистил кэш моего браузера и запустил dscacheutil -flushcache на моем Mac, даже сбросил настройки сервера, и все еще не могу определить, как / почему мой Mac знает, как связать это имя хоста и IP вместе.

Диагностика: * обратите внимание, что виртуальная машина, на которой запущен этот сервер, указана в DHCP-подключениях моего маршрутизатора как 'ubuntu'

MAC:~ me$ nslookup 192.168.1.22
Server:     192.168.1.1
Address:    192.168.1.1#53

22.1.168.192.in-addr.arpa   name = ubuntu.home.


MAC:~ me$ nslookup cwb1.local
Server:     192.168.1.1
Address:    192.168.1.1#53

** server can't find cwb1.local: NXDOMAIN


MAC:~ me$ dig cwb1.local

; <<>> DiG 9.8.3-P1 <<>> cwb1.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 53342
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;cwb1.local.            IN  A

;; Query time: 49 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Jan 17 20:53:36 2015
;; MSG SIZE  rcvd: 28


MAC:~ me$ dig 192.168.1.22

; <<>> DiG 9.8.3-P1 <<>> 192.168.1.22
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60811
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;192.168.1.22.          IN  A

;; AUTHORITY SECTION:
.           10800   IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2015011701 1800 900 604800 86400

;; Query time: 50 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Jan 17 21:01:59 2015
;; MSG SIZE  rcvd: 105

Содержимое /etc/apache2/sites-available/html.conf

<VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName drupal7
</VirtualHost>
<VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName cwb1.local
        ServerAlias cwb1.local *.cwb1.local
</VirtualHost>

Кто-нибудь может дать мне какое-то руководство здесь?

Редактировать После комментария Ромео я повторно посетил свой файл /etc /hosts и кое-что попробовал: я добавил новую запись для cwb1.local для IP, которого нет в моей сети (192.168.1.23). После проверки связи cwb1.local он разрешается до 192.168.1.23 (как и ожидалось), и каждый запрос истекает (также как и ожидалось). Интересно, что я удалил эту запись из моего файла /etc /hosts и запустил:

  • dscacheutil -flushcache
  • sudo discoveryutil mdnsflushcache
  • sudo discoveryutil udnsflushcaches

и все еще получают те же результаты: имя хоста разрешается, но время ожидания пакетов.

Итак, мой Mac распространяет / отражает эту информацию и в других местах? Или есть какой-то буфер, который не очищается с помощью приведенных выше команд очистки кеша?

Edit 2 Итак, после перезагрузки запись имени хоста, похоже, окончательно исчезла. Это указывает на то, что фантомная запись хранится на моем Mac. Но где / как эта фантомная DNS-запись хранится до перезагрузки? Как я могу обеспечить в будущем получение точной информации DNS без перезагрузки?

Еще раз спасибо всем, кто может дать некоторое представление!

1 ответ1

0

Yosemite изменил команды для очистки DNS:

sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches

Согласно https://discussions.apple.com/message/27173761?ac_cid=op123456#27173761, все домены .local теперь разрешаются исключительно через mdns/Bonjour. Так как Ubuntu по умолчанию включает mdns/avahi-daemon, вы, вероятно, вообще не обращаетесь к DNS-серверу.

Вы можете временно отключить это с помощью service avahi-daemon stop чтобы посмотреть, решит ли это проблему. См. Https://askubuntu.com/questions/205937/how-can-i-disable-avahi-daemon.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .