
Как работает dns-сервер
Сегодня так много компьютеров, подключенных к Интернету, что невозможно представить себе одну центральную базу данных, в которой хранились бы доменные имена всех компьютеров и соответствующие им IP-адреса. Даже, если она и существовала бы, то всё равно бы не справилась с ежеминутными изменениями, происходящими в Сети. Ведь постоянно регистрируются новые доменные имена и выделяются новые IP-адреса. Поэтому DNS-служба работает, как распределённая база данных.
DNS-сервер - программа, установленная на сервере провайдера и преобразующая символьные адреса в IP-адрес.
DNS-сервер принимает запрос на конвертацию доменного имени в IP-адрес. При этом DNS-сервер выполняет следующие действия:
отвечает на запрос, выдав IP-адрес, поскольку уже знает IP-адрес запрашиваемого домена.
контактирует с другим DNS-сервером для того, чтобы найти IP-адрес запрошенного имени. Этот запрос может проходить по цепочке несколько раз.
выдает сообщение: «Я не знаю IP address домена, запрашиваемого вами, но вот IP address DNS-сервера, который знает больше меня»;
сообщает, что такой домен не существует.
Представим, что вы набрали адрес www.pc.dpt1.company.com В простейшем варианте ваш браузер контактирует с DNS-сервером для того, чтобы получить IP-адрес искомого компьютера, и DNS-сервер возвращает искомый IP-адрес (рис.2).
Рис 2. Схема выдачи
IP-адреса DNS-сервером
На практике в Сети, где объединены миллионы компьютеров, найти DNS-сервер, который знает нужную вам информацию, — это целая проблема. Иными словами, если вы ищете какой-то компьютер в Сети, то прежде всего вам необходимо найти DNS-сервер, на котором хранится нужная вам информация. При этом в поиске информации может быть задействована целая цепочка серверов. Пояснить работу DNS-серверов можно на примере, показанном на рис.3.
Предположим, что тот DNS-сервер, к которому вы обратились (на рис.3 он обозначен как DNS1), не имеет нужной информации. DNS1 начнет поиск IP-адреса с обращения к одному из корневых DNS-серверов. Корневые DNS-серверы знают IP-адреса всех DNS-серверов, отвечающих за доменные имена верхнего уровня (COM, EDU, GOV, MIL, NET, ORG и т.д.).
Например, ваш сервер DNS1 может запросить адрес у корневого DNS-сервера. Если корневой сервер не знает данного адреса, возможно, он даст ответ: «Я не знаю IP-адреса для www.pc.dpt1.company.com, но могу предоставить IP-адрес COM DNS-сервера».
После этого ваш DNS посылает запрос на COM DNS с просьбой сообщить искомый IP-адрес. Так происходит до тех пор, пока не найдется DNS-сервер, который выдаст нужную информацию.
Рис.3 Схема работы DNS-серверов
Одна из причин, по которой система работает надежно, — это ее избыточность. Существует множество DNS-серверов на каждом уровне, и поэтому, если один из них не может дать ответ, наверняка существует другой, на котором есть необходимая вам информация. Другая технология, которая делает поиск более быстрым, — это система кэширования. Как только DNS-сервер выполняет запрос, он кэширует полученный IP-адрес. Однажды сделав запрос на корневой DNS и получив адрес DNS-сервера, обслуживающего COM-домены, в следующий раз он уже не должен будет повторно обращаться с подобным запросом. Подобное кэширование происходит с каждым запросом, что постепенно оптимизирует скорость работы системы. Несмотря на то, что пользователям работа DNS-сервера не видна, эти серверы каждый день выполняют миллиарды запросов, обеспечивая работу миллионов пользователей.
URL-адреса
Каждый ресурс сети Интернет имеет свой адрес – уникальный идентификатор, называемый URL-адресом (URL – Uniform Resource Locator).
Синтаксис адреса включает способ доступа к узлу, имя узла DNS, указатели местоположения требуемого ресурса. Разделяются составные части URL-адреса наклонной чертой.
Пример URL-адреса: http://www.read.at/poezia - библиотека русской классической поэзии
При написании URL-адреса важно правильно указывать верхние и нижние регистры. Дело в том, что Web-серверы работают под управлением разных операционных систем, а в некоторых из них имена файлов являются регистрочувствительными (ОС UNIX).
Общий вид формата URL-адреса
[<протокол доступа>]://<доменное имя>[:<порт>]/[<директория>/<имя ресурса>]/[<параметры запроса>]
Элементы, указанные в квадратных скобках не являются обязательными.
Первая часть URL-адреса указывает протокол доступа. Например: http:// - протокол передачи гипертекста (определяется по умолчанию), ftp:// - протокол передачи файлов.
Вторая часть URL-адреса указывает доменное имя, а также может указывать номер порта. Любой сервер имеет нумерованные порты, при этом каждая служба имеет свой номер порта. Клиенты подключаются к сервису по IP-адресу и по конкретному номеру порта: Web-сервер – доступен по порту 80, FTP-сервер – по порту 21, SMTP - по порту 25, РОР3 – по порту 110, TELNET – по порту 23 и т.д.
Если номер порта не указывается, то обращение будет происходить по умолчанию к порту 80. В приведённом выше примере можно было указать номер порта: http://www.read.at:80/poezia
Третья часть URL-адреса - это путь к файлу. Если этот путь не указан, то по умолчанию стандартным откликом на http-запрос служит вывод файла с именем index.html
Четвёртая часть URL-адреса используется в тех случаях, когда Web-сервера подгружают дополнительные приложения либо библиотеки. Эта часть может содержать параметры и переменные.
Например: http://www.abc.ru/scripts/myapplication.exe/showinfo?var1=5&var2=10
В приведённом примере производится обращение к приложению myapplication.exe, хранящемся в папке scripts, с параметром showinfo, при этом приложению передаются значения переменных var1и var2, равные 5 и 10 соответственно.