Ошибки менеджера NLB на машинах с TMG

2011-11-29, 03:50 / Argon

Представим ситуацию: на две чистые операционные системы Windows Server 2008 R2 установлен Microsoft Forefront Threat Management Gateway 2010 SP2. Из данных экземпляров TMG собран Enterpise-массив (Enterprise TMG Array). Из консоли управления TMG на массиве включается балансировка нагрузки (NLB) для внутренних и внешних интерфейсов (Enable Network Load Balancing Integration).

Если следовать мануалу, то балансировка нагрузки действительно работает. Однако, если запустить на одном из узлов кластера консоль Network Load Balancing Manager, то можно увидеть следующие сообщения в логе:

Loading configuration information from host "AR-S-GW2.lab.argon.pro" for cluster 10.18.252.100

The RPC server is unavailable on the specified computer. Error connecting to "AR-S-GW2.lab.argon.pro"

Поискав в интернетах способы решения этой проблемы, я нашел следующую информацию:

  • консоль Network Load Balancing Manager использует DCOM для общения между узлами кластера
  • TMG не поддерживает DCOM
  • TMG конфигурирует NLB-кластер не через DCOM, поэтому всё работает
  • так как всё работает, на ошибки в Network Load Balancing Manager можно забить

Я решил не забивать и разобраться в этой проблемой…

В моей конфигурации все коммуникации между членами массива TMG были разрешены сетевыми правилами. Однако, именно DCOM не работал. Чтобы выяснить, что происходит, я пошел в TroubleshootingTraffic Simulator и использовал следующий сценарий симуляции:

  1. Scenario: Non-Web access
  2. Source IP: Node1_Internal_IP, Port: * (RPC, DCOM)
  3. Destination IP: Node2_Internal_IP, Port: 135 (RPC, DCOM)
  4. Server: Node1

Симуляция выдала следующий ответ:

Allowed Traffic
Rule Name: [System] Allow RPC from Forefront TMG to trusted servers
Rule Order: 22

Additional information
From: Local Host
To: Internal
Network Rule Name: None - Route implied (Local Host traffic)
Network Relationship: Route
Protocol: RPC (all interfaces)
Rule Application Filter: RPC Filter

Увидев упоминание RPC Filter я сразу понял, в чём дело. С RPC-фильтром, а именно с его функцией Enable strict RPC compliance я уже сталкивался, когда не работал Certification Authority Web Enrollment, установленный на машине TMG. В тот раз, отключение опции Enable strict RPC compliance решило проблему.

Однако, в данном случае трафик между членами массива TMG проходит через целый ряд системных правил, которые имеют приоритет выше, чем пользовательские. Неприятным свойством системных правил является то, что в них нет возможности отключить опцию Enable strict RPC compliance. Таким образом, остается два способа отключить фильтрацию трафика RPC между членами массива TMG:

  • Отключить все системные правила, под которые подходит трафик RPC. С помощью симулятора трафика таких правил обнаружилось очень много…
  • Отключить RPC Filter на уровне всего массива TMG. На первый взгляд, ничего страшного в этом нет…

Мне более симпатичен вариант с отключением RPC Filter на уровне массива. Для этого нужно выполнить следующие настройки:

  • Enterprise → Enterprise Add-ins → Application Filters → RPC Filter → Enable this filter on all arrays → Выкл
  • Arrays → My Array → System → Application Filters → RPC Filter → Enable this filter → Выкл

После применения данных настроек ошибки подключения в Network Load Balancing Manager припали. А значит, цель достигнута!

Полезные ссылки



Добавить комментарий