Возможно ли, чтобы у определенного доменного имени была динамическая маршрутизация, например, somedomain.com переходит на IP-адрес x. но если сервер в x выходит из строя, DNS начинает направлять трафик на IP-адрес y и т. д.
В этом случае веб-сайт будет недоступен только в том случае, если несколько серверов в разных местах выйдут из строя почти одновременно. Что намного лучше, чем простой сбой, вызвавший отключение.
То, что вы описываете, - это в основном принцип работы CDN (сети доставки контента).
Аспект DNS не совсем такой, как вы предлагаете, но DNS-сервер возвращает разные IP-адреса в зависимости от того, где находится запрашивающий. Это гарантирует, что возвращаемый адрес относительно близок (с точки зрения сети) к запрашивающей стороне.
Возвращаемый IP-адрес напрямую связан не с фактическим сервером, который будет доставлять контент, а с устройством, называемым балансировщиком нагрузки. Это устройство распределяет входящие запросы между пулом серверов, которые фактически обслуживают запрос. Он также следит за состоянием пула серверов и прекращает отправку запросов в случае сбоя. (Он также может работать в режиме горячего резерва, когда весь трафик отправляется на один сервер, пока он не выйдет из строя, после чего балансировщик нагрузки переключится на второй сервер).
Самое близкое, что вы можете получить с помощью простого DNS, - это иметь несколько IP-адресов, сопоставленных с одним и тем же доменным именем, в этом случае DNS-сервер использует так называемую «циклическую» балансировку, это означает, что он работает через список IP-адресов. адреса в порядке для каждого запроса. Это означает, что трафик будет сбалансирован по всем IP-адресам, но все равно будет отправляться, если один из них - dowm.
Это не роль службы DNS. У вас может быть несколько записей A / AAAA, указывающих на все возможные IP-адреса, на которых работает служба. Все ответы Клиент получит в случайном порядке (поэтому порядок ответов будет отличаться).
Как это будет обрабатываться, будет зависеть от решения клиента (или реализации на стороне клиента). Обычно это пробует первый, а в случае неудачи (не отказ, а сбой в общении) пробует другой.
Если вы хотите больше серверов, но заполняете только один IP-адрес, для этого есть роль обратного прокси. Один IP-адрес для обратного прокси, который будет знать обо всей доступности серверов и обрабатывать трафик по приоритету или балансировать его нагрузку над сервером в зависимости от конфигурации.