如果我没有在隐藏主设置中将我的真实主 DNS 设置为 SOA 条目,会发生什么情况?

如果我没有在隐藏主设置中将我的真实主 DNS 设置为 SOA 条目,会发生什么情况?

我想设置一个隐藏的主 DNS 服务器,即我在自己的服务器上托管区域文件,但所有请求都应发送到由专用 DNS 公司托管的辅助 DNS 服务器。我自己的 DNS 服务器不应由递归解析器或最终用户使用。该公司将使用区域传输从我的服务器复制区域文件。理想情况下,没有人应该知道我的服务器存在于此 DNS 设置中。

当然,NS这种设置中的所有记录都将指向 DNS 公司的名称服务器。但我不确定该SOA记录。

根据我的理解,此设置意味着我的服务器是“授权的开始”,因此我必须在其中指定它SOA- 这将使公众知道我的服务器是真正的主服务器。根据serverfault 上的另一个答案MNAME 必须设置为“<domain-name>该区域的原始或主要数据源的名称服务器”。

如果可能的话并且不会带来太多麻烦,我宁愿不在 SOA 中列出我的 NS 服务器,而是将 SOA 指向我的名称服务器托管公司。

company.example.com如果我实际设置为 SOA 而不是我自己的服务器,会有什么后果myserver.example.org

  • 我是否会违反 RFC?
  • DNS 系统的某些部分是否不再起作用?(我读到 SOA 的条目用于动态更新,但我既不打算接受来自外国人的动态更新,也不打算自己发送)
  • 因为我错误地指定了他们的电子邮件地址作为主 DNS 的联系人,我的名称服务器托管公司会来找我吗?(SOA 的邮件地址字段)
  • 我是否可以在 SOA 中混合使用不同的主机名和邮件地址来解决某些问题?例如指向company.example.comSOA 服务器,但指向[email protected]邮件联系人?

答案1

使用外包名称服务器(来自其他域)并不违反 DNS 标准,但这听起来不像是隐藏的主配置。作为主服务器给出的 NSSOA应该在NS记录中,但这并不意味着必须配置服务器,以便向世界介绍的主服务器是数据的实际原始来源。

例如,您可能不想将拥有您私有 DNSSEC 密钥的主服务器暴露给全世界。如果公开宣布的主服务器具有其他可能更容易受到攻击的功能(如某些 Web 应用程序),那么这一点尤其有用。

让我们举个例子。配置假设是BIND。

$ORIGIN example.com.
@       IN      SOA     ns1.example.com. hostmaster.example.com. (
                        2020053100 ; serial
                        7200       ; refresh (2 hours)
                        3600       ; retry (1 hour)
                        604800     ; expire (1 week)
                        86400      ; minimum (1 day)
                        )
@       IN      NS      ns1.example.com.
@       IN      NS      ns2.example.com.
@       IN      NS      ns3.example.com.

ns1     IN      A       192.0.2.10
ns2     IN      A       198.51.100.20
ns3     IN      A       203.0.113.30

DNS 服务器位置和交互的图表

  • 隐藏的大师未在区域中列出。

    • 该服务器仅在私有网络上,具有IP地址172.16.10.40
    • 该服务器执行 DNSSSEC 签名,因此我使用了example.com.signed
    • 它被配置为的主服务器example.com,允许从公共主服务器进行区域传输,但只能使用 LAN(或者也可以是 VPN)。

      zone "example.com" {
          type master; 
          file "/etc/bind/db/example.com.signed";
          allow-transfer { 172.16.10.20; };
          notify explicit;
          also-notify { 172.16.10.20; };
      };     
      
    • 通知是使用notify explicit&手动配置的also-notify,因为notify yes只会通知 中列出的服务器(NS除了 中列出的主服务器)SOA。这根本无法开箱即用。

  • 公共初选服务器ns1.example.com

    • 该服务器有两个IP地址:公共IP192.0.2.10和私有IP 172.16.10.20
    • 它是配置为从属对于区域,并允许从其他 NS 进行区域传输:

      zone "example.com" { 
          type slave; 
          file "/etc/bind/db/example.com"; 
          masters { 172.16.10.40; };
          allow-transfer { 198.51.100.20; 203.0.113.30; };
          notify yes;
      };
      
  • 公立中学服务器ns2.example.com& ns3.example.com

    • 在这个例子中,这些服务器完全在其他地方,提供必需的 网络多样性和地质冗余。

    • 这些服务器从公共主服务器执行区域传输。

      zone "example.com" { 
          type slave; 
          file "/etc/bind/db/example.com"; 
          masters { 192.0.2.10; };
      };
      

相关内容