ИД "Мой компьютер"   "Игроград"   "Реальность фантастики"   Ассамблея "Портал"
Сделать стартовой   

 
Домашняя страница
Расширенный поиск
E-mail

 

N 16 (447)




МОЙ КОМПЬЮТЕР




  Новости:

 
МК
Украина
Игры
Интернет
Железо
Софт
Пресс-релизы

  Статьи:

 
Уголок читателя
Прочее
Имеющий уши
Программирование
Интернет
Железо
Софт
Игры


 
КОНКУРСЫ



Правила конкурсов

Конкурс "АВЧ"

Рейтинг победителей


ОПРОС

Вы посещаете нас:
первый раз
1-2 раза в месяц
1-2 раза в неделю
1-2 раза в день
более 2-х раз в день Что привело Вас к нам?
поиск информации
интерес к статьям
интерес к новостям
любопытство
реклама
другое








боулинг

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua




Интернет-магазин мебели Украина



Argumentum ad ignorantiam!

 

статьи
Софт

ads.mycomputer.ua

 

На правах рекламы  
Прочее  
Свободная ВаRя  
Не windows  
Windows  
Графика  
Развлечения  
Интернет  
Утилиты  
Офис  




    Не windows


Имя, адрес, профессия…

Сергей ЯРЕМЧУК
N 49 (428) 30.11.2006


Известно, что для разрешения имен сервисов в IP-адреса используется доменная служба имен DNS (Domain Name Service). Пользователь вводит в строке web-браузера адрес, например www.google.com, затем происходит запрос к одному из таких серверов, в результате чего программа получает IP-адрес удаленной системы, по которому и обращается в дальнейшем к сервису. На все про все уходит приблизительно 30–60 миллисекунд, а во время большой нагрузки даже больше, вплоть до 90. Задача в том, чтобы сократить это время, а для администратора небольшой сети — снизить нагрузку на канал.

Где Linux хранит параметры?

Напомню, что DNS-сервера прописываются в файле /etc/resolv.conf, в котором после параметра nameserver следует IP-адрес DNS-сервера, при этом обычно на первом месте ставят DNS провайдера, так как к нему обращение идет быстрее.

Также в этом файле могут присутствовать параметры domain и search. В записи domain вводится доменное имя локальной системы, а в записи search приводится список доменов на тот случай, если задается только имя. Если к какой-либо системе пользователь обращается часто, он может ввести имя домена в запись search, а затем использовать в качестве адреса только имя.

Тем, кто пользуется ADSL, следует обратить внимание на файл /etc/ppp/resolv.conf, имеющий такую же структуру. Статически адреса и соответствующие им имена узлов также можно сохранить в файле /etc/hosts, в таком виде.

Порядок работы с ними описан в /etc/host.conf. Например, запись order host bind укажет, что для разрешения адреса сначала необходимо прочитать файл hosts, а в случае отсутствия требуемой записи запросить DNS-сервер.

Наконец, в файле /etc/hostname содержится имя локальной системы. Существует 13 корневых DNS-серверов, обозначаемых буквами от А до М, на которых хранится содержимое всех зарегистрированных зон и к которым можно обращаться напрямую — их список можно получить, зайдя на http://www.root-servers.org/. Затем каждую зону (.RU, .UA и пр.) обслуживают свои сервера, и так далее. DNS-сервер, получив запрос клиента, ищет информацию в таблицах, и если не находит, обращается далее вверх. После того как получен ответ, он отсылается запрашивающему клиенту. Никто не мешает самому создать такой сервер для своих нужд, в самом низу иерархии.

Установление соответствия между именами и IP-адресами нужно не только пользователю. Большинство программ, работающих с сетью, также требуют разрешения имени, например для ведения журнала, поэтому кэширование DNS даже для небольшой сети может принести существенный прирост скорости соединений. Если вы для выхода в Интернет используете мобильный телефон с GPRS, то вам также стоит задуматься об установке кэширующего DNS. По опыту, время DNS-запроса в этом случае бывает достаточно велико, чтобы забыть о комфортной работе. К тому же при нынешних расценках на счету каждый байт, и хотя размер DNS-запроса невелик, при активном серфинге за месяц на бутылку пива себе сэкономить можно.

Если обратиться на форуме за помощью, скорее всего вам посоветуют поставить BIND (Berkeley Internet Name Domain). Эта, можно сказать, культовая программа была разработана в 80–е годы в Университете Беркли, для 4.3BSD UNIX, ее автор — Кевин Дунлар (Kevin Dunlap). Фактически DNS и вырос-то на BIND, концепция службы имен развивалась вместе с этим сервером. Дошло уже до того, что эти два понятия практически стали неразделимы. То есть, «мы говорим DNS — подразумеваем BIND». Но популярность в данном случае не пошла на пользу. Как и в случае с Sendmail, WU–FTPD и других приложениями написанными на ранних этапах развития Интернета, в BIND периодически обнаруживались серьезные уязвимости. Не то чтобы их не было в других программах, просто здесь больше всего ищут. Дошло уже дело до того, что BIND со временем получил новую расшифровку — Buggy Internet Name Daemon, в основном благодаря одноименной публикации Д. Дж. Бернстайн (D. J. Bernstein) (cr.yp.to/djbdns/blurb/unbind.html). Последняя, девятая версия BIND переписана с нуля и считается более безопасной. Но те, кто пробовал настроить BIND, наверняка отметят относительную сложность процесса.

