Ответ
Network Load Balancing (NLB) — это встроенная в Windows Server технология кластеризации на уровне сетевого трафика (OSI L4). Она распределяет входящие TCP/UDP-запросы между несколькими серверами (узлами), создавая единую виртуальную точку входа (VIP — Virtual IP). Основные цели — обеспечение высокой доступности (HA) и масштабируемости сетевых служб.
Ключевые характеристики:
- Работа на 4-м уровне: Балансирует трафик на основе IP-адресов, портов и протоколов.
- Архитектура без общего хранилища: Каждый узел в кластере работает независимо со своими данными (подходит для stateless-сервисов, например, веб-ферм IIS).
- Методы распределения:
- Аффинитет (Affinity):
None(без привязки),Single(привязка по IP источника),Network(привязка по подсети источника). - Режимы работы: Unicast (рекомендуется) или Multicast.
- Аффинитет (Affinity):
Пример создания кластера NLB для веб-фермы из двух серверов через PowerShell:
# На первом сервере (узел 1) создаем новый кластер
New-NlbCluster -InterfaceName "Ethernet" -ClusterPrimaryIP "192.168.1.100" -SubnetMask "255.255.255.0" -ClusterName "IIS-WebFarm" -OperationMode "Unicast"
# Добавляем порт для балансировки (HTTP)
Add-NlbClusterPortRule -ClusterName "IIS-WebFarm" -StartPort 80 -EndPort 80 -Protocol "Tcp" -Affinity "Single"
# На втором сервере (узел 2) присоединяем его к существующему кластеру
Add-NlbClusterNode -InterfaceName "Ethernet" -NewNodeName "WEB-SRV-02" -NewNodeInterface "Ethernet" -HostName "WEB-SRV-01"
Типичные сценарии использования: балансировка нагрузки для веб-серверов (IIS), терминальных серверов (RDS), VPN-шлюзов, прокси-сервисов. Ограничение: NLB не проверяет состояние приложения (health check) на уровне L7, для этого нужны более продвинутые решения (HAProxy, nginx, Azure Load Balancer).