Здрастуйте, шановні читачі блогу . Про те, що таке інтернет і коли він з’явився, ми з вами вже говорили. Говорили і про те, що таке є сайти і що таке Веб. Однак, є ще і технічна сторона роботи інтернету, яка теж дуже важлива і по своєму цікава.
Так, ось DNS — це одна з основних речей, на яких побудована робота всього інтернету. Це абревіатура розшифровується як Domain Name System, що в перекладі означає доменна система імен.
Цього питання (пристрою доменної системи імен) я вже торкався, коли розповідав про те, що таке домени різного рівня і доменні зони, але лише побіжно. Сьогодні я хочу поговорити про роль ДНС-серверів в роботі сайтів і інтернету в цілому.
Навіщо потрібні DNS-сервера і що це таке?
Коли інтернет тільки формувався, то було вирішено впровадити таку річ, як домени. Фактично, це ім’я для вузла мережі (комп’ютера, сервера або в більш загальному сенсі слова — хоста).
Справа в тому, що на технологічному рівні всі пристрої в будь-якій мережі вже мають унікальні імена (ідентифікатори або IP), але вони мало підходять для використання їх людьми, бо представляють з себе набір цифр (читайте про те, що таке Айпі і MAC адреси).
Система ж доменних імен оперує вже повноцінними іменами (букви латиниці, цифри, тире та нижнє підкреслення допускається при їх формуванні). Їх набагато легше запам’ятати, вони несуть смислове навантаження (доменне ім’я мого блогу про що-то вже говорить, а реальний його Айпі 109.120.169.66 малоінформативний) і ними простіше оперувати.
Останнє відноситься саме до людського фактору, бо машин раніше зручніше використовувати IP адреси, що вони і роблять. Так, так, ваш браузер, коли ви вбиваєте в нього адресу , такої адреси насправді не знає. Але зате він розуміє, що це доменне ім’я, а значить інформацію про те, на якому IP розміщений даних сайті, він зможе отримати від DNS-сервера.
Ось саме на цих ДНС-сервери (іноді їх ще називають NS від Name Server, т. е server імен) і тримається весь інтернет (як плоский світ на трьох китах, що стоять на черепасі). Сервер, якщо ви пам’ятаєте, це просто службовий комп’ютер не вимагає особистої участі людини у своїй роботі (налаштували його — він і працює в режимі 24 на 7). І таких DNS-серверів в мережі дуже багато.
Як працює DNS і причому тут файл Hosts?
На зорі інтернету ДНС взагалі не існувало. Але як же тоді працювала мережа? Як браузер розумів, що — це те ж саме, що IP адреса 109.120.169.66? За цю справу тоді (та й зараз теж) відповідав так званий файл Hosts, де були прописані всі хости тоді ще маленького інтернету.
Такий файл перебував (перебуває) на кожному комп’ютері користувача (на вашому теж він є) підключеного до мережі (як його знайти дивіться за наведеним вище лінком).
У файлі Hosts було прописано кілька тисяч рядків (по числу сайтів в інтернеті на той момент), в кожній з яких спочатку був прописав IP адреса, а потім через пробіл відповідний йому домен. Ось так виглядала б запис для мого блогу, якби він у мережі років так двадцять п’ять — тридцять тому:
109.120.169.66
Будь-який браузер (що це таке?) на будь-якому комп’ютері (навіть зараз) при введенні в адресний рядок Url (що це таке?) насамперед звертається до файлу Hosts на предмет пошуку там введеного доменного імені, і лише не знайшовши потрібного запису звертається за цією інформацією до найближчого DNS-сервера (як правило, це сервак вашого інтернет-провайдера).
Зараз файл Hosts став рудиментом (пережитком минулого) і там зазвичай є тільки один запис (127.0.0.1
localhost) означає, що локальним хостом потрібно вважати даний комп’ютер.
Правда іноді його використовують віруси та інші шкідливі програми, щоб замість одного сайту ви потрапляли на інший (про фішинг чули?) — адже для цього достатньо додати лише одну сходинку в файл Hosts (можете самі прописати в ньому, наприклад, «109.120.169.66 yandex.ru» і замість Яндекса браузер вам буде наполегливо відкривати мій блог). Ось саме тому його цілісність охороняють більшість антивірусів.
Як ДНС-сервера допомагають браузеру орієнтуватися в мережі?
Тобто зараз усіма справами з адресацією в мережі рулять саме ДНС-сервера, хоча по своїй суті вони дуже схожі на файл Hosts, але тільки зберігаються на них дані про багатьох мільйонах адрес, так і розміщені вони віддалено.
Крім цього, NS-сервера мають ієрархічну структуру, кожен з рівнів якої відповідає за свою частину доменних зон. Ну і, звичайно ж, вони зберігають інформацію распределенно з багаторазовим резервуванням, щоб збій на одному пристрої не викликав колапс (що це таке?) частини мережі.
Ще раз поясню ланцюжок «метань» браузера при введенні в нього Урл адреси сайту. Отже, спочатку він звертається до файлу Hosts, потім до найближчого ДНС-серваку. Він же у відповідь передає потрібну інформацію (про те, який саме IP-адреса відповідає даному домену) нашу браузеру або запитує її у вищестоящого NS-сервера, якщо такої інформації в себе він не знаходить.
І лише після цього браузер звертається до самого сайту по тільки що узнанному IP адресою. Довго, правда? Але що робити? Інакше ніяк.
Правда браузер «хитрує» і зберігає всю отриману від ДНС серверів інформацію в свій кеш, щоб потім не втрачати час на ці запити з приводу IP адреси сайту. Природно, що кеш зберігається не вічно, але часто відвідувані користувачем сайти завдяки цьому в браузері будуть відкриватися швидше (кеш — це взагалі річ!).
Яку роль відіграють NS-сервера хостингу в системі DNS?
На наведеному вище малюнку показана сильно спрощена схема, за якою не дуже зрозуміла роль окремих рівнів ДНС-серверів. Трохи нижче наведена більш розгорнута схема (хоча і знову ж таки дуже спрощена).
Якщо ви власник сайту, то знаєте, що при купівлі хостингу (або отримання його безкоштовно) вам видають адреси NS-серверів (зазвичай їх два), які потрібно буде прописати у вашого реєстратора доменних (як це зробити описано трохи нижче). Наприклад, мій хостер Инфобокс видав мені дві адреси (ns1.pa.infobox.ru і ns2.pa.infobox.ru).
Питання, як ці адреси NS беруть участь у схемі визначення IP-адреси по імені домену. Власне, це показано на наведеному вище малюнку, але я все ж поясню:
Як поміняти DNS при перенесенні сайту на інший хостинг?
Саме завдяки системі розподілених серверів DNS, наприклад, при переїзді сайту на інший хостинг (а із-за цього змінюється його фактичний IP адресу, як ви розумієте) він буде доступний користувачам, як тільки нова інформація (про зміну Айпі адреси даними доменом) пропишеться у всіх ДНС інтернету (це правда може зайняти від кількох годин до кількох діб).
Нова інформація (про зміну відповідності даного домену та фізичної IP адреси сайту) в першу чергу прописується на NS-сервери вашого нового хостингу. Ви ж йдете в панель реєстратора домену (де його купували) і міняєте там адреси NS-серверів старого хостингу, на ті, що отримали від нового хостера.
Я користуюся послугами найстарішого реєстратора в рунеті і зміна NS-адрес у нього проходить так:
Те ж саме можна зробити клацнувши по назві домену (в першому стовпці) і вибравши на сторінці «Керування доменом» пункт «DNS-сервери»:
На наступній вкладці потрібно буде лише замінити старі адреси на нові і натиснути на кнопку «Змінити».
У будь-якому разі зміни вступлять в силу відразу. Лише з плином часу (потихеньку — до двох діб) вся структура ДНС-серверів пропише ці зміни і користувачі зі всіх кінців світу будуть потрапляти на ваш сайт вже живе на новому хостингу.
Зрозуміло, що на ці один-два дні (поки інформація про зміну IP адреси сайту розходиться по всій структурі доменної системи імен) на старому хостингу повинна знаходитися робоча копія сайту, щоб не було перебоїв у його роботі. До речі, не застосуєте ознайомитися з матеріалом про те, що таке віртуальні хостинг і виділений server, і що з них краще вибрати.
Удачі вам! До зустрічей на сторінках блогу