Кілька записів A, що вказують на один і той же домен, здається, використовуються майже виключно для реалізації DNS Round Robin як дешевої техніки балансування навантаження.
Зазвичай попередження проти DNS RR полягає в тому, що це не добре для високої доступності. Коли 1 IP знизиться, клієнти продовжуватимуть його використовувати протягом декількох хвилин.
Балансир навантаження часто пропонується як кращий вибір.
Обидві претензії не зовсім вірні:
Якщо трафік становить HTTP, то більшість браузерів HTML може автоматично спробувати наступний запис A, якщо попередній знижений, без нового пошуку DNS. Прочитайте тут главу 3.1 та тут .
Якщо тоді задіяно кілька центрів обробки даних, DNS RR - єдиний варіант розподілу трафіку по них.
Отже, чи правда, що при безлічі центрів обробки даних та трафіку HTTP використання DNS RR є ТІЛЬКИМ способом забезпечити миттєвий збій, коли один центр обробки даних знижується?
Дякую,
Валентино
Редагувати:
- Звичайно, кожен центр обробки даних має місцевий балансир завантаження з гарячими запасами.
- Добре пожертвувати спорідненістю сеансу для миттєвого відмови.
- AFAIK є єдиним способом для DNS запропонувати центр обробки даних, а не інший - відповісти лише на IP (або IP-адреси), пов'язані з цим центром обробки даних. Якщо центр обробки даних стає недоступним, всі ці IP-адреси також недоступні. Це означає, що навіть якщо розумні веб-браузери можуть миттєво спробувати інший запис A, всі спроби закінчуються, доки не закінчиться запис локального кешу і не буде виконано нове пошуку DNS, отримавши нові робочі IP-адреси (я припускаю, що DNS автоматично пропонує новий центр обробки даних, коли один вийшов з ладу). Отже, "розумний DNS" не може забезпечити миттєвий вихід з ладу.
- І навпаки, DNS-круговик дозволяє це. Коли один центр обробки даних виходить з ладу, розумні браузери HTML (більшість із них) миттєво спробують інші кешовані записи A перейти до іншого (робочого) центру обробки даних. Так, DNS-круїн не забезпечує спорідненість сеансу або найнижчу RTT, але, здається, це єдиний спосіб забезпечити миттєвий збій, коли клієнти "розумні" браузери HTML.
Редагувати 2:
- Деякі люди пропонують TCP Anycast як остаточне рішення. У цій роботі (глава 6) пояснено, що провал Anycast пов'язаний з конвергенцією BGP. З цієї причини Anycast може зайняти від 15 хвилин до 20 секунд для завершення. 20 мереж можливі в мережах, де для цього була оптимізована топологія. Можливо, просто оператори CDN можуть надати такі швидкі збої.
Редагувати 3: *
- Я зробив кілька DNS-оглядів і traceroutes (можливо, хтось експерт може перевірити) і:
- Єдиним CDN, що використовує TCP Anycast, здається, є CacheFly, інші оператори, такі як мережі CDN та BitGravity, використовують CacheFly. Здається, їх краї не можна використовувати як зворотні проксі. Тому їх не можна використовувати для надання миттєвої відмови.
- Akamai та LimeLight, здається, використовують геоінформаційний DNS. Але! Вони повертають кілька записів A. З traceroutes видається, що повернені IP-адреси знаходяться в одному центрі обробки даних. Отже, я спантеличений тим, як вони можуть запропонувати 100% SLA, коли один центр обробки даних знизиться.