我们的网站有两个互联网提供商,每个链接都有公共 IP。我们在本地管理 DNS 和 SMTP 服务器。
我们希望在两个链接上发布我们的 DNS 和 SMTP 服务器,以获得冗余。
我的问题是如何发布 NS 记录,尤其是 PTR 记录?
例如,假设如下:
链接1:
- DNS 服务器公网 IP:192.168.1.2
- 邮件服务器公网IP:192.168.1.3
链接2:
- DNS 服务器公网 IP:10.10.10.2
- 邮件服务器公网IP:10.10.10.3
我们如何在每个链接上声明名称服务器和 smtp 服务器以及特别是它们的 PTR 记录?
如果我们在每个链接上对 SMTP 服务器使用不同的名称,那么 SMTP 横幅是否重要?
问候。
答案1
请注意,在两个 IP 地址下列出相同的 DNS 服务器只能为您提供冗余,以防其中一个互联网连接发生故障,而不能提供冗余,以防一个 DNS 服务器发生故障。大多数域名注册商要求在两个不同的网络中至少有两个 DNS 服务器。此设置不符合该要求,尽管他们无法从地址中判断您的两个名称服务器指向同一台机器。
对于 DNS 服务器名称,您可以像设置两个不同地址的两个不同服务器一样设置它们。您必须使用不属于您域的名称,或者必须使用粘合记录,但无论如何您都必须这样做。
如果我们在每个链接上对 SMTP 服务器使用不同的名称,那么 SMTP 横幅是否重要?
SMTP 横幅不要求使用确切的主机名。有关 SMTP 的 RFC 讨论了问候语可以包含的内容,但除了状态代码外,问候语中没有任何内容是必须包含的。
问题是,您是否要对同一个 SMTP 服务器的 IP 地址使用不同的名称?
同一 SMTP 服务器使用不同名称的一个原因是,如果您想为不同的 IP 地址赋予不同的优先级。如果您偏好使用哪个链接来接收电子邮件,则可以这样做。在这种情况下,您可以使用类似这样的名称来为 provider1 指定优先级。
example.de IN MX 10 邮件提供商1 example.de IN MX 20 邮件提供商2 mail-provider1.example.de IN A 192.168.1.3 mail-provider2.example.de IN A 10.10.10.3
如果您认为两个链接是平等的,则可以只指定一个名称并列出该名称的两个地址。大多数客户端会随机选择一个地址,从而实现负载平衡。聪明的客户端可能会找出哪个地址更适合它们并使用它。
example.de IN MX 10 邮件 mail.example.de IN A 192.168.1.3 mail.example.de IN A 10.10.10.3
您还可以通过列出两个具有相同优先级的名称来实现负载平衡。
example.de IN MX 10 邮件提供商1 example.de IN MX 10 邮件提供商2 mail-provider1.example.de IN A 192.168.1.3 mail-provider2.example.de IN A 10.10.10.3
不同名称的一个理由是,您不知道某些电子邮件客户端会如何反应,它会先反向查找 IP 地址,然后查找名称并获取多个 IP 地址。虽然这样做没有什么问题,但您不知道今天使用的所有客户端会如何反应,也不知道未来的客户端会如何反应。进行这些检查的主要原因是防止来自 DNS 设置不完整的 SMTP 客户端的垃圾邮件,但这并不意味着垃圾邮件发送者无法设置 DNS。
答案2
以下配置参考使用 bind(9) 执行配置的方式。
为了NS
记录,您可以简单地让您的上游 DNS 提供商指向两个服务器,例如:
example.de IN NS ns1.example.com #This could be 192.168.1.2
IN NS ns2.example.com #This could be 10.10.10.2
对于MX
记录,您甚至可以设置优先级,即preference
。将首先选择最低值。默认优先级值为100
。
example.de IN MX 10 mail1 #This could be 192.168.1.3, where 10 is the preference
IN MX 20 mail2 #This could be 10.10.10.3, where 20 is the preference
由于每个 WAN 链路上的服务都有不同的域名,因此不会出现任何PTR
记录问题。