Split DNS, также известный в терминологии Microsoft как Split-Brain DNS, используется для реализации выдачи разных DNS-ответов в зависимости от расположения клиента. В классическом виде это делает один и тот же сервер DNS, анализируя с какой подсети пришел запрос и на основе существующих политик возвращает определенный ответ. На общеизвестном сервере Bind это делается путем создания разных представлений (Views) и сопоставления их со списками доступа (ACL). В Windows Server этот функционал ранее отсутствовал и появился только с выходом версии 2016.
Тем не менее, в контексте Exchange Server нас будет интересовать немного другой сценарий, о котором читайте ниже.
Хочется задать вопросы или поделиться знаниями? Приходи в наш закрытый Telegram-чат.
Содержание
Exchange Server и Split DNS
В статье планирую рассказать не только про реализацию Split DNS, но и про изменения на Exchange Server, которые вам предстоит сделать после.
Теория
В Exchange Server почти для каждого виртуального каталога вы можете задать два имени – отдельно для внутренних и внешних клиентов. Например:
1 2 3 4 |
[PS] C:\Windows\system32>Get-OwaVirtualDirectory | fl *ternalUrl InternalUrl : https://exch01.bq.local/owa ExternalUrl : https://owa.bq-srv.ru/owa |
Зону bq.local обслуживает ваш внутренний сервер DNS, чаще всего контроллер домена. Зону bq-srv.ru – DNS-сервер третьей стороны, вероятно ваш регистратор.
Если клиент обращается из локальной сети, то он это должен делать по адресу в InternalUrl. Если из интернета, то через ExternalUrl. Это “расщепление” путей накладывает ряд неудобств, связанных не только с использованием разных имен для одного объекта.
Чтобы обойти проблему, можно использовать одну хитрость – создать на вашем внутреннем сервере DNS записи зоны bq-srv.ru и сделать так, чтобы они разрешались во внутренние имена серверов Exchange. В таком случае клиенты что внутри сети, что снаружи смогут обращаться по одинаковому URL. Публичные имена зоны bq-srv.ru будут обслуживать все те же внешние серверы DNS, а ваши записи будут актуальны только для клиентов внутри периметра локальной сети.
Настройка DNS
К этому моменту вы уже должны были определиться с доменными именами, которые у вас будут использоваться. В моем случае это:
- autodiscover.bq-srv.ru
- mail.bq-srv.ru
Далее на любом КД открывайте оснастку DNS и приступайте к созданию зон прямого просмотра. Все настройки оставляйте по умолчанию, а в имени зоны вписывайте fqdn. Например:
Далее в каждой зоне создайте А-запись с пустым именем и адресом вашего сервера Exchange (если серверов несколько, создавайте записи для каждого, у вас получится DNS RR):
Далее запустите nslookup и попробуйте разрешить записи со стороны клиентов, чтобы убедиться в корректности работы.
Настройка Exchange
На этом этапе крайне желательно, чтобы у вас на серверах Exchange уже был установлен сертификат со всеми нужными именами.
Приступаем.
Виртуальные каталоги
Итак, начнем настраивать Exchange с изменения виртуальных каталогов. Для каждого каталога существует собственный набор командлетов, поэтому получается немного громоздко:
1 2 3 4 5 6 7 |
Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -ExternalUrl 'https://mail.bq-srv.ru/ecp' -InternalUrl 'https://mail.bq-srv.ru/ecp' Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -ExternalUrl 'https://mail.bq-srv.ru/owa' -InternalUrl 'https://mail.bq-srv.ru/owa' Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExternalUrl 'https://mail.bq-srv.ru/EWS/Exchange.asmx' -InternalUrl 'https://mail.bq-srv.ru/EWS/Exchange.asmx' Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExternalUrl 'https://mail.bq-srv.ru/Microsoft-Server-ActiveSync' -InternalUrl 'https://mail.bq-srv.ru/Microsoft-Server-ActiveSync' Get-OabVirtualDirectory | Set-OabVirtualDirectory -ExternalUrl 'https://mail.bq-srv.ru/OAB' -InternalUrl 'https://mail.bq-srv.ru/OAB' Get-PowerShellVirtualDirectory | Set-PowerShellVirtualDirectory -ExternalUrl 'http://mail.bq-srv.ru/powershell' -InternalUrl 'http://mail.bq-srv.ru/powershell' Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -ExternalUrl 'https://mail.bq-srv.ru/mapi' -InternalUrl 'https://mail.bq-srv.ru/mapi' |
Если есть желание изменить каталоги вручную, можно это сделать в EAC – Серверы – Виртуальные каталоги. Изменить домен внешнего доступа можно, нажав на соответствующую кнопку:
Для Autodiscover имена должны быть пустыми 1.
Если вдруг появились вопросы, настоятельно рекомендую обратиться к официальной документации 2.
Обратите особое внимание на Mapi 3, ведь протокол может не использоваться в вашей инфраструктуре, поскольку он появился только в Exchange Server 2013 SP1 4 и если вы мигрировали с 2010 версии, то по умолчанию он не будет активирован. Настройка Mapi – это отдельная тема, которую я не планирую рассматривать в рамках этой статьи.
Изменения виртуальных каталогов вступят в силу не сразу. Можете форсировать процесс перезапуском IIS.
SCP
Следующий этап – настройка SCP. Многие забывают про этот момент, хотя он очень важен для доменных клиентов внутри локальной сети, ведь они первым делом ломятся именно к SCP. Изменим SCP командой:
1 |
Get-ClientAccessService | Set-ClientAccessService -AutoDiscoverServiceInternalUri 'https://mail.bq-srv.ru/Autodiscover/Autodiscover.xml' |
Все просто, идем дальше.
Outlook Anywhere
Остался последний штрих – настройка Outlook Anywhere. Протокол (RPC over HTTP) позволяет клиентам Outlook подключаться к Exchange, находясь за пределами периметра локальной сети. Задать домены для подключения можно командой, но только с дополнительными настройками безопасности и аутентификации:
1 |
Get-OutlookAnywhere | Set-OutlookAnywhere -ExternalHostname 'mail.bq-srv.ru' -ExternalClientsRequireSsl $true -ExternalClientAuthenticationMethod Negotiate -InternalHostname 'mail.bq-srv.ru' -InternalClientsRequireSsl $false |
На этом настройки завершены, на клиентской стороне как минимум потребуется перезапустить Outlook.
Частые ошибки
Первая и главная ошибка – чаще всего админы создают DNS-зоны с доменом второго уровня, а уже внутри их плодят записи autodiscover.bq-srv.ru, mail.bq-srv.ru и т.п.. Это будет работать, но не забывайте, что при обращении к любым доменам третьего уровня ваши серверы DNS (они же КД) будут считать себя авторитативными, то есть, ответственными за эту зону. Чем это чревато? Если вы обратитесь к записи внешнего корпоративного ресурса, например, careers.bq-srv.ru и её не окажется на ваших КД, то на сайт вы не попадете. Другими словами – если эта зона в оригинале хостите на внешних серверах DNS, то вам придется дублировать все её записи на КД и поддерживать их в актуальном состоянии. Оно вам надо?
Вторая ошибка – недостаточная проработка вопроса и подготовка к изменениями. Как следствие – юзеры, бегающие в панике с криками о неработающей почте. Изменения виртуальных каталогов, SCP и Outlook Anywhere являются достаточно серьезными, чтобы вот так сразу все менять посередине рабочего дня. Продумайте все изменения заранее и протестируйте на лабе. Технические работы проводите в выходные дни. Если не уверены, то почитайте первые шаги сразу после установки Exchange 5, они помогут последовательно продиагностировать работоспособность сервиса и освежить в голове логику работы и взаимосвязи всех компонентов.
Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики – Exchange 2013 — Установка, настройка, администрирование.
Успехов!