为共享主机设置DNSlogging

因此,我现在正在设置这个服务器,将托pipe多个网站/域。 目前关于DNSlogging的最佳做法是什么? 我承认到现在只是做了一些事情,这是非常糟糕的。 Mea Culpa。 虽然它在过去对我有用,但我想知道最好的做法是什么,所以这里有几个问题:

  1. 我认为这可能是最有意义的设置主要的主机名

    192.168.0.1 A example.com 192.168.0.1 A host.example.com www CNAME example.com 

    然后将单个PTRlogging的192.168.0.1返回到example.com。 www CNAME应该指向example.com还是指向host.example.com Alogging? 什么更有意义,为什么?

  2. 那么最有意义的是为该服务器上的每个虚拟主机创build一个CNAME给example.com Alogging(或host.example.com Alogging),或者为每个虚拟主机创build单独的Alogging到主IP地址?

  3. 该主机上的SMTP服务器将自己标识为host.example.com 。 SPF已经足够广泛了,我可以为每个托pipe域创build一个SPFlogging,并有照顾其他域可能拒绝来自该主机的邮件?

解决scheme1和2:在大多数情况下,我build议为与盒子和CNAME相关联的实际IP做一个单一的“A”logging。 如果你将有很多somethings.example.com,我会使用通配符条目

 example.com A 192.168.0.1 *.example.com CNAME example.com 

好处是你不必做很多的DNS维护,因为你使用的任何.example.com将已经匹配。 你只要让Apache根据给定的名字找出如何处理它。 这将导致2查找,我只会做一个A的许多CNAME,而不是尝试做CNAME-> CNAME。 另外,MXlogging只能指向一个Alogging名称。

如果您需要将虚拟主机分配给自己的IP地址,则可以为该主机添加一个“A”logging,最具体的答案将会获胜。

 example.com A 192.168.0.1 *.example.com CNAME example.com new.example.com A 192.168.0.2 

任何给定的IP地址都可以有尽可能多的A RR指向它。 你可以有:

 server.example.com. IN A 192.168.0.1 www.example1.com. IN A 192.168.0.1 : www.exampleN.com. IN A 192.168.0.1 

你只需要一个PTR 192.168.0.1。 在这个特定的情况下,最合适的似乎是:

 1.0.168.192.in-addr.arpa. IN PTR server.example.com. 

不过,只要是一个,其他select也是一样的。

发生这种情况是因为当一台机器(A)连接到一台服务器(B)时,它不知道A的名称,只知道它的IP地址。 通过在DNS上创build一个PTR查询,它会得到一个名称作为响应。 所以现在B知道连接他的人(可能)被命名为A.为了validation是否再次询问DNS“A的IP地址是什么? 并希望答案包含它从连接数据中已知的关于A的IP地址。 当响应与预期不符时,会发生什么情况是服务器pipe理政策的问题。

如果您愿意,您可以创buildCNAME而不是多个logging。 这意味着当有人想要找出B的IP地址(以便连接到它)时,它会问DNS两次:首先,“B的真实姓名是什么? 然后“这个名字的IP地址是什么?”。

请注意,您不能将CNAME与MXlogging相结合,因此如果由于某种原因您需要接受指向[email protected]的电子邮件,则www.example3.com必须是Alogging。

  1. 您应该将PTR指向host.example.com以避免邮件传送错误,正如adamo所解释的那样。 您可以将CNAME指向任何主机,我更喜欢host.example.com。
  2. 您可以为您的虚拟主机使用CNAME或Alogging,但可能Alogging分辨率将更有效。
  3. 您应该设置SPFlogging以避免某些服务器发送邮件错误,“v = spf1 mx -all”是一个很好的起点,并且只允许MX为您的域提供服务。

在这里你有一个非常好的免费工具来检查你的configuration:

http://clez.net/net.dns?ip= example.com #graph

对于每个域,您需要创build一个单独的区域文件,例如example.com,您将创build一个名为db.com.example的文件。

接下来设置您的SOAlogging:

 $TTL 86400 @ IN SOA ns.example.com. hostmaster.example.com. ( 2010102601 ; Serial 7200 ; Refresh (how often slave nameservers check with master for changes) 1200 ; Retry (how often slaves contact the master if XFER fails) 2419200 ; Expire 86400 ; Negative Cache TTL ) NS ns ; inet of our nameserver NS ns.secondary.com. ; secondary dns MX 50 mail ; smtp server ; nameserver ns A 192.168.0.1 ; mail mail A 192.168.0.1 ; canonical names www CNAME ns 

无论您使用www CNAME还是www Alogging,在很大程度上取决于您。 有一点需要注意的是,当CNAME链太多时,大型组织有时会遇到麻烦。 但是,这对你来说不太可能是个问题。

该区域文件中不存在PTRlogging(反向查找)。 它可能位于您的互联网服务提供商所运营的区域文件中。

请参阅http://tldp.org/HOWTO/DNS-HOWTO-5.html

将logging设置为理论上应该更快,因为在CNAMEscheme中需要两个DNS请求。