openldap原理简介

1. LDAP是什么

轻量目录访问协议(Lightweight Directory Access Protocol)

是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。

目录服务是由目录数据库和一套访问协议组成的系统。

类似以下的信息适合储存在目录中:

  • 企业员工信息,如姓名、电话、邮箱等;
  • 公用证书和安全**;
  • 公司的物理设备信息,如服务器,它的IP地址、存放位置、厂商、购买时间等;

2. LDAP协议的特点:

  • 读取速度远高于写入速度。
  • 不支持事务、不能进行回滚,需要进行这些操作的应用只有选择关系数据库。
  • 采用服务器/客户端模式,支持分布式结构。 Server 用于存储数据,Client提供了操作server上数据的工具
  • 条目以树形结构组织和存储。正因为这样,就不能用SQL语句了
  • 使用可靠的TCP/IP传输协议

3. LDAP组织数据的方式

openldap原理简介

4. 基本概念与术语

Entry:条目,也叫记录项,是LDAP目录树中的一个点,就像字典中的词条,或者是数据库中的记录。通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。

dn:每一个条目都有一个唯一的标识名(distinguished Name ,DN),如上图中一个 dn:”cn=baby,ou=marketing,ou=people,dc=mydomain,dc=org” 。通过DN的层次型语法结构,可以方便地表示出条目在LDAP树中的位置,通常用于检索。

rdn: relative,相对区别名,一般指dn逗号最左边的部分,如cn=baby。它与RootDN不同,RootDN通常与RootPW同时出现,特指管理LDAP中信息的最高权限用户。

Base DN:LDAP目录树的最顶部就是根,也就是所谓的“Base DN”,如”dc=mydomain,dc=org”。

5. LDAP同步复制技术

LDAP同步复制引擎, 简称syncrepl,(sync replication) 是一个消费方的复制引擎,能让消费者服务器维护一个抽取片断的影子副本. 一个syncrepl引擎以slapd的一个线程的方式驻留在消费者那里. 它建立和维护一个消费者复制,方法是连接一个复制提供者去执行初始化DIT内容载荷以及接下来的定期的内容拉取或及时根据内容变更来更新。

有以下类型
- 主从
- 双主
- 多主

实际应用中大多使用ldap双主模式,并结合keepalived做高可用。本文将记录这个搭建过程。

参考文章:
http://blog.51cto.com/jerry12356/1847189
http://wiki.jabbercn.org/OpenLDAP2.4%E7%AE%A1%E7%90%86%E5%91%98%E6%8C%87%E5%8D%97