Ви є тут

Миграция Exchange. 2 Настройка CAS Array

Microsoft Exchange Logo

Виртуальные машины и роли для Exchange 2010 готовы. Теперь, для миграции почтовых служб, нужно подготовить точку подключения для пользователей. Именно за это и отвечает роль CAS. Но мы же хотим отказоустойчивости, по этому будем создавать CAS Array с балансировкой нагрузки. Об этом и поговорим.

Установка NLB на CAS сервера

В качестве NLB будем использовать одноименную службу Windows. Установим службу Network Load Balancing и модуль управления с помощью PowerShell на КАЖДОМ из CAS серверов. Для этого, запустим консоль PowerShell и выполним:

Import-Module ServerManager
Add-WindowsFeature NLB
Import-Module  NetworkLoadBalancingClusters

Теперь создадим NLB кластер с IP 192.168.17.180 на этом сервере:

New-NlbCluster -HostName UK-BERDYCHIV-XC03 -InterfaceName "Local Area Connection 4" -ClusterName CASArray -ClusterPrimaryIP 192.168.17.180 -OperationMode Multicast

Name                        IPAddress                  SubnetMask                 Mode
----                        ---------                  ----------                 ----
CASArray                    192.168.17.180              255.255.252.0              MULTICAST

NLB кластер создан на сервере UK-BERDYCHIV-XC03. Повторим установку службы NLB для второго сервера (как описано выше) и добавим сервер в NLB кластер :

Get-NlbCluster -HostName UK-BERDYCHIV-XC03 | Add-NlbClusterNode -NewNodeName UK-BERDYCHIV-XC04  -NewNodeInterface "Local Area Connection 4"

Name                       State                      Interface                  HostID
----                       -----                      ---------                  ------
UK-BERDYCHIV-XC04          Converged                  Local Area Connection 4    2

Для NLB кластера желательно указать порта, которые ему слушать (через консоль управления NLB ). А именно:

  • TCP/135 – для работы CAS-массива (убедитесь, что в Filtering Mode свойство Affinity включено в Single);
  • TCP/1024-65535 – диапазон RPC портов для MAPI-клиентов и CAS (если у вас не указаны статические порты);
  • TCP/443 - для Outlook Anywhere, Exchange ActiveSync и Outlook Web App;
  • TCP/993 – для Secure IMAP (Affinity включено в None); - я не использую
  • TCP/995 – для Secure POP (Affinity включено в None); - я не использую
  • TCP/80 – для внутреннего IIS перенаправления (HTTP > HTTPS).

Поскольку сервера CAS у нас виртуальные машины на Hyper-V, то нужно внести правки в настройки сети на ВМ - МАС адрес прописать статический и включить спуфинг:

Создание CAS Array

NLB кластер готов, теперь нужно создать CAS Array. Для этого выполним в Exchange Management Shell:

New-ClientAccessArray -Name CASArray -Site "BERDYCHIV" -FQDN "UK-BERDYCHIV-ca01.BERDYCHIV.ua"

Name                Site                 Fqdn                           Members
----                ----                 ----                           -------
CASArray            BERDYCHIV            webmail.BERDYCHIV.ua           {UK-BERDYCHIV-XC03, UK-BERDYCHIV-XC04}

Именно по параметру -FQDN (UK-BERDYCHIV-ca01.BERDYCHIV.ua) будут подключаться клиентские Outlook.

Получение сертификатов для CAS Array

Нужно запросить сертификат. Генерируем файл запроса, выполним в Exchange Management Shell:

New-ExchangeCertificate -FriendlyName 'webmail' -GenerateRequest -PrivateKeyExportable $true -KeySize '2048' -SubjectName 'C=UA,S="BERDYCHIV",L="BERDYCHIV",O="BERDYCHIV",OU="Corporation",CN=webmail.BERDYCHIV.ua' -DomainName 'UK-BERDYCHIV-xc03.BERDYCHIV.ua','UK-BERDYCHIV-xc04.BERDYCHIV.ua','webmail.BERDYCHIV.ua','BERDYCHIV.ua','autodiscover.BERDYCHIV.ua','legacy.BERDYCHIV.ua' | Out-File c:\certreq.txt

