邮件系统负载均衡

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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
其中,第一条纪录的意思是本域的邮件服务器为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系统上。

这样,实现了邮件的分布式存放,保证系统的均衡性。

在这种结构下,需要有两个注意事项:
z用户认证信息必须统一:如果采用多台认证服务器,必须保证多台服务器上的用户密码,用户邮件存放目录信息为一致的。

z邮件服务器验证:为防止垃圾邮件的产生,很多邮件服务器在进行收发信的时候,会检测对方的发信地址是否为该域的MX记录,在负载均衡后,邮件
服务器向外发信必须以负载均衡器上的对外VIP的身份发信,否则会被一些
邮件服务器拒绝。

4.多链路邮件服务器接入
多链路邮件服务器接入通常用于有多条链路接入的大型企业。

在这些企业中,邮件系统已经成为一个与生产相关的系统,大量的企业内部报告、客户往来均通过邮件系统实现。

所以保证Internet连接的可靠性和邮件系统的可靠性显得至关重要。

由于是企业邮件,通常采用单台邮件服务器,但是接入的线路是多条。

如图:
在图中,邮件服务器的前端为链路负载均衡设备,采用多条ISP链路接入。

每个ISP会分配一段IP地址。

在这种结构下,IP层的处理相对比较简单,邮件服务器的真实IP采用内部保留地址,在链路负载均衡设备上我们可以将邮件服务器对外映射成为两个公网地址,每个地址位于一个ISP线路。

对于从外向内的访问,可以分别通过这两个IP 访问邮件服务器,而邮件服务器主动向外的访问,则也是通过这两个IP访问公网上的其他服务器。

链路负载均衡器将根据到达目的地的速度选择一条最优的线路。

这种结构的主要处理部分都在DNS上。

主要有两种方式:
主-备方式:主要用于Internet链路不均等的状态,例如一条线路为100M接入,而另外一条线路为10M接入线路。

在这种情况下,可以在两条线路均正常的情况下,让进出的邮件均通过一条线路,而只有当这条线路故障的时候,邮件才通过另外一条线
路。

该方式的配置主要有两个地方:
z DNS:
@ IN MX 10 ISP1Mail
@ IN MX 20 ISP2Mail
IN A 211.xxx.xxx.xxx
ISP1Mail
IN A 61.xxx.xxx.xxx
ISP2Mail
这样所有从外部发往本域的邮件均会优先通过ISP1发送到本域邮件服务器,而只有在ISP1线路故障的时候才会通过ISP2发送到本域邮件服务器。

z链路负载均衡器:
将邮件服务器对外映射至ISP1的地址配置为主用地址,而将ISP2的映射地址配置为备份地址。

这样,在两条链路均为健康时所有向外发送的邮件均通过ISP1
线路,当ISP1线路故障的时候,向外的邮件将通过ISP2线路发送。

主-主方式:这种结构主要用于用户的两条链路比较均等的情况。

如果两条链路的服务质量类似,则可采用同时使用的结构,即在两条链路均正常的情况下,由链路负载均衡器选择收发信时采用那条链路。

该方式的配置如下:
z DNS:
@ IN MX 10 mail
LBISP1
IN NS
mail
LBISP2
mail
IN NS
这样在DNS服务器中只指定本域的邮件服务器为mail,但mail的实际解析在链路负载均衡器上进行。

这样可以由链路负载均衡器来选择给远端的客户端或者
邮件服务器通过那条链路来访问本域邮件服务器。

z链路负载均衡器
在链路负载均衡器上启用DNS服务器,根据用户访问本地的速度不同选择返回一个mail服务器的公网地址。

使对方通过一条最优线路来访问本域邮件服务器。

而邮件服务器在向外发送邮件时,链路负载均衡器同样会选择一条最佳线路,使
邮件通过该线路进行发送。

5.几个相关问题
5.1负载均衡器
在本章中涉及的负载均衡器包括本地服务器负载均衡和链路负载均衡两种产品。

本地服务器负载均衡器主要用于本地服务器的负载均衡,将用户的请求根据一定的策略分配到后端的多台服务器上。

现市场上的主流产品是F5 BIGIP。

链路负载均衡器主要用于处理多条链路接入,主要完成动态NAT和DNS解析功能。

现市场上的主流产品有为F5 LinkControler 或F5 3DNS+BIGIP。

5.2邮件服务器验证
由于SMTP协议的限制,在邮件服务器之间发送邮件的时候无法进行身份验证。

为了控制垃圾邮件,许多邮件服务器在接收邮件之前,需要验证对方的IP地址是否为发送域的授权邮件服务器地址。

所以发送邮件的地址必须与该域的DNS解析的MX记录一致,否则该邮件将被拒收。

相关文档
最新文档