Как DynamicDNS действовать немедленно?

16

Мое понимание основной функциональности DNS является предоставление услуги именования / отображения между доменными именами (например blah-whatever.com) и IP - адресом (например , 100.2.3.4 ).

Кроме того, мое понимание того , как Интернет DNS серверов работы является то , что , когда домен / запись отображение IP изменяется (например, изменение blah-whatever.comк теперь указывают на 105.2.3.4 , и т.д.), это необходимо изменить , чтобы распространяться через каждый DNS - сервер в мире до того , как изменение может быть названо «полным». Этот период размножения иногда может длиться до 24 часов.

Таким образом, чтобы начать с, если все, что я сказал до сих пор является ошибочными или неверными, пожалуйста, начать исправляя меня!

Предполагая , что я более или менее правильно, я не понимаю , как такие компании , как CloudFlare или DynamicDNS может предложить «мгновенное опрокидывание» -типа услуги , в котором вы изменить DNS запись с ними и - бум - изменение происходит мгновенно влияет.

Я понимаю, что есть нечто, называемое «TTL» (время жить, я полагаю?!?), Который играет роль в этой возможности мгновенного опрокидывания, но так как я уже нечеткий на возможности, чтобы начать с ним трудно понять, что это TTL является или с какой целью она служит.

Поэтому я спрашиваю: что это о Dynamic DNS и его конкурентов, что позволяет им изменять DNS отображениями мгновенно (без учета 24 часа, распространяющиеся изменения DNS, как и все остальные), и каким образом TTL вписывается в этот процесс? Заранее спасибо.

pnongrata
источник

Ответы:

3

Мой предыдущий ответ содержал ложную информацию , потому что у меня был несколько неверных представлений о том , как изменения DNS распространяется. Так вот вторая попытка. Для подробного объяснения, я призываю вас прочитать ответ Алекса .

В моем понимании, есть 2 факторов, участвующих в как быстро изменения DNS распространяется:

  1. трансферы зоны между DNS-серверами, которые являются авторитетными для зоны.
  2. TTL устанавливается для отдельных записей в этой зоне.

Зональные трансферы

Учитывая, что вам нужно два отдельных сервера имен для управления зоной, вы хотите, чтобы эти серверы быстро иметь самую последнюю версию этой зоны, доступной для них.

Это достигается либо путем извлечения последней версии зоны с фиксированным интервалом, либо ожидания уведомления от авторизованного сервера имен.

Учитывая, что этот механизм находится под полным контролем того, кто запускает серверы имен, любые задержки в этой области можно полностью контролировать.

TTL

TTL является тайм - аут определен для каждой отдельной записи ресурса в зоне. Это значение определяет , как долго запись должна быть помещена в кэш не-провайдеров DNS авторитетным.

Пожалуйста , имейте в виду , что это значение только вступает в игру , если существующая запись изменена. Новые записи не могут быть еще в кэше.

Принимая во внимание, что TTL также находится под полным контролем, кто контролирует зону, задержка может быть также полностью контролируется.

Der Hochstapler
источник
Спасибо @Oliver (+1) - Похоже, «мгновенный ролловер» - это городская легенда! Я предполагаю, что мой дополнительный вопрос будет таким: почему бы просто не отредактировать мои записи DNS самостоятельно? Это потому , что эти компании предлагают API , так что изменения DNS могут быть автоматизированы , когда вызывают определенные события? Я думаю, я ищу для чего они служат в первую очередь!
pnongrata
1
@zharvey: Конечно, вы можете запустить свой собственный DNS-сервер и редактировать свои зоны самостоятельно. Но вы должны обеспечить , по крайней мере 2 различные DNS - сервера, которые для вашей авторитетных зоны будет принята корневыми серверами. У людей обычно нет такой инфраструктуры, доступной для них.
Der Hochstapler
1
Вы можете редактировать DNS записи самостоятельно. Вам просто нужно запустить пару серверов имен (в разных подсетях). DynDNS однако делает эту работу за вас и позволяет относительно легко обновления. В основном вы аутсорсинг некоторых работ.
Хенн
@zharvey, конечно, вы можете иметь "мгновенный ролловер". Если вы имеете в виду , что в буквальном смысле, пусть обе машины переключает свой IP - адрес (что не всегда возможно). Кроме этого, вы всегда будете иметь определенную задержку. Обычно, если услуги должны быть перенесены на другие сервера, админ изменить TTL заранее (например , опустить его на что - то вроде 1 часов) - поэтому , когда происходит изменение, задержка будет минимальной. После этого значение TTL будет снова увеличено (например, до 24 часов или более), чтобы улучшить кэширование и ускорить ответы на запросы DNS. Но это , как правило , не связаны с DynDNS;)
Иззи
2
Извините за грубость, но этот ответ не так почти в каждой точке.
Алекс
18

У вас есть некоторые заблуждения, поэтому я постараюсь объяснить весь процесс. (Я хорошо с деталями, так как я участвовал в работе службы общественного динамического DNS).

