Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Что такое DNS ?   Найти похожие ветки 

 
syte_ser78 ©   (2004-07-05 15:48) [0]

Сабж. Если можно попонятней :)


 
Ega23 ©   (2004-07-05 15:50) [1]

http://www.linuxrsp.ru/artic/dns.html


 
syte_ser78 ©   (2004-07-05 15:52) [2]

У меня доступ только к определенным сайтам. Если не сложно, в двух словах скажи.


 
Ega23 ©   (2004-07-05 15:53) [3]

"Зачем нужен DNS" или "Почему сервер тормозит?".

"Доменная система имен (Domain Name System, DNS) - это распределенная база данных, которая содержит информацию о компьютерах, включенных в сеть Internet."(UNIX: руководство системного администратора Эви Немет и др. Пер. с англ.)

Так начинается описание системы DNS в одной из лучших, на мой взгляд, книг по UNIX. Подобные утверждения можно встретить и во многих других книгах и статьях, посвященных DNS. Неудивительно, что в сознании людей система DNS оказывается неразрывно связанной с Internet. К несчастью, такая ассоциация оказывается крайне опасной для системного администратора. "Обращение к интернет-ресурсам по символическим именам происходит нормально,значит с DNS все в порядке" - администратор легко может впасть в подобное заблуждение под влиянием этой устойчивой ассоциации.

Типичная ситуация. Загружен новый сервер, пробуем зайти на него используя (ssh, ftp, pop3, smtp, telnet - недостающий протокол добавить ;-) ) с соседней машины в локальной сети. Обнаруживаем, что соединения приходится ждать пару минут... В чем дело? Одной из возможных причин может быть неверная настройка DNS на сервере.

Дело в том, что установление соответствия между именами и ip-адресами нужно не только пользователю. Многие программы - сервера пытаются определить имя машины клиента по ее ip-адресу. Зачем? А чтобы в лог записать - осуществлено, мол, соединение с машины с таким-то именем и таким-то ip. А если не удалось ip-адрес в имя преобразовать, то записывают - имя клиента определить не удалось, ip-адрес такой-то. Так работают, например, telnetd, wu-ftpd, postfix, imapd... Встречаются, впрочем, и программы, которые так не поступают, а пишут в логи только ip-адреса. Так работают, в частности, apache, squid, popa3d.

Кроме того, утилиты, предназначенные для диагностики состояния сети, также довольно часто по умолчанию пытаются выполнить трансляцию IP-адресов в символические имена. Так работают, например, netstat, traceroute, ipchains. Трансляцию адресов в них, впрочем, можно отключить, используя при вызове ключ -n Утилита ping, как правило, по умолчанию подобную трансляцию не выполняет. Впрочем из правила есть и исключения. О них дальше.

Посмотрим на примерах, к каким проблемам может привести некорректная настройка DNS:

1. При инсталляции Linux программа установки предложила ввести адрес DNS сервера и при этом установила в этом поле значение по умолчанию, а Вы его оставили. Или же сами ввели ip-адрес DNS-сервера и ошиблись. Теперь Вы пытаетесь зайти с клиентской машины, к примеру, по ftp. Программа ftp-server пытается определить имя машины клиента. Допустим, в /etc/hosts его нет. Тогда она пытается использовать DNS. Шлет запрос к серверу на несуществующий IP-адрес, ждет... снова шлет запрос... снова ждет... наконец понимает, что больше пытаться не стоит, пишет в лог, что установлено соединение с таким-то ip-адресом. Все, теперь можно работать, но задержку в минуту - две таким образом вполне можно поиметь! При этом, что характерно, если на этой же машине запустить apache, то с ним клиенты будут работать без проблем. А если,скажем, после установки соединения с клиентом вызвать, например, netstat -a, то утилита отработает с изрядной задержкой. Все по той же причине - утилита долго и безуспешно будет пытаться определить символическое имя клиента. А вызов netstat -a -n отработает без всяких задержек. (Это, пожалуй, самый простой случай)

2. Вариация на тему: DNS задан правильно, но вот сетевое соединение между нашим сервером и сервером DNS ненадежное, пакетики теряются. Тот же результат.

