- Round robin dns настройка windows
- Проверка работы DNS Round robin
- Энциклопедия Windows
- Рулетка или Round Robin DNS
- Использование политики DNS для балансировки нагрузки приложений Use DNS Policy for Application Load Balancing
- Пример балансировки нагрузки приложений Example of Application Load Balancing
- Как работает балансировка нагрузки приложений How Application Load Balancing Works
- Настройка балансировки нагрузки приложений How to Configure Application Load Balancing
- Создание областей зоны Create the Zone Scopes
- Добавление записей в области зоны Add Records to the Zone Scopes
- Создание политик DNS Create the DNS Policies
Round robin dns настройка windows
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов на просторах рунета Pyatilistnik.org. Продолжаем с вами усовершенствовать свои навыки и знания в сфере системного администрирования. В предыдущей статье мы с вами разобрали основные понятия DNS сервера и его компонентов. Сегодня мы более подробно разберем, одну из его полезнейших вещей, которую очень часто используют, например на RDS фермах, или различных балансировщиках. Речь пойдет про функционал DNS Round Robin, рассмотрим его настройку и его применение.
Теория
Статья описывает одну из технологий балансировки нагрузки, которая может быть реализована средствами DNS. Для перевода имени хоста в IP-адрес клиент DNS направляет серверу DNS рекурсивный запрос (т.е. запрос, на который сервер DNS возвращает клиенту либо ответ с IP адресом, либо ответ с ошибкой).
В подавляющем большинстве случаев в зонах DNS содержится только один IP адрес, соответствующий тому или иному имени хоста. А какой IP адрес будет возвращать клиенту сервер DNS, если зона содержит несколько записей типа A для одного и того же имени? Ответ простой: сервер DNS всегда возвращает клиенту все IP адреса, соответствующие запрашиваемому имени. А дальше клиент пытается связаться с первым IP адресом в списке и, если он не будет найден, делает попытку связаться со вторым адресом и т.д.
Предположим, у меня есть несколько зеркальных веб-сайтов по имени www.gorbunov.pro, расположенных на разных площадках и имеющих IP адреса 20.0.0.1, 30.0.0.1 и 40.0.0.1.
В ответ на рекурсивный запрос клиента об имени www.gorbunov.pro сервер DNS вернет клиенту весь набор записей из зоны:
www.gorbunov.pro 20.0.0.1
www.gorbunov.pro 30.0.0.1
www.gorbunov.pro 40.0.0.1
Поскольку адрес 20.0.0.1 идет первым в списке, клиент всегда будет пытаться связаться именно с сайтом по адресу 20.0.0.1. Получается, что сайты 30.0.0.1 и 40.0.0.1 используются только как пассивный резерв. До тех пор, пока «жив» сайт по адресу 20.0.0.1, сайты 30.0.0.1 и 40.0.0.1 не получат от клиента ни одного запроса.
Как сделать, чтобы запросы “доставались” всем хостам? Ответ простой: настроить на сервере DNS функцию Round robin.
При включенной функции Round robin сервер DNS постоянно «перемешивает» ответы клиентам, поэтому на первый запрос клиента DNS об имени www.gorbunov.pro сервер DNS вернет ответ
www.gorbunov.pro 20.0.0.1
www.gorbunov.pro 30.0.0.1
www.gorbunov.pro 40.0.0.1
На второй запрос от клиента или от другого сервера DNS будет возвращен ответ
www.gorbunov.pro 30.0.0.1
www.gorbunov.pro 40.0.0.1
www.gorbunov.pro 20.0.0.1
На третий запрос будет ответ
www.gorbunov.pro 40.0.0.1
www.gorbunov.pro 20.0.0.1
www.gorbunov.pro 30.0.0.1
В результате мы получаем динамическую балансировку запросов клиентов между несколькими хостами.
Практика
____________________________________________________________________________________
Проверка работы DNS Round robin
В Windows Server опция Enable round robin включена по умолчанию. Достаточно в консоли DNS Manager открыть свойства DNS сервера и посмотреть вкладку Advanced.
Что такое DNS Round robin и как он работает-01
Для практической проверки функционала DNS Round robin создаем зону gorbunov.pro и добавляем в нее три записи для хоста www.
Что такое DNS Round robin и как он работает-02
Если вы попробуете теперь “попинговать” хост www.gorbunov.pro, то с удивлением обнаружите, что клиент все время отправляет пакеты на адрес 20.0.0.1 (выделено красным). Понятно, что ответа от хоста нет, но и DNS Round robin не работает!
Pinging www.gorbunov.pro [20.0.0.1] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 20.0.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\>ping www.gorbunov.pro
Pinging www.gorbunov.pro [20.0.0.1] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 20.0.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\>
Анализ кэша DNS на стороне клиента дает следующий результат:
C:\>ipconfig /displaydns
Windows IP Configuration
www.gorbunov.pro
—————————————-
Record Name . . . . . : www.gorbunov.pro
Record Type . . . . . : 1
Time To Live . . . . : 3567
Data Length . . . . . : 4
Section . . . . . . . : Answer
A (Host) Record . . . : 20.0.0.1
Record Name . . . . . : www.gorbunov.pro
Record Type . . . . . : 1
Time To Live . . . . : 3567
Data Length . . . . . : 4
Section . . . . . . . : Answer
A (Host) Record . . . : 30.0.0.1
Record Name . . . . . : www.gorbunov.pro
Record Type . . . . . : 1
Time To Live . . . . : 3567
Data Length . . . . . : 4
Section . . . . . . . : Answer
A (Host) Record . . . : 40.0.0.1
C:\>
Теперь становится понятно, почему мы “пингуем” один и тот же хост 20.0.0.1. Сервер DNS возвращает клиенту все записи из зоны с указанием времени кэширования, равным по умолчанию 1 часу (или 3600 секундам). Поэтому до истечения времени кэширования (TTL – Time To Live) клиент больше не направляет к серверу DNS никаких новых запросов.
Сброс кэша командой ipconfig / flushdns и новая команда
ping www.gorbunov.pro приводят, наконец к желаемому результату.C:\>ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
C:\>ping www.gorbunov.pro –n 1
Pinging www.gorbunov.pro [30.0.0.1] with 32 bytes of data:
Request timed out.
Теперь ясно, что для правильной работы DNS Round robin потребуется изменение параметров кэширования, чтобы клиенты постоянно получали обновленный список с “перемешанными” записями.
Настройка времени кэширования ответов DNS
Возможные варианты:
постоянный сброс кэша на стороне клиента (плохой вариант);
установка времени кэширования, равное нулю, в свойствах зоны (плохой вариант, поскольку влияет на всю зону);
установка индивидуального времени кэширования на отдельных записях (хороший вариант).
Для настройки индивидуального времени кэширования в консоли DNS Manager требуется сначала включить режим View –> Advanced. Затем последовательно открываем свойства записей (в нашем примере это три записи www) и ставим время кэширования, равное нулю.
Что такое DNS Round robin и как он работает-03
Проверка работы дает в конце концов желаемый результат!
C:\>ping www.gorbunov.pro –n 1
Pinging www.gorbunov.pro [20.0.0.1] with 32 bytes of data:
Request timed out.
Ping statistics for 20.0.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\>ping www.gorbunov.pro –n 1
Pinging www.gorbunov.pro [30.0.0.1] with 32 bytes of data:
Request timed out.
Ping statistics for 30.0.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
C:\>ping www.gorbunov.pro –n 1
Pinging www.gorbunov.pro [40.0.0.1] with 32 bytes of data:
Request timed out.
Ping statistics for 40.0.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Файл зоны на сервере DNS при этом будет выглядеть так:
;
; Database file gorbunov.pro.dns for gorbunov.pro zone.
; Zone version: 7
;
@ IN SOA dc01.contoso.com. hostmaster.contoso.com. (
7 ; serial number
900 ; refresh
600 ; retry
86400 ; expire
3600 ) ; default TTL
www 0 A 20.0.0.1
0 A 30.0.0.1
0 A 40.0.0.1
Добавления нуля в записи типа A можно сделать и вручную непосредственно в файле зоны.
В настройках сервера DNS по умолчанию включена и опция Enable netmask ordering. Смысл опции заключаются в том, что при наличии нескольких IP адресов для одного и того же имени хоста сервер DNS анализирует из какой сети пришел запрос от клиента. Если IP сеть клиента совпадает с номером сети одного из IP адресов хоста, то такой IP всегда возвращается первым. Проще говоря, если в нашем примере клиент с адресом 30.67.98.123 будет запрашивать имя www.gorbunov.pro, то ему всегда первым в списке будет возвращаться адрес 30.0.0.1. В серверах Windows опция Enable netmask ordering перебивает опцию Enable round robin. Т.е. клиентам DNS первым всегда возвращается адрес ближайшего хоста, даже несмотря на правильно настроенную функцию DNS Round robin.
Технология DNS Round robin часто применяется для динамической балансировки нагрузки между зеркальными хостами. Она значительно проще в реализации, чем вариант настройки для тех же целей кластера NLB. При настройке DNS Round robin на серверах Windows не забывайте, что настройки по умолчанию для сервера DNS не позволяют в полной мере реализовать балансировку запросов и требуется ручная конфигурация сервера.
Энциклопедия Windows
Все об использовании и настройке Windows
Рулетка или Round Robin DNS
С появлением кластеров с балансированием сетевой нагрузки (Network Load Balancing — NLB) рулетка стала не так популярна, но она иногда реализуется с целью предоставления статического распределения нагрузки, например, между двумя одинаково настроенными кластерами.
Статическое распределение нагрузки с помощью сервера DNS является простым в настройке. Для этого требуется указать несколько записей A для одного узла с разными адресами IP. После этого достаточно включить рулетку (round robin). Использование в настройках зоны нескольких записей A позволяет предоставлять клиенту разные адреса IP при каждом запросе на преобразование данного имени.
Предположим, что существует четыре адреса IP для узла под именем www.windata.ru. Первый клиент, который отправляет запрос на преобразование имени, получает адрес 10.0.0.10, второй клиент может получить адрес 10.0.0.11. Следующие два ответа будут содержать адреса 10.0.0.12 и 10.0.0.13. Пятый запрос на преобразование имени заставит сервер DNS вернуть адрес 10.0.0.10, возвращаясь к началу списка адресов.
Иногда реализации рулетки терпят неудачу из-за незавершенного конфигурирования. Администраторы вносят в данные зоны несколько записей A, но забывают включить использование рулетки в конфигурации сервера DNS.
В таком случае адрес из первой записи всегда выдается сервером DNS на входящие запросы. Рулетка может быть включена с помощью флажка Включить рулетку (Enable Round Robin) на вкладке Дополнительно (Advanced) диалогового окна Свойств (Properties) сервера DNS.
Помните, что даже при правильной настройке рулетки, ее статическая природа может привести к появлению проблем. Например, если узел, на который ссылается одна из записей À, аварийно завершает работу, сервер DNS не сможет определить его недоступность и будет выдавать некоторым клиентам адрес этого узла.
Самым явным симптомом такой проблемы является доступ одних клиентов к «виртуальному» серверу и невозможность такого доступа для других клиентов.
Использование политики DNS для балансировки нагрузки приложений Use DNS Policy for Application Load Balancing
Применяется к: Windows Server (Semi-Annual Channel), Windows Server 2016 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2016
С помощью этого раздела можно узнать, как настроить политику DNS для выполнения балансировки нагрузки приложений. You can use this topic to learn how to configure DNS policy to perform application load balancing.
Предыдущие версии Windows Server DNS предоставляли балансировку нагрузки только с помощью запросов с циклическим перебором; но с DNS в Windows Server 2016 можно настроить политику DNS для балансировки нагрузки приложений. Previous versions of Windows Server DNS only provided load balancing by using round robin responses; but with DNS in Windows Server 2016, you can configure DNS policy for application load balancing.
При развертывании нескольких экземпляров приложения можно использовать политику DNS для балансировки нагрузки трафика между разными экземплярами приложения, тем самым динамически выделяя нагрузку на трафик для приложения. When you have deployed multiple instances of an application, you can use DNS policy to balance the traffic load between the different application instances, thereby dynamically allocating the traffic load for the application.
Пример балансировки нагрузки приложений Example of Application Load Balancing
Ниже приведен пример того, как можно использовать политику DNS для балансировки нагрузки приложений. Following is an example of how you can use DNS policy for application load balancing.
В этом примере используется одна вымышленная компания-служба подарка компании Contoso, которая предоставляет услуги по электронной почте и веб-сайт с именем contosogiftservices.com. This example uses one fictional company — Contoso Gift Services — which provides online gifting services, and which has a Web site named contosogiftservices.com.
Веб-сайт contosogiftservices.com размещается в нескольких центрах обработки данных, каждый из которых имеет разные IP-адреса. The contosogiftservices.com website is hosted in multiple datacenters that each have different IP addresses.
В Северная Америка, который является основным рынком для подарочных служб Contoso, веб-сайт размещается в трех центрах обработки данных: Чикаго, IL, Далласе, TX и Сиэтле, штат Вашингтон. In North America, which is the primary market for Contoso Gift Services, the Web site is hosted in three datacenters: Chicago, IL, Dallas, TX and Seattle, WA.
Веб-сервер в Сиэтле имеет оптимальную аппаратную конфигурацию и может работать в два раза больше нагрузки, чем два других сайта. The Seattle Web server has the best hardware configuration and can handle twice as much load as the other two sites. Подарочным службам Contoso нужен трафик приложений, направленный следующим образом. Contoso Gift Services wants application traffic directed in the following manner.
- Так как веб-сервер в Сиэтле включает больше ресурсов, половина клиентов приложения направляется на этот сервер. Because the Seattle Web server includes more resources, half of the application’s clients are directed to this server
- Один квартал клиентов приложения направляется в Далласе, TX Datacenter One quarter of the application’s clients are directed to the Dallas, TX datacenter
- Один квартал клиентов приложения направляется в Чикаго, IL, Datacenter One quarter of the application’s clients are directed to the Chicago, IL, datacenter
Этот сценарий показан на следующем рисунке. The following illustration depicts this scenario.
Как работает балансировка нагрузки приложений How Application Load Balancing Works
После настройки DNS-сервера с политикой DNS для балансировки нагрузки приложений с помощью этого примера сценария DNS-сервер ответит 50% времени на адрес веб-сервера в Сиэтле, 25% времени с адресом веб-сервера Dallas и 25% времени с адресом веб-сервера в Чикаго. After you have configured the DNS server with DNS policy for application load balancing using this example scenario, the DNS server responds 50% of the time with the Seattle Web server address, 25% of the time with the Dallas Web server address, and 25% of the time with the Chicago Web server address.
Таким же для каждых четырех запросов, получаемых DNS-сервером, он реагирует на два ответа в Сиэтле и по одному для Dallas и Чикаго. Thus for every four queries the DNS server receives, it responds with two responses for Seattle and one each for Dallas and Chicago.
Одной из возможных проблем с балансировкой нагрузки с помощью политики DNS является кэширование записей DNS клиентом DNS и сопоставителя или ЛДНС, которые могут повлиять на балансировку нагрузки, так как клиент или сопоставитель не отправляют запросы на DNS-сервер. One possible issue with load balancing with DNS policy is the caching of DNS records by the DNS client and the resolver/LDNS, which can interfere with load balancing because the client or resolver do not send a query to the DNS server.
Вы можете уменьшить воздействие этого поведения, используя низкое — — ( ) значение TTL для записей DNS, которые должны быть сбалансированы при нагрузке. You can mitigate the effect of this behavior by using a low Time-to-Live (TTL) value for the DNS records that should be load balanced.
Настройка балансировки нагрузки приложений How to Configure Application Load Balancing
В следующих разделах показано, как настроить политику DNS для балансировки нагрузки приложений. The following sections show you how to configure DNS policy for application load balancing.
Создание областей зоны Create the Zone Scopes
Сначала необходимо создать области зоны contosogiftservices.com для центров обработки данных, где они размещены. You must first create the scopes of the zone contosogiftservices.com for the datacenters where they are hosted.
Область зоны — это уникальный экземпляр зоны. A zone scope is a unique instance of the zone. Зона DNS может иметь несколько областей зоны, при этом каждая область зоны содержит собственный набор записей DNS. A DNS zone can have multiple zone scopes, with each zone scope containing its own set of DNS records. Одна и та же запись может присутствовать в нескольких областях с разными IP-адресами или IP-адресами. The same record can be present in multiple scopes, with different IP addresses or the same IP addresses.
По умолчанию область зоны существует в зонах DNS. By default, a zone scope exists on the DNS zones. Эта область зоны имеет то же имя, что и зона, а устаревшие операции DNS работают в этой области. This zone scope has the same name as the zone, and legacy DNS operations work on this scope.
Для создания областей зоны можно использовать следующие команды Windows PowerShell. You can use the following Windows PowerShell commands to create zone scopes.
Дополнительные сведения см. в разделе Add-днссерверзонескопе . For more information, see Add-DnsServerZoneScope
Добавление записей в области зоны Add Records to the Zone Scopes
Теперь необходимо добавить записи, представляющие узел веб-сервера, в области зоны. Now you must add the records representing the web server host into the zone scopes.
В сеаттлезонескопе можно добавить запись www.contosogiftservices.com с IP-адресом 192.0.0.1, который находится в центре обработки данных в Сиэтле. In SeattleZoneScope, you can add the record www.contosogiftservices.com with IP address 192.0.0.1, which is located in the Seattle datacenter.
В чикагозонескопе можно добавить ту же запись ( www.contosogiftservices.com ) с IP-адресом 182.0.0.1 в центре обработки данных в Чикаго. In ChicagoZoneScope, you can add the same record (www.contosogiftservices.com) with IP address 182.0.0.1 in the Chicago datacenter.
Аналогичным образом в далласзонескопе можно добавить запись ( www.contosogiftservices.com ) с IP-адресом 162.0.0.1 в центре обработки данных в Чикаго. Similarly in DallasZoneScope, you can add a record (www.contosogiftservices.com) with IP address 162.0.0.1 in the Chicago datacenter.
Для добавления записей в области зоны можно использовать следующие команды Windows PowerShell. You can use the following Windows PowerShell commands to add records to the zone scopes.
Дополнительные сведения см. в разделе Add-днссерверресаурцерекорд. For more information, see Add-DnsServerResourceRecord.
Создание политик DNS Create the DNS Policies
После создания секций (областей зоны) и добавления записей необходимо создать политики DNS, которые распределяют входящие запросы по этим областям, чтобы на 50% запросов для contosogiftservices.com отвечал IP-адрес веб-сервера в Сиэтле, а остальные центры обработки данных в Чикаго и Далласе были равномерно распределены. After you have created the partitions (zone scopes) and you have added records, you must create DNS policies that distribute the incoming queries across these scopes so that 50% of queries for contosogiftservices.com are responded to with the IP address for the Web server in the Seattle datacenter and the rest are equally distributed between the Chicago and Dallas datacenters.
Для создания политики DNS, которая распределяет трафик приложений между тремя центрами обработки данных, можно использовать следующие команды Windows PowerShell. You can use the following Windows PowerShell commands to create a DNS policy that balances application traffic across these three datacenters.
В приведенной ниже команде примера выражение-Зонескопе «Сеаттлезонескопе, 2; Чикагозонескопе, 1; Далласзонескопе, 1», настраивает DNS-сервер с массивом, включающим в себя сочетание параметров . In the example command below, the expression –ZoneScope «SeattleZoneScope,2; ChicagoZoneScope,1; DallasZoneScope,1» configures the DNS server with an array that includes the parameter combination , .
Теперь вы успешно создали политику DNS, которая обеспечивает балансировку нагрузки приложений между веб-серверами в трех разных центрах обработки данных. You have now successfully created a DNS policy that provides application load balancing across Web servers in three different datacenters.
Вы можете создавать тысячи политик DNS в соответствии с требованиями к управлению трафиком, а все новые политики применяются динамически, без перезапуска DNS-сервера во входящих запросах. You can create thousands of DNS policies according to your traffic management requirements, and all new policies are applied dynamically — without restarting the DNS server — on incoming queries.