我正在尝试使用 Samba4 在网络上实现 Active Directory 登录,使用nslcd
和pam-krb5
注册和验证用户,以及mount.cifs
挂载共享(例如家庭区域)。内部 Samba4 DNS 用于向所有客户端提供 DNS。总体而言,设置运行良好,可以正确识别用户并通过pam-mount
工作顺利自动挂载共享。但是,我想尝试使用其他域控制器在此网络上实现一种冗余形式。
为了配置nslcd
指向多个服务器,我将一个uri
字段设置为uri DNS
,这样就可以nslcd
从 DNS 记录中获取有关使用哪个 LDAP 服务器的信息_ldap._tcp.domain.com
- Samba 可以方便地自动设置为指向网络上每个支持 LDAP 的服务器。
/etc/krb5.conf
配置同样简单,只需将dns_lookup_kdc
选项设置为 true 即可。
但是,此设置的一个障碍是解析 DNS。放入多nameserver
行/etc/resolv.conf
允许客户端在主名称服务器发生故障时使用辅助名称服务器,但在此之前,每个 DNS 查询都会出现很长的超时。我已设法通过option timeout: 0.3
在该文件中进行设置来减少此超时,但在使用类似 的命令时,它仍然非常慢ping
。
此外,暂时忽略所有这些,mount.cifs
似乎无法为多台服务器配置。我曾尝试使用//domain.com/share
来挂载共享,这在一定程度上有效,但在使用 Kerberos 时会失败(因为 Kerberos 需要服务器的 FQDN 才能正常工作)。我还尝试使用 Samba 提供的另一个 SRV DNS 记录,例如_ldap._tcp.dc._msdcs.domain.com
(应指向该域上每个域控制器的记录),但它更不喜欢这样。
有任何想法吗?