3. Более сложная ситуация: корпоративная сеть со шлюзом для выхода в интернет. В сети две основные части: небольшая "демилитаризованная зона" с реальными IP-адресами и "внутренняя" с IP-адресами из диапазона private address space согласно RFC 1597. На стыке этих двух частей машина proxy и e-mail сервер. Она же - DNS-сервер для "демилитаризованной зоны" и кэширующий DNS-сервер для интернет. Используя собственный DNS, эта машина успешно разрешает в символические имена IP-адреса интернет-диапазона. А вот про адреса "внутренней" части сети система DNS "не знает". Тут картина будет более сложной, поскольку DNS сервер умеет кэшировать ответы на запросы. Как положительные, так и отрицательные. А через некоторое время кэш очищается. Что же происходит? Как я понимаю, примерно следующее: При первом запросе на преобразование в символическое имя IP-адреса из "внутренней" части сети сервер пробует сам это сделать, не может, шлет запросы к корневым серверам через internet, они тоже не могут... все это занимает значительное время и пользователь на машине-клиенте имеет изрядную задержку. Но отрицательный ответ кэшируется, и пока кэш не очищен, задержка при повторном обращении становится маленькой. Но если работает одновременно несколько клиентов, то может оказаться, что в момент повторного запроса DNS сервер будет обрабатывать другой "неразрешимый" запрос... Вобщем, получается крайне неприятная ситуация с "плавающей" ошибкой. Соединение устанавливается то быстро, то медленно и никакой разумной закономерности установить не удается.


 
Ega23 ©   (2004-07-05 15:53) [4]

Реальная история, кстати... Сколько я времени потратил, пока понял, в чем дело... врагу такого не пожелаю. Вылечил, кстати, очень просто. Для всех машин "внутренней" части сети были созданы фиктивные записи в файле /etc/hosts сервера.Примерно так:
172.16.1.1 pc01.l1
172.16.1.2 pc02.l1
172.16.1.3 pc03.l1
Можно было бы, конечно, прописать и реальные имена. Для удобства чтения логов.

Примечание: после написания первого варианта статьи я получил письма, в которых предлагаются другие варианты решения этой проблемы без использования /etc/hosts. Я попробую их на практике, а потом опишу.

4. Особенности конкретных дистрибутивов. В Black Cat Linux 6.2 (наверно и в Red Hat 6.2, соответственно) утилита ping по умолчанию пытается произвести трансляцию IP-адреса в символическое имя. Отменяется трансляция ключом -n (справедливости ради скажу, что с ftp можно скачать обновленную версию пакета, в которой эта особенность ликвидирована) Подвисание такого ping может означать не отсутствие связи с проверяемой машиной, а проблему с трансляцией ее IP-адреса в символическое имя. Попытка диагностирования проблем в сети с помощью такого ping"а легко может поставить администратора в тупик. (Ну что можно сказать по поводу подобной "доработки" ping? Воистину "благими намерениями вымощена дорога в ад")

Приведенные примеры показывают: к DNS нельзя относиться пренебрежительно.
Если на сервере включено использование DNS, то следует внимательно следить, чтобы ip-адреса всех машин-клиентов тем или иным способом разрешались в имена.
Несоблюдение этого принципа может привести к серьезным проблемам.

Что читать по поводу настройки DNS:

1. RTFM: man named, man named.conf, man resolver, man nslookup, man dig
2. Книги. Я пользовался книгой "UNIX: руководство системного администратора"
Эви Немет, Гарт Снайдер, Скотт Сиббас, Трент Р. Хейн Пер. с англ. К.: BHV, 1997 Второе издание
3. Ресурсы интернет, которые я использовал:
Статьи в Онлайновом журнале UNIXOiD:

     Имена Интернет
     Описание конфигурации BIND-8
     Реализация виртуальных почтовых доменов

Статьи Дмитрия Карпова - Postmaster"а МИСиС

     Служба доменных имен
     Пример настройки DNS сервера

Статьи в журнале LAN

     1999 г. номер 12 - BIND 8 на марше
     1997г. номер 2 - Система доменов Internet
     1997г. номер 3 - Настройка серверов имен DNS

Благодарности

Когда я разбирался с проблемой, описанной в п.3,мне помогли:
Russu V.F., router (список рассылки Black Cat),
Inna Antioufeeva (личная переписка)
Alexandr Kravchenko, Andrew Farmakovsky(список рассылки MLUG)
При написании версии 0.2 были учтены замечания:
Andrey Chesnokov, Василий Макаров, Golovin Dmitry
Спасибо!


 
MacroDenS ©   (2004-07-05 15:53) [5]

Domain Name System


 
syte_ser78 ©   (2004-07-05 15:55) [6]

Спасибо!!!!



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.058 c
3-1088139310
nik7777
2004-06-25 08:55
2004.07.25
Репликация между серверами FireBird 1.0.2


8-1084047654
ser_ega
2004-05-09 00:20
2004.07.25
Проиграть звук


4-1086812030
Sanek_metaller
2004-06-10 00:13
2004.07.25
Handle Пуска


4-1086851399
химик
2004-06-10 11:09
2004.07.25
Перехват печати на принтер


14-1088593848
Piter
2004-06-30 15:10
2004.07.25
Дремучие тормозят





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский