我是一名 Windows 管理员,负责管理我们的 AD 基础架构。我们的 Linux 团队一直在构建一些 CentOS 7 VM,并配置它们以使用 SSSD 加入域。
初始配置是查询不同站点中的 DC(而不是之前写的域),因此我要求他们研究将 AD 站点与 SSSD 一起使用。
服务器现在从 DNS 返回 3 个 _ldap DC 记录。它尝试的第一个记录来自不同的站点,因此无法访问。第二个记录成功,并检索到正确的站点名称。在一段时间内(不确定具体多长时间),它将使用响应的 DC,这段时间过后,它将重新从 DNS 获取 3 个 _ldap 记录。
这会导致登录延迟,我们被要求解决这个问题。如果我们在配置中设置站点名称,那么它总是有效的,但我们必须考虑到,我们将这些虚拟机从备份还原到另一个站点,而现在设置的站点名称可能是错误的。
我不太了解 CentOS 中的配置,但有没有办法让它正常工作,或者它已经在这样做了?
答案1
您需要告诉 SSSD 使用哪个站点。
[domain/example.com]
dns_discovery_domain = MyLocalSite._sites.example.com
这将对 ldap/kerberos 执行以下 DNS 查找
dig SRV +short _ldap._tcp.MyLocalSite._sites.example.com
dig SRV +short _kerberos._tcp.MyLocalSite._sites.example.com
您可以从 AD DNS 或站点和服务获取这些站点的列表
nltest.exe /dclist:EXAMPLE.COM
我认为微软在这方面做得很差,根据你的变化率,你可能需要自己设置一个发现子域名或使用 FreeIPA
示例查询dig SRV +short _ldap._tcp.MyLocalSite._sites.example.com
Microsoft 站点和服务 DNS
_ldap._tcp.MyLocalSite._sites.example.com 600 IN SRV 0 100 389 dc1.example.com
IPA 位置 DNS
_ldap._tcp.MyLocalSite._sites.example.com 600 IN SRV 0 100 389 dc1.example.com
_ldap._tcp.MyLocalSite._sites.example.com 600 IN SRV 100 100 389 dc2.example.com
当您配置位置时,IPA 将始终列出所有 ipa 服务器,并根据 geoDNS 修改 dns SRV 记录优先级,希望 Server 2016 能够添加对此的支持,我没有关于如何使用 2016 服务器提供本地 SRV 记录的示例。
如果您想在另一个域下手动创建一个站点,您可以这样做,没有什么规定说您不可以。
例子
SSSD.conf
dns_discovery_domain = MyLocalSite._linux_sites.example.com
DNS
_ldap._tcp.MyLocalSite._linux_sites.example.com 600 IN SRV 0 100 389 dc1.example.com
_ldap._tcp.MyLocalSite._linux_sites.example.com 600 IN SRV 100 100 389 dc2.example.com