Как traceroute разрешает имена?

можно перенаправить вывод в регулярный файл т.е.:

 dd if=boot1h of="/dev/r$temp1" >& /tmp/dd.log
10
28.09.2011, 16:42
3 ответа

Обычно в Linux, и Unix, traceroute и ping оба использовал бы вызов для gethostbyname () к поиску название системы. gethostbyname () в свою очередь использует файлы конфигурации системы для определения порядка, в котором можно запросить базы данных именования, т.е.:/etc/hosts и DNS.

В Linux действие по умолчанию (или возможно используется, чтобы быть) для запросов DNS сначала, и затем/etc/hosts. Это может быть изменено или обновлено путем устанавливания желаемого порядка в/etc/host.conf.

Для поиска/etc/hosts перед DNS установите следующий заказ в/etc/host.conf:

order hosts,bind

В Солярисе этим тем же порядком управляют через/etc/nsswitch.conf файл в записи для базы данных хостов.

хосты: файлы DNS

Устанавливает поисковый порядок для взгляда в/etc/hosts прежде, чем искать DNS.

Traceroute и ping оба использовали бы эти методы для поиска всех настроенных баз данных именования. host и nslookup команды оба использования только DNS, таким образом, они не обязательно копируют на вид непоследовательные результаты, Вы видите.

Солярис имеет инструмент поиска, getent, который может использоваться для идентификации хостов или адресов таким же образом, что traceroute и ping делают - следующим настроенный набор именования баз данных для поиска.

getent hosts <hostname>

перерыл бы любые базы данных, перечислены для хостов, в/etc/nsswitch.conf.

Так. В Вашем случае, для достигания последовательных результатов добавляют следующие к/etc/hosts

192.168.235.41 selenium-rc

И, удостоверьтесь, что/etc/host.conf имеет:

order hosts,bind

Или, удостоверьтесь, что/etc/nsswitch.conf имеет:

hosts: files dns

После того как это сделано, необходимо видеть более последовательные результаты и с ping, и с traceroute, а также другими командами, как ssh, telnet, завихрение, wget, и т.д.

8
27.01.2020, 20:02
  • 1
    Когда я запросил сервер DNS, перечисленный в resolv.conf файле с вырыть утилитой, я нашел обе записи. Я предполагаю, что traceroute предпочел полностью определенный. –  Keith Bentrup 29.09.2011, 19:01

Похож на Вас, имеют обратный поиск, настроенный правильно, но не вперед.

Ваша система может искать IP-адрес 192.168.235.41 и распознать, что это selenium-rc, но когда это пытается искать selenium-rc это перестало работать.

Я рекомендую проверить /etc/hosts и /etc/resolv.conf; поведение getaddrinfo системный вызов диктуют последний и ссылки первого.

2
27.01.2020, 20:02

Мое предположение: вызов traceroute 192.168.235.41 вызванный запрос DNS для выхода для нахождения имени, которое идет с IP-адресом 192.168.235.41. traceroute -n 192.168.235.41 путь состоит в том, чтобы запустить traceroute без него делающий поиски DNS на каждом IP-адресе, который он находит. Сервер DNS занял больше времени для ответа, чем система DNS хотела ожидать, таким образом, сначала traceroute не дал имя хоста для 192.168.235.41. К тому времени, когда traceroute отсылает и получает пакеты от 192.168.235.41, Ваш сервер DNS ответил, таким образом, traceroute может дать имя хоста для него.

Так, я сказал бы "проблемы сервера DNS", с очень удобной синхронизацией, которая сделала Вас подозрительными к другим вещам. Думайте "Закон Murphy's" здесь. Когда Вы возвратились немного позже, Вы получаете другое имя для того же IP-адреса, который также заставляет меня думать, возможно, что кто-то смешивал с конфигурацией сервера DNS в течение времени, Вы делали свой traceroutes.

1
27.01.2020, 20:02

Теги

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