• TMG 2010 - Установка Service Pack 2 в массиве NLB

    imageРассмотрим пример установки последнего пакета обновлений и исправлений Service Pack 2 для Forefront TMG 2010 в конфигурации с двумя серверами находящимися в отдельном массиве TMG (Standalone Array) и объединёнными в NLB-кластер.

    Список обновлений и исправлений вошедших в состав пакета можно найти по ссылке: KB2555840 - Microsoft Forefront Threat Management Gateway 2010 Service Pack 2

    Загрузить сам пакет: Microsoft Download Center -  Forefront TMG 2010 Service Pack 2

    В нашем случае нам понадобиться файл TMG-KB2555840-amd64-ENU.exe, который после установки изменит версию TMG с 7.0.9027.441 до 7.0.9193.500

    Версия 7.0.9027.441 соответствует Forefront TMG 2010 SP1 с установленным обновлением Software update 1 и является необходимым минимумом для установки Service Pack 2.

    В инструкции по установке Service Pack обозначен следующий обязательный порядок обновления серверов являющихся членами массива:

    1) Enterprise Management Servers (master and replicas);
    2)
    Array managers;
    3)
    Array members.

    В нашем примере массив является отдельным и не использует EMS и поэтому сначала мы должны обновить управляющий сервер массива (Array Manager) а затем остальные управляемые сервера – члены массива (Array Managed). Для того чтобы посмотреть текущие роли серверов в консоли Forefront TMG Management выберем ветку System > закладка Servers

     

    image

     

    В нашем случае управляющим сервером массива является сервер KOM-AD01-TMG01 и поэтому процесс установки SP2 мы должны начать на нём в первую очередь.

    Также следует обратить внимание на то, что в инструкции по установке Service Pack есть ещё одно требование, которое говорит о том, что первым в массиве должен обновляться сервер отчетности (Report Server). Чтобы определить какой сервер отвечает в нашем массиве за данную роль и при необходимости переопределить его, – в консоли выберем ветку Log & Reports и на закладке Reporting выберем задачу Configure Reporting Settings

     

    image

     

    Перед началом процедуры установки важно выполнить резервное копирование конфигурации массива и отдельных его членов. Сделать это с помощью задачи консоли Export (Back up) в корне дерева консоли

     

    image

     

    Выполнить операцию экспорта настроек необходимо отдельно на каждом сервере – члене массива. Также неплохо иметь традицию отдельного документирования всех выполненных настроек серверов TMG. Дополнительную информацию о резервном копировании и восстановлении конфигурации TMG можно найти в статье Microsoft Forefront TechCenter - Backing up and restoring the Forefront TMG configuration

    Есть еще одно предварительное требование, которое может показаться странным, но тем не менее оно есть в документации и про него не стоит забывать. Для того чтобы процесс обновления Forefront TMG Enterprise Edition (EMS) прошёл успешно, его необходимо выполнять из под учетной записи того пользователя, который производил развертывание сервера EMS.

    Итак, общий процесс обновления всего массива в нашем случае будет так:

    1) На сервере Array Manager (KOM-AD01-TMG01)

    • Останавливаем службу NLB (Drain and Stop)
    • Блокируем службу NLB (Suspend)
    • Устанавливаем SP2. При необходимости перезагружаем сервер.
    • Восстанавливаем состояние службы NLB (Resume)
    • Запускаем службу NLB (Start)

    2) Повторяем указанные действия на всех остальных серверах - членах массива (Array Managed).

    Поехали…

    Открываем консоль TMG на сервере управления, в ветке Monitoring на закладке Services выбираем службу Network Load Balancing для обновляемого сервера (KOM-AD01-TMG01) и выполняем задачу Drain and stop

     

    image

     

    После этого обновляемый сервер перестанет принимать клиентские подключения и немного подождав выполняем для этой же службы задачу Suspend, то есть переводим службу в такое состояние, при котором наш сервер не будет участвовать в обслуживании клиентских подключений даже после перезагрузки.

    Дожидаемся пока статус службы не изменится на соответствующий:

     

    image

     

    После этого закрываем консоль TMG и из под прав Администратора запускаем инсталлятор пакета обновлений. При запуске инсталлятор определит сервер управления конфигурацией массива

     

    image

     

    Далее, вы можете получить от инсталлятора сообщение о том что какие-то процессы в системе используют файлы которые требуется обновить. И такие процессы для успешного окончания установки желательно завершить.

     

    image

     

    В моём случае таким процессом оказался MonitoringHost.exe. Это один их процессов агента SCOM запускаемых службой System Center Management (HealthService). И поэтому перед продолжением установки обновления я зашёл в оснастку управления службами (services.msc) и остановил соответствующую службу, что привело к закрытию указанно процесса.

     

    image

     

    Дожидаемся успешного окончания процесса установки.

     

    image

     

    После окончания установки не забываем обратно запустить службу агента SCOM.

     

    image

     

    Открываем обновлённую консоль TMG и в ветке System > закладка Servers проверяем версию обновлённого члена массива.

     

    image

     

    Обратите внимание на то, что после обновления управляемого сервера в консоли появляется предупреждение о том, что в нашем массиве есть не обновлённые члены.

    Переходим в консоли на ветку Monitoring и на закладке Services выбираем службу Network Load Balancing для уже обновлённого сервера (KOM-AD01-TMG01) и выполняем задачу восстановления службы Resume

     

    image

     

     

     

    В своём случае я обратил внимание на то, что операция Resume поменяла статус состояния службы на Stopped только со второй попытки.

     

    image

     

    Теперь запускаем службу задачей Start и ждём пока статус не измениться на Running. После этого удостоверимся в том, что все другие службы на обновлённом сервере находятся в запущенном состоянии и теперь можно приступать к обновлению второго сервера, являющегося рядовым управляемым членом массива. Для этого сразу выполним задачи Drain and stop и затем Suspend для его службы NLB.

     

    image

     

     

    После этого войдём на второй сервер и в оснастке управления службами остановим службу System Center Management  чтобы избежать предупреждений инсталлятора.

    Теперь можно запускать сам процесс установки обновления на втором сервере и после его успешного завершения, открыв обновлённую консоль TMG, проверяем версию и убеждаемся в том, что предупреждение о не обновлённых серверах из консоли исчезло.

     

    image

     

    Не забываем на втором сервере восстановить состояние службы агента SCOM а консоли TMG восстановить состояние службы NLB для обновлённого сервера

     

    image

     

    Затем запускаем службу NLB.

     

    image

     

    На этом общий процесс обновления массива можно считать законченным. А для того, чтобы убедиться в том, что все службы TMG на обоих обновлённых серверах самостоятельно адекватно стартуют при запуске системы, - можно по очереди перезагрузить оба сервера, если этого не делалось в процессе установки.

    Несмотря на то, что установка SP2 доступна и через клиента WSUS, я предпочёл мануальный способ инсталляции, так как он на мой взгляд является более осязаемым и в случае возможных проблем даёт понять на каком этапе процесса установки возникают эти проблемы.

    Источники информации:

  • Запрос авторизации Outlook при переключении БД Exchange или перезагрузке ноды NLB

    imageБыло замечено, что при выполнении процедуры переключения активной копии БД Exchange Server 2010 в группе DAG с одного сервера на другой (Database Switchover), а так же при проверке механизма аварийного переключения (Database Failover) на клиентах Outlook 2007/2010 происходит кратковременный разрыв соединения с сервером Exchange, сопровождаемый появлением окна авторизации для ввода имени пользователя и пароля. При этом, если без ввода учетных данных просто перезапустить Outlook, - соединение успешно восстанавливается. После проведения изыскательных мероприятий выяснилось то, что клиент Outlook в момент кратковременной потери MAPI (RPC) соединения c активным экземпляром БД Exchange пытается использовать альтернативный метод доступа – RPC over HTTP, то есть пытается использовать встроенный механизм мобильного клиента Outlook Anywhere. И в нашем случае это происходит из-за того, что на стороне серверов клиентского доступа компонента Outlook Anywhere настроена на использование Basic Authentication.

    Одним из методов решения данной проблемы может быть отключение использования встроенного механизма Outlook Anywhere в клиентах Outlook, включённого по умолчанию. Для этого в Outlook откроем свойства учетной записи > «Другие настройки» > перейдём на закладку «Подключение» и отключим флажок «Подключение к Microsoft Exchange по протоколу HTTP»:

    image

    Если стоит задача отключить данный механизм массово на всех клиентах, то можно это выполнить, например, с помощью доменных групповых политик – GPO. При попытке использовать ADMX шаблоны групповых политик в домене Windows Server 2008/2008 R2 имеющихся в комплекте с MS Office 2007/2010 вы можете убедиться в том, что они не имеют параметров для настройки мобильного клиента Outlook.
    В базе знаний Microsoft можно найти две статьи описывающие проблему невозможности настройки параметров мобильного клиента Outlook c помощью стандартных шаблонов GPO:

    В этих статьях нам доступны для загрузки шаблоны GPO в уже устаревшем формате – *.adm. Мы можем воспользоваться средством ADMX Migrator для того чтобы сконвертировать полученные ADM файлы в формат ADMX.

    После конвертации из каждого файла *.adm мы получим по два файла – *.admx (шаблон GPO) и *.adml (файл языкового описания для шаблона GPO).
    Зададим полученным файлам соответствующие имена:

    • Для Outlook 2007: outlk12_961112.admx и outlk12_961112.adml
    • Для Outlook 2010: outlk14_2426686.admx и outlk14_2426686.adml

    Для того чтобы в консоли управления групповыми политиками наши новые шаблоны смотрелись более наглядно, чем в том виде в котором они представлены по умолчанию, внесём некоторые корректировки в языковые файлы:

    В файле outlk12_961112.adml строку, описывающую отображаемое имя раздела GPO:

    <string id="L_MicrosoftOfficeOutlook12-Article961112">Article 961112 Policy Settings</string>

    заменим на строку:

    <string id="L_MicrosoftOfficeOutlook12-Article961112">Microsoft Office Outlook 2007 KB961112</string>

    В файле outlk14_2426686.adml строку, описывающую отображаемое имя раздела GPO:

    <string id="L_MicrosoftOfficeOutlook">Microsoft Outlook 2010</string>

    заменим на строку:

    <string id="L_MicrosoftOfficeOutlook">Microsoft Outlook 2010 KB2426686</string>

    Скопируем полученные в результате шаблоны outlk12_961112.admx и outlk14_2426686.admx в каталог центрального доменного хранилища шаблонов GPO - \domain.com\SYSVOL\domain.com\Policies\PolicyDefinitions
    Языковые файлы outlk12_961112.adml и outlk14_2426686.adml скопируем в это же размещение в подкаталог en-us.

    После этого, при работе с оснасткой редактирования доменных групповых политик Group Policy Management Editor (gpmc.msc) у нас появится возможность задавать соответствующие параметры:

    image

    Для того чтобы полностью отключить попытки Outlook использовать протокол HTTP, параметр RPC/HTTP Connection Flags должен быть включён и его значение должно быть установлено в No Flags:

    image

    После вступления в силу данного параметра GPO, для всех клиентских профилей будет добавлено соответствующее значение в куст реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Outlook\RPC (для Outlook 2007) или HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Outlook\RPC (для Outlook 2010):

    image

    …а в свойствах учетной записи Outlook параметры настройки мобильного клиента Outlook станут недоступны для изменений:

    image

    В развитие темы запросов авторизации Outlook можно также отметить то, что из практики замечено то, что в некоторых случаях перезагрузка одной из нод NLB кластера, обслуживающего массив Client Access Array, так же может порождать подобную проблему. Поэтому в случае если в рабочее время нам потребуется выполнить обслуживание серверов Client Access входящих в NLB кластер с необходимостью их перезагрузки, - перед выполнением перезагрузки в оснастке Network Load Balancing Manager соответствующий сервер желательно перевести в режим DRAINSTOP

    image

    При этом после перезагрузки нода NLB будет автоматически включаться в работу кластера если в оснастке NLB Manager в свойствах этого хоста значение параметра Default state установлено в Starded:

    image

    Дополнительная информация:

    Обновление 20.02.2018

    По просьбам трудящихся, у которых не получается самостоятельно сконвертировать ADM шаблоны, добавляю ссылку на готовые файлы: KB961112 & KB2426686 ADMX

  • Exchange Server 2010 How-to: Установка ролей Client Access и Hub Transport в NLB кластере на Windows Server 2008 R2

    imageС учетом нововведений в Exchange Server 2010, которые приближают роль Client Access к действительно оправдывающей своё название компоненте, перед нами возникает задача обеспечения максимально возможной отказоустойчивости этой роли в продуктивной среде. На сегодняшний день существуют лучшие методики и рекомендации Microsoft, которые обеспечение отказоустойчивости Exchange посредствам WNLB уже не признают как рекомендуемые, а вместо этого предлагают использовать аппаратные решения обеспечения балансировки нагрузки и отказоустойчивости. Однако в реальной практике, по тем или иным причинам, не все себе могут позволить придерживаться таких рекомендаций, и поэтому использование NLB на платформе Windows Server в такой ситуации будет вполне приемлемым вариантом. Я пошагово опишу на практическом примере процедуру установки ролей Exchange Server 2010 SP1 - Client Access (CA) и Hub Transport (HT) на два сервера, включённых в NLB кластер на Windows Server 2008 R2 в среде виртуализации Hyper-V Server 2008 R2.

    С точки зрения сетевого взаимодействия, схема отказоустойчивого NLB кластера из двух серверов Exchange 2010 с ролями Client Access и Hub Transport в нашем случае будет выглядеть так:

    clip_image002

    Среда исполнения

    В качестве серверов, на которые будет произведена установка Exchange Server 2001 SP1, будет использоваться два виртуальных сервера на базе хостов виртуализации на ОС Hyper-V Server 2008 R2. Каждый виртуальный сервер имеет следующую конфигурацию:

    • ОС Windows Server 2008 R2 Standard EN;
    • Объем выделенной ОЗУ - 4 Gb;
    • Число логических процессоров – 4;
    • Жёсткий диск – VHD фиксированного размера в 60 Gb;
    • Два синтетических сетевых адаптера

    При создании второго сетевого адаптера, который будет использоваться для построения NLB в свойствах виртуальной машины Hyper-V необходимо разрешить спуфинг МАС адресов (Enable spoofing of MAC addresses)

    image

    На Microsoft есть статья, описывающая возможные проблемы, связанные с построением NLB кластеров в окружении Hyper-V -KB953828 - Windows Server 2008 Hyper-V virtual machines generate a Stop error when NLB is configured or when the NLB cluster does not converge as expected


    Подготовка ОС к созданию кластера NLB

    После того как виртуальные машины сконфигурированы, на них установлена ОС и установлены все последние обновления с Windows Update, приступаем к настройке ОС для подготовки к созданию NLB кластера.

    Первым делом через Server Manager установим компоненту (фичу) Network Load Balancing

    image

    Так же компоненту NLB можно установить с помощью команды:

    dism /online /enable-feature /featurename:NetworkLoadBalancingFullServer

    clip_image007

    Дополнительную информацию об альтернативных способах установки NLB можно найти в статье MSDN Blogs - Clustering and High-Availability - Installing Network Load Balancing (NLB) on Windows Server 2008 R2

    Как обозначилось ранее, на каждом виртуальном сервере мы имеем по два сетевых интерфейса. Назовём их NIC1 и NIC2 и условимся что, согласно нашей схемы, NIC1 будет отвечать за управление самим сервером (будет зарегистрирован в DNS на FQDN имя сервера) а NIC2 (для которого включён спуфинг MAC адресов) будет участником NLB кластера.

    clip_image008

    Откроем окно настройки сетевых подключений и в меню Advanced > Advanced Settings и проверим порядок использования подключений (Connections). NIC1 должен иметь приоритет над NIC2.

    clip_image009

    Так же в свойствах сетевого подключения, которое будет использоваться для подключения к NLB кластеру (в нашем случае - NIC2) можно отключить все компоненты, за исключением TCP/IP:

    clip_image010

    В свойствах компонента TCP/IP зададим только выделенный IP адрес и маску подсети и по кнопке Advanced откроем окно дополнительных настроек

    clip_image011

    Обратите внимание на то, что в системах Windows Server 2008/2008R2 IP форвардинг пакетов между локальными интерфейсами внутри системы по умолчанию выключен, и для того чтобы наш NLB интерфейс стал доступен, нам нужно включить IP форвардинг на сетевом подключении входящем в NLB кластер командой:

    netsh interface ipv4 set interface “NIC2 – NLB” forwarding=enabled

    В окне дополнительных настроек TCP/IP на закладке DNS отключим механизм регистрации в DNS

    clip_image012

    После этого в локальной доменной зоне прямого просмотра DNS нам необходимо создать статическую А-запись для будущего NLB кластера.

    clip_image013


    Создание кластера NLB

    На первом виртуальном сервере (KOM-AD01-HT01) открываем консоль Network Load Balancing Manager. (меню Пуск > Administrative Tools). Выбираем пункт меню Cluster > New Cluster

    clip_image014

    Вводим имя первого узла, который хотим добавить в NLB, кнопкой Connect подключаемся к нему, и получив с него набор доступных интерфейсов, выбираем нужный:

    clip_image015

    На странице параметров хоста (Host Parameters) оставляем настройки по умолчанию:

    clip_image016

    В следующем окне мастера создания кластера добавляем IP адрес NLB кластера, на который мы ранее в DNS зарегистрировали А-запись.

    clip_image017

    Далее указываем FQDN кластера NLB (по той самой A-записи), а также режим его работы. Если серверы Exchange 2010 CAS установлены на VMware ESX или имеют другие требования к выбору многоадресного режима нужно выбрать режим Multicast , в нашем же случае нужно выбрать опцию одноадресного режима - Unicast.

    clip_image018

    На странице правил портов (Port rules) удаляем имеющееся по умолчанию правило и добавляем необходимые нам правила. При добавлении правила портов убираем флажок All и указываем конкретный интерфейс NLB и диапазон портов, который хотим добавить в кластер NLB.

    clip_image019

    В общей сложности, в нашем примере балансировке в NLB кластере мы будем подвергать следующие порты:

    • TCP 25 – Отправка почты по SMTP (для Legacy приложений);
    • TCP 80 – Перенаправление HTTP > HTTPS в IIS;
    • TCP 110 – Получение почты по POP3 (для Legacy приложений);
    • TCP 143 – Подключение по IMAP4;
    • TCP 443 - Outlook Anywhere, Exchange ActiveSync и Outlook Web App;
    • TCP 135 – MAPI RPC для подключения клиентов;
    • TCP 1024-65535 – MAPI RPC (Динамический диапазон RPC) для подключения клиентов;
    • TCP 993 – Secure IMAP (в Filtering mode Affinity установить в значение None);
    • TCP 995 – Secure POP (в Filtering mode Affinity установить в значение None);

    Диапазон динамических портов RPC при желании можно изменить до использования конкретного статического порта. Пример того как это можно сделать описан в статье Новая служба RPC Client Access Service в Exchange 2010 (обратите внимание на то, что в статье упор делается на RTM Exchange Server 2010, а с выходом SP1 процедура настройки статических портов RPC несколько изменилась).

    clip_image020

    Все необходимые параметры кластера заданы, создаем его по нажатию кнопки Finish и после первоначальной инициализации, если в конфигурации не допущены ошибки, NLB кластер запуститься в конфигурации с одним узлом

    image

    Далее, переходим на имя NLB кластера и пунктом меню Add Host to Cluster вызываем мастер добавления второго хоста в кластер.

    clip_image022

    Указываем имя нашего второго виртуального сервера (KOM-AD01-HT02), выполняем к нему подключение(Connect) и выбираем соответствующее сетевое подключение на этом удалённом сервере:

    clip_image023

    Значения на странице параметров хоста (Host Parameters) оставляем по умолчанию (приоритет хоста в кластере NLB будет выбран автоматически и при желании его можно изменить в много-хостовых конфигурациях)

    clip_image024

    Далее получаем список настроенных ранее портов, и если нет необходимости его изменять, завершаем процедуру и получаем уже полноценный Windows NLB кластер из двух хостов

    clip_image025


    Подготовка ОС к установке Exchange Server 2010 SP1

    Предварительные требования к ОС для установки Exchange Server 2010 можно найти по ссылке - TechNet Library - Exchange 2010 Prerequisites. Перед развёртыванием Exchange Server 2010 в AD должны быть проведены процедуры расширения схемы, подготовки леса и домена. Порядок проведения этих процедур описан в статье Exchange Server TechCenter - Prepare Active Directory and Domains.

    Так как на наших виртуальных серверах мы планируем включение роли Hub Transport, нам желательно предварительно скачать и установить Microsoft Office 2010 Filter Packs. Фильтры IFilter, входящие в пакет Microsoft Office 2010 Filter Pack используются в подсистеме поиска Exchange для индексирования текстового содержимого в форматах файлов Microsoft Office 2007/2010.

    В Exchange Server 2010 SP1 программа установки Exchange должна сама зарегистрировать фильтры IFilter из пакета фильтров Office 2010 Filter Pack в службе поиска Exchange, в отличие от RTM версии, где регистрацию нужно проводить в ручную, поэтому всё, что нам предварительно нужно сделать, это скачать 64-битную версию пакета и установить её…

    clip_image026

    Далее все необходимые системные компоненты для ролей Client Access и Hub Transport можно быстро установить с помощью PowerShell:

    Import-Module ServerManager

    Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart

    После окончания установки компонент, сервер выполнит перезагрузку. И так как набор используемых в ОС компонент расширился, сразу после перезагрузки выполним запрос к серверу WSUS и установим все доступные обновления.

    Мы планируем наши сервера для роли Client Access и поэтому необходимо изменить тип запуска службы Net.Tcp Port Sharing Service на Автоматический. Сделать это можно также командой PowerShell:

    Set-Service NetTcpPortSharing -StartupType Automatic

    Дополнительно, перед установкой роли Client Access, нам необходимо учесть требования раздела «Install the Exchange 2010 SP1 Hotfixes for Windows Server 2008 R2» онлайн документации и вручную скачать и установить обновления (которые не распространяются через WSUS), необходимые для корректного сосуществования с Exchange Server 2010 SP1:

    · KB982867 - WCF services that are hosted by computers together with a NLB fail in .NET Framework 3.5 SP1
    · KB979744 - A .NET Framework 2.0-based Multi-AppDomain application stops responding when you run the application
    ·
    KB983440 - An ASP.NET 2.0 hotfix rollup package is available for Windows 7 and for Windows Server 2008 R2
    ·
    KB977020 - FIX: An application that is based on the Microsoft .NET Framework 2.0 Service Pack 2 and that invokes a Web service call asynchronously throws an exception on a computer that is running Windows 7

    Скачаем по ссылкам указанным в KB пакеты исправления соответствующие нашей платформе – x64 и произведём их установку. После установки этих обновлений потребуется перезагрузка системы.

    clip_image027

    Без предварительной установки этих обновлений инсталлятор Exchange Server 2010 SP1 попросту не даст установить роль Client Access.


    Установка Exchange Server 2010 SP1

    Распаковываем ISO дистрибутив Exchange Server 2010 с интегрированным SP1 и запускаем Setup.exe в режиме Run as Administrator.

    Выбираем пункт 3 - Choose Exchange language option и указываем то, что для установки используем только языковые пакеты, входящие в состав дистрибутива

    image

    Затем выбираем пункт 4 - Install Microsoft Exchange

    Проходим шаги Introduction, License Agreement, Error Reporting и на шаге Installation Type выбираем Custom Exchange Server Installation, а так же на всякий случай отмечаем галку автоматической установки недостающих системных компонент:

    image

    На шаге выбора ролей отмечаем роли Client Access Role и Hub Transport Role

    image

    На следующем шаге нам будет предложено ввести FQDN имя нашего CA сервера (массива) опубликованное в Интернет. В моём случае точка публикации находится на другом сервере и поэтому я оставлю это значение пустым.

    image

    Затем инсталлятор проверит наличие в системе всех необходимых компонент для возможности установки выбранных ролей

    image

    Если проблемы не выявлены, можно запускать непосредственный процесс установки.

    image

    После окончания успешной установки необходимо будет произвести перезагрузку сервера.


    Установка последнего Rollup для Exchange Server 2010 SP1

    Информацию о текущих версиях Exchange Server можно найти по адресу - TechNet Wiki - Exchange Server and Update Rollups Builds Numbers

    На момент написания этой заметки, последним пакетом исправлений является - Update Rollup 2 for Exchange Server 2010 SP1 - 14.1.270.1 (12/9/2010) KB2425179

    Порядок установки последнего накопительного пакета обновлений описан в статье - TechNet Library - Install the Latest Update Rollup for Exchange 2010. Следуя его рекомендациям, для ускорения процесса установки, на время установки можно отключить проверку списков отзывов сертификатов в свойствах Internet Explorer (Открываем Internet Explorer и в меню Tools > Internet Options > Advanced > Security отключаем флажок Check for publisher’s certificate revocation).

    clip_image040

    Дополнительные сведения см. в статье 974445 базы знаний Майкрософт Создание образов NGEN занимает слишком много времени

    Для установки Rollup открываем командную строку в режиме Run as Administrator и запускаем из неё программу установки обновления, в нашем случае это файл Exchange2010-KB2425179-x64-en.msp, дожидаемся окончания установки и снова перезагружаем сервер, чтобы удостовериться в том, что все необходимые службы Exchange Server стартуют в штатном режиме.

    clip_image041


    Подготовка и привязка SAN сертификата

    Для корректной работы защищённого доступа к службам массива Client Access необходимо создать новый сертификат, так как FQDN, используемый для доступа в серверы Client Access в NLB кластере, не соответствует FQDN, заданному в поле общих имён или в поле альтернативных имён в SSL сертификате, который автоматически устанавливается на каждом сервере Client Access во время установки Exchange Server 2010. То есть нужно создать сертификат, в котором присутствуют несколько FQDN (сертификат с альтернативными именами объекта – SAN - Subject Alternative Name) – FQDN Client Access Array, FQDN каждого узла кластера NLB и служебные имена (такие как Autodiscover)

    Для создания запроса для нового SAN сертификата можно использовать Exchange Management Shell (командлет New-ExchangeCertificate):

    $RequestData = New-ExchangeCertificate -GenerateRequest -SubjectName "E = V.Pupkin@holding.com,CN = KOM-AD01-CA01.Holding.com,OU = KOMI,O = Holding Ltd.,L = Syktyvkar,S = Komi republic,C = RU" -DomainName kom-ad01-ca01.holding.com, kom-ad01-ht01.holding.com, kom-ad01-ht02.holding.com, autodiscover.holding.com, kom-ad01-ca01, kom-ad01-ht01, kom-ad01-ht02 -KeySize 1024 -PrivateKeyExportable $true

    Set-Content -path "C:TempCAS_SAN_Cert.req" -Value $RequestData

    Далее, на основании полученного файла запроса в локальном центре сертификации (если он настроен на поддержку сертификатов с Subject Alternative Name) можно получить сертификат.

    В нашем случае для отправки запроса и получения сертификата будет использоваться веб-узел локального центра сертификации Active Directory Certificate Services.

    На странице Advanced Certificate Request перейдём по ссылке “Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file.” и скопируем содержимое сгенерированного ранее запроса

    clip_image042

    После того как размещённый запрос на сертификат обработан администратором центра сертификации, мы можем с этого же веб-узла локального центра сертификации Active Directory Certificate Services загрузить сертификат в формате «Base 64 encoded» по ссылке « View the status of a pending certificate request » а затем «Download certificate chain».

    image

    Теперь импортируем полученный сертификат, используя Exchange Management Shell с помощью командлета Import-ExchangeCertificate:

    Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path С:Temp CAS_SAN_Cert.p7b -Encoding byte -ReadCount 0))

    После импорта сертификата командлет вернёт нам Thumbprint, по которому можно будет проверить текущее состояние сертификата с точки зрения Exchange и его привязки к сервисам командлетом Get-ExchangeCertificate:

    Get-ExchangeCertificate -Thumbprint <thumbprint> | FL

    clip_image045

    В данный момент мы видим, что сертификат используется только службами IMAP и POP и нам нужно включить сертификат для остальных клиентских служб и SMTP. Для этого воспользуемся командлетом Enable-ExchangeCertificate:

    Enable-ExchangeCertificate –Thumbprint <thumbprint> -Services "IMAP, POP, IIS, SMTP"

    Теперь наш новый сертификат необходимо установить на втором узле NLB кластера (на сервере KOM-AD01-HT02). Для этого нужно произвести на сервере KOM-AD01-HT01 экспорт этого сертификата с закрытым ключом из хранилища Certificates /Local Computer/Personal. Сделать это можно через оснастку управления сертификатами.

    clip_image046

    в Certificate Export Wizard на странице Export Private Key выберите опцию Yes, export the private key

    image

    На странице Export File Format выберите Personal Information Exchange – PKCS #12 (.PFX) и поставьте отметку напротив Include all certificates in the certificates path if possible.

    image

    Затем введите пароль для защиты закрытого ключа, который мы в дальнейшем будем использовать для импорта сертификата на сервер KOM-AD01-HT02

    image

    Далее указываем имя файла и завершаем мастер экспорта сертификата. Полученный файл в формате PFX копируем на наш второй сервер (KOM-AD01-HT02) и, открыв на нём Exchange Management Shell, выполняем импорт сертификата с помощью командлета Import-ExchangeCertificate:

    clip_image053

    При этом появиться запрос на ввод учетных данных. В поле User name можно ввести любой текст, а в поле Password нужно ввести пароль, который мы ранее задали при экспорте сертификата в формате PFX. После того как сертификат успешно импортирован, как описывали ранее, выполняем привязку этого сертификата к службам Exchange на этом сервере:

    Enable-ExchangeCertificate –Thumbprint <thumbprint> -Services "IMAP, POP, IIS, SMTP"


    Создание массива Client Access Array (CAA)

    Теперь собираем сам массив Client Access Array. Для этой цели воспользуемся командлетом New-ClientAccessArray:

    New-ClientAccessArray -Fqdn KOM-AD01-CA01.holding.com -Site "MyMainSite" -Name "KOM-AD01-CA01.holding.com"

    Посмотреть свойства и проверить текущее состояние массива можно с помощью командлета Get-ClientAccessArray

    clip_image054


    Настройка Client Access URLs в массиве CAA

    Теперь для каждого сервера CAS в массиве CAA должны быть установлены URL обеспечивающие доступ к службам Exchange через NLB. То есть мы должны проверить следующие URL:

    · Autodiscover. Виртуальный каталог - /Autodiscover
    · Outlook Web Apps. Виртуальный каталог - /OWA
    · Exchange Control Panel. Виртуальный каталог - /ECP
    · Exchange Active Sync. Виртуальный каталог - /Microsoft-Server-ActiveSync
    · Offline Address Book. Виртуальный каталог - /OAB
    · Exchange Web Services. Виртуальный каталог - /EWS

    Итак, на каждом CAS сервере, входящем в ферму NLB (Массив CAA):


    1) Параметр AutoDiscoverServiceInternalUri должен быть установлен в значение CAA FQDN. Проверить это можно следующим скриптоблоком:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where-Object {$_.Name -eq $CASArrayName}

    $CAAHosts = $CAAObj.Members

    Foreach ($CASHost in $CAAHosts)

    {

    Get-ClientAccessServer -Identity $CASHost.Name | FL Identity,AutoDiscoverServiceInternalUri

    }

    Результат должен быть примерно таким:

    clip_image055


    2) Для каждой веб-службы значение параметра InternalNLBBypassURL должно быть установлено в значение Server FQDN. Проверить это можно следующим скриптоблоком:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where-Object {$_.Name -eq $CASArrayName}

    $CAAHosts = $CAAObj.Members | Select-Object Name

    Foreach ($CASHost in $CAAHosts)

    {

    Get-WebServicesVirtualDirectory -Server $CASHost.Name  | FL Identity, InternalNLBBypassUrl

    }

    Результат должен быть примерно таким:

    clip_image056


    3) Параметры InternalURL и ExternalURL для каждой веб-службы должны быть заданы в соответствии с таблицей:

    Виртуальный каталог

    InternalURL

    ExternalURL
    (AD Сайт с подключением к Интернету)

    ExternalURL
    (AD сайт без подключения к Интернету)

    /OWA

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /ECP

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /Microsoft-Server-ActiveSync

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /OAB

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    /EWS

    NLB FQDN

    NLB FQDN (Внешнее имя)

    X

    Для быстрого получения информации о том, какие в текущий момент значения InternalURL и ExternalURL установлены на всех серверах массива CAA можно использовать скриптоблок:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where {$_.Name -eq $CASArrayName}

    $CAAHosts = $CAAObj.Members | Select Name

    Foreach ($CASHost in $CAAHosts)

    {

    Write-Host $CASHost.Name "Client Access URLs:" -ForegroundColor Cyan

    Write-Host ""

    $UrlOWA = Get-OwaVirtualDirectory -Server $CASHost.Name

    Write-Host "OWA Internal:" $UrlOWA.InternalUrl

    Write-Host "OWA External:" $UrlOWA.ExternalUrl

    $UrlECP = Get-EcpVirtualDirectory -Server $CASHost.Name

    Write-Host "ECP Internal:" $UrlECP.InternalUrl

    Write-Host "ECP External:" $UrlECP.ExternalUrl

    $UrlASc = Get-ActiveSyncVirtualDirectory -Server $CASHost.Name

    Write-Host "ASc Internal:" $UrlASc.InternalUrl

    Write-Host "ASc External:" $UrlASc.ExternalUrl

    $UrlOAB = Get-OabVirtualDirectory -Server $CASHost.Name

    Write-Host "OAB Internal:" $UrlOAB.InternalUrl

    Write-Host "OAB External:" $UrlOAB.ExternalUrl

    $UrlWeb = Get-WebServicesVirtualDirectory -Server $CASHost.Name

    Write-Host "EWS Internal:" $UrlWeb.InternalUrl

    Write-Host "EWS External:" $UrlWeb.ExternalUrl

    Write-Host ""

    }

    Для того чтобы быстро установить все значения InternalURL в FQDN CAA воспользуемся скриптоблоком:

    $CASArrayName = "KOM-AD01-CA01.holding.com"

    $CAAObj = Get-ClientAccessArray | Where {$_.Name -eq $CASArrayName}

    $CAAFQDN = $CAAObj.Fqdn

    $CAAHosts = $CAAObj.Members | Select Name

    Foreach ($CASHost in $CAAHosts)

    {

    $OWADirObj = Get-OwaVirtualDirectory -Server $CASHost.Name

    Set-OwaVirtualDirectory -Identity $OWADirObj.Identity -InternalUrl "https://$CAAFQDN/owa"

    $ECPDirObj = Get-EcpVirtualDirectory -Server $CASHost.Name

    Set-EcpVirtualDirectory -Identity $ECPDirObj.Identity -InternalUrl "https://$CAAFQDN/ecp"

    $AScDirObj = Get-ActiveSyncVirtualDirectory -Server $CASHost.Name

    Set-ActiveSyncVirtualDirectory -Identity $AScDirObj.Identity -InternalUrl "https://$CAAFQDN/Microsoft-Server-ActiveSync"

    $OABDirObj = Get-OabVirtualDirectory -Server $CASHost.Name

    Set-OabVirtualDirectory -Identity $OABDirObj.Identity -InternalUrl "http://$CAAFQDN/OAB"

    $WebDirObj = Get-WebServicesVirtualDirectory -Server $CASHost.Name

    Set-WebServicesVirtualDirectory -Identity $WebDirObj.Identity -InternalUrl https://$CAAFQDN/EWS/Exchange.asmx

    }


    Подключение баз данных Exchange к CAA

    Если базы данных на серверах с ролью Mailbox создаются после создания массива CAA, то значение атрибута RpcClientAccessServer каждой БД должно быть задано как FQDN массива CAA. Проверить это можно с помощью команды:

    Get-MailboxDatabase | Format-List Name,RpcClientAccessserver

    clip_image057

    Если базы данных были созданы до настройки CAA, то значение атрибута RpcClientAccessServer будет иметь FQDN конкретного сервера с ролью Client Access. Переопределить это значение, указав FQDN массива CAA можно командой:

    Set-MailboxDatabase "MyDB" -RpcClientAccessServer "KOM-AD01-CA01.holding.com"


    Проверяем работоспособность Client Access Array

    Проверить работоспособность CAA можно, например, с помощью MS Outlook 2007/2010, служба Autodiscover должна разрешить имя сервера как FQDN массива. Откроем мастер добавления новой учетной записи в Outlook, утвердительно ответим на вопрос о настройке учетной записи электронной почты..

    clip_image058

    Дождёмся окончания процесса автоконфигурации..

    clip_image059

    После окончания работы мастера откроем в Outlook свойства созданного профиля учетной записи и проверим то, что подключение настроено на FQDN массива CAA

    image

    Обратите внимание на то, что при использовании клиентов Outlook 2003 может возникнуть проблема при подключении, если на серверах Exchange в службе RPC Client Access включено требование шифрования. Проверить текущее состояние этой настройки можно командой:

    Get-RpcClientAccess | Format-List Server,EncryptionRequired

    Дальше можно проверить возможность подключения к OWA с указанием всех вариантов имени CA/CAA в URL используемых при создании SAN сертификата и поочерёдно сымитировать отказ одного из серверов в NLB кластере, чтобы удостовериться в том, что сервисы клиентского доступа Exchange Server при этом остаются доступными.

    Дополнительная информация:

    TechNet Library - Exchange Server 2010 Library.
    Exchange Server TechCenter - White Paper: Understanding the Relative Costs of Client Access Server Workloads in Exchange Server 2010
    MSExchange.ru - Новая служба RPC Client Access Service в Exchange 2010
    Yannick Varloud Blog - Exchange Server 2010 : How to setup a Client Access Array