Можете ли вы установить резервный IP для вашего сервера в DNS?


10

Есть ли способ, которым протокол DNS может естественным образом хранить адрес резервного сервера записей A, например, записи резервного сервера имен или почтового сервера? При поиске этого я только видел результаты на резервных серверах имен (NS записи).

Если у DNS нет способа поддержки записей A, каков наилучший способ имитировать результаты, чтобы пользователи перенаправлялись на рабочий сервер в случае, если основной сервер не отвечает?

Ответы:


12

Да ... вроде.

Здесь вы можете сделать две вещи: если вы поместите несколько записей A на своем DNS-сервере для данного имени, то все они будут переданы клиентам, и эти клиенты выберут одну из набора для подключения, что означает, что трафик будет быть «справедливо» равномерно распределенным по всем сайтам одновременно. Это не совсем то, что вы, похоже, описываете, но это обычная ситуация (хотя я не доверяю этому по ряду причин).

Другой вариант заключается в том, что вы помещаете только одну запись A на свой DNS-сервер, а DNS-сервер (или что-то вспомогательное для него, например сценарий мониторинга) следит за основным адресом вашего сайта, и в случае сбоя A DNS-сервера A запись будет изменена на ваш другой сайт. Это означает, что только один сайт будет получать трафик одновременно.

Недостатком этой второй стратегии является кеширование DNS. Любой, кто получил старый адрес сайта, будет SOL до тех пор, пока его записи DNS-кэша, содержащие старый адрес, не будут удалены. Это означает, что вы должны поддерживать низкие значения TTL (увеличивая нагрузку на инфраструктуру DNS, хотя это редко является практической проблемой), но все еще существует проблема «мошеннических» кэшей DNS, которые не учитывают TTL. Это огромная боль для всех кому-то когда-либо приходится менять записи DNS, но они в миллион раз хуже для тех, кому нужно «часто» менять записи DNS (надеюсь, ваш сайт не отключается несколько раз в день, но все же ...) за одним из этих некорректно работающих DNS-кешей вы увидите, что ваш сайт "отключен" в течение очень длительного периода времени, и просто попытайтесь объяснить им, что виноват их DNS-кеш ...

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


Риск заключается в том, что если основной сервер выйдет из строя (по какой-либо причине), я хочу, чтобы мои пользователи были перенаправлены на резервный сервер. Я имею в виду, что в прошлом году мой сервер работал один раз (катастрофический сбой рейда). У меня были резервные копии, поэтому данные были в безопасности, но мой сайт не работал в течение 12 часов. Я думал, что это была бы общая проблема с «правильным» решением. Хотя я хотел бы, чтобы компании хотели иметь резервный план.
kjones1876

9
Вы не хотите отказоустойчивости DNS, вам нужно более надежное оборудование и, возможно, сервер горячего резервирования.
womble

«Мошеннические DNS-кеши» - это история старых жен. Никакое реальное программное обеспечение сервера DNS не демонстрирует поведение игнорирования TTL. Местами, где данные DNS кэшируются таким образом, что это вызывает проблемы, являются приложения , такие как, например, печально известная проблема кэширования поиска в Netscape Navigator .
JdeBP

@JdeBP: По словам Кевина Костнера: «Мошеннические DNS-кэши - это не миф ... Я их видел!» Я сделал раскопки и увидел безумные и сногсшибательные результаты. Наиболее популярный среди сервисов с ограниченной пропускной способностью и задержками в те времена, когда подобные вещи были распространены (например, провайдеры коммутируемого доступа, чья восходящая связь была ISDN), сейчас они в основном используются людьми, которые слышали о них как о хороших Идея давно и просто не изменили свое мнение с тех пор (не то, что они были особенно хорошей идеей тогда ... но да).
womble

6

Кажется, все думают, что вы говорите о WWW-серверах, хотя вы явно написали

как резервный сервер имен или почтовый сервер

Часто упускаемая из виду истина заключается в том, что служба HTTP является исключением, а не нормой, когда дело доходит до этого. В обычном случае, да, это механизм для публикации информации клиентов через DNS , чтобы они правильно запасной вариант с первичных серверов на резервные сервера. Этот механизм представляет собой SRVзаписи ресурсов, которые используются сервисными клиентами для многих других протоколов, кроме HTTP. См. RFC 2782.

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