Важно! Параметр CN=webmail.BERDYCHIV.ua должен обязательно соответвовать названию сайта - то имя, по которому доступен севрер из интерен. Не смотря на дополнительные имена сертификатов, была обнаружена проблема с Windows XP - она совсем не понимает доп.имена и будет вечный запрос пароля в OutlookAnywhere.


Теперь полученный запрос (файл certreq.txt) нужно отправить в наш (доменный) центр сертификации, а лучше купить платный. В результате мы получим файл сертификата (certnew.cer). Его нужно импортировать на CAS сервер, и применить к службам, выполним в Exchange Management Shell:

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:\certnew.cer -Encoding Byte -ReadCount 0)) | Enable-ExchangeCertificate -Services "IIS,POP,IMAP,SMTP"

Thumbprint                    Services   Subject
----------                    --------   -------
0BBB11A19BA7B1DAE28947A0AC94  ......     CN=webmail.BERDYCHIV.ua, OU=Corporation, O=BERDYCHIV, L=BERDYCHIV, S=BERDYCHIV, C=UA

Но, по скольку у нас есть другой CAS сервер и старые сервера, этот сертификат нужно экспортировать:

$file = Export-ExchangeCertificate -Thumbprint 0BBB11A19BA7B1DAE28947A0AC94 -BinaryEncoded:$true -Password (Get-Credential).password

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
Set-Content -Path "c:\cert.pfx" -Value $file.FileData -Encoding Byte

Теперь экспортный вариант нужно импортировать на второй CAS сервер:

Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path c:\cert.pfx -Encoding Byte -ReadCount 0)) -Password:(Get-Credential).password

cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential

Thumbprint                    Services   Subject
----------                    --------   -------
0BBB11A19BA7B1DAE28947A0AC94  ......     CN=webmail.BERDYCHIV.ua, OU=Corporation, O=BERDYCHIV, L=BERDYCHIV, S=BERDYCHIV, C=UA

И применить к службам:

Get-ExchangeCertificate -Thumbprint 0BBB11A19BA7B1DAE28947A0AC94 | Enable-ExchangeCertificate -Services IIS,POP,SMTP

Confirm
Overwrite the existing default SMTP certificate?

Current certificate: '6A4D96016503DBE31F2CB3EB63519B7' (expires 2/6/2018 4:13:25 PM)
Replace it with certificate: '0BBB11A19BA7B1DAE28947A0AC94' (expires 4/11/2015 12:30:37 PM)
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): a

Для импорта на старый (Exchange 2003) сервер нужно использовать оснастку сертификаты в консоли mmc.

Включение OutlookAnywhere

Для включения опции OutlookAnywhere нужно выполнить для КАЖДОГО CAS сервера:

Enable-OutlookAnywhere -Server:UK-BERDYCHIV-xc04 -ExternalHostname:webmail.BERDYCHIV.ua -ClientAuthenticationMethod:Ntl
m -SSLOffloading:$false
WARNING: The following Microsoft Exchange 2003 back-end servers aren't enabled for Outlook Anywhere. If you want to
enable them, use Exchange System Manager. UK-BERDYCHIV-xs03.BERDYCHIV.ua, UK-BERDYCHIV-XS06.BERDYCHIV.ua, UK-BERDYCHIV-xs09.BERDYCHIV.ua
WARNING: Outlook Anywhere isn't supported on servers that are running Microsoft Windows Server 2000 or earlier
versions. Please verify that the following servers are not running Windows Server 2000 or earlier versions:
UK-BERDYCHIV-xs03.BERDYCHIV.ua, UK-BERDYCHIV-XS06.BERDYCHIV.ua, UK-BERDYCHIV-xs09.BERDYCHIV.ua
WARNING: Outlook Anywhere will be enabled on your Client Access server after a configuration period of approximately
fifteen minutes. To verify that Outlook Anywhere has been enabled, check the application event log on server
UK-BERDYCHIV-XC04.

