【问题标题】:DNS using BIND with Subdomains - Multiple Servers and Hosting Accounts使用 BIND 和子域的 DNS - 多个服务器和主机帐户
【发布时间】:2014-10-29 15:23:01
【问题描述】:

希望有人可以帮助澄清这一点。

我在 Go Daddy 注册了一个域,即 example.com。我使用 TSOHost 托管网站,因此在我的域配置中,我设置了以下 NS 记录。

域名服务器 1:ns1.tsohost.co.uk

域名服务器 2:ns2.tsohost.co.uk

我现在可以通过这个托管包为网站提供 www 和非 www 服务。我只是有一个 example.com 的 A 记录和一个 www.example.com 的 CNAME 指向 example.com(这是在 cpanel 高级 DNS 区域编辑器中配置的)。所以现在我们的网站按预期和要求显示。

我还想完全使用不同的服务器设置一种 DDNS 服务(这将保存我将使用 Radius 数据库动态创建的 DNS 记录)。

所以我想为这个 DDNS 服务使用子域 ddns.example.com,即 Bob.ddns.example.com 用于 Bob(这样当我 ping bob.ddn.example.com 时,我可以将 IP 更改为8.8.8. 说)。在 Cpanel 中,我有一个 ddns.example.com 的 A 记录和一个 *.ddns.example.com 的 A 记录,以指向我的服务器来管理它,例如 85.214.214.214。

我已经在服务器上安装了 Bind(目前为此使用数字海洋服务器,我已将 ddns.exmaple.com 作为 A 记录添加到 droplet 和 *.ddns.example.com 中),我有为 ddns.example.com 创建了一个区域,在其中我将 ns 记录设置为数字海洋详细信息。

然后我将以下内容添加到我的文件 /var/named/ddns.example.com.hosts

$ttl 38400
ddns.example.com.    IN      SOA     ns1.digitalocean.com. jon@example.com. (
                1414575123
                10800
                3600
                604800
                38400 )
ddns.example.com.    IN      NS      ns1.digitalocean.com.
bob.ddns.example.com.        IN      A       8.8.8.8

当我在安装了 bind 的服务器上 ping bob.ddns.example.com 时,我得到 8.8.8.8,但是当我在其他任何地方 ping 时,我得到了绑定服务器 IP。

请问我正在做的事情是否可行,即从godaddy 到tso,到另一台服务器,如果可以,我应该为绑定指定哪些NS 记录?或者我需要更改命名配置中的某些内容,我在 named.conf 中设置了以下选项以尝试解决此问题。

listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query     { any; };
recursion yes;

我知道递归可能会让我容易受到 DOS 攻击,我打算最终将其设为否,但在测试期间我暂时将其设为是。

任何帮助或信息将不胜感激,我一直在尝试不同的区域文件变体等但没有成功,我真的不确定我是否朝着正确的方向前进。

希望我说得有道理,但如果我能提供任何进一步的信息,请告诉我。

【问题讨论】:

  • 您应该能够根据需要随时委派子域。我不确定我是否完全理解了问题中概述的情况,但从您的解释看来,您的 NS 记录将 ddns.example.com 委托给 ns1.digitalocean.com 的位置错误。它需要位于 ns1.tsohost.co.uk 而不是 ns1.digitalocean.com 服务的区域中。
  • @SamGreenhalgh 看来我需要创建自定义名称服务器并将子域委托给 Godaddy 的这些服务器。如果您为整个域设置主 NS 记录,那么您似乎无法从这里拆分并创建subdomian 的更多 ns 记录。这可能与 TSO 主机特别相关,因为它们不提供仅创建 A 或 CNAME 的 ns 记录的能力。我已经解决了另一个域的情况,但我无法更改 ns 服务器主域,因为我不中断。务必将您的评论作为答案,我将奖励赏金。很遗憾看到它被浪费了。

标签: linux dns bind


【解决方案1】:

我的第一个问题是 - 你确定你已经用这个服务器更新了注册器作为这个域的 DNS 名称服务器吗?

Use nslookup to find out:

# nslookup
> set querytype=NS
> server 4.2.2.1   (a DNS server on the Internet)
> ddns.example.com.   (a closing dot helps avoid lookups using preferred search domains.)

并确认 Internet 知道与谁通信,并且您的 NS 主机对该域具有权威性。

接下来是 - 您是否有任何其他名称服务器可以“回答”该子域,从而导致其他问题?

顺便说一句 - 很高兴听到您解决了这个问题!

【讨论】:

    猜你喜欢
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2015-02-24
    • 1970-01-01
    • 2010-11-07
    • 2013-10-02
    相关资源
    最近更新 更多