Теперь контент-серверы DNS располагаются по собственному типу записи NSресурса, записи ресурса, которая не имеет информации о приоритете и весе. Точно так же серверы ретрансляции SMTP расположены по своему собственному специальному типу записи ресурса MX, которая имеет информацию о приоритете, но не имеет информации о весе. Таким образом, для DNS-серверов контента нет условий для публикации резервной информации и информации о распределении нагрузки; и если используются MXзаписи ресурсов, то для серверов ретрансляции SMTP нет условий для публикации информации о распределении нагрузки.

Тем не менее, SRV-поддерживаемые МТС сейчас существуют. (Первый был exim, который был SRVдоступен с 2005 года.) А для других сервисных протоколов, не обремененных багажом MXи NSзаписями ресурсов, SRVусыновление гораздо более тщательно и широко распространено. Например, если у вас есть домен Microsoft Windows, то целый ряд сервисов находится через SRVпоиск в DNS . Это имело место более десяти лет, на данный момент.

Проблема в том, что все думают о HTTP, когда HTTP, безусловно, в настоящее время в 2011 году, исключение, а не правило здесь.


Хотя записи srv отлично подходят для использования внутри сети, когда среда контролируется, они просто не сокращают ее для чего-то вроде внешнего сервера с гетерогенными клиентами. вы не знаете, что запись будет доступна, так как вы не знаете, будет ли клиент поддерживать доступ к записям srv.
Майкл Лоуман

1
Опять же, вы позволяете HTTP управлять вашим мышлением. Для многих клиентов, упомянутых выше, SRVзаписи являются определенным способом определения местоположения служб. Также отметим, что вопрос заключался в том, существует ли механизм и каким он был. Механизм существует, и это механизм. Он широко использовался в течение десятилетия.
JdeBP

Вы, безусловно, правы, srv, безусловно, является правильным механизмом и на самом деле делает другие вещи, которые я, хотя DNS и не мог, но хотел бы. К сожалению, нет поддержки браузера srv. Кроме того, хотя вопрос был специфичным для HTTP, потому что я сказал «как резервный сервер имен или почтовый сервер», то есть резервные решения для них уже существуют.
kjones1876

1

если вы работаете с динамическим контентом, и нецелесообразно просто иметь два сервера, дающих контент одновременно, тогда другой вариант заключается в том, чтобы в любом случае иметь несколько записей в DNS и настроить сервер резервного копирования так, чтобы порт ICMP был недоступен для клиентов, которые пытаются подключиться к нему. ; если в какой-то момент основной сервер выйдет из строя, вы просто удалите блок 80 порта в резервной копии, и трафик начнет поступать.

Единственный другой (бюджетный) способ, которым вы сможете это сделать - это настроить отдельный компьютер (или два) для выполнения NAT по запросам, поэтому, если веб-сервер умирает, вы можете просто удалить для него правило NAT.


Я изначально устал от вашей первой идеи, я просто отключил apache на главном сервере, но браузер все равно пытался подключиться. Но разве Apache, конечно, ошибка ICMP? Если нет, то как мне сделать сервер через ошибку ICMP?
kjones1876

нет, соединение просто
прервется

iptables -I INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-port-unreachable
Olipro

Я устал от этого, и люди просто не могли подключиться ... Я даже отключил сервер, на котором я тестировал.
kjones1876

Спрашивающий не говорил конкретно только о WWW-серверах. Действительно, xe явно упоминал почтовые и именные серверы.
JdeBP

0

Не существует резервных записей A, но может быть несколько записей A, выданных в случайном порядке.

Большинство браузеров способны попробовать другой сервер в случае сбоя. (См. Веб-устойчивость с помощью Round Robin DNS )

Вы можете иметь один кластерный IP-адрес, поддерживаемый несколькими серверами с VRRP или CARP . Резервный сервер получает адрес при сбое основного сервера.


Спрашивающий не говорил конкретно только о WWW-серверах. Действительно, xe явно упоминал почтовые и именные серверы.
JdeBP

@JdeBP: Ой. Кажется, я слепой. Извините: P
jkj

0

Да, но вы должны сделать это сами ;-)

Не могли бы вы дать больше информации о том, зачем вам нужна «резервная запись A», как и при каких обстоятельствах вы хотите перейти к резервной копии.

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


0

Это довольно старый вопрос, но две довольно важные технологии не были затронуты в ответах: динамический DNS и CDN.

Динамический DNS настроен таким образом, чтобы записи DNS можно было изменять практически в реальном времени, чтобы клиент мониторинга мог инициировать изменения в общедоступных записях DNS A в зависимости от доступности службы. (Конечно, ваш DNS-хостинг должен поддерживать Dynamic DNS.)

CDN также могут использоваться для доставки DNS, как, например, Cloudflare (который, я полагаю, был запущен в 2010 году).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.