Що таке DNS і IP-адреса і як це працює?
У двох словах про DNS: що це таке, як працює система доменних імен і як вирішити питання повільного інтернету з поточним DNS-сервером.
Що таке DNS?
Поняття DNS розшифровується як Domain Name System, або, по-російськи, Система Доменних Імен. Даний інструмент використовується як засіб перетворення доменних імен в IP-адреси в момент відправлення запиту на сервер. І на додаток до основного функціоналу, DNS є сховищем цих обмінних даних.
Узагальнивши, DNS можна розглядати як регістр відвідуваності різних веб-сайтів. У ньому зберігаються доменні імена і їх IP (Internet Protocol).
Історія DNS
Витоки DNS беруть свій початок у часи ARPANET, коли база даних інтернету складалася всього з декількох комп’ютерів. У ній був присутній текстовий файл “hosts.txt”, який підтримувався Стенфордським науково-дослідним інститутом і використовувався для зберігання інформації і спілкування між усіма існуючими ПК.
Трохи пізніше, в 1983 році, Джон Постел звернувся до Пола Мокапетріс з ідеєю створення чогось схожого на те, яким ми зараз бачимо DNS. Результатом роботи стала служба BIND для машин Unix (Berkeley Internet Name Domain, 1984р), спроектована чотирма студентами: Дугласом Террі, Марком Пейнтера, Девідом Ріггл і Сонгняном Чжоу. У 1985 році був здійснений перехід на мультіплатформа і почалося формування DNS вже у всіма відомій Windows.
Принцип роботи DNS
Найпростіший спосіб пояснити принцип роботи DNS – провести паралель. І немає кращого паралелі, ніж модель функціонування готелю.
Уявіть, що вам потрібно відвідати друга в готелі. Ваші наступні дії? Ви набираєте номер ресепшена і питаєте у адміністратора номер кімнати одного. Для цього обов’язково потрібно назвати його ім’я, щоб адміністратор міг знайти вашого товариша в базі даних і зателефонувати йому з оповіщенням, тим самим дізнавшись доступний він чи ні.
Проводячи паралель готелю з DNS, ми отримуємо наступну картину: ви – клієнт, який посилає запит на DNS сервер, який є адміністратором; клієнт надає інформацію щодо імені товариша – це доменне ім’я, і номер його кімнати – IP-адреса.
Грубо кажучи, коли ви набираєте в браузері адресу сайту, браузер посилає запит на DNS-сервер і перевіряє чи зареєстрована ім’я в базі даних. Отримавши позитивний результат, сервер відповідає вам IP-адресою сайту, до якого ви намагаєтеся отримати доступ. Умовний вид IP-адреси: 123.456.789.10 .
Поглиблюємо знання. Доменне ім’я та IP-адреса
Для прикладу розглянемо доменне ім’я www.google.com . Схема идентифицирования адрес працює за принципом “справа-наліво”. На самому початку DNS-сервер проаналізує домен, який в даному випадку носить назву com , що означає commercial або, по-російськи, комерційний . Такий домен належить до доменів верхнього рівня. Далі проводиться робота над google , який є Субдоменів (піддомен). Точка ж використовується для поділу доменів від субдоменів. Повне доменне ім’я може складатися з 253 символів.
Якщо вам раптом знадобиться дізнатися доменне ім’я, зареєстроване на певний IP-адреса, робота буде знову проходити через DNS-сервер. Наприклад, ви відправили IP-адреса 31.13.79.246 . Спочатку сервер обробить цифри 31 , потім 13 , 79 і нарешті 246 , на яких він визначить, що IP-адреса належить ресурсу www.fb.com .
У DNS існує своя ієрархічна структура. Чимось вона може нагадати біологічну, але все ж вона комп’ютерна та тут є певні відмінності. У комп’ютерних структурах даних існує древо, в якому адреса 31 займає верхню позицію і є первинним доменом ; адреси же 13, 79 і 246 є послідовними субдоменами . Будучи завершальним ланцюжок, номер 246 є адреса серверної машини на якій розташований ресурс www.fb.com .
Еволюція DNS
На старті розвитку, основний файл бази даних підтримувався головним сервером, який вимагав ручного поновлення після кожного нового запиту і далі відбувалося копіювання отриманої інформації на інші сервера. З ростом кількості сайтів навантаження зростала і незабаром головний сервер почав втрачати свою ефективність і постало гостре питання автоматизації процесу. Це і стало стартом розвитку DNS.
Наприклад, якщо ви створюєте свій веб-сайт, тепер буде потрібно всього 24 години, щоб він зайняв своє почесне місце в базах даних DNS.
В процесі розвитку розробники ввели систему спілкування серверів “Начальник – Підлеглий”. У ній головний сервер веде базу даних, а сервер-підлеглий зайнятий лише копіюванням її інформацією, підтримуючи можливість своєчасного оновлення. Для полегшення динамічних апдейтів ввели механізми NOTIFY і IXFR .
У NOTIFY, коли головний сервер оновлює базу даних, він посилає повідомлення підлеглим серверам, які потім копіюють всю інформацію. IXFR ж усуває необхідність копіювання всієї БД кожен раз при створенні нових записів. Це істотно прискорює динамічний процес оновлення.
Алгоритми поведінки DNS
Як ми говорили в попередніх статтях, DNS проводить перетворення доменних імен в IP-адреси в момент відправлення запиту на сервер. Способів таких перетворень існує два: рекурсивний і ітеративний.
- Рекурсивний:
В цьому випадку відбувається повне перетворення імені в IP-адресу. Якщо в DNS присутня інформація про ресурс і можливості доступу до нього, він відповість клієнтові позитивно. Якщо ж DNS не знаходить потрібної інформації, то він переходить до ітеративним запитам. - Ітеративний:
В даному випадку відбувається перетворення тільки частини імені. Наприклад, у випадку з сайтом www.google.com , спочатку DNS виконує запит до сервера домена com , а потім тільки до поддомену google . Тобто, відбувається поступова обробка інформації.
DNS кеш
Відмінною особливістю DNS є можливість зберігання запитів у вигляді кешу. Це дозволяє скоротити час відповіді, якщо який-небудь інший сервер здійснює аналогічний запит і підвищує навантаження на мережу. Час протягом якого інформація кеша залишається дійсною, задається адміністратором сайту індивідуально.
Вразливості DNS
Як і будь-яка інша система чи служба, DNS також має свої уразливості.
- Отруєння кеша DNS:
Дана уразливість виражається в підробці DNS. Вона часто використовується зловмисниками для зміни даних кеша і правильності розпізнавання IP-адрес. Таким чином користувач може бути переадресовано на шкідливий сайт, де згодом може отримати вірус на свій комп’ютер. - Фішингові атаки:
Такі атаки можуть бути сплановані за рахунок візуального подібності деяких символів на екрані користувача. Наприклад, буква б і цифра 6 виглядають однаково, користувач клацає на них і отримує переадресацію на шкідливий сайт.
Використання призначених для користувача DNS-серверів
У деяких випадках DNS-сервер втрачає свою продуктивність і відкриття сторінок тих чи інших сайтів займає цілу вічність. В цьому випадку є сенс задуматися над використанням призначених для користувача DNS.
Популярні DNS сервера
Google Public DNS:
Пошуковий гігант Google встановив кілька серйозних серверів, здатних одночасно обробляти багатомільйонне кількість запитів. Більш того, вони абсолютно безкоштовні і доступні кожному користувачеві.
8.8.8.8 і 8.8.4.4
OpenDNS:
Це приватна компанія, що надає безкоштовні і надійні DNS-сервера.
208.67.222.222 і 208.67.220.220
висновок
DNS – це важливий посередник між користувачем і сервером ресурсу. Без нього не було б можливо інтернет-підключення зовсім, адже всієї інформації в мережі потрібна якась база даних, яка змогла б обробляти багатомільйонний потік користувачів. Це та сама непомітна частинка, яка допомагає нам вберегтися від хаосу.