Чи можливо, що одне доменне ім'я має кілька відповідних IP-адрес?


86

Наприклад, коли ми підключаємось до www.example.com, спочатку намагаємось підключитися до 192.0.2.1. І якщо перша спроба не вдається, тоді ми намагаємось 192.0.2.222.

Це можливо? Чи можемо ми зареєструвати кілька резервних IP-адрес для одного доменного імені?


Це точно не спрацює таким чином (з Round-Robin). Якщо ви запитуєте хост кілька разів, це поверне вам різні IP-адреси кожного разу, коли ви робите запит, а не лише тоді, коли хост не працює.
karatedog

@karatedog, я припускав, що підключення до сокета спробує підключитися до наступного IP, якщо не вдасться підключитися до першого
Akash Kava

4
@AkashKava: Одне з’єднання має кілька внутрішніх етапів. Спрощено: додаток запитує DNS і отримує IP-адресу. Потім він підключається до цієї IP-адреси. Якщо це з'єднання не вдасться, програма не повернеться до першого кроку і знову запитає DNS, лише якщо це явно закодовано. І багаторазовий запит DNS-сервера необов’язково дає вам різну IP-адресу. Отже, коротко, запасний DNS не можна використовувати для балансування навантаження.
karatedog

чи можемо ми використовувати цю техніку для масштабування кількох балансирів навантаження?
Vikas Verma,

Відповіді:


62

Це круговий DNS. Це досить просте рішення для балансування навантаження. Зазвичай DNS-сервери обертають / перетасовують записи DNS для кожного вхідного запиту DNS. На жаль, це не реальне рішення для відмови. Якщо один із серверів вийде з ладу, деякі відвідувачі все одно будуть спрямовані на цей невдалий сервер.


3
Це залежить від ваших очікувань щодо часу відновлення. Якщо надана послуга може не працювати протягом декількох секунд або хвилин, ви можете відповідно оновити DNS (наприклад, видалити IP-адреси невдалих систем). Якщо це не прийнятно, DNS не може вам допомогти, і вам доведеться використовувати балансування навантаження та мережеву структуру високої доступності.
Йенс Бредлер,

Чи знаєте ви, як клієнт вибирає свій ip зі списку? Це випадковий вибір чи клієнт повинен вибрати перший із списку? Тому що в першому випадку раунд / Робін не дуже корисний.
Тобія

Завданням DNS-сервера є перетасовка або обертання записів. Більшість клієнтів використовуватимуть лише перший запис. Наприклад, Bind9 можна налаштувати для застосування різних впорядкувань до цього типу набору записів: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler

чи можемо ми використовувати цю техніку для масштабування кількох балансирів навантаження?
Вікас Верма

45

Ти можеш це зробити. Це те, що роблять і великі хлопці.

Перший запит:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Наступний запит:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Як бачите, список IP-адрес обертався навколо, але відносний порядок між двома IP-адресами залишався незмінним.

Оновлення: Я бачу кілька коментарів, які хваляться про те, як DNS-перебіг не зручний для відмов, тому ось короткий зміст: DNS не для відмови. Тож це, очевидно, не годиться для відмови. Він ніколи не був розроблений для вирішення проблеми.


1
Ми повинні ввімкнути щось для роботи цього Round Robin, або це робиться автоматично кожним DNS-сервером? У мене є один Linux і один MS DNS.
Акаш Кава,

3
Чому Google робить це, якщо це не стосується відмов?
Джозеф Персі

12
@JosephPersie: оскільки DNS не використовується для відмови. Надаючи кілька IP-адрес одному і тому ж імені домену, вхідні запити просто розподіляються між серверами, які прослуховують ці IP-адреси. Подумайте про це як про баланс навантаження першого рівня, без перевірки стану серверної системи. Це вам не потрібно, якщо у вас немає тисяч серверів :-)
karatedog

що відбувається, коли балансир навантаження не працює і запит пересилається на той самий балансир?
Jitendra Vispute,

1
@JitendraVispute: DNS не знає про послугу за IP-адресою, яку вона повертає. Коротше кажучи, якщо за IP-адресою, яку щойно повернув сервер DNS, стоїть непрацюючий сервер або непрацююча служба, запит на цю IP не вдасться виконати.
karatedog

2

Так, це можливо, проте не зручно, як сказав Єнс. Використання балансирів навантаження наступного покоління, таких як Alteon, який використовує фірмовий протокол DSSP (Розподілений протокол стану сайту), який виконує регулярні перевірки сайтів, щоб переконатися, що послуга доступна як локально, так і глобально, тобто в різних географічних районах. Однак вам потрібно у своєму головному DNS делегувати URL-адресу або Службу пристрою, налаштувавши її як Повноважний сервер імен для цієї IP-адреси або Служби. Роблячи це, пристрій відповідає на запити DNS, де він вирішить IP, який має службу Round-Robin або не перевантажений відповідно до того, як ви вибрали з кількох показників.


1
Це звучить як реклама більше, ніж будь-що інше, і балансувачі навантаження не є зоряними виконавцями у світі DNS (щодо специфікації). А якщо бути точнішим: «у вашому Master DNS для делегування URL-адреси або служби» немає поняття URL-адреси або служби на серверах імен / DNS, коли ви делегуєте делегувати зону (домен) іншим серверам імен. "як авторитетний сервер імен для цього IP або послуги." отже, сервери імен є повноважними для зон / доменів, а не для IP-адрес або послуг.
Патрік Мевзек,

З робочого моменту вони справді працюють, фактичним стандартом для всіх CDN було використання балансирів навантаження для ефективної передачі цього, оскільки вони можуть поєднувати розширені функції, такі як GEO-LOCATION, для надання IP-адрес, які навіть є поблизу для сервера, який чудово реагує серед інших показників.
Езра А. Мосомі,

1
І вони одночасно вводять багато проблем. Ніякої срібної кулі, все має особливості та недоліки. Будь-який сервер імен може робити геолокацію та відповідати з різними IP-адресами на основі клієнта, для цього не потрібні балансири навантаження. Існує навіть стандарт, який допомагає: клієнтська підмережа EDNS.
Патрік Мевзек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.