带有 Active Directory 的 SSSD 站点

nei*_*man 3 active-directory sssd centos7

我是一名 Windows 管理员,负责管理我们的 AD 基础架构。我们的 Linux 团队一直在构建一些 CentOS 7 虚拟机并将它们配置为使用 SSSD 加入域。

初始配置是在不同站点(不是之前编写的域)中查询 DC,因此我要求他们研究将 AD 站点与 SSSD 一起使用。

服务器现在从 DNS 返回 3 个 _ldap DC 记录。它尝试的第一个站点来自不同的站点,因此无法访问它。第二个工作,它检索正确的站点名称。在一段时间内(不确定确切多长时间),它将使用响应的 DC,在那段时间过后,它将重新开始从 DNS 获取 3 _ldap 记录。

这会导致我们被要求解决的登录延迟。如果我们在配置中设置站点名称,那么它始终有效,但我们必须考虑将这些 VM 从备份还原到另一个站点,而此时设置的站点名称将是错误的。

我不太了解 CentOS 中的很多配置,但是有没有办法让它正常工作,或者它已经在做什么?

Jac*_*ans 5

您需要告诉 SSSD 使用哪个站点。

[domain/example.com]
dns_discovery_domain = MyLocalSite._sites.example.com
Run Code Online (Sandbox Code Playgroud)

这将对 ldap/kerberos 执行以下 DNS 查找

dig SRV +short _ldap._tcp.MyLocalSite._sites.example.com
dig SRV +short _kerberos._tcp.MyLocalSite._sites.example.com
Run Code Online (Sandbox Code Playgroud)

您可以从 AD DNS 或站点和服务获取这些站点的列表

恕我直言,微软在这方面做得非常糟糕,在等待更改率时,您可能想要自己设置一个发现子域或使用 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

IPA在你配置位置的时候总是会列出所有的ipa服务器,并根据geoDNS修改dns SRV记录优先级,希望Server 2016会增加对此的支持,我没有关于如何使用2016服务器提供本地SRV记录的例子。

如果你想在另一个域下手动创建一个站点,你可以,没有什么说你不能。

例子

配置文件

dns_discovery_domain = MyLocalSite._linux_sites.example.com
Run Code Online (Sandbox Code Playgroud)

域名系统

_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
Run Code Online (Sandbox Code Playgroud)

  • 我有 6 个 DC,每个站点 2 个,并开始了让每个站点中的 Linux 服务器利用 SSSD/AD 的旅程。我真的不明白为什么登录速度很慢或“提供商离线”,直到我读到这篇文章并理解“dns_discovery_domain”正在做什么。谢谢@jacobevans,这是一篇被低估的帖子。 (2认同)