RunspaceId                      : 3a0afee9-2730-4819-ad31-5aaac5eb5e26
ServerName                      : UK-BERDYCHIV-XC04
SSLOffloading                   : False
ExternalHostname                : webmail.BERDYCHIV.ua
ClientAuthenticationMethod      : Ntlm
IISAuthenticationMethods        : {Basic, Ntlm}
XropUrl                         :
MetabasePath                    : IIS://UK-BERDYCHIV-XC04.BERDYCHIV.ua/W3SVC/1/ROOT/Rpc
Path                            :
ExtendedProtectionTokenChecking : None
ExtendedProtectionFlags         : {}
ExtendedProtectionSPNList       : {}
Server                          : UK-BERDYCHIV-XC04
AdminDisplayName                :
ExchangeVersion                 : 0.10 (14.0.100.0)
Name                            : Rpc (Default Web Site)
DistinguishedName               : CN=Rpc (Default Web Site),CN=HTTP,CN=Protocols,CN=UK-BERDYCHIV-XC04,CN=Servers,CN=Exchange A
                                  dministrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=BERDYCHIV,CN=Microso
                                  ft Exchange,CN=Services,CN=Configuration,DC=BERDYCHIV,DC=ua
Identity                        : UK-BERDYCHIV-XC04\Rpc (Default Web Site)
Guid                            : 9cb7022c-b7c3-4957-8330-96311a323b9d
ObjectCategory                  : BERDYCHIV.ua/Configuration/Schema/ms-Exch-Rpc-Http-Virtual-Directory
ObjectClass                     : {top, msExchVirtualDirectory, msExchRpcHttpVirtualDirectory}
WhenChanged                     : 4/11/2013 2:35:25 PM
WhenCreated                     : 4/11/2013 2:35:25 PM
WhenChangedUTC                  : 4/11/2013 11:35:25 AM
WhenCreatedUTC                  : 4/11/2013 11:35:25 AM
OrganizationId                  :
OriginatingServer               : UK-BERDYCHIV-dc01.BERDYCHIV.ua
IsValid                         : True

Настройка Offline Address Book (OAB) и виртуальных каталогов

Для настройки URLов выполним на первом CAS сервере:

Set-OABVirtualDirectory -Identity "UK-BERDYCHIV-XC03\OAB (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/OAB -ExternalUrl https://webmail.BERDYCHIV.ua/OAB -RequireSSL:$true
Set-WebServicesVirtualDirectory -Identity "UK-BERDYCHIV-XC03\EWS (Default Web Site)" -ExternalUrl https://webmail.BERDYCHIV.ua/EWS/Exchange.asmx -BasicAuthentication:$True
Set-OwaVirtualDirectory -Identity "UK-BERDYCHIV-XC03\OWA (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/OWA -ExternalUrl https://webmail.BERDYCHIV.ua/OWA -FormsAuthentication $True -BasicAuthentication $True -LogonFormat UserName -DefaultDomain BERDYCHIV.ua
Set-EcpVirtualDirectory -Identity "UK-BERDYCHIV-XC03\ECP (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/ECP -ExternalUrl https://webmail.BERDYCHIV.ua/ECP -FormsAuthentication $True -BasicAuthentication $True
Set-ActivesyncVirtualDirectory -Identity "UK-BERDYCHIV-XC03\Microsoft-Server-ActiveSync (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/Microsoft-Server-Activesync -ExternalUrl https://webmail.BERDYCHIV.ua/Microsoft-Server-Activesync  -BasicAuthEnabled $True

Для второго сервера так же:

Set-OABVirtualDirectory -Identity "UK-BERDYCHIV-XC04\OAB (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/OAB -ExternalUrl https://webmail.BERDYCHIV.ua/OAB -RequireSSL:$true
Set-WebServicesVirtualDirectory -Identity "UK-BERDYCHIV-XC04\EWS (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/EWS/Exchange.asmx -ExternalUrl https://webmail.BERDYCHIV.ua/EWS/Exchange.asmx -BasicAuthentication:$True
Set-OwaVirtualDirectory -Identity "UK-BERDYCHIV-XC04\OWA (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/OWA -ExternalUrl https://webmail.BERDYCHIV.ua/OWA -FormsAuthentication $True -BasicAuthentication $True -LogonFormat UserName -DefaultDomain BERDYCHIV.ua
Set-EcpVirtualDirectory -Identity "UK-BERDYCHIV-XC04\ECP (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/ECP -ExternalUrl https://webmail.BERDYCHIV.ua/ECP -FormsAuthentication $True -BasicAuthentication $True
Set-ActivesyncVirtualDirectory -Identity "UK-BERDYCHIV-XC04\Microsoft-Server-ActiveSync (Default Web Site)" -InternalURL https://webmail.BERDYCHIV.ua/Microsoft-Server-Activesync -ExternalUrl https://webmail.BERDYCHIV.ua/Microsoft-Server-Activesync  -BasicAuthEnabled $True

