分布式的Qmail邮件系统存储Linux认证考试
文章作者 100test 发表时间 2009:07:07 20:33:44
来源 100Test.Com百考试题网
一. 设计目的
适应多用户、大容量的邮件系统,易扩展,提供mail服务冗余特性。
二. 配置环境
我的测试环境采用了三台PC Server,均采用RedHat 6.2,openldap2.0.7和qmail-1.03 以及qmail-ldap,分别运行smtp/pop3服务,具体 配置如下。
192.168.0.19 omni1.i100.com.cn 主smtp/pop3 server,dns MX记录,邮件存储主机,qmqp server 192.168.0.5 cocoon.i100.com.cn LDAP server,邮件存储主机 192.168.0.2 gw2.i100.com.cn 邮件存储主机,qmqp server,同时是次smtp/pop3 server 在192.168.0.19的/data/vuser/目录下,存储johnny的邮件。在192.168.0.5的/data/vuser/目录下,存储jacky的邮件。在192.168.0.2的/var/qmail/vuser/目录下,存储denny的邮件。以上配置在实践中,可以配置成邮件存储和ldap以及smtp server分别位于不同机器。
三. 软件 openldap-2.0.7.tgz
qmail-1.03.tar.gz
qmail-ldap-1.03-20010301.patch
ucspi-tcp-0.84.tar.gz
编译qmail的时候,记得把对cluster的支持编译进去。Edit the Makefile to reflect your setup. You can change the following values: QLDAP-CLUSTER Compiles the clustering code in. Note: this doesn t mean clustering is on, it just means you _can_ turn on clustering. 缺 省qmail是支持cluster结构的。
四. LDAP和qmail的安装
关于LDAP和qmail的安装,在这里,我给出我的LDAP的ldif文件:dn: dc=i100, dc=com, dc=cn
objectclass: top
objectclass: orgnization
dn: cn=Manager, dc=i100, dc=com, dc=cn
uid: Manager
objectclass: qmailUser
mail: [email protected]
dn: cn=johnny, dc=i100, dc=com, dc=cn
cn: johnny
sn: johnny
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: qmailUser
mail: [email protected]
mailhost: omni1.i100.com.cn
mailalternateaddress: [email protected]
mailmessagestore: /data/vuser/johnny/
mailquota: 51200
uid: johnny
userpassword: hSAMdaZcsdAOI
dn: cn=jacky, dc=i100, dc=com, dc=cn
cn: jacky
sn: jacky
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: qmailUser
mail: [email protected]
mailhost: cocoon.i100.com.cn
mailalternateaddress: [email protected]
mailmessagestore: /data/vuser/jacky/
mailquota: 51200
uid: jacky
userpassword: hSAMdaZcsdAOI
dn: cn=denny, dc=i100, dc=com, dc=cn
cn: denny
sn: denny
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: qmailUser
mail: [email protected]
mailhost: gw2.i100.com.cn
mailalternateaddress: [email protected]
mailmessagestore: /var/qmail/vuser/denny/
mailquota: 51200
uid: denny
userpassword: hSAMdaZcsdAOI 以上大家可以看到,我把三个用户的邮件分别存到了不同的机器上。如果用户多,可以把a-n和o-z开头的用户分别存储到不同的机器上。
五. 基本系统配置
在三台机器上分别install qmail with qmail-ldap patch. 需要特别配置的是/var/qmail/control下的相关文件。 ldapuid ldapgid 这是可以读写用户邮件目录的系统用户的uid和gid,在不同的机器上,会有不同的配置;确保此用户有读写用户邮件目 录的权限。 ldapserver 此文件指定LDAP服务器的ip地址;如果您想ldap有冗余作用,在主LDAP server down了的时候,启用次LDAP server,可以在 该文件中指定。
如:ldap1.i100.com.cn:389 ldap2.i100.com.cn:389 :) ldapserver 此文件内容是0或者1,表示是否启动qmail cluster模式。我们当然要启动了。 echo 1 >. /var/qmail/control/ldapserver
六. Qmail Cluster工作原理
在允许cluster的邮件环境中,每台主机都可以处理该cluster声明的域的邮件;当一个mail到达主smtp server的时候,Qmail查询LDAP server中有关该用户的mailhost属性,如果mailhost属性指定的不是此server的/var/qmail/control/me中定义的的主机,此邮件被通过qmqp协 议转发到mailhost定义的主机上。
注:所有主机名