Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB4_OKM.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
149.5 Кб
Скачать

1.1.3. Формат dns-повідомлення

DNS-запит і DNS-відповідь мають однаковий формат (рис. 1).

Рис. 1. Формат DNS-повідомлення

Заголовок DNS-повідомлення має фіксований розмір (12 байтів). Поля починаючи з поля «запитання» мають змінну довжину.

Поле «ідентифікація» (біти з 0 по 15) встановлюється клієнтом і повертається сервером і служить для того, щоб клієнт міг розпізнати, на який саме запит надійшла відповідь.

Поле «прапорці» (біти з 16 по 31) мають субполя:

QR (Query Type) – тип повідомлення: 0 – запит, 1 – відповідь;

opcode (Operation Code) – код операції;

AA (Authoritative Answer) – авторитетна відповідь

TC (Truncated) – «обрізано»; якщо TC=1, то це означає, що повний розмір відповіді перевищив деякий граничний розмір;

RD (Recursion Desired) – клієнт запитує рекурсію;

RA (Recursion Available) – сервер може забезпечити рекурсію;

rcode (4 біти) – містить коди помилок. Типові значення цього субполя: 0 – помилок немає і 3 – помилка імені.

Наступні 4 16-бітні поля вказують на кількість пунктів у 4 полях змінної довжини. Типово кількість запитів рівна 1. Кількість відповідей рівна щонайменше 1.

Кожне запитання містить 3 субполя: ім’я запиту, тип запиту та клас запиту.

Ім’я запиту – це доменне ім’я. для якого, власне, і запитують інформацію. Найпоширенішим типом запиту є А, який означає, для доменного імені запитується IP-адреса. Клас запиту типово рівний 1, що вказує на адреси Internet.

Останні три поля в DNS-повідомленні (відповіді, права та додаткова інформація) в сукупності називають записом ресурсу (RR – Resource Record). Формат запису ресурсу поданий на рис. 2.

Рис. 2. Структура запису ресурсу

Ім’я домену, тип і клас – поля з таким же призначенням, що й для DNS-запиту. Поле «час життя» – це кількість секунд, протягом яких запис ресурсів може зберігатися в кеші клієнта (зазвичай два дні). Поле «довжина запису ресурсу» вказує на кількість даних ресурсу і залежить від типу. Наприклад, для типу А (запитується IP-адреса) дані ресурсу – це IP-адреса, вона займає 4 байти. Строго кажучи, у відповідь на запит клієнта для доменного імені повертається запис ресурсів (а не лише IP-адреса).

1.2. Утиліта nslookup

Утиліта nslookup є DNS-клієнтом. Вона надає користувачеві інтерфейс командного рядка для звертання до системи DNS і дозволяє задавати різні типи запитів до довільних серверів. Ця утиліта була розроблена в рамках пакета BIND, однак, тепер, вона постачається разом з операційними системами Windows.

Утиліта підтримує два режими роботи – інтерактивний та автономний (звичайний).

Для початку роботи з nslookup в інтерактивному режимі слід запустити cmd.exe (Start=>Run=>cmd) і набрати лише слово nslookup, без жодних параметрів:

Командний рядок змінює вигляд. Тепер можна вводити будь-яку з команд nslookup. Деякі (але не всі) з команд розглянуті нижче.

1). Мабуть, доцільно почати з команди help (або ?), що виведе всю інформацію про nslookup.

2). Якщо ввести будь-яке доменне ім’я повернеться інформація про нього. Приклад:

3). Можна запитати доменне ім’я у певного DNS-сервера. Приклад:

4). Команда set змінює налаштування, які визначають роботу функцій утиліти. Вона має цілий ряд параметрів. Її загальний формат: set ключове_слово[=значення] (для одних параметрів значення потрібне, для інших – ні). Нижче подано опис частини (але не всіх) параметрів команди set.

set all виводить поточні значення всіх параметрів налаштування.

set debug включає [set nodebug – відключає] режим відлагодження.

set d2 включає [а set nod2 – відключає] поглиблений режим відлагодження. При ввімкненому режимі виводяться всі поля кожного пакета. Якщо включити цю опцію і запитати доменне ім’я, будуть виведено детальну відповідь, фрагмент якої подано нижче:

Після відміни поглибленого режиму відлагодження лишиться звичайний режим відлагодження:

set domain = ім’я_домена заміняє DNS-сервер, вказаний за замовчанням, указаним іменем.

set ignore задає (а set noignore – вимикає) ігнорування помилки урізання пакетів.

set querytype=тип_запису_ресурсу змінює тип запису ресурсу для запиту (за замовчанням використовується тип А).

set port=порт заміняє порт TCP/UDP для DNS-сервера, що використовується за замовчанням (а це порт 53), на заданий порт.

set retry = встановлює кількість повторних спроб отримати відповідь на запит (за замовчанням 4 спроби). Якщо протягом вказаного періоду часу відповідь відсутня, запит повторюється, а період часу збільшується вдвічі.

set timeout=значення задає період часу (в секундах), протягом якого очікується відповідь на запит (за замовчанням 5 с).

set root=кореневий_сервер заміняє ім’я кореневого сервера, що використовується за замовчанням. Основні кореневі DNS-сервери розміщені в домені ICANN.

Якщо в процесі оброблення запиту виникне помилка, утиліта nslookup виведе одне зі стандартних повідомлень, перелічених у табл. 1.

Таблиця 1. Повідомлення про помилку утиліти nslookup

Повідомлення

Опис

Timed out

Сервер не відповів на запит протягом певного числа спроб і певного проміжку часу. Для зміни проміжків часу і числа спроб призначені команди set timeout і set retry.

No response from server

DNS-сервер не запущений на фізичному сервері.

No records

Записи про ресурси заданого типу відсутні у DNS-сервері (тип запиту можна змінити командою set querytype).

Nonexistent domain

Доменне ім’я (або ім’я комп’ютера) не існує.

Connection refused (Network is unreachable)

Неможливо підключитися до DNS-сервера або сервера служби finger.

Server failure

DNS-сервер знайшов невідповідність у своїй базі даних і через це не може дати коректну відповідь на запит.

Refused

DNS-сервер відмовився обробляти запит.

Format error

DNS-сервер виявив помилку у форматі одержаного пакета.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]