Допустит, что ваш домен example.com , и скажем , example.com домен размещен с некоторой динамической DNS компанией, давайте назовем его lightfastdns.net (вымышленное имя). Ваш домен содержит запись DNS - somehost.example.com , который в настоящее время указывает на 1.1.1.1 .

  1. При внесении изменений в ваш DNS - записи, это изменение первой представляется в какой - то промежуточный сервер, управляемый lightfastdns.net, например updates.lightfastdns.net . Это происходит почти мгновенно (в долях секунды). Вы можете отправить обновление через веб - интерфейс или с помощью динамического обновления клиента, или через какой - либо API. Это не имеет значения, в любом случае это обновление поступит на какой - то сервер , который обрабатывает DNS обновления.

  2. Этот сервер обновлений помещает обновленную запись (скажем, 1.2.3.4 ) на « мастер » DNS - сервер для домена. Этот DNS-сервер также обслуживается lightfastdns.net . Как быстро это произойдет: зависит от того, как провайдер DNS разработали свои программы. (Это может происходить мгновенно и может происходить каждые 24 часа. Например, gandi.net отправляет обновления DNS раз в час.) Конечно, наш lightfastdns.net сделает это мгновенно.

  3. Этот главный DNS-сервер отправляет обновления на подчиненные DNS-серверы для домена example.com . Этими серверами также управляет та же компания lightfastdns.net . Как быстро это происходит: с современным программным обеспечением мастером мгновенно отправит УВЕДОМИТЬ сообщение для рабов , и они будут немедленно получить обновленную запись от мастера. со старым программным обеспечением мы имели значения освежают и Retry в записи SOA, но сегодня это редко актуально. Конечно, наш lightfastdns.net реализует NOTIFY и обновления распространяются мгновенно.

Теперь мы имеем, что все «авторитетные» серверы для вашего домена получили обновленную запись ( 1.2.3.4 ). Для lightfastdns.net это заняло около двух секунд.

  1. Теперь, мы будем двигаться к дому Ивана в России, и Иван хочет открыть « somehost.example.com » в своем браузере. Если он никогда не открывал это раньше, его браузер не знает адрес, поэтому браузер спросит его операционную систему. Но, если он посетил недавно, адрес может все еще быть сохранены в браузере, и он будет использовать старый (устаревший) адрес! На сколько долго ? - Зависит от браузера Google Chrome, например магазины DNS записи только до 60 секунд. Мы до 60 секунд задержки . этот факт, я бы сказал , что изменения DNS не распространяются на этот браузер еще.

  2. В любом случае, через 60 секунд, или сразу, браузер будет в конечном счете задать операционную систему , чтобы получить адрес. Операционная система уже может знать (старый, устаревший) ответ, и вернуть его, в данном случае я бы сказал , что новая запись не распространяется еще OS Ивана. Как долго ОС будет хранить старое значение - для современных операционных систем это контролируется параметром TTL . TTL в DNS определяет, как долго запись может храниться в кеше. Наш lightfastdns.net позволил использовать довольно низкий TTL - 30 секунд, поэтому мы получили новую задержку до 30 секунд, в целом - до 90 секунд .

  3. Если ОС не знает ответа, или если ответ он знал , что теперь устаревает TTL, OS задаст DNS распознаватель (ISP Иван назначил его с распознавателя DNS dns.moscow-telecom.ru ). Вот, старая запись может находиться в кэше до TTL секунд, или dns.moscow-telecom.ru не может знать адрес. Мы получаем еще 30 секунд, так как dns.moscow-telecom.ru также кэширует DNS не более чем на значение TTL. У нас задержка 120 секунд . То есть то , что называется , что новый DNS запись еще не распространяется на Москва-Телеком DNS - серверов.

  4. Если DNS - сервер провайдер не знает ответа, или если ответ он знал , уже устарел , потому что это TTL истек - dns.moscow-telecom.ru задаст один из АВТОРИТЕТНЫХ серверов DNS для example.net (вы помните их?). Те получили изменения около 118 секунд назад, и они вернутся новый ответ, этот ответ будет немедленно отправлен по цепочке разрешения имен DNS, в ОС и браузер Ивана.

Таким образом, распространяющаяся запись приняла от 2 до 120 секунд, в зависимости от состояния различных кэшей. Более длинные TTL - больше задержки могут иметь место.

Для того, чтобы сделать ее полной - некоторые интернет - провайдеры нарушают стандарты и записи кэша в течение длительного времени. Некоторые старые операционки держали старую запись в течение длительного времени, и старые браузеры тоже. Но для большинства пользователей это работает , как ожидалось.

Alex
источник
Мне очень жаль , что он вышел этот Verbose. Может быть , кто - то хочет , чтобы сделать более короткий вариант (как отдельный ответ) - вы можете.
Alex
@zharvey На самом деле вы спросили , в чем разница между динамикой и не динамичным - это 1. Как быстро они обрабатывают шаги (2) и (3) и 2. Как низко TTL они позволяют установить.
Алекс
3

Нет. Изменение не должно распространяться на каждый DNS-сервер в мире .

Если вы что-то измените и кто-то запросит измененную запись на вашем DNS-сервере, результат будет мгновенным.

Проблема заключается в том, если вы опрошены этом имени раньше, и он получил в кэш. После этого вы получите старый IP, пока кэш не истечет. В DNS вы можете установить, как долго старый запрос является действительным, и этот период часто устанавливается на несколько дней. Для DynDNS это обычно устанавливается ниже, но не все распознаватели DNS соблюдают это.

Hennes
источник
Благодарности @Hennes (+1) - см мой вопрос под ответ Оливера - У меня есть один и тот же вопрос для вас!
pnongrata