OpenLDAP的DNS发现

原文:DNS discovery for OpenLDAP

http://www.rjsystems.nl/en/2100-dns-discovery-openldap.php

介绍

正如Kerberos客户端的管理,当面对大量的LDAP客户端的时候,简化管理的一种可能的方法是维护预定的一组DNS主机别名(CNAME记录)来引用一个网络上的OpenLDAP的数据库服务器。但是,这种方法的灵活性受到限制,和Kerberos存在同样的问题,值得庆幸的是OpenLDAP还支持DNS发现。

1. DNS SRV RR

像Kerberos,OpenLDAP通过使用SRV资源记录来支持DNS发现。例如,如果在网络中有两个LDAP服务器可用,klas1和klas2,使用某些LDAP工具程序基于DNS来发现他们,添加一对条目到example.com的区域文件(zone file),例如以下面的BIND9格式:
_ldap._tcp.example.com.    IN    SRV    10 0 389 klas1.example.com.
_ldap._tcp.example.com.    IN    SRV    20 0 389 klas2.example.com.

这种类型的记录组成如下:

  •     以下划线开头后跟服务名称。参见/etc/services中的协议名称的列表。
  •     下划线后跟协议名称,在这个案例中只使用TCP。
  •     其次是后跟点符的匹配LDAP域组件(没有前置的下划线)的DNS名称。
  •     IN(Internet)数据类指标。
  •     SRV(服务)资源记录类型指标。
  •     范围0-65535内的优先级值,较低的值有更高的优先级。
  •     范围0-65535内的权重值。使用相同的优先级值标识服务的简单负载均衡。采用概率算法优先考虑主机具有较高的权重值。值0禁用它。
  •     服务在其上侦听的TCP端口号。
  •     目标:提供该服务的主机的FQDN(没有别名!),后跟一个点符。

由于点符的遗漏会造成BIND9在每个带有区域域名的条目处结束,此格式能够获得下列如上所述相同的确切结果:
_ldap._tcp        IN    SRV    10 0 389 klas1
_ldap._tcp        IN    SRV    20 0 389 klas2

一旦配置了正确的SRV条目,检查它们是否可用:
~$ host -t SRV _ldap._tcp
_ldap._tcp.example.com has SRV record 10 0 389 klas1.example.com.
_ldap._tcp.example.com has SRV record 20 0 389 klas2.example.com.
~$ _

2. 客户端的解决方法

通常方式使用DNS发现,并不是所有工具程序都能非常好地支持。相比Kerberos或AFS来说OpenLDAP更明显,因为一旦URI的选项从/etc/ldap/ldap.conf,/etc/libnss-ldap.conf中和/etc/pam_ldap.conf中省略,用户仍可能需要能够登录?哪个是最重要的问题?但使用ldap-utils软件包提供的标准的LDAP工具程序,都抱怨没有可用的LDAP服务器可以连接。他们仍希望发现在/etc/ldap/ldap.conf中列出的一个或多个服务器。

幸运的是,有一个解决方法,所有的LDAP工具程序接受一个-H选项后跟一个LDAP URI来指定要使用的LDAP服务器。可以用命令测试LDAP DNS发现,例如用ldapsearch命令,使用一种特殊的URI:
~$ ldapsearch -H ldap:///dc%3Dexample%2Cdc%3Dcom uid=ccolumbus
使用上面的带逗号和等号(根据RFC-2396进行转义)字符串"dc=example,dc=com"作为LDAP URI。当然,每次使用该LDAP工具都包括这个选项会非常麻烦,要避免这种情况只要把下面的行添加到/etc/profile文件:
alias ldapadd='ldapadd -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldapcompare='ldapcompare -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldapdelete='ldapdelete -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldapmodify='ldapmodify -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldapmodrdn='ldapmodrdn -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldappasswd='ldappasswd -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldapsearch='ldapsearch -H ldap:///dc%3Dexample%2Cdc%3Dcom'
alias ldapwhoami='ldapwhoami -H ldap:///dc%3Dexample%2Cdc%3Dcom'


3. 另请参阅

4. 延伸阅读

  • Berners-Lee T, Fielding R, Irvine UC, Masinter L. 1998. RFC2396 − Uniform Resource Identifiers (URI): Generic Syntax.HTML at theInternet FAQ Archives.
  • Eastlake D, Panitz A. 1999. RFC2606 − Reserved Top Level DNS Names. The Internet Society.HTML at theInternet FAQ Archives.
  • Gulbrandsen A, Vixie P, Esibov L. 2000. RFC2782 − A DNS RR for specifying the location of services (DNS SRV). The Internet Society.HTML at theInternet FAQ Archives.

5.   参考

  • Aitchison R. 2005. Pro DNS and Bind. Apress. ISBN 1-59059-494-0. 571 pp. See pages 464-465.
  • Liu C, Albitz P. 2006. DNS and BIND. Fifth Edition. O'Reilly & Associates, Inc. ISBN-13 978-0-596-10057-5. 616 pp.
  • OpenLDAP Project. 2009. OpenLDAP Software 2.4 Administrator's Guide. HTML at OpenLDAP.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值