У меня проблема с использованием ldap на основе Active Directory в многосайтовой среде.
В основном у меня есть несколько разных сред (сайтов), и каждая из них имеет свою собственную выделенную пару серверов контроллеров домена. Каждая пара контроллеров домена общается с парами на других сайтах, чтобы синхронизировать всю информацию.
В каждой среде у меня также есть несколько разных серверов Linux (веб-серверы, серверы приложений и т. Д.), И для целей аутентификации и авторизации они должны связываться с правильными контроллерами домена, которые предназначены для их среды.
Моя проблема в том, что я не могу найти способ указать в конфигурации этих серверов, как связаться с их «ближайшим» контроллером домена.
До сих пор я использовал запись DNS A domain.local
который возвращает КАЖДЫЙ контроллер домена в домен; проблема в том, что он также возвращает контроллеры домена не на правильном сайте и поэтому недоступны.
Другой способ, который я подумал, - создать запись CNAME для каждого сайта, которая ссылается на правильные контроллеры домена.
DC-Site1 CNAME to DC1 and DC2 DC-Site2 CNAME to DC3 and DC4 DC-Site3 CNAME to DC5 and DC6 ....
Итак, используя запись DC-SiteX.domain.local
я могу связаться с правильной парой контроллеров домена на сайте.
Проблема этого решения заключается в том, что мне не нужно вводить код на сервере конфигурации, которому он принадлежит. Мне это не нравится, потому что я могу переместить серверы на другой сайт, и мне нужно не забыть обновить эту конфигурацию.
Как обычно вы справляетесь с этой ситуацией?
У вас есть изящное решение этой проблемы?
Вы правы, использование имени domain.local вернет список всех адресов всех контроллеров домена в домене, но если вы попытаетесь пинговать domain.local (я имею в виду фактическое имя вашего домена), DNS должен вернуть IP-адрес локального контроллер домена.
Я не знаю, действуют ли ваши контроллеры домена также как DNS-серверы, но если это так, установите флажок DNS Server Setting -> Advanced Tab -> Enable netmask ordering checkbox.
Что касается CNAME, вы можете создать несколько CNAME для одного сервера, но не одну CNAME для нескольких серверов, поэтому вам нужно создать две записи A с одинаковым именем, указывающие на разные IP-адреса локальных контроллеров домена. Но в этом случае вам также необходимо убедиться, что в расширенных настройках DNS-сервера у вас активирован роуд-робин, поэтому запросы будут балансироваться между серверами с помощью DNS-сервера.
С уважением, Сергей
Знают ли серверы unix о том, на каком сайте они находятся?
Контроллер AD правильно обновил SRV
DNS-записи (делает по умолчанию)?
Если серверу unix известно, что он находится, например, в SITE1.EXAMPLE.ORG, он может запросить контроллер AD, какой сервер LDAP включен на SITE1, с помощью следующего:
ldapsearch -v -H "ldap:///dc%3Dsite1%2Cdc%3Dexample%2Cdc%3Dorg" [...]
в основном это ldapsearch для любого сервера, имеющего LDAP SRV
регистрация на SITE1.EXAMPLE.ORG
:
host -t SRV _ldap._tcp.site1.example.org.
Это несколько старый пост, но я хотел предложить следующую информацию всем, кто сталкивается с этим. Можно контролировать, какие записи A и SRV динамически регистрируются контроллерами домена и на каких сайтах, а также настраивать вес и приоритет записи SRV. См. Следующую статью Microsoft: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/76bc11f0-8bc2-4d6c-a643-328f479aae1b
Это дает мне правильные записи SRV для контроллеров домена определенного сайта. Был задействован брандмауэр, поэтому полагаться на «IP-адрес клиента» было неэффективно.
инструмент командной строки Windows
nslookup -type=SRV _ldap._tcp.$sitename$._sites.dc._msdcs.$domain.name$
Это ответственность приложения. Любое приложение, которому необходимо интегрироваться с Active Directory, должно соответствовать принципу работы. Это включает в себя приоритизацию используемых контроллеров домена по предпочтениям сайта / местоположения, выбор подходящего работающего контроллера домена и переключение на другой контроллер домена в случае возникновения ошибки.
Другими словами, приложение должно работать так же, как клиентские функции Windows.