В предыдущем посте я описал начальную настройку балансировщика KEMP VLM. Чтобы продолжить его настройку под Exchange 2010 необходимо сделать некоторые действия с сервером Exchange. А именно:
- Создать во внутренней DNS-зоне a-запись для подключения клиентов.
- Необходимо будет создать CAS Array.
- Имеет смысл зафиксировать порты для сервисов MSExchangeRpc и MSExchangeAB.
Я в лабе использую так называемую 1-arm конфигурацию, то есть и клиенты и серверы находятся в одной сети и балансировщик использует один сетевой интерфейс. Общая конфигурация лабы следующая:
Сервер | IP | Роль |
dc.o365lab.pro | 192.168.1.10 | DC,DNS,CA |
ex1.o365lab.pro | 192.168.1.50 | CAS,HT,MBX |
ex2.o365lab.pro | 192.168.1.51 | CAS,HT,MBX |
lb1001.o365lab.pro | 192.168.1.150 | VLM |
Для клиентского доступа я создам а-запись outlook в зоне o365lab.pro:
> outlook Server: dc.o365lab.pro Address: 192.168.1.10 Name: outlook.o365lab.pro Address: 192.168.1.52
Следующий шаг – создание CAS Array:
New-ClientAccessArray -Name outlook -Fqdn outlook.o365lab.pro -Site Default-First-Site-Name
Затем – фиксация портов для сервисов MSExchangeRpc и MSExchangeAB на всех серверах Exchange:
HKLMSystemCurrentControlSetServicesMSExchangeRPC ParametersSystemTCP/IP Port = 0xe8сb HKLMSystemCurrentControlSetServicesMSExchangeAB ParametersRpcTcpPort = "59596"
Не забываем исправить RpcClientAccessServer у существующих почтовых баз:
Get-MailboxDatabase | Set-MailboxDatabase -RpcClientAccessServer outlook.o365lab.pro
И исправить адреса доступа к разным клиентским сервисам:
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri https://outlook.o365lab.pro/Autodiscover/Autodiscover.xml
Get-OABVirtualDirectory | Set-OABVirtualDirectory -ExternalURL https://owa.o365lab.pro/OAB -InternalURL https://outlook.o365lab.pro/OAB
Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExternalURL https://owa.o365lab.pro/ews/exchange.asmx -InternalURL https://outlook.o365lab.pro/ews/exchange.asmx
Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExternalURL https://owa.o365lab.pro/Microsoft-Server-ActiveSync -InternalURL https://outlook.o365lab.pro/Microsoft-Server-ActiveSync
Get-OWAVirtualDirectory | Set-OWAVirtualDirectory -ExternalURL https://owa.o365lab.pro/OWA -InternalURL https://outlook.o365lab.pro/OWA
Get-ECPVirtualDirectory | Set-ECPVirtualDirectory -ExternalURL https://owa.o365lab.pro/ECP -InternalURL https://outlook.o365lab.pro/ECP
Стоит обратить внимание, что для внутреннего доступа (InternalURL) я использую имя outlook.o365lab.pro, а для внешнего (ExternalURL) – owa.o365lab.pro. По последнему имени так же будет работать Outlook Anywhere. Оно же будет фигурировать во внешней dns-записи для службы автообнаружения. Если по каким то причинам нам нужно минимизировать имена, прописываемые в поле SAN сертификата, то можно использовать одно dns-имя, но в случае с внешним доступом это немного замедлит подключение клиентов.
Теперь можно начать настраивать балансировщик. Все сервисы у нас будут доступны по одному ip-адресу 192.168.1.52. Для упрощения процедуры настройки можно импортировать (Virtual Services → Manage Template) и использовать при создании один из доступных шаблонов. Я буду использовать Core.tmpl:
В стандартных настройках имеет смысл поставить L7 Transparency. Остальные настройки оставляем без изменений.
Ниже, в Real Servers добавляем физические серверы:
Кроме веб-сервиса (OAB/ActiveSync/OWA/ECP) на балансировщике необходимо сделать сервисы для MAPI (порт 135), MSExchangeRpc (порт 59595) и MSExchangeAB (порт 59596). Итоговая таблица сервисов у нас будет выглядеть следующим образом:
Вот как будет выглядеть статус подключения на клиенте и результат автоматической проверки настроек:
Видно, что клиент внутренний (использует TCP/IP, а не HTTP) и использует внутренней имя outlook.o365lab.pro для подключения.
Статистика на самом балансировщике показывает, что клиент перенаправляется на сервер ex1:
Попробуем организовать небольшой сбой (выключим виртуалку ex1). В статистике сразу становится видно, что ex1 находится в нерабочем состоянии (Down), а все запросы пошли ко второму живому серверу:
Полезные ссылки:
LoadMaster Installation and Configuration Guide
LoadMaster Deployment Guide for MS Exchange 2010
Что-то комментариев не видно, а ведь отличная статья!
Кратко и емко, ещебы диаграмму подключений в конце добавить, для облегчения восприятия.
Чего не хватает в статье – краткого поисание, что умеет данный баласировщик, просто раскидывать клиентов как DNS RoundRobin или хранить состояние сессий?
Например, у нас идет RPC подклчюение, одни CAS падает, будет ли сохранено состояние сеанса или придется переподключаться?
Сергей,
В качестве представителя kemp technologies подтверждаю что балансировщики КЕМР Load Master перераспределяет трафика клиентов по методом DNS round robin, Least Connection, Agent Based Adaptive Balancing, Fixed Weighted, weighted round robin, Source IP Hash и также у нас есть Load Balancing with persistence- With persistence, the LoadMaster will direct new connections according to the load balancing algorithm,
but returning connections will go to the same server
Полная информация находиться здесь
Димо Илиев
KEMP Technologies
Email: diliev@kemptechnologies.com
Tel: +353 61 260 117
Наверное, можно добавить, что изменение RpcClientAccessServer у существующих почтовых баз? автоматом не меняет настроек клиентов 😎 и предстоит определенная работа, по их переключаению на casarray
Сергей, спасибо за комментарии. Извиняюсь за задержку с ответом, был немного занят.
1. По диаграмме подключений не совсем понял, что имеется ввиду. Подробнее напишете?
2. Добавил к статье ссылки на документацию от Kemp. Балансировщик умеет многое. Я не ставил перед собой цель полностью расписать его преимущества/недостатки. Описываю лишь конкретные сценарии (интересные мне) применения.
Состояние сеанса сохраняется. В терминах Kemp это называется Persistence. И в случае с Exchange 2010 рекомендуется использовать режим Source IP Address (без SSL Offloading, или не-HTTP/HTTPS трафик), либо Super HTTP (с SSL Offloading). Отличие режимов лучше посмотреть в LoadMaster_Configuration_Guide.pdf.
3. Всех сценариев в небольшой заметке не описать. Таки вы правы, если создавать CAS Array в уже существующей инфраструктуре Ex2010, то придётся повозиться с клиентами. С другой стороны – ничто не мешает нам создать CAS Array сразу – это немного упростит процесс.