用户背景
中科院南京分院计算机网络始建于1995年5月,为中科院"百所联网"一期工程的试点单位,首批接入光纤网的单位为在宁分院机关、地质与古生物所、土壤所、地理与湖泊所,通过x.25公用分组交换网与中科院网络中心互联,主要满足部分科研人员上Internet查询文献资料,加强国内外前沿科研项目的合作与数据交换,跟踪世界科技发展动态。
二期工程于1999年1月竣工,紫金山天文台、天文仪器研制中心通过单膜光纤接入南京分院地区网,全面升级各单位网络节点设备,网络出口由64KDDN取代x.25公用分组交换网,共享数据库和管理信息系统(MIS)在网上运行,各所科研和管理部门的计算机大批进入分院地区网。
多域问题的提出及解决方法
鉴于南京分院地区网采用集中服务,主服务器为双CPU的Ultra2和Sun20工作站,而分院下属各研究所在科技网都拥有已经注册的域名,各研究所对外交流要求用本单位域名的Email地址,因此我们在网络集成时考虑解决多域服务问题。
我们的解决方案是利用Sun的Netra I软件完成DNS、Ftp及WWW服务,安装Sendmail8.9.1软件在一台服务器上提供多域名的Email解析。
由于各研究所的主页放在本所,工作平台的环境也不尽相同,因此我们通过主服务器在WWW服务中指定主机IP实现虚拟服务,一来可以减轻主服务器的被访问工作量,同时为各研究所网管员对本单位主页的更新与维护提供了更多的便利。
E-mail的工作方式
E-mail是用户在一对一基础上进行通信的主要方式。这些用户可以在同一台机器上,也可以通过网络分散在不 同的机器上,从概念上讲,发送E-mail 和发送普通邮件非常相似,任何人想要收到E-mail必须有一个E-mail地 址,就象要收到信件必须有邮寄地址一样。
邮寄地址全称包括:国家、地区、城市、街道、住房号和姓名,地址提供了传递邮件所必需的层次信息。使它越来越接近传递对象。与此相似,E-mail地址也有类似的 层次结构。例:某人的E-mail 为: somebody@issas.ac.cn
从层次意义上讲,这一信息从右边到左边,右边第一个为国家代码"cn"代表中国,第二个代码"ac"代表中国科学院,第三个代码"issas"代表中科院南京土壤研究所。
当有人向somebody发E-mail 时,somebody的本地端机器就象一个邮局,在那里接收和保存寄来的任何邮件,直到他取走为止,与此相似,对发送信息的人而言,发送电子邮件的远程机器也象一个邮局。
从源机器到目的机器,E-mail信息在传递过程中可能 经过其它机器,由于路径选择是自动的,信息发送者不需要知道这些中间的机器。
多域的E-mail服务就是给用户提供一种方便。比如: 一个主域要分成若干个子域,每个子域都可有自己域的 E-mail 帐号;又如多个单位共用一台主机完成E-mail服务,但每个单位都使用自己的域作为E-mail帐号。ISP为许多用户做WWW 和E-mail 服务,高安全性多域intranet的邮件系统等, 都是典型的只有多域才能完成的应用。
多域的E-mail 非常有特色,一看地址,就能让人知道他所属单位和部门。本文的实例:中科院南京分院由个6个在宁单位组成,它们都有各自的域名,网络中心设在土壤所,只有一台Sun Ultra2 主服务器来完成E-mail 服务,而每个单位网络用户要求使用自己域名的E-mail帐 号。我们的办法就是用Sendmail软件来做多域解析。
DNS的概念、作用和配置
1. 关于DNS
简而言之,DNS是用以将域名和主机名转换成IP地址的一种分布式层次结构系统。在DNS下,没有存放全部Internet主机信息的中心数据库,信息分布在一个层次结构中的数千台名服务器上,这种结构类似于UNIX文件系统的层次结构。DNS在域层次结构的顶上有一个根域(root domain),有一组称为根服务器的名服务器服务,顶层域有两种基本类型,即地理域和机构域。一个域的有关信息首先从根域开始,经子域到目标域指针查找的。Internet上广泛使用的是名字。Sendmail软件正是建立在名字之上的软件。
在UNIX系统中,采用的域名服务(DNS)软件是"Berkely 网间名域(BIND)"。
DNS名服务软件从概念上可分为两个部分:转换程序和名服务器。转换程序是形成查询的软件,它提出问题;名服务器是响应查询的进程,它回答问题。
在BIND下,所有的计算机都使用转换程序,但并不是都运行名服务器进程。一个不运行本地名服务器进程、而依靠其它系统获得所有名服务信息的计算机称为"唯转换 程序(resolver-only)"系统。这种唯转换程序配置一般只用于单用户系统,大多数UNIX系统都运行一个本地名服 务器进程。三类主要的名服务器是:主服务器(Primary Server),主服务器是可以从中取得与一个域有关的全部数据的服务器;辅助服务器(Secondary Server),辅助服务器可以从主服务器中转换整个域数据库;唯高速缓存服务器(Caching Only Server),唯高速缓存服务器可以取得其它名服务器发出的所有名服务查询的回答信息。
对于大多数网络,这些不同类型服务器之间的关系使得DNS优于主机表。在DNS之下,每个域只应有一个主名服务器。域管理员将DNS数据输入该主服务器的数据库中, 取得对主机名信息的中央控制权。对于任何网络,一个自动分布的、中央控制的数据库是网络自身的一个特点,当你将一个新系统增加到网络中时,不必修改网络中每个节点上的/etc/hosts文件,只需修改主服务器中的DNS 数据库;通过全面的区文件转移或将每个应答信息存放在高速缓冲中,与该新系统有关的信息就会自动地传送给其它服务器。
2. DNS的配置
本文实例:中科院南京分院共有6家单位组成,它们的域名和IP地址分别为:
紫金山天文台: pmo.ac.cn 159.226.120.16
地理与湖泊所: niglas.ac.cn 159.226.120.17
分 院 机 关: njbas.ac.cn 159.226.120.18
地质与古生物所:nigpas.ac.cn 159.226.120.19
天仪研制中心: nairc.ac.cn 159.226.120.20
土 壤 所: issas.ac.cn 159.226.120.14
在DNS配置中,充分利用Sun Netra I 软件来配置。
首先打开浏览器键入URL:localhost : 81
用 户 名: Setup
口 令: Setup
进入Netra I 软件。
选择Administration->Name Service->DNS
a. DNS Client
Add DNS Client
DNS Client Administration
DNS Domain Name : nigpas.ac.cn
Name Server 1 Address 127.0.0.1
Name Server 2 Address(Optional) : 159.226.8.6
b. DNS Server
Add a DNS Server
DNS Domain Name: njgpas.ac.cn
Root Name Servers Host: Addressas A. Root-Servers.Net 198.41.0.4
B. Root-Servers.Net 128.9.0.107
C. Root-Servers.Net 192.33.4.12
D. Root-Servers.Net 128.8.10.90
E. Root-Servers.Net 192.203.230.10
F. Root-Servers.Net 192.5.5.241
G. Root-Servers.Net 192.112.36.4
H. Root-Servers.Net 128.63.2.53
I. Root-Servers.Net 192.36.148.17
c. Add a Primary domain
(a) Add a Primary domain
Primary Domain Name : nigpas.ac.cn
(b) Add a Primary domain
Primary Domain Name: nairc.ac.cn
用同样方法加入其它域,即完成了DNS的配置。
关于Sendmail及其配置
1. Sendmail
Sendmail是一个邮件传输程序。电子邮件使用的各种程序和协议使得配置和支持复杂化,SMTP在TCP/IP网络上发送邮件。每一个程序可在同一系统的不同用户间发送邮件;还有一个程序在UUCP网络上发送邮件。其中每个邮件系统(SMTP、UUCP和本地邮件)都有各自的传输程序和各自的邮件寻址方法,所有这些将会造成邮件用户和系统管理上的混乱。
Sendmail可以消除由于多个邮件传送程序造成的某些 混乱。其方法是根据电子邮件的地址,为用户邮件选择一条到达适当的传输程序的路由。它接收来自一个用户邮件 程序的邮件,解释该邮件地址,将该地址重新改写成适合于一个传输程序的格式,然后引导邮件到达正确的传输程 序。Sendmail将最终用户与这些细节分开,如果邮件地址正确,Sendmail就认为它可以被准确地发送并进行传输。同样,对于进入的邮件,Sendmail先解释其地址,然后,将邮件传送到用户的邮件程序或转发到另一个系统。
除了在用户程序和传输程序间为邮件选择路由外,Sendmail还具有如下功能:
· 接收和传输SMTP(网间)邮件
· 提供系统级的邮件别名,从而允许使用邮址表
2. 作为守护程序运行Sendmail
为了从网络上接收SMTP邮件,可以在系统开机时将Sendmail作为守护程序运行。该Sendmail守护程序侦听TCP 的端口25,并处理进入的邮件。
运行时该程序首先检查是否存在Sendmail程序,如果找到该程序,它就转到邮件队列目录,并删除在该处找到的任何加锁文件。该邮件队列目录中保持着尚未传送的邮件,有可能正在处理邮件队列时系统会关机,因而加锁文件可能会偶然地滞留在该目录中,因此在引导时应将它们删除。
接着,该程序以两个命令行选项启动Sendmail。一个选项是-q,它与上面所述的邮件队列有关,它告诉Sendmail 以多高的速率去处理邮件队列。缺省状态下,该程序每小时(-qlh)处理一次队列。对于大多数系统这是一个很合适的设置值,但对于中央邮件服务器则例外,它可能需要更快地处理该队列,如每15分钟或每半小时(-q15m或-q30m)处理一次。 千万不要将该值设置得太低,否则,如果由于传输问题(如网络中断)而使队列增长得太大,这就会带来一些问题。
另一个选项与网间邮件直接有关,选项(-bd)告诉Sendmail作为守护程序运行,它使得Sendmail去侦听TCP 的 端口25,以找到进入的网间邮件。如果你要求系统去接收进入的TCP/IP邮件,请使用该选项。
3. Sendmail别名
怎样强调邮件别名的重要性都不会过分,因为没有邮 件别名,Sendmail系统就不可能用作中央邮件服务器。邮件别名的作用:
· 为单个用户提供代用名(外号);
· 将邮件转发给其它主机;
· 提供邮址表(mailing list)。
Sendmail的邮件别名(aliases)在文件中定义。 aliases文件的各项基本格式是:alias: recipient [,recipient,...]
alias是邮件被寻址的名字;recipient 是邮件传输目 的地的名字,它可以是用户名,另一个别名的名字或一个完整的电子邮件地址(包括用户名和主机名)等。含有主机名就允许将邮件转发到一个远程主机。此外,一个别名可用于多个接收者,寻址到该别名的邮件便可传输到所有 接收者,这就建立了一个邮址表。
利用DNS中的邮件MX记录设置,让多个域的MX记录都指向其中的某一个域,让这个域充当其它域的别名。发往其它域的E-mail都可由这个别名来中继,最后发送到各 用户邮箱中去。即可实现不同域的E-mail转发。如本例中,把nigpas.ac.cn 域作为其它域的别名,当有人向xx@nairc.ac.cn发信时,在本地邮局中nairc.ac.cn会被nigpas.ac.cn域所替代,然后再进入xx用户中去,但对于外人来看,xx用户的E-mail地址是xx@nairc.ac.cn而不是xx@nigpas.ac.cn。
在Sendmail软件中,Sendmail.cf是Sendmail的配置 文件,它包含着大部分的Sendmail配置信息,包括在用户邮件程序和邮件传输程序之间为邮件选择路由所需的信 息。它主要有三个功能:
· 定义Sendmail环境
· 按照接收邮件程序的语法重写地址
· 将地址映衬成传送邮件所需的指令
4. Sendmail的配置
我们首先从www.sendmail.org网站中下载sendmail-8.9.1.for Solaris2.6文件,再在www.sunfreeware.com 里 下载免费gcc2.7.2.3 编译软件,经过解压后,放到 /opt/sendmail /opt/GCC2723 目录下。
具体步骤如下:
(1)cd /opt/sendmail/src
(2)./Build /* 编译Sendmail生成一个obj.*目录*/
(3)cd obj.*
(4)cp /usr/lib/sendmail /usr/lib/sendmail·old
(5)cp -r /etc/mail /etc/mail·old /*保存原来的配置*/
(6)make install /*替换原来的/usr/lib/sendmail守 护程序*/
(7)rm -r /etc/mail
(8)mkdir /etc/mail
(9)cd /etc/mail
(10)touch aliases
(11)/usr/lib/sendmail -bi /*产生*.pag和*.dir文件对 aliases机制进行初始化*/
(12)cd /opt/sendmail/cf/cf
(13)cp tcpproto.mc x.mc /*保存原来的模板*/
(14)vi x.mc
修改OSTYPE(Solaris2)dnl
存盘退出
(15)m4 ../m4/cf.m4 x.mc>config.cf /* 用m4工具生成 sendmail.cf 原始配置文件*/
(16)vi config.cf 在Cwlocalhost 后加入所有的域名,如issas.ac.cn nigpas.ac.cn nairc.ac.cn 等
(17)cp config.cf /etc/sendmail.cf /* 生成一个全新的sendmail.cf文件替代原来的 Sendmail.cf文件 */
(18)cd /etc/mail
(19)touch relay-domains vi relay-domains * wq /*为每一个客户提供中继*/
(20)reboot
至此,Sendmail多域配置过程结束,成功地实现在一台机器上完成多域E-mail服务。
多域的特点
1. E-mail帐号更加灵活、更有特色, E-mail地址 可以反映出用户的身份和工作性质。
2. 节省资金,多单位可共享一台主机完成各自的E- mail服务,省去了各单位同时购买服务器的费用。
3. Sendmail是Unix系统中最常用和功能最好的一种 传输程序,它的灵活性、可靠性和强大的功能得到世界的公认。
4. Sendmail软件是免费的,编译器GCC也是免费的。
5. Sendmail 软件所产生的日志文件,严格而有规律, 为 邮件的记费提供重要的资料来源。
|