Что такое Software Load Balancer (SLB) для SDN?
Применимо к: Azure Local 2311.2 и более поздних версий; Windows Server 2022, Windows Server 2019, Windows Server 2016
Поставщики облачных служб (CSP) и предприятия, развертывающие программно-определяемые сети (SDN), могут использовать Software Load Balancer (SLB) для равномерного распределения сетевого трафика арендаторов и клиентов арендаторов между ресурсами виртуальной сети. SLB позволяет размещать одну и ту же рабочую нагрузку на нескольких серверах, что обеспечивает высокий уровень доступности и масштабирования.
Программное обеспечение балансировки нагрузки может предоставить мультитенантную, унифицированную границу, интегрируясь с SDN технологиями, такими как шлюз RAS, межсетевой экран центра обработки данных и отражатель маршрутов.
Примечание.
Мультитенантность для виртуальных ЛС не поддерживается сетевым контроллером. Однако виртуальные локальные сети можно использовать с SLB для управляемых рабочих нагрузок поставщика услуг, таких как инфраструктура центра обработки данных и веб-серверы с высокой плотностью.
С помощью Software Load Balancer можно масштабировать возможности балансировки нагрузки с помощью виртуальных машин SLB на одних вычислительных серверах Hyper-V, используемых для других рабочих нагрузок виртуальных машин. Из-за этого Software Load Balancer поддерживает быстрое создание и удаление конечных точек балансировки нагрузки, необходимых для операций CSP. Кроме того, Software Load Balancer поддерживает десятки гигабит данных на каждую систему, предоставляет простую модель развертывания и легко масштабируется как в большую, так и в меньшую сторону.
Сведения об управлении политиками Software Load Balancer с помощью Центра администрирования Windows см. в статье "Управление подсистемой балансировки нагрузки программного обеспечения для SDN".
Что включает в себя программный балансировщик нагрузки?
Software Load Balancer включает следующие возможности:
Службы балансировки нагрузки уровня 4 (L4) для трафика TCP/UDP на севере, юге и востоке и западе.
Балансировка нагрузки на общедоступный сетевой трафик и внутренний сетевой трафик.
Поддержка динамических IP-адресов (DIPs) в виртуальных локальных сетях (VLAN) и виртуальных сетях, создаваемых с помощью виртуализации сети Hyper-V.
Поддержка зондов состояния.
Готовы к масштабированию в облачной среде, включая возможности горизонтального и вертикального масштабирования для мультиплексоров и управляющих агентов.
Дополнительные сведения см. в разделе Функции Software Load Balancer в этой статье.
Как работает подсистема балансировки нагрузки программного обеспечения
Software Load Balancer работает путем сопоставления виртуальных IP-адресов (VIPs) с DIPs, которые являются частью набора ресурсов облачной службы в центре обработки данных.
Виртуальные IP-адреса — это IP-адреса, предоставляющие общедоступный доступ к пулу виртуальных машин, балансируемых по нагрузке. Например, VIP-адреса — это IP-адреса, доступные в Интернете, чтобы арендаторы и клиенты арендаторов могли подключаться к ресурсам арендатора в облачном центре обработки данных.
DIPs — это IP-адреса виртуальных машин, входящих в пул, балансируемый с VIP. DiPs назначаются в облачной инфраструктуре ресурсам клиента.
VIPы находятся в мультиплексоре SLB (MUX). Мультиплексор состоит из одной или нескольких виртуальных машин. Сетевой контроллер предоставляет каждому мультиплексору каждый VIP, и каждый мультиплексор, в свою очередь, использует протокол Border Gateway Protocol (BGP) для объявления каждого VIP маршрутизаторам в физической сети в виде маршрута /32. BGP позволяет маршрутизаторам физической сети:
Узнайте, что виртуальный IP-адрес (VIP) доступен на каждом мультиплексоре (MUX), даже если модули (MUX) находятся в разных подсетях в сети третьего уровня.
Распределяйте нагрузку для каждого виртуального IP-адреса (VIP) по всем доступным мультиплексам, используя маршрутизацию по многопутевым маршрутам с равными затратами (ECMP).
Автоматически обнаруживает сбой или удаление мультиплексора и прекращает отправку трафика на неисправный мультиплексор.
Распределить нагрузку от отказавшего или удаленного мультиплексора по исправным мультиплексорам.
Когда внешний трафик поступает из Интернета, SLB MUX проверяет трафик, который содержит VIP в качестве пункта назначения, и сопоставляет и перезаписывает трафик, чтобы он прибыл на конкретный DIP. Для входящего сетевого трафика эта транзакция выполняется в двухфакторном процессе, разделенном между виртуальными машинами MUX и узлом Hyper-V, где находится целевой DIP:
Для балансировки нагрузки MUX использует VIP для выбора DIP, инкапсулирует пакет и перенаправляет трафик на узел Hyper-V, где находится DIP.
Преобразование сетевых адресов (NAT) — узел Hyper-V удаляет инкапсуляцию из пакета, преобразует ВИРТУАЛЬНЫй IP-адрес в DIP, перенаправит порты и перенаправит пакет на виртуальную машину DIP.
MuX знает, как сопоставить виртуальные IP-адреса с правильными DIPs благодаря политикам балансировки нагрузки, которые вы определяете с помощью Network Controller. К этим правилам относятся протокол, интерфейсный порт, внутренний порт и алгоритм распределения (5, 3 или 2 кортежа).
Когда виртуальные машины арендатора реагируют и отправляют исходящий сетевой трафик обратно в Интернет или удаленные расположения арендатора, поскольку NAT осуществляется узлом Hyper-V, трафик обходит мультиплексор и передается непосредственно от узла Hyper-V к пограничному маршрутизатору. Этот процесс обхода MUX называется direct Server Return (DSR).
И после установления первоначального сетевого трафика входящий сетевой трафик полностью обходит SLB MUX.
На следующем рисунке клиентский компьютер выполняет DNS-запрос для IP-адреса сайта SharePoint компании , в данном случае вымышленной компании Contoso. Происходит следующий процесс:
DNS-сервер возвращает IP-адрес 107.105.47.60 клиенту.
Клиент отправляет HTTP-запрос на VIP.
Физическая сеть имеет несколько путей, которые можно использовать для достижения VIP, расположенного в любом мультиплексоре. Каждый маршрутизатор на пути использует ECMP для выбора следующего сегмента, пока запрос не достигнет мультиплексора.
MuX, получивший запрос, проверяет настроенные политики и обнаруживает, что в виртуальной сети доступны два 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 вместо VIP, а затем отправляет трафик на виртуальную машину DIP.
Запрос достигает сайта Contoso SharePoint в ферме серверов 2. Сервер создает ответ и отправляет его клиенту с помощью собственного IP-адреса в качестве источника.
Хост перехватывает исходящий пакет в виртуальном коммутаторе, который запоминает, что клиент, теперь является назначением, сделал исходный запрос к VIP. Хост перезаписывает источник пакета на VIP, чтобы клиент не видел адрес DIP.
Узел сети отправляет пакет непосредственно в шлюз по умолчанию физической сети, который использует стандартную таблицу маршрутизации для перенаправления пакета клиенту, который в конечном итоге получает ответ.
Балансировка нагрузки внутреннего трафика центра обработки данных
При балансировке сетевого трафика внутри центра обработки данных, например между ресурсами клиента, работающими на разных серверах, и являются членами одной виртуальной сети, виртуальный коммутатор Hyper-V, к которому подключены виртуальные машины, выполняют NAT.
При балансировке нагрузки внутреннего трафика первый запрос отправляется и обрабатывается MUX, который выбирает соответствующий DIP, а затем направляет трафик в DIP. С этого момента установленный поток трафика обходит мультиплексор и переходит непосредственно с виртуальной машины на виртуальную машину.
Проверка работоспособности
Software Load Balancer включает пробы работоспособности для проверки работоспособности сетевой инфраструктуры, включая следующие:
Пробник TCP к порту
Проверка HTTP на порт и URL-адрес
В отличие от традиционного аппаратного устройства балансировки нагрузки, где проба возникает на устройстве и перемещается по проводам к DIP, проба SLB возникает на хосте, где находится DIP, и переходит непосредственно от агента хоста SLB к DIP, обеспечивая дальнейшее распределение нагрузки между хостами.
Инфраструктура программного балансировщика нагрузки
Перед тем как вы сможете настроить программный балансировщик нагрузки, необходимо сначала развернуть сетевой контроллер и одну или несколько виртуальных машин мультиплексоров SLB.
Кроме того, необходимо настроить локальные узлы Azure с виртуальным коммутатором Hyper-V с поддержкой SDN и убедиться, что агент узла SLB запущен. Маршрутизаторы, обслуживающие хосты, должны поддерживать маршрутизацию ECMP и протокол BGP и быть настроены для приема запросов пиринга BGP от SLB MUX.
На следующем рисунке представлен обзор инфраструктуры SLB.
Инфраструктура программного балансировщика нагрузки.
В следующих разделах приведены дополнительные сведения об этих элементах инфраструктуры Software Load Balancer.
Сетевой контроллер
Сетевой контроллер размещает диспетчер SLB и выполняет следующие действия для программного балансировщика нагрузки:
Обрабатывает команды SLB, поступающие через API Northbound из Windows Admin Center, System Center, Windows PowerShell или другого приложения управления сетями.
Вычисляет политику для распределения на локальных хостах Azure и мультиплексорах SLB.
Предоставляет состояние работоспособности инфраструктуры Software Load Balancer.
Вы можете использовать Windows Admin Center или Windows PowerShell для установки и настройки сетевого контроллера и другой инфраструктуры SLB.
SLB MUX
Подсистема мультиплексора SLB обрабатывает входящий сетевой трафик и сопоставляет VIP с DIP, а затем передает трафик на правильный DIP. Каждый MUX также использует BGP для публикации VIP-маршрутов на пограничных маршрутизаторах. BGP Keep Alive уведомляет мультиплексоры в случае сбоя одного из них, что позволяет активным мультиплексорам перераспределять нагрузку в случае отказа. Это, по сути, обеспечивает балансировку нагрузки для подсистем балансировки нагрузки.
Агент узла SLB
При развертывании Software 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.
Получает входящий сетевой трафик из MUX.
Обходит мультиплексор для исходящего сетевого трафика, отправляя его напрямую маршрутизатору с использованием DSR.
Маршрутизатор BGP
Маршрутизатор BGP выполняет следующие действия для Software Load Balancer:
Маршрутизирует входящий трафик в muX с помощью ECMP.
Для исходящего сетевого трафика используется маршрут, предоставленный узлом.
Прослушивает обновления маршрутов для виртуальных IP-адресов (VIP) из SLB MUX.
Удаляет SLB MUX'ы из ротации SLB, если тест на поддержание соединения не проходит успешно.
Функции Подсистемы балансировки нагрузки программного обеспечения
В следующих разделах описаны некоторые функции и возможности Software 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 включает поддержку протокола Internet Protocol версии 6 (IPv6) и версии 4 (IPv4).
В сценариях шлюза 'сеть-сеть' SLB предоставляет функции NAT для обеспечения использования всех подключений через один общедоступный IP-адрес.
Масштаб и производительность
Готовность для облачного масштабирования, включая возможности горизонтального и вертикального масштабирования для муксов и Host агентов.
Один активный модуль сетевого контроллера менеджера SLB может поддерживать восемь инстанций MUX.
Высокая доступность
SLB можно развернуть на более чем двух узлах в активной/активной конфигурации.
Мультиплексоры можно добавлять и удалять из пула мультиплексоров, не влияя на службу SLB. Это поддерживает доступность SLB при исправлении отдельных мультикоммутаторов.
Отдельные экземпляры MUX имеют время безотказной работы 99 процентов.
Данные мониторинга состояния доступны для управляющих структур.
Следующие шаги
Дополнительные сведения см. также: