← Cloudflare Load Balancing / load-balancing / additional-options
Персистентность DNS
В этом руководстве объясняется, как обеспечить постоянство DNS при использовании Cloudflare Load Balancing, аналогично функциональности традиционных балансировщиков нагрузки на основе DNS.
Персистентность DNS обеспечивает то, что последующие DNS-запросы от одного и того же локального DNS-сервера получают один и тот же IP-адрес. Это полезно для приложений, которым требуется устойчивость сессии, например для VPN-подключений или систем аутентификации.
Cloudflare Load Balancing может обеспечивать DNS persistence разными способами настройки для DNS-only балансировки нагрузки.
Персистентность балансировки нагрузки в режиме DNS-only
Для балансировки нагрузки только средствами DNS Cloudflare предлагает три метода обеспечения устойчивости DNS:
Метод 1: географическое управление трафиком на основе местоположения PoP (рекомендуется)
Этот метод использует географическое направление трафика на основе точки присутствия Cloudflare (PoP), принимающей DNS-запрос.
Шаги настройки
- Создайте пул для каждой конечной точки. Не применяйте load shedding ни к одному из пулов.
- Создайте DNS-only балансировщик нагрузки и добавьте оба пула. Убедитесь, что
pool_1располагается передpool_2. - В разделе Балансировка трафика, выберите Geo Steering.
- Создайте правило geo-steering для региона (например, Восточная Северная Америка) и выберите те же пулы, но в обратном порядке (
pool_2сначала, а затемpool_1). - Используйте Never prefer ECS и Расположение PoP чтобы определить источник запроса.
Как это работает
Все запросы, поступающие в PoP Cloudflare в указанном регионе, направляются на одну конечную точку, тогда как запросы из других регионов направляются на другую конечную точку.
Почему это рекомендуется
Использование PoP Cloudflare, принявшей запрос, в качестве критерия распределения трафика более стабильно, чем IP-хеширование или разделение IP-пространства, поскольку это не зависит от рекурсивных DNS-провайдеров, использующих разные исходящие IP-адреса.
Метод 2: сброс нагрузки с хешированием IP-адреса
Этот метод использует сброс нагрузки для распределения трафика на основе исходного IP-адреса рекурсивного DNS-резолвера.
Шаги настройки
- Создайте пул для каждой конечной точки (например,
pool_1сendpoint_1иpool_2сendpoint_2). - В первом пуле выберите Хеш в разделе Балансировка трафика между конечными точками.
- Настройте Сброс нагрузки:
- Политика: IP Hash
- Сброс, %: 50% (чтобы равномерно распределить трафик между двумя пулами)
- Создайте DNS-only балансировщик нагрузки и добавьте оба пула. Убедитесь, что
pool_1располагается передpool_2. - Не настраивайте дополнительное управление трафиком или правила.
Как это работает
Эта конфигурация перенаправляет половину запросов на второй пул с помощью IP-хеша и учитывает привязку сеанса по исходному IP-адресу рекурсивного резолвера.
Ограничения
Некоторые рекурсивные DNS-провайдеры (например, Google DNS 8.8.8.8 или Quad9 9.9.9.9) могут случайным образом использовать разные исходящие IP-адреса, что снижает стабильность привязки сессий.
Метод 3: пользовательские правила с фильтрацией по IP-адресу источника
Этот метод использует пользовательские правила для разделения трафика на основе диапазонов IP-адресов.
Шаги настройки
- Создайте пул для каждой конечной точки. Не применяйте load shedding ни к одному из пулов.
- Создайте DNS-only балансировщик нагрузки и добавьте оба пула. Убедитесь, что
pool_1располагается передpool_2. - Не настраивайте управление трафиком.
- Создайте Пользовательское правило с:
- Поле: IP Source Address
- Оператор: находится в
- Значение: подмножество IP-адресного пространства (например,
0.0.0.0/1для нижней половины адресного пространства IPv4)
- В качестве действия правила выберите Переопределение > Конечные точки и расположите пулы в обратном порядке (
pool_2,pool_1).
Как это работает
Трафик с исходными IP-адресами из нижней половины адресного пространства IPv4 отправляется на одну конечную точку, а трафик из верхней половины отправляется на другую.
Ограничения
Как и метод 2, этот подход может быть менее стабильным у рекурсивных DNS-провайдеров, использующих разные исходящие IP-адреса.