Переключение на новый CAS


Важно! Для сосуществования ActiveSync в Exchange 2003 и Exchange 2010 нужно установить апдейт на все сервера с Exchange 2003.


Теперь все готово для использования нового CAS Array пользователями. Переключение производится путем изменения ip адреса. Нужно чтобы webmail.BERDYCHIV.ua ссылался на ip CAS Array. Также нужно создать запись для старого сервера, например legacy.BERDYCHIV.ua. И настроим саму переадресацию (для КАЖДОГО CAS) для старых серверов:

Set-OWAVirtualDirectory -Identity "owa (Default Web Site)" -Exchange2003URL https://legacy.BERDYCHIV.ua/exchange

Для большей ясности я не включал это в общие настройки URLов.

Если используется проброс портов внутрь сети (webmail), не забываем его изменить на CAS Array.


Следующим шагом будет Настройка MailBOX Database Availability Group

Решение проблем

Доступность CAS Array за маршрутизатором

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

Решение. Это связано с MAC адресом и решимом NLB (Multicast). Лечиться прописанием статической записи в ARP таблицы сетевых устройств.

Я прописал на коммутаторе Cisco 3750 и маршрутизаторе Cisco 2821:

arp 192.168.17.180 04bf.c1a8.5851 ARPA

И на FortiGate 110C:

config system arp-table
  edit 10
  set interface port1
  set ip 192.168.17.180
  set mac 04:bf:c1:a8:58:51
end

После этого публикация заработала.

Публикация веб-мейла старого сервера (Exchange 2003)

Проблема. В процессе миграции нужно иметь две публикации: новый CAS Array и старый (legacy) веб-мейл. Наш FortiGate 110C не умеет публиковать один порт на разные сервера.

Решение. Мне повезло - в моем случае есть второй (резервный) интренет-провайдер. Именно на его ip я и опубликовал legacy адрес.

После публикации CAS Array, не работает OutlookAnywhere (ящик на Exchange 2003)

Проблема. Решив предыдущую проблему, можем переключить публикацию на новый сервер. После переключения перестает работать OutlookAnywhere на клиентах - идет постоянный запрос пароля.

Решение. Во-первых, сертификат. Он (как писалось выше) должен быть с правильным дефолтным именем (если есть клиенты ХР). Во-вторых, оказалось что я не изменил настройки безопасности. Нужно запустить из директории установки Exchange 2010:

setup /PrepareLegacyExchangePermissions

К сожалению, в Exchange Server Deployment Assistant об этом ничего не написано. А вопрос то важный!

После публикации CAS Array, не работает ActiveSynC

Проблема. После изменения публикации на новый сервер, с ActiveSynC начинаются проблемы. Первое время работает, но не долго. Буквально 5 мин. После этого не подключается, почту не получает.

Решение. Оказывается, для ActiveSynC (технология Direct Push) специфичные требования к времени сессии - не менее 15 мин. Поскольку у меня файервол не Майкрософтовский, то и настройки нужно делать вручную. По этому, настроем TTL на FortiGate для HTTPS сессий равным 30 мин:

config system session-ttl
 config port
  edit 443
   set end-port 443
   set protocol 6
   set stBERDYCHIV-port 443
   set timeout 1800
  end
 end

После этого ActiveSynC должен работать без проблем.

 

Tags: 

Додати коментар

Filtered HTML

  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Дозволені теги HTML: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Рядки та параграфи відокремлюються автоматично.

Plain text

  • HTML теґи не відображаються
  • Рядки та параграфи відокремлюються автоматично.
By submitting this form, you accept the Mollom privacy policy.

Вхід

Powered by Rublin team