1

当客户注册我的服务时,我想为他们创建一个A DNS 条目:

用户名mydomain.tld指向托管其页面的服务器的 IPv4 地址

理想情况下,此 DNS 系统将:

  • 相当轻巧
  • 分布。主/从模型会很好,可能具有主故障转移或在主脱机时变为只读。
  • 支持通过一个不错的 API 进行更改(主要是创建/删除 A 条目)
  • 立即应用更改(了解 DNS 需要时间来传播)
  • 在 Linux 上运行

有什么很棒的东西适合这个描述吗?

谢谢 :-)

4

1 回答 1

1

您可以只使用动态 DNS 更新。这是一个非常基本的应用程序:

  1. 生成将由 DNS 服务器和更新客户端使用的共享对称密钥:

    dnssec-keygen -a HMAC-MD5 -b 512 -n HOST key.name.
    

    密钥名称是一个域名,但您可以使用任何您想要的名称:它或多或少只是密钥的名称。

  2. 配置绑定以允许此密钥对区域mydomain.tld进行更改:

    key "key.name." {
        algorithm hmac-md5;
        secret "copy-the-base64-string-from-the-key-generated-above==" ;
    }
    
    zone "mydomain.tld" {
        ...
        allow-update { key key.name. ; };
        ...
    }
    
  3. 使用 nsupdate 进行更改:

    nsupdate -k <pathname-to-file-generated-by-dnssec-keygen>
    

    作为nsupdate命令的输入:

    server dns.master.server.name
    update delete username.mydomain.com
    update add username.mydomain.com a 1.2.3.4
    update add username.mydomain.com aaaa 2002:1234:5678::1
    

    不要忘记update命令后的空行。nsupdate在看到空行之前不会向服务器发送任何内容。

与 bind 和其他 DNS 服务器一样,主服务器没有高可用性,但是您可以拥有任意数量的从属服务器,如果它们获得增量更新(默认情况下应该如此),那么更改将很快传播. 你也可以选择使用一个隐蔽的主服务器,它的唯一工作就是接收和处理这些 DDNS 更新并将结果提供给从属服务器。

于 2012-04-06T01:13:34.843 回答