- Почтовая сеть>
- 8. Упражнение — система DNS
- Цели учений
- Ручная трансляция имени в IP-адрес и преобразование
- Узнайте, как рекурсивно преобразовать имя в IP-адрес
- Запросы к DNS-серверу
- Конфигурация преобразователя
- Захват и проверка пакетов DNS-запросов
- Конфигурация DNS-сервера
- Напишите программу, похожую на resolveip
Почтовая сеть>
8. Упражнение — система DNS
Цели учений
- Ручной перевод имени в IP-адрес и преобразование.
- Узнайте метод рекурсивного перевода имени на IP-адрес.
- Запросы к DNS-серверу.
- Конфигурация преобразователя.
- Захват и проверка пакетов DNS-запросов.
- Конфигурация DNS-сервера.
- Напишите эквивалент разрешения .
Ручная трансляция имени в IP-адрес и преобразование
Программу nslookup можно использовать для запроса перевода доменных имен в IP-адреса и наоборот в Linux и Windows. dnsutils (способ установки пакета в Linux был описан в 4-м упражнении). —>
В Linux можно использовать другие программы, такие как dig, host или resolveip, для запроса DNS-серверов.
Школа: Узнайте IP-адреса имен seznam.cz и google.cz.
Обведите: Для IP-адреса 158.194.80.13 узнайте имя.
Узнайте, как рекурсивно преобразовать имя в IP-адрес
Процесс рекурсивного преобразования имени в IP-адрес описан на слайдах к 8-й презентации.
Школа: Объясните полную процедуру рекурсивного перевода некоторого имени (например, seznam.cz) с узла в каком-либо домене (например, Gklad inf.upol.cz).
Запросы к DNS-серверу
DNS-серверы управляют различными типами записей. Например, записи A содержат ассоциацию имени с адресом IPv4, AAAA то же самое для IPv6, записи MX содержат имена почтовых серверов для домена и числа, представляющие его приоритет, CNAME содержит псевдонимы имен для других имен, NS содержит имя авторитетного сервера имен для домена, PTR указывает на каноническое имя, используется для обратной трансляции IP-адреса, SOA указывает на авторитетные записи DNS и т. д.
Другие типы могут быть перечисленынайти в Википедии.
Школа: Используйте nslookup или dig, чтобы найти имя и IP-адрес почтового сервера для домена upol.cz, псевдоним для www.post.cz, IPv6-адрес для сервера OpenDNS 208.67. .222.222 ipv6.google.com.
Ручной перевод имени в IP-адрес и преобразование, Выяснение метода рекурсивного преобразования имени в IP-адрес и Запросы к DNS-серверу за 1 балл.
Конфигурация преобразователя
IP-адреса можно получить, запросив DNS-сервер, или их можно ввести локально в файле конфигурации операционной системы.
Файл /etc/hosts используется в Linux для локальной связи имени с IP-адресом. В Windows это файл C:\WINDOWS\system32\drivers\etc\hosts. Оба эти файла имеют одинаковый синтаксис. Каждая строка представляет одну связь IP-адреса с именем.
DNS-серверы, которые ОС может запрашивать для преобразования имен, можно настроить в Windows с помощью диалогового окна интерфейсов.
В Linux для этой цели служит файл /etc/resolv.conf. В нем можно задать DNS-серверы, а затем домен, в котором будут искать неполные имена.
Школа: Локально связать какое-либо имя с IP-адресом некоторого сервера. Пример IP-адреса www.seznam.cz с адресом najdu-tam-co-neznam.cz.
Курс: В Linux и Windows сбросьте DNS, чтобы ОС запрашивала сервер OpenDNS с адресами 208.67.222.222 для основного сервера и 208.67.220.220 для вторичного сервера..
Захват и проверка пакетов DNS-запросов
Запросы и ответы DNS имеют следующую структуру.
Раунд: Соберите DNS-запрос и ответы и опишите не менее 4 элементов в его заголовке.
Школа: Опишите отдельные части тела запроса DNS.
Конфигурация резолвера и захват и проверка пакетов DNS-запросов оцениваются в 1 балл.
Конфигурация DNS-сервера
В Linux Bind можно использовать в качестве DNS-сервера. В дистрибутиве Debian GNU/Linux его можно установить с помощью команды:
Его файлы конфигурации находятся в /etc/bind/. Новый test.local можно добавить, указав следующую конфигурацию в файле named.conf.local в /etc/bind/ :
Конфигурация этого изменения для прямой трансляции выполняется в файле /etc/bind/db.test.local. Минимальная конфигурация выглядит так:
Настройка обратной трансляции производится в файле /etc/bind/db.10.1.70. Минимальная конфигурация выглядит так:
Наконец, необходимо перезапустить Bind, чтобы изменения вступили в силу. Это делается с помощью команды /etc/init.d/bind9 restart .
Дополнительную информацию можно найти, например, в статье о DNS на сайте Abclinux или здесь.
Округление (для 0,75 балла): В Linux создайте test.local для подсети 10.1.L.0 (где L — последнее слово из IP-адреса хост-компьютера) и в Configure хотя бы одну запись A и одну запись CNAME и установить для этих записей обратный перевод.
В Windows сначала необходимо установить службу DNS. Это можно найти в разделе Добавить роли .
Следующая процедура описана здесь. Хотя это и для сервера Windows 2003, та же процедура применима и для сервера Windows 2008
.
Раунд (по 0,75 балла): В Windows создать локальную группу для подсети 10.1.L.0 (где L — последнее слово от IP-адреса хост-машины) и настроить не менее одну запись A и одну запись CNAME и установить обратный перевод для этих записей.
Напишите программу, похожую на resolveip
Раунд (по 0,5 балла): Prowindows и Linux пишут альтернативу программе resolveip с синтаксисом Г:
где имя1, имя2, . это имена.
Для каждого введенного таким образом имени программа выполняет:
- официальное название
- альтернативные имена (псевдонимы)
- Пара IP-адресов –> имя, полученное обратной трансляцией этого IP-адреса
Пример запроса:
ответ может выглядеть так:
Для реализации вам потребуются структуры hostent и in_addr и дополнительные функции:
- struct hostent *gethostbyname(const char *name);
- struct hostent *gethostbyaddr(const char *addr, int len, int type);
- char *inet_ntoa(struct in_addr in);
А для Windows версии есть структура WSADATA и функция int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); .
Дополнительную информацию можно найти на сервере Builder.cz:
Данный сайт создан при поддержке гранта ФРВЕ 1358/2010/F1a.