网络管理员指南 -14.建立smail并运行 -7>路由发送信息

/ns/wz/net/data/20020808040429.htm

网络管理员指南 -14.建立smail并运行 -7>路由发送信息


本文出自:http://www.linpus.com.tw 作者: Andrew Anderson


当给出一条信息时, smail 首先检查目的地是否是本地的主机,或是一个远程地点。如果目标主机地址是
在配置中设置的本地的主机名之一,信息被传递给控制器模块。否则, smail 把目的地地址传递给很多路由
器驱动程序去发现哪个主机提交一条信息。他们在路由器文件中被描述;如果这个文件不存在,一套缺省路
由器被使用。

目的地主机顺序地被传递给所有的路由器,并且发现最特定的线路的一个被选择。考虑被邮寄了到
joe@foo.bar.com 的一条信息。然后,一个路由器可能在 bar.com 域为所有的主机知道一条缺省线路,同时
另外的一个自己有为 foo.bar.com的信息。因为后者是更特定的,它在前者之上被选择。如果有两个路由器
提供“最好的匹配”,首先在路由器文件中来到的一个被选择。

这个路由器现在指定被使用的运输方式,例如 UUCP ,产生一个新的目的地地址。新地址与提交信息的主机一
起被传递给运输。在上面的例子中, smail 可能发现foo.bar.com 是经由UUCP使用路径 ernie !bert 被到
达的。然后它将产生 bert!foo.bar.com!user 的一个新目标,并且让 UUCP 运输作为信封地址使用这个被传
递给 ernie 。

当使用缺省安装时,下列路由器是可得到的:

如果目的地主机地址能被解决使用 gethostbyname ( 3 )或 gethostbyaddr ( 3 )图书馆呼叫,信息将经由
SMTP 被交付。唯一的例外是,如果地址被发现参考本地的主机,它也被传递给控制器模块。

smail 也认出作为合法的主机名作为有点的空铅被写的IP地址,只要他们能通过一个gethostbyaddr( 3 )呼
叫被解决。例如,scrooge@[ 149.76.12.4 ]将是一个有效的地址,尽管在 quark.physics.groucho.edu 上
为scrooge的极不平常的通讯地址。

如果你的机器在因特网上,这些路由器不是你正在寻找的,因为他们不支持MX 记录。见下面为这种情况应做
什么。

如果 /usr/lib/smail/paths , pathalias 数据库,存在, smail 将试着在这个文件中查一下目标主机(减去
任何trailing .uucp )。通过这个路由器匹配的到一个地址的邮件将使用 UUCP被发送,使用在数据库中被发
现了的路径。

如果目标主机实际上是一个UUCP邻居,主机地址(减去任何trailing .uucp )将被比较为uuname 命令的输出
去检查。如果这是一种状况,信息将使用 UUCP 运输被发送。

如果地址没被上面任意一种路由器匹配,它将被发送到聪明的主机那里。到象被使用的运输一样,到聪明主
机的路径被设置在设置文件中。

这些缺省为许多简单的安装工作,但是如果路由要求变得有点复杂,它们则失败。如果你面对下面被讨论了
的任何问题,你将必须安装你自己的路由器文件用以制服缺省。你可能作为开始的一个样品路由器文件在附
录中被给出--。一些分区和一套设置文件被定制在这些困难附近工作。

当你的主机与拨号的 IP 和 UUCP 连接生活在一个双宇宙中时,最糟的问题可能会产生。然后,你将你的主
机名放在你仅偶尔通过你的 SLIP 连接谈论的主机文件中,因此 smail 将试图经由 SMTP 为这些主机发送任
何邮件。这通常不是你想要的,因为就算 SLIP 连接定期被激活, SMTP 比在 UUCP 上发送邮件要慢。使用缺
省安装,不能逃离 smail 。

你能在查询解决器之前,让smail检查路径文件,从而避免这个问题,并且将你想要迫使 UUCP发送的所有主
机放入路径文件。如果你从不想在 SMTP 上发送任何信息,你也能评价基于路由器的路由。

另外一个问题是缺省安装不提供真实的因特网邮件路由,因为基于路由器的路由不计算MX 记录。为因特网邮
件路由启用充分支持,评价这个路由器,并且 uncomment 那个使用了BIND的路由器。然而,被包括在一些没有
BIND支持的分区中的 smail 二进制代码被编入了。如果你启用BIND,但是在 paniclog 文件中得到一条信息
“路由器 inet_hosts :没发现驱动器bind”,然后你必须得到来源并且重新编译 smail (见上一节)。

最后,使用 uuname 驱动器通常不是一个好主意。对于一个,当你没有 UUCP 安装时,它将产生一个配置错误,
因为没有发现 uuname命令 。第二是,当你列在你的UUCP系统文件中的地点比你实际上拥有的邮件连接点多的
时候。这些可能是你仅交换新闻的地点,或是你偶尔经由匿名的 UUCP 下载文件的地点,但是与其他地点没有
通途。

在第一个问题附近工作,你能用一个位置手迹代替做一个简单出口的 uuname 0 。然而,更多的一般的解决
方案是,编辑路由器文件并且完全移开这个驱动程序。

--------------------------------------------------------------------------------


路径数据库

smail 期望在/usr/lib/smail.下的路径文件中发现 pathalias 数据库.这个文件是可选择的,所以,如果你根
本不想要执行任何 pathalias 路由,只要简单地移开任何存在的路径文件即可。

路径必须是一个排序的ASCII文件,它包含绘制目的地地点名字到 UUCP 重击路径的入口。因为 smail 在查找
一个地点时使用二进制的搜索,该文件必须被排序。在这个文件中不允许注释,地点名字必须使用TAB使其从
路径中被分开。 Pathalias 数据库在章-中更详细地被讨论。

如果你手动产生这个文件,你应该确保为一个地点包括所有合法的名字。例如,如果一个地点被两个无格式的
UUCP名字知道并且是充分合格的域名,你必须为他们每一个增加一个入口。文件能通过分类(1)命令将它排序。

然而,如果你的地点仅仅是一个小地点,然后根本没有路径文件:仅在你的设置文件中安装聪明的主机,并且把
所有的路由留给你的邮件。