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

Всего комментариев: 21 Комментировать

  1. Андрей Серенков /

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

  2. Александр Добрынин /

    Я бы добавил в статью упоминание о Windows Firewall. Его необходимо выключить, либо настроить в соответствии с рекомендациями.
    При дефолтовой настройке WF, сервисы Exchange недоступны по имени CAA

    1. Алексей Максимов /

      Развертывание любых сетевых сервисов по умолчанию предполагает настройку Firewall (если он активен) и надо быть большим фантазёром, чтобы например заниматься траблшутингом неработающего сервиса с включенным и ненастроенным предварительно брэндмауэром :)

  3. Павел Андреев /

    Алексей, огромное спасибо за статью. Наконец-то вы научили меня "правильно варить" WNLB - про ручное включение форварда между сетевухами читаю впервые.
    Ну а по-поводу установки Exchange 2010 SP1: поделюсь собственным experience :)
    1) "Далее все необходимые системные компоненты для ролей Client Access и Hub Transport можно быстро установить с помощью PowerShell:" - смело вычёркиваем, ибо:
    "а так же на всякий случай отмечаем галку автоматической установки недостающих системных компонент". Не на всякий случай, а именно САМ Инсталлятор при этом выборе установит все роли и фичи ОС (к тому же, без дополнительной перезагрузки).
    2) "Порядок установки последнего накопительного пакета обновлений описан в статье" - при "чистой" установке достаточно скопировать дистрибутив последнего Exchange RollUp в папку Exchange 2010 SetupUpdate и он применится сразу же при установке (опять же - без промежуточных перезагрузок). Readme - лежит в этой папке.

    Коллеги, тестируйте и дополняйте усовершенствования! :)

    1. Алексей Максимов /

      По поводу WNLB есть ещё и другой вариант конфигурации который тоже работает но я нигде не встречал описание того, что так можно и правильно. Это когда в свойствах NLB интерфейса задаётся и IP шлюза и IP DNS серверов, то есть NLB интрефейс делается самостоятельно маршрутизируемым. У меня в такой конфигурации сейчас работает (и не кашляет) старый WNLB CAS Exchange Server 2007 на Windows Server 2008.
      Что же касается включения ролапа в дистрибутив, наверно надо было мне про каталог Update упомянуть в своей заметке (просто упустил из виду). Но в любом случае я предпочитаю всегда максимально разделять такие процедуры, как подготовка к установке, установка, послеустановочные обновления - чтобы в случае возникновения проблем на каком то из этих этапов было легче траблшутить, и именно поэтому процесс установки ролапа выделен обособленно. Ведь вполне возможна ситуация когда продукт будет штатно работать после установки оригинального дистрибутива и приходить в упадок после установки очередного ролапа. Так что выбор порядка развёртывания каждый выбирает сам для себя, я лишь показываю проработанный на конкретном примере вариант.

      1. Дмитрий /

        Добрый день, Алексей.
        Воспользовался вашим мануалом, вроде все понятно и выполнимо :-).

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

  4. Андрей Вахитов /

    В финальный скрипт по заполнению InternalURL я бы добавил строку с настройкой AutoDiscoverServiceInternalUri

  5. Валерий /

    Спасибо за статью.
    Только очень много powershell'а и ничего про визарды, которые есть, работают и должны работать. Это знаете ли эволюция что ли. Что-то вроде автомобильной автоматической коробки передач. Нет, механика конечно круче и с ней ты всё контроллируешь... :)

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

  6. Обратная ссылка: Exchange Server 2010 How-to: Создание Database Availability Group (DAG) на Mailbox серверах на Windows Server 2008 R2 « ИТ Блог Алексея Максимова /

  7. Алексей Максимов /

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

    1. Дмитрий /

      Я правильно понимаю, что это (Клиенты подключаются к конкретному виртуальному IP NLB кластера из любой подсети.) достигается при помощи команды?

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

      1. Алексей Максимов /

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

  8. Дмитрий /

    Тогда подскажите, как пользователь, находящийся в подсети, отличной от подсети, в которой находится CAS+HUB НЛБ-ксластер, получит доступ с к своему ящику, когда на НЛБ-интерфейсах не настроен шлюз по умолчанию? Впорос задаю, потому что не могу понять, как, если нет шлюзов, прописанных на интерфейсах.

    1. Алексей Максимов /

      Теперь вопрос понятен. Как раз таки включение функции маршрутизации между интерфейсами внутри сервера (форвардинг) и требуется для того, чтобы трафик из NLB-интерфейса прошёл через второй сетевой интерфейс (на котором настроен адрес шлюза) и попал таким образом во внешнюю сеть. Как я отметил в другом предыдущем комментарии, на практике так же можно встретить конфигурации когда оба интерфейса сервера (и NLB и управления) имеют в настройках адрес шлюза, но в реальности такой конфигурации в документации MS я не встречал нигде, поэтому нельзя считать её рекомендуемой.

      1. Дмитрий /

        Тогда следующее наблюдение. Пытался из своей подсети, проверить доступность порта 25, при этом НЛБ-КАС+ХАБ находился в другой, порт не отвечал, коннектился на ИП НЛБ-кластера. При этом из родной подсети НЛБ-кластера, было все ок. Почему не отрабатывало? :-)

  9. Алексей Максимов /

    Не стоит так же забывать про режим работы NLB - Multicast или Unicast. Unicast нормально работает в маршрутизируемых сетях в большинстве случаев без дополнительной настройки сетевого оборудования. Если вы выбираете Multicast, то вроде как может потребоваться дополнительная настройка сетевого оборудования.

    Если вам из клиентской подсети нормально прощупываются ноды NLB кластера по отдельности, а интерфейс NLB не доступен, то возможно у вас как раз имеет место быть проблема с ненастроенным сетевым оборудованием (коммутатор/маршрутизатор).

  10. Дмитрий /

    У меня непонятная ситуация.

    2 офиса, т.е. 2 крупные подсети.

    в Офисе1 располагается КАС-опбликованный наружу, в ДНС создана для него запись, такая же как снаружи (Ext CAS FQDN), в Офисе2 НЛБ-КАС-масив, настроенноый по данной статье.

    Логинюсь на рабочую станцию под своим акком, захожу в ОВА на Ext CAS FQDN, получаю доступ в свой ящик. Не выходя из ОВА пытаюсь переключиться на другой ящик, который обслуживается НЛБ-КАС-массивом. Получаю след-й отлуп:

    A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.177.88.28:443. Тоже самое происходит, если логинюсь на комп под тестовой учеткой, которую обслуживает НЛБ-КАС-массив при коннекте на Ext CAS FQDN.

  11. Обратная ссылка: App-V 5 for RDS — Разворачиваем инфраструктуру повышенной доступности | Блог IT-KB /

  12. tester /

    Подскажите как добавить еще один сервер в уже имеющийся CAS ?

    1. Алексей Максимов / Автор записи

      Не совсем понял, что именно вызывает затруднения?

  13. Влад /

    Сделал по Вашей статье, спс. есть "А" серв со всеми ролями, "В" с CAS и HUB и "С" с CAS HUB . Проблема такая , если аутлуук был настроен на @B@ сервер и этот В сервер выключить , то аутлук все равно продолжает попытки подключения к "В" невзирая на работающие остальные сервера . куда посмтреть ?

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