Ну что ж, будем искать ему замену. В ответ на запрос к репозитарию Ubuntu sudo apt-cache search dns, было предложено несколько решений, в том числе Dnsmasq, о настройках которого и поговорим далее.

Возможности Dnsmasq

Dnsmasq (www.thekelleys.org.uk/dnsmasq/doc.html) является простым в настройке кэширующим DNS- и (опционально) DHCP-сервером. Разработан специально для применения в небольших, в том числе и домашних сетях, использующих NAT и соединяющихся с Интернетом посредством модема, ADSL и др. Поддерживаемые платформы: Linux, различные варианты *BSD и MacOS X. Dnsmasq включен во многие дистрибутивы Linux, в том числе в Gentoo, Debian, Slackware, SUSE, Fedora. При загрузке dnsmasq считывает информацию с файла hosts, которую будет использовать как для DNS- так и DHCP-служб. В случае использования DHCP можно dnsmasq настроить так, чтобы информация о клиентах, получивших IP, автоматически заносилась в hosts. Сервер DHCP поддерживает статический и динамический режим раздачи IP-адресов, работу с несколькими сетями.

Различают два типа серверов: сервер, умеющий хранить таблицы соответствий между именами и IP-адресами компьютеров (доменные зоны), и кэширующий (forwarding) DNS-сервер, который просто запоминает информацию и при повторном запросе выдает ее из своей памяти. Dnsmasq поддерживает оба этих режима.

Загрузить Dnsmasq можно с адреса packages.ubuntu.com/dnsmasq, или используя утилиту apt вводим следующую команду.

Если не получилось, подключите universe-репозитарии в /etc/apt/sources.list, убрав комментарии со следующих строк.

Обновите список пакетов — sudo apt-get update — и повторите установку.

Все настройки Dnsmasq производятся в файле /etc/dnsmasq.conf. Большинство параметров в нем можно не трогать, оставив как есть. Для начала снимаем знак комментария со строки.

Теперь открываем /etc/resolv.conf и добавляем следующую строку, ставя ее первой по списку, чем указываем, что сервером имен по умолчанию является локальная система.

Можно было бы на этом закончить, но есть еще некоторые нюансы. Провайдеры для раздачи IP-адресов используют DHCP — в этом случае DHCP3-клиент, получая ответ на запрос, произведет обновление файла /etc/resolv.conf и затрет нашу запись. Такой вариант нам не подходит. Поэтому дополнительно в файле /etc/dhcp3/dhclient.conf снимаем знак комментария с параметра prepend, чтобы запись приобрела такой вид.

В этом случае при получении обновления в первую строку будет вставлена запись nameserver 127.0.0.1.

Хотя если хотите, чтобы записи о некоторых DNS-серверах сохранились, можно эту строку записать и так (естественно, показываю свой случай):

Теперь все готово. Чтобы оценить время ответа, DNS-сервер будет использовать утилиту dig (domain information groper), которая используется для сбора информации от серверов имен. Параметров у dig много, но в данном случае поступим просто.

Как видите с помощью dig можно изучать правила написания файлов при создании собственной DNS-зоны. В ответ мы на запрос получили записи типа «адрес» (A, прямое преобразование) и адреса доменных серверов всех его поддоменов (записи типа NS), а также адрес DNS-сервера, который его обработал — 194.44.245.244. И в конце дано время запроса — 71 мс. Если произвести запрос повторно, то это время уменьшится до 20–30 мс.

Теперь перезапускаем dnsmasq, чтобы он смог перечитать конфигурационные файлы, и снова замеряем время ответа

Первый запрос — 20 мс, но теперь информация находится в локальном кэше. Повторяем.

Теперь поздравляем себя с успехом :-). Как видите, в позиции SERVER стоит локальный компьютер 127.0.0.1, и время ответа составляет уже 9 мс, то есть результата мы добились. Также обратите внимание на отличие в работе. В ответ на запрос dnsmasq показал только A-записи, но в нашем случае этого достаточно. Кроме того, dnsmasq может кэшировать PTR-записи обратного преобразования.

Отличия настроек для ADSL

Для соединения с Интернет я использую PPPoE; для корректной работы dnsmasq в этом случае требуется проделать еще несколько шагов, иначе при обновлении файлов вся информация затрется. Для начала создадим для dnsmasq, используя /etc/resolv.conf — отдельный файл с DNS-настройками:

Теперь в /etc/dnsmasq.conf в параметре resolv-file пропишем этот файл:

В /etc/resolv.conf оставляем только:

Так как ADSL использует свой resolv.conf, заменяем и его тоже.

И наконец, в файле настроек ADSL-соединения /etc/ppp/peers/dsl-provider запретим обновлять resolv.conf, комментируя следующую линию:

Перезапускаем dnsmasq, соединяемся с Интернет — pon dsl-provider — и наслаждаемся быстрой работой.

В принципе, все. DHCP-сервер не более сложен в настройке, при необходимости разберетесь сами. А если все же dnsmasq показался вам достаточно сложным, попробуйте nscd (Name Service Cache Daemon), который настроить еще проще. Dnsmasq имеет один некритичный недостаток: после перезагрузки он потеряет всю информацию, и процесс наполнения локального кэша начнется сначала. Если вас это не устраивает, если вы хотите кэш сохранять, попробуйте pdnsd — в нем эта функциональность предусмотрена.

Linux forever!

ads.mycomputer.ua






Расширенный поиск 
 

О проекте  Рекламодателям  Карта сайта  Контакт  Обратная связь 

© ИД "Мой компьютер"®, 1998-2004