Почему разрешается этот однословный адрес? [закрыто]

Я использую Ubuntu 12.04. В моей рабочей сети есть адрес из одного слова (назовем его foobar ), который отвечает на эхо-запросы и HTTP-запросы только с моей машины . Адрес не является TLD, а просто общим сокращением, связанным с проектом.

Указанный адрес не должен отвечать : в моем файле / etc / hosts нет записи foobar. Нет ссылки на foobar в apache httpd.conf , sites-available или sites-enabled ), ни в моем resolv .conf файл следующим образом:

nameserver 127.0.0.1
search redacted.mycompany.com

Сначала я думал, что он перенаправляет на localhost , но если я открою его в своем браузере, он покажет страницу приветствия nginx, и я запускаю apache на моя машинка.

Анализ lo и eth0 показывает, что трафик действительно идет из сети. Перезапуск службы resolvconf не решает проблему.Если я запускаю:

service resolvconf stop
resolvconf --wipe-runtime-directories
service resolvconf start

, то foobar перестает разрешаться, но если я перезапускаю свой компьютер, он снова разрешается

Pinging foobar получает ответ от foobar.redhibited.mycompany .com , реальный адрес, который отлично работает на других машинах, кроме моей. Tracerouting или mtr 'ing foobar показывает 5 переходов до места назначения, так же, как tracerouting или mtr'ing foobar.redhibited.mycompany.com .

Вот результат выполнения команды dig foobar :

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

;; QUESTION SECTION:
;foobar.                IN  A

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar  8 14:32:02 2013
;; MSG SIZE  rcvd: 22

Проблема возникает как в Firefox (19.0), так и в Chrome (24.0.1312.56-0ubuntu0.12.04.1). Нажатие CTRL + F5 ничего не меняет. Этого не происходит на двух других машинах коллег, которые я тестировал в той же подсети .

4
задан 9 March 2013 в 01:41

1 ответ

Как вы знаете, вся клиентская часть системы доменных имен совершенно произвольна; по соглашению программы должны проходить через системную библиотеку C для разрешения имен хостов, но технически они могут полностью обойти этот механизм, если захотят, либо отправляя свою собственную библиотеку C (статически скомпилированную или иным образом), либо используя полностью настраиваемый поиск DNS система, которая использует или не использует протокол DNS.

Предполагая стандартную установку Ubuntu, запуск программ, связанных с библиотекой системы C, вы получаете eglibc (который является второстепенным форком GNU libc) и путь по умолчанию к файлу, который сообщает gethostbyname () и другие Функция разрешения DNS библиотеки C: какой DNS-сервер использовать, /etc/resolv.conf.

nameserver 127.0.0.1 означает «использовать протокол DNS для запроса 127.0.0.1 о запросах DNS» - я предполагаю, что у вас есть локальный кэширующий DNS-сервер, который перенаправляет на вышестоящий DNS-сервер, такой как dnsmasq или bind, по соображениям производительности (при выполнении DNS-запроса гораздо быстрее запрашивать сервер на своем компьютере, чем подключаться к сети!)

search redacted.mycompany.com означает «при попытке разрешить foo, если он не разрешается напрямую, добавьте строку .redacted.mycompany.com в конце и повторите попытку; если это работает, верните этот результат ".

Я думаю, что это работает «по замыслу», но я не знаю, почему это не будет работать на машинах коллег, если у них нет линии search.

0
ответ дан 9 March 2013 в 01:41

Другие вопросы по тегам:

Похожие вопросы: