Что такое Software Load Balancer (SLB) для SDN?
Область применения: Azure Stack HCI версий 23H2 и 22H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Поставщики облачных служб (CSP) и предприятия, которые развертывают программно-конфигурируемую сеть (SDN), могут использовать Load Balancer программного обеспечения (SLB) для равномерного распределения сетевого трафика клиента и клиента между ресурсами виртуальной сети. SLB позволяет размещать одну и ту же рабочую нагрузку на нескольких серверах, что обеспечивает высокий уровень доступности и масштабирования.
Программное обеспечение Load Balancer может обеспечить мультитенантное унифицированное пограничное устройство путем интеграции с технологиями SDN, такими как шлюз RAS, брандмауэр центра обработки данных и отражатель маршрутов.
Примечание
Мультитенантность для виртуальных ЛС не поддерживается сетевым контроллером. Однако вы можете использовать виртуальные локальные сети с SLB для рабочих нагрузок, управляемых поставщиком услуг, таких как инфраструктура центра обработки данных и веб-серверы высокой плотности.
С помощью программного Load Balancer можно масштабировать возможности балансировки нагрузки с помощью виртуальных машин SLB на том же вычислительных серверах Hyper-V, которые используются для других рабочих нагрузок виртуальных машин. По этой причине программное обеспечение Load Balancer поддерживает быстрое создание и удаление конечных точек балансировки нагрузки, необходимых для операций CSP. Кроме того, программное обеспечение Load Balancer поддерживает десятки гигабайт на кластер, предоставляет простую модель подготовки и легко масштабируется.
Сведения об управлении политиками Load Balancer программного обеспечения с помощью Windows Admin Center см. в статье Управление Load Balancer программного обеспечения для SDN.
Что включает программное обеспечение Load Balancer?
Программная Load Balancer включает следующие возможности:
Службы балансировки нагрузки уровня 4 (L4) для трафика TCP/UDP с севера, юга и востока и запада.
Балансировка нагрузки между общедоступной сетью и внутренним сетевым трафиком.
Поддержка динамических IP-адресов (DIP) в виртуальных локальных сетях (VLAN) и в виртуальных сетях, создаваемых с помощью виртуализации сети Hyper-V.
Поддержка проб работоспособности.
Готовы к масштабированию облака, включая возможности горизонтального масштабирования и масштабирования для мультиплексоров и агентов узлов.
Дополнительные сведения см. в разделе Функции программного обеспечения Load Balancer этой статьи.
Принцип работы Load Balancer программного обеспечения
Программное Load Balancer работает путем сопоставления виртуальных IP-адресов (VIP) с dip, которые являются частью набора ресурсов облачной службы в центре обработки данных.
Виртуальные IP-адреса — это отдельные IP-адреса, которые предоставляют общий доступ к пулу виртуальных машин с балансировкой нагрузки. Например, IP-адреса — это IP-адреса, которые предоставляются в Интернете, чтобы клиенты и клиенты могли подключаться к ресурсам клиента в облачном центре обработки данных.
DIP — это IP-адреса виртуальных машин-членов пула с балансировкой нагрузки за виртуальным IP-адресом. DiP назначаются в облачной инфраструктуре ресурсам клиента.
Виртуальные IP-адреса находятся в мультиплексоре SLB (MUX). Мультиплексирование состоит из одной или нескольких виртуальных машин. Сетевой контроллер предоставляет каждому МУЛЬТИП с каждым виртуальным IP-адресом, а каждый мультиплексирование, в свою очередь, использует протокол BGP для объявления каждого виртуального IP-адреса маршрутизаторам в физической сети в качестве маршрута /32. BGP позволяет физическим сетевым маршрутизаторам:
Узнайте, что виртуальный IP-адрес доступен для каждого мультиплекса, даже если они находятся в разных подсетях в сети уровня 3.
Распределите нагрузку для каждого виртуального IP-адреса между всеми доступными мультиплексами с помощью маршрутизации с несколькими путями с равной стоимостью (ECMP).
Автоматически обнаруживать сбой или удаление мультиплексора и прекращать отправку трафика в неисправный мультиплексный набор.
Распределите нагрузку с неудавленного или удаленного мультиплексора между работоспособными мультиплексами.
Когда общедоступный трафик поступает из Интернета, SLB MUX проверяет трафик, который содержит виртуальный IP-адрес в качестве назначения, а также сопоставляет и переписывает трафик таким образом, чтобы он поступал в отдельный DIP. Для входящего сетевого трафика эта транзакция выполняется в двухфакторном процессе, разделенном между виртуальными машинами MUX и узлом Hyper-V, где находится целевой DIP:
Балансировка нагрузки. МУЛЬТИП использует виртуальный IP-адрес для выбора DIP, инкапсулирует пакет и перенаправляет трафик на узел Hyper-V, где находится DIP.
Преобразование сетевых адресов (NAT) — узел Hyper-V удаляет инкапсуляцию из пакета, преобразует виртуальный IP-адрес в DIP, перенаправит порты и перенаправит пакет на виртуальную машину DIP.
Мультиплексирование знает, как сопоставить ВИРТУАЛЬНЫе IP-адреса с правильными dip из-за политик балансировки нагрузки, определяемых с помощью сетевого контроллера. К этим правилам относятся протокол, интерфейсный порт, внутренний порт и алгоритм распределения (5, 3 или 2 кортежа).
Когда виртуальные машины клиента отвечают и отправляют исходящий сетевой трафик обратно в Интернет или удаленные расположения клиента, так как NAT выполняется узлом Hyper-V, трафик обходит мультиплексный трафик и направляется непосредственно на пограничный маршрутизатор с узла Hyper-V. Этот процесс обхода многомерных выражений называется прямым возвратом сервера (DSR).
После установки исходного потока сетевого трафика входящий сетевой трафик полностью обходит мультиплексирование подсистемы балансировки нагрузки.
На следующем рисунке клиентский компьютер выполняет ЗАПРОС DNS для IP-адреса сайта SharePoint компании, в данном случае вымышленной компании Contoso. Происходит следующий процесс:
DNS-сервер возвращает клиенту виртуальный IP-адрес 107.105.47.60.
Клиент отправляет HTTP-запрос на виртуальный IP-адрес.
Физическая сеть имеет несколько доступных путей для доступа к виртуальному IP-адресу, расположенному в любом мультиплексорном режиме. Каждый маршрутизатор по пути использует ECMP для выбора следующего сегмента пути до тех пор, пока запрос не поступит в МУЛЬТИП.
Мультиплексирование, которое получает запрос, проверяет настроенные политики и видит, что в виртуальной сети доступны два dip, 10.10.10.5 и 10.10.20.5, в виртуальной сети для обработки запроса к IP-адресу 107.105.47.60
MuX выбирает DIP 10.10.10.5 и инкапсулирует пакеты с помощью VXLAN, чтобы он смог отправить их на узел, содержащий DIP, с помощью физического сетевого адреса узла.
Узел получает инкапсулированный пакет и проверяет его. Он удаляет инкапсуляцию и перезаписывает пакет таким образом, чтобы назначение теперь было DIP 10.10.10.5 вместо виртуального IP-адреса, а затем отправляет трафик на виртуальную машину DIP.
Запрос поступает на сайт Contoso SharePoint в ферме серверов 2. Сервер создает ответ и отправляет его клиенту, используя собственный IP-адрес в качестве источника.
Узел перехватывает исходящий пакет в виртуальном коммутаторе, который запоминает, что клиент, который теперь является назначением, сделал исходный запрос к виртуальному IP-адресу. Узел перезаписывает источник пакета, чтобы он был виртуальным IP-адресом, чтобы клиент не видел DIP-адрес.
Узел перенаправит пакет непосредственно в шлюз по умолчанию для физической сети, которая использует стандартную таблицу маршрутизации для пересылки пакета клиенту, который в конечном итоге получает ответ.
Балансировка нагрузки внутреннего трафика центра обработки данных
При балансировке нагрузки сетевого трафика, внутреннего к центру обработки данных, например между ресурсами клиента, которые работают на разных серверах и являются членами одной виртуальной сети, виртуальный коммутатор Hyper-V, к которому подключены виртуальные машины, выполняет NAT.
При балансировке нагрузки внутреннего трафика первый запрос отправляется и обрабатывается мультиплексией, которая выбирает соответствующий DIP, а затем направляет трафик в DIP. С этого момента установленный поток трафика обходит мультиплексию и переходит непосредственно из виртуальной машины в виртуальную машину.
Пробы работоспособности
Программная Load Balancer включает пробы работоспособности для проверки работоспособности сетевой инфраструктуры, в том числе следующие:
Проба TCP на порт
Проба HTTP на порт и URL-адрес
В отличие от традиционной подсистемы балансировки нагрузки (модуль), где проба берется на (модуль) и перемещается по сети к DIP, проба SLB создается на узле, где находится DIP, и направляется непосредственно из агента узла SLB в DIP, дополнительно распределяя работу между узлами.
Инфраструктура Load Balancer программного обеспечения
Перед настройкой программного обеспечения Load Balancer необходимо сначала развернуть сетевой контроллер и одну или несколько виртуальных машин многомерных SLB.
Кроме того, необходимо настроить узлы Azure Stack HCI с виртуальным коммутатором Hyper-V с поддержкой SDN и убедиться, что агент узла SLB запущен. Маршрутизаторы, обслуживающие узлы, должны поддерживать маршрутизацию ECMP и протокол BGP, а также должны быть настроены для приема запросов пиринга BGP от мультиплексов SLB.
На следующем рисунке представлен обзор инфраструктуры SLB.
В следующих разделах содержатся дополнительные сведения об этих элементах инфраструктуры программного обеспечения Load Balancer.
Сетевой контроллер
Сетевой контроллер размещает диспетчер SLB и выполняет следующие действия для программного Load Balancer:
Обрабатывает команды SLB, поступающие через API Northbound из Windows Admin Center, System Center, Windows PowerShell или другого приложения для управления сетью.
Вычисляет политику для распределения между узлами Azure Stack HCI и мультиплексами SLB.
Предоставляет состояние работоспособности инфраструктуры Load Balancer программного обеспечения.
Для установки и настройки сетевого контроллера и другой инфраструктуры SLB можно использовать Windows Admin Center или Windows PowerShell.
Многомерный балансировщик нагрузки
Мультиплексирование подсистемы балансировки нагрузки обрабатывает входящий сетевой трафик и сопоставляет ВИРТУАЛЬНЫе IP-адреса с DIP, а затем перенаправляет трафик в правильный DIP. Каждый MUX также использует BGP для публикации маршрутов ВИРТУАЛЬНЫх IP-адресов на пограничные маршрутизаторы. BGP Keep Alive уведомляет мультиплексы при сбое мультиплекса, что позволяет активным мультиплексным интерфейсам перераспределять нагрузку в случае сбоя мультиплекса. По сути, это обеспечивает балансировку нагрузки для подсистем балансировки нагрузки.
Агент узла SLB
При развертывании программного Load Balancer необходимо использовать Windows Admin Center, System Center, Windows PowerShell или другое приложение управления для развертывания агента узла SLB на каждом сервере узла.
Агент узла SLB ожидает обновления политики SLB от сетевого контроллера. Кроме того, агент узла программирует правила для SLB в виртуальные коммутаторы Hyper-V с поддержкой SDN, настроенные на локальном компьютере.
Виртуальный коммутатор Hyper-V с поддержкой SDN
Чтобы виртуальный коммутатор был совместим с SLB, на виртуальном коммутаторе должно быть включено расширение VFP. Это выполняется автоматически с помощью сценариев PowerShell развертывания SDN, мастера развертывания Windows Admin Center и развертывания System Center Virtual Machine Manager (SCVMM).
Сведения о включении VFP на виртуальных коммутаторах см. в Windows PowerShell командах Get-VMSystemSwitchExtension и Enable-VMSwitchExtension.
Виртуальный коммутатор Hyper-V с поддержкой SDN выполняет следующие действия для SLB:
обрабатывает путь к данным для SLB;
Получает входящий сетевой трафик из мультиплексного интерфейса.
Обходит мультиплексирование для исходящего сетевого трафика, отправляя его маршрутизатору с помощью DSR.
Маршрутизатор BGP
Маршрутизатор BGP выполняет следующие действия для программного Load Balancer:
Направляет входящий трафик в мультиплексный интерфейс с помощью ECMP.
Для исходящего сетевого трафика использует маршрут, предоставленный узлом.
Прослушивает обновления маршрутов для виртуальных IP-адресов из мультиплексора SLB.
Удаляет мультиплексы SLB из ротации SLB, если не удается сохранить работоспособность.
Функции Load Balancer программного обеспечения
В следующих разделах описываются некоторые функции и возможности программного обеспечения Load Balancer.
Основные функциональные возможности
SLB предоставляет службы балансировки нагрузки уровня 4 для трафика TCP/UDP с севера, юга и востока и запада.
SLB можно использовать в сети на основе виртуализации сети Hyper-V.
SLB можно использовать с сетью на основе виртуальной локальной сети для виртуальных машин DIP, подключенных к виртуальному коммутатору Hyper-V с поддержкой SDN.
Один экземпляр SLB может обрабатывать несколько клиентов.
SLB и DIP поддерживают масштабируемый обратный путь с низкой задержкой, реализованный DSR.
Функции SLB, если вы также используете switch Embedded Teaming (SET) или Single Root Input/Output Virtualization (SR-IOV).
SLB включает поддержку протокола IPv6 (IPv6) и версии 4 (IPv4).
Для сценариев шлюза типа "сеть — сеть" SLB предоставляет функции NAT, позволяющие всем подключениям типа "сеть — сеть" использовать один общедоступный IP-адрес.
Масштаб и производительность
Готовы к масштабированию облака, включая возможности горизонтального увеличения масштаба для мультиплексов и агентов узлов.
Один активный модуль сетевого контроллера диспетчера SLB может поддерживать восемь экземпляров мультиплексора.
Высокий уровень доступности
SLB можно развернуть на более чем двух узлах в конфигурации "активный—активный".
Мультиплексы можно добавлять и удалять из пула МУЛЬТИП, не затрагивая службу SLB. Это обеспечивает доступность подсистемы балансировки нагрузки при установке исправлений для отдельных мультиплексов.
Время доступности отдельных экземпляров MUX составляет 99 %.
Данные мониторинга работоспособности доступны для сущностей управления.
Дальнейшие действия
Дополнительные сведения см. также в разделе: