邮件系统负载均衡
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邮件系统负载均衡和多链路接入
1.前言
在所有的Internet服务中,E-Mail服务是最基本的一项服务,通过E-Mail进行交流具有方便快捷的特点。根据统计,在选择最常使用的Internet服务中,有87.65%的用户选择了E-Mail服务,居Internet服务的首位。
在大型网站和大型企业的网络中,很重要的一部分就是邮件业务处理。经常我们能听到企业用户抱怨单位的邮件速度慢,处理不稳定等等问题。因此,除了考虑邮件服务器自身的稳定性之外,我们就应当考虑对邮件服务器进行负载均衡处理,来实现一个分布式的邮件处理系统,保证系统的高效,稳定。
在实际的建设中,邮件服务由于其处理的特殊性,负载均衡和多链路的方式相对比较复杂,必须进行全面的,细致的考虑,才能构建一个高效,稳定的邮件系统。
2.传统邮件系统介绍
在一个传统的邮件系统中,主要由以下几个部分组成:
z DNS服务器:主要负责对邮件纪录的解析
z邮件服务器:主要负责服务器端邮件的收发工作
z邮件客户端:主要负责客户端的邮件收发工作
2.1DNS服务器
DNS服务器本不属于邮件系统的部分,但是是属于邮件系统建设中不可缺少的一个环节,很多和邮件服务器的相关问题均出在DNS上。从产品上讲,常用的DNS服务器有两类:Windows DNS服务器和BIND DNS服务器。Windows DNS服务器属于Windows NT Server和Windows 2000 Server的标准组成部分,通常如果用Windows 平台作为DNS服务器都选择Windows DNS服务器。BIND DNS服务器属于大部分的Unix 操作系统的标准配置,我们比较熟悉的Solaris、Linux、AIX等都采用BIND作为DNS 服务器软件。
在DNS的配置中,与邮件相关部分通常配置如下:
@ IN MX 10 mail
IN A 211.134.1.xxx
其中,第一条纪录的意思是本域的邮件服务器为mail,优先级是10,数值越小优先级越高;第二条的含义是mail纪录的对应IP地址是211.134.1.xxx,这两条纪录指明了在本域中的邮件服务器的IP地址。
当其他服务器需要将邮件发往本域的时候,如user@,就会先查找本域的DNS服务器,搜寻MX纪录,并且试图通过SMTP协议连接优先级最高的的服务器。
将邮件发往该服务器。
2.2邮件服务器
邮件服务器是邮件系统中最为关键的一个组成部分。常用的邮件系统有基于Windows平台的Imail、Exchange、Lotus Notes等,基于UNIX的主要有Sendmail、Qmail、PostFix和Lotus Notes等。大容量的邮件系统通常采用UNIX操作系统实现。
z邮件服务器的内部通常包括五个组成部分:
z SMTP服务:主要用于在服务器与服务器之间进行邮件收发,监听25端口
z POP3服务:主要用于邮件客户端接受信件,监听110端口
z WebMail服务:实际上是一个GUI的邮件客户端,用户可以通过浏览WEB界面来进行邮件的收发,通常监听80端口
z用户认证服务:主要用于存放用户的认证信息和用户的邮件存放路径信息,通常采用的有Unix系统认证、数据库认证和LDAP认证等方式。
z邮件存储:邮件系统的存储通常通过文件方式来存放,所以通常是一个集中的目录来进行用户邮件的存储。
2.3邮件客户端
邮件客户端就是我们常用的收发邮件的软件了。主要有Outlook、Foxmail等。邮件客户端通过SMTP协议与邮件服务器25端口通讯进行发送信件。通过POP3协议与邮件服务器110端口进行通讯接受信件。
2.4邮件发送的流程
在我们介绍了邮件系统里的几个组成部分之后,下面我们来介绍一个完整的邮件发送过程是怎样在网络上进行的。
如图,用户A是邮件服务器A上的用户,邮件地址为user@,用户B是邮件服务器B上的注册用户,邮件地址为user@。当用户A需要发送一封邮件给用户B的时候,首先在自己的邮件客户端里撰写邮件,然后点击发送,此时邮件客户端将邮件进行编码并通过25端口连接到邮件服务器A上。邮件服务器A收到邮件后,将其存入队列,然后进行发送。邮件服务器A在发送前需要查询DNS系统,发现域的邮件服务器(即MX纪录)为邮件服务器B。于是邮件服务器A与邮件服务器B的25端口进行连接,并发送信件。邮件服务器B收到邮件后,找寻user@的用户目录,并将邮件存放在这个目录里。当用户B下次上网收信的时候,则通过110端口连接邮件服务器B并接受信件,在本地邮件客户端进行解码即能看到邮件的内容了。
3.单ISP邮件服务器负载均衡
对单ISP的邮件服务器负载均衡通常是大型邮件系统,有较大量的用户数,通常在10万以上,服务器采用托管方式。主要的用户包括提供免费邮件的大型网站或者邮件服务提供商。
在单ISP的接入中,整个邮件服务器对外只有一个IP地址。所以我们需要实现主要是针对三种对外服务的负载均衡,包括SMTP,POP3和WebMail。在这种情况下,邮件系统的设计如下:
如图,DNS解析仍然是解析一个邮件服务器地址,在每台邮件服务器上均配置SMTP、POP3和WebMail服务。在后台可以根据系统的规模大小,采用负载均衡式认证或者统一认证。邮件的存储也可以考虑采用分布式存储或者集中存储。
在负载均衡的配置上,采用一个VIP为对外公开的地址,这个地址对外提供SMTP、POP3和WEB服务,在后台映射到多台服务器上。
每台服务器接收到用户或者其他域的邮件发送或者接收请求后,将该用户的信息提交到认证系统,用户认证系统将会对邮件信息进行认证,并提供该用户的邮件存放目录信息。邮件服务器在认证系统认证通过后,将在其目录结构中找寻该用户的实际目录,并将接受到的邮件放入该目录或者将该目录下的邮件提交给用户。
后台如果采用负载均衡式的认证系统,则需要在负载均衡器上建立一个认证服务器的组,并将该组映射成为一个统一的IP地址,提供给邮件服务器。
后台如果采用集中存储,根据邮件系统的文件目录存放特点,通常建议采用NAS 结构。在NAS系统上建立一个主目录,并将该目录挂接在每台服务器上。通常,我们可以通过UNIX的NFS共享文件方式来实现。每台邮件服务器均在同一个本地目录下挂接NAS的主目录,这样实现统一的目录存放,每台邮件服务器均对NAS服务器上的主目录有读写权限,以保证每台服务器均能看到同样的内容。
后台如果采用分布式存储,则可以考虑采用多台NAS服务器,每台NAS服务器上均有一个主目录,所有的邮件服务器上均挂接这些主目录。如:
/var/mail/nas1
/var/mail/nas2
/var/mail/nas3
在每台邮件服务器上均做同样的配置。而实际的用户目录存放在认证系统上进行分配,通常采用hash算法来对用户目录进行分散,将用户分散在多台NAS系统上。这样,实现了邮件的分布式存放,保证系统的均衡性。
在这种结构下,需要有两个注意事项: