Что такое nftlb?

Просмотр категорий

Что такое nftlb?

4 min read

Обзор #

nftlb стенды для Балансировщик нагрузки nftables. Он использует nftables, межсетевой экран Linux следующего поколения, призванный заменить iptables и адаптированный для работы в качестве полнофункционального балансировщика нагрузки и распределителя трафика.

nftlb действует как менеджер правил nftables, разработанный для создания виртуальных служб для балансировки нагрузки на уровнях 2, 3 и 4. Он минимизирует количество правил, необходимых для использования эффективных структур данных для сопоставления пакетов. Кроме того, он включает удобный для пользователя JSON API, что обеспечивает бесшовное программное взаимодействие и автоматизацию. Эта гибкость позволяет легко интегрировать nftlb с вашими предпочтительными инструментами проверки работоспособности.

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

At RELIANOID, у нас есть большой опыт использования iptables и фреймворка Netfilter для создания многофункциональных балансировщиков нагрузки. Благодаря этому опыту мы понимаем ограничения этих подходов — ограничения, которые nftlb преодолевает по замыслу.

Зачем был создан сайт nftlb нужно? #

Ядро Linux включает в себя внутренний балансировщик нагрузки, называемый ИПВС (широко известный как LVS – Linux Virtual Server). Хотя IPVS является стабильным и зрелым программным решением, используемым в течение многих лет, у него есть определенные ограничения:

  • Задачи, более подходящие для пользовательского пространства, обрабатываются в ядре, что снижает гибкость.
  • Он дублирует инфраструктуру, уже предоставленную Netfilter.
  • Он использует дополнительные инструменты, такие как iptables, для расширенных функций, таких как прозрачное проксирование, многопортовая или многопротокольная поддержка.
  • Он поддерживает топологии SNAT (исходный NAT) и DSR (прямой возврат к серверу), но не поддерживает DNAT (целевой NAT).

IptablesС другой стороны, подход, основанный на математическом анализе, имеет свои ограничения:

  • Для каждой виртуальной службы требуется несколько правил, по крайней мере два правила на каждый бэкенд, что линейно увеличивает сложность по мере добавления бэкендов.
  • Последовательная обработка правил снижает производительность, если задействовано много правил, что усугубляется классической проблемой блокировки iptables.
  • Поддержка IPv6 требует использования отдельной команды ip6tables, что усложняет настройку.
  • Хотя iptables поддерживает балансировку нагрузки DNAT и SNAT, он не может работать в топологиях DSR.

nftlb, построен на nftables, устраняет все эти ограничения с помощью более эффективного и современного подхода:
Поддерживает все топологии (SNAT, DNAT, DSR) и обеспечивает бесперебойное переключение между ними.
Встроенная обработка многопортового и многопротокольного трафика.
Легко управляет трафиком IPv4 и IPv6 через единый интерфейс.
Предоставляет все необходимые возможности балансировки нагрузки через один унифицированный интерфейс.
Использует выразительный язык nftables для создания полноценного балансировщика нагрузки всего с двумя правилами, обеспечивая постоянную сложность независимо от количества бэкэндов.
Совпадения индексируются по каждой виртуальной службе, что устраняет необходимость в последовательной обработке правил.
Использует подсистему RCU (чтение-копирование-обновление), избегая проблем с блокировкой во время обновления правил.
Сохраняет путь данных в пространстве ядра для оптимальной производительности, сохраняя при этом гибкость пользовательского пространства для плоскости управления.
Доказано, что производительность в 10 раз выше, чем у LVS.

nftlb функции #

балансировщик нагрузки nftlb В настоящее время предлагает следующие возможности:

Поддерживаемые топологии:

  • NAT назначения (DNAT), NAT источника (SNAT), прямой возврат сервера (DSR) и DNAT без сохранения состояния.
  • Эти топологии позволяют nftlb функционировать как в одно-, так и в двухветвевых сетевых архитектурах.

Поддержка IPv4 и IPv6: Полная совместимость с обоими семействами IP для современных сетевых сред.
Многоуровневая балансировка нагрузки:

  • Уровень 2: балансировка нагрузки на основе DSR.
  • Уровень 3: Независимая от протокола балансировка нагрузки на основе IP.
  • Уровень 4: Поддержка протоколов UDP, TCP и SCTP.

Поддержка многопортов: Обрабатывает диапазоны и списки портов для гибкого управления трафиком.
Несколько виртуальных служб (ферм): Поддерживает управление несколькими виртуальными службами одновременно.
Планировщики: Включает планирование на основе веса, циклический перебор, настраиваемый хэш (на основе IP, порта, MAC или комбинаций) и симметричный хэш.
Настраиваемая устойчивость (Affinity): обеспечивает привязку клиент-бэкэнд с тайм-аутом на основе IP, порта, MAC или их комбинаций.
Политика безопасности:

  • Белые и черные списки для фильтрации входящего трафика по отдельным сервисам.
  • Фильтрация в пользовательском пространстве, организация очередей и обнаружение поддельных TCP-кадров.
  • Ограничения на максимальное количество установленных соединений, пакетов TCP RST в секунду и новых соединений в секунду.

Приоритетная поддержка бэкэнда: Позволяет назначать приоритеты бэкэндам для оптимизированного распределения трафика.
Управление в реальном времени: Программное управление виртуальными сервисами и бэкэндами через JSON API.
Безопасность веб-сервисов: Аутентификация с помощью безопасного ключа для защиты доступа к API.
Автоматизированный испытательный стенд: Включает встроенный испытательный стенд для упрощения тестирования и проверки.

Официальный репозиторий git: https://github.com/relianoid/nftlb

Список изменений: https://www.relianoid.com/knowledge-base/nftlb/nftlb-changelog/

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs