Two A records for one domain

User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Two A records for one domain

Post by Privet »

Допустим, у меня две таких записи в DNS:

Code: Select all

forum.privet.com     7200     50.34.85.11
forum.privet.com     7200     1.2.3.4
Что будет, если один IP не работает?

С чем связан вопрос.
Мне придётся поменять IP. Возможно, я узнаю IP до реального переключения. Я хочу сразу сделать запись для нового IP в надежде, что к моменту переключения эта запись распространится и произойдёт гладкий, незаметный для участников переход на новый IP.
Будет это работать как я ожидаю или возникнут проблемы сразу, как запись начнёт распространятся?
Есть другой вариант или я должен сделать что-то ещё?
Привет.
Loyder
Новичок
Posts: 82
Joined: 18 Feb 2007 20:50
Location: Moscow

Re: Two A records for one domain

Post by Loyder »

Мое понимание следующее: dns клиент будет разрешать имя в один из адресов случайным образом. Соотвественно, если один из адресов будет недоступен - то в части случаев - сайт окажется недоступен со стороны пользователя.
Я бы пошел другим путем: заранее сократил бы ttl с текущих 7200 секунд до, например, 60 секунд. (это означает максимальное время кеширования этой записи - 60 секунд, после этого она должна быть обновлена. То есть теоретически максимальное время недоступности должно быть не более 60 секунд)
После переключения на новый адрес - увеличил бы ttl до прежнего значения.
Это не решит проблему "кривых" dns серверов, которые считают себя в праве изменять ttl как они считают нужным. Но для корректно работающих dns серверов это должно быть нормально.
User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Two A records for one domain

Post by Privet »

Loyder wrote: 30 Sep 2018 00:26 Мое понимание следующее: dns клиент будет разрешать имя в один из адресов случайным образом. ..
Мда... Чего-то подобного я и опасался. Спасибо за совет!
Привет.
User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Two A records for one domain

Post by Privet »

Однако, я для теста создал две записи на один домен. Запись меня уже достигла. Всё работает. Нужно несколько клиентов с разных IP?
Привет.
Loyder
Новичок
Posts: 82
Joined: 18 Feb 2007 20:50
Location: Moscow

Re: Two A records for one domain

Post by Loyder »

Privet wrote: 30 Sep 2018 02:25 Однако, я для теста создал две записи на один домен. Запись меня уже достигла. Всё работает. Нужно несколько клиентов с разных IP?
Почитал подробнее про это. Современные броузеры получают все записи A, и при недоступности одной - пробуют другую. При этом есть некая задержка между попытками (порядка 30 секунд), плюс производится кеширование успешных/неуспешных адресов.
Как это будет работать в случае прокси серверов - наверное, зависит от того, будет ли разрешение имени в адрес производится на стороне клиента, или же на прокси.
В случае не броузеров, а каких-нибудь скриптов, java приложений - все будет зависеть от реализации.
То есть получается что для конечных пользователей, которые подключаются из броузера напрямую - должен этот механизм работать.

Для проверки локально - я бы убедился, что один из адресов - точно не доступен. И после этого несколько раз пытался бы открыть страницу (после каждой попытки полностью перезапуская броузер). Задержку в 30 секунд - должно быть видно визуально.
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Re: Two A records for one domain

Post by Palych »

Loyder wrote: 30 Sep 2018 12:02 Почитал подробнее про это. Современные броузеры получают все записи A, и при недоступности одной - пробуют другую. При этом есть некая задержка между попытками (порядка 30 секунд), плюс производится кеширование успешных/неуспешных адресов.
Интересно, я всегда считал что там тупо round robin работает...
А что там пишут про порядок адресов? Точнее - выбор первого адреса?
Loyder
Новичок
Posts: 82
Joined: 18 Feb 2007 20:50
Location: Moscow

Re: Two A records for one domain

Post by Loyder »

Palych wrote: 30 Sep 2018 17:37 А что там пишут про порядок адресов? Точнее - выбор первого адреса?
Неплохо вот здесь расписано https://webmasters.stackexchange.com/qu ... e-than-one
Броузеры используют функцию getaddrinfo, которая возвращает полный список A записей (gethostbyname - возвращает один адрес). Насколько понимаю, выбор первого адреса зависит от конкретной реализации. Далее, если адрес работающий - он кешируется, и дальнейшее обращение производится по нему.
User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Two A records for one domain

Post by Privet »

Palych wrote: 30 Sep 2018 17:37
Loyder wrote: 30 Sep 2018 12:02 Почитал подробнее про это. Современные броузеры получают все записи A, и при недоступности одной - пробуют другую. При этом есть некая задержка между попытками (порядка 30 секунд), плюс производится кеширование успешных/неуспешных адресов.
Интересно, я всегда считал что там тупо round robin работает...
А что там пишут про порядок адресов? Точнее - выбор первого адреса?
Вряд ли round robin. DNS категорически не рекомендуют использовать для балансировки нагрузки.

В моих тестах (я делал их с разных браузеров) никаких задержек ни разу не было.
Привет.
User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Two A records for one domain

Post by Privet »

Всё будет ясно 11-го октября, когда мне будут менять IP. За пару дней до этого мне надо будет позвонить туда и узнать новый IP. Где-то вечером 10-го я создам новую запись. Надеюсь, я не создам новые проблемы для форумчан.

Сегодня мне почти на 2 часа отключили сетку, пытаясь найти проблему со скоростью интернета.
Привет.

Return to “Вопросы и новости IT”