I am trying to use Samba4 to implement Active Directory logins across a network, using nslcd and pam-krb5 to register and authenticate users, and mount.cifs to mount shares such as home areas. The internal Samba4 DNS is used to provide DNS to all clients. Overall the setup works very well, with users being correctly identified and automatic share mounting through pam-mount working a treat. However, I want to try and implement a form of redundancy on this network with additional domain controllers.

To configure nslcd to point to multiple servers, I set a uri field to uri DNS, which lets nslcd pick up information about which LDAP server to use from DNS records like _ldap._tcp.domain.com - conveniently set automatically by Samba to point to every LDAP-capable server on the network.

/etc/krb5.conf was equally simple to configure, with the dns_lookup_kdc option set to true.

However, the one stumbling block of this setup is resolving DNS. Putting multiple nameserver lines in /etc/resolv.conf allows the clients to use a secondary nameserver in case the primary one goes down, but there is a huge timeout on every DNS query before that occurs. I have managed to reduce this timeout by setting option timeout: 0.3 in that file, but it is still painfully slow when using commands like ping.

Also, ignoring all of that for a second, mount.cifs seems incapable of being configured for multiple servers. I have tried to use //domain.com/share to mount the share, and this works to a certain degree, but fails when using Kerberos (since Kerberos requires the FQDN of the server to work properly). I have also tried using another of the SRV DNS records provided by Samba, such as _ldap._tcp.dc._msdcs.domain.com (a record which should point to every domain controller on that domain), but it likes that even less.

Any ideas?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.