28.5. 故障排除

28.5.1. 为什么我的网站要用到 FQDN?
28.5.2. 如何在拨号 PPP 主机上运行邮件服务器?

28.5.1.

为什么我的网站要用到 FQDN?

该主机可能实际上是在不同的域中。例如,为了让foo.bar.edu中的主机访问bar.edu域中名为mumble的主机,通过完全合格的域名FQDN来引用它,mumble.bar.edu,而不是只引用mumble

这是因为 FreeBSD 随附的 BIND 的版本不再为本地域以外的非 FQDN 提供默认缩写(abbreviation)。一个不合格的主机名, 如 mumble, 必须以 mumble.foo.bar.edu 的形式找到, 否则将在根域中搜索。

在旧版本的BIND中,搜索继续在mumble.bar.edumumble.edu中进行。RFC 1535详细介绍了为什么这被认为是不好的做法,甚至是安全漏洞。

解决方案是,使用:

search foo.bar.edu bar.edu

替换先前的:

domain foo.bar.edu

/etc/resolv.conf中。但是,请确保搜索顺序不要超出本地管理和公共管理之间的界限,正如 RFC 1535 所称的那样。

28.5.2.

如何在拨号 PPP 主机上运行邮件服务器?

连接到 FreeBSD 时,不需要 PPP 独立连接。

一种方法是让一个全职互联网服务器为该域提供二级MX 服务。在这个例子中,该域是example.com,而ISP已经配置了example.net,为该域提供二级MX服务:

example.com.          MX        10      example.com.
                      MX        20      example.net.

只有一个主机应指定为最终接收者。对于Sendmail,在example.com上添加Cw example.com/etc/mail/sendmail.cf

当发送MTA试图发送邮件时,它将尝试通过 PPP 连接到 example.com。如果目的地离线,这将会超时。MTA将自动将其传送到互联网服务提供商(ISP)的二级MX站点 example.net。辅助站点将定期尝试连接到主要的MX主机example.com

使用登入脚本,像下面这样:

#!/bin/sh
# Put me in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyisp

当为用户创建一个单独的登录脚本时,在上面的脚本中使用sendmail -qRexample.com。这将迫使example.com队列中的所有邮件立即被处理。

FreeBSD Internet service provider's mailing list中可以看到对这种情况的进一步改进:

> we provide the secondary MX for a customer. The customer connects to
> our services several times a day automatically to get the mails to
> his primary MX (We do not call his site when a mail for his domains
> arrived). Our sendmail sends the mailqueue every 30 minutes. At the
> moment he has to stay 30 minutes online to be sure that all mail is
> gone to the primary MX.
>
> Is there a command that would initiate sendmail to send all the mails
> now? The user has not root-privileges on our machine of course.

In the privacy flags section of sendmail.cf, there is a
definition Opgoaway,restrictqrun

Remove restrictqrun to allow non-root users to start the queue processing.
You might also like to rearrange the MXs. We are the 1st MX for our
customers like this, and we have defined:

# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue

That way a remote site will deliver straight to you, without trying
the customer connection.  You then send to your customer.  Only works for
hosts, so you need to get your customer to name their mail
machine customer.com as well as
hostname.customer.com in the DNS.  Just put an A record in
the DNS for customer.com.

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.