AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 669819
Accepted
Andrew B
Andrew B
Asked: 2015-02-20 02:08:50 +0800 CST2015-02-20 02:08:50 +0800 CST 2015-02-20 02:08:50 +0800 CST

如何以最少的配置管理我的所有域?

  • 772

这是关于 DNS 服务器管理的规范问题。

我有一百个左右的域。所有这些域都需要进行相同的配置,但必须为每个域配置一个新的区域和/或区域文件似乎是一种巨大的浪费时间。必须有更好的方法来自动化它!

我想我正在做某事......如果我创建一个名为 的区域.,或者在我的 DNS 软件中使用其他一些功能来在请求记录时始终返回特定 IP A,这似乎让我非常接近我想要的结果结果。我的服务器对请求做出权威响应,而且管理起来更容易!

在名称服务器验证软件开始检查这些域之前,这一直很好。我发现我可以通过添加记录来消除大部分错误,但是我的软件不允许我在同一个区域文件中NS放置多个记录。SOA

如何解决这个多SOA记录问题?

domain-name-system
  • 4 4 个回答
  • 1405 Views

4 个回答

  • Voted
  1. Best Answer
    MadHatter
    2015-02-20T02:55:58+08:002015-02-20T02:55:58+08:00

    除非我误解了这个问题,否则我会定期使用 BIND 执行此操作,只要每个区域绝对相同,它似乎就可以了。

    在我的主名称服务器上,我有named.conf指向通用区域文件的条目,例如

    zone "example.com" {
            type master;
            file "primary/example.GENERIC";
    };
    
    zone "example.co.uk" {
            type master;
            file "primary/example.GENERIC";
    };
    

    然后是一个区域文件,上面primary/example.GENERIC写着,例如

    ;; Start of Authority
    @       IN      SOA     ns.teaparty.net. dns.gatekeeper.ltd.uk. (
                            2004091201      ; serial number YYYYMMDDNN
                            28800           ; refresh  8 hours
                            7200            ; retry    2 hours
                            864000          ; expire  10 days
                            3600 )          ; min ttl  1 day
    ;;
    ;;      Name Servers
                    IN      NS      ns.teaparty.net.
                    IN      NS      ns2.teaparty.net.
    

    而且我根本不知道这些区域有任何问题。我很乐意被告知我误解了这个问题,或者我的域实际上不起作用,但在那之前我认为它对我有用。

    请注意,您不能在二级上使用相同的技巧;每个区域都需要存储不同的文件。但是由于该文件的内容将由来自主区域的区域 xfer 填充并保持最新,因此这不是什么大问题。

    • 12
  2. Andrew B
    2015-02-20T02:08:50+08:002015-02-20T02:08:50+08:00

    简答

    如果您正在寻找 BIND 中的“零配置”设置,那么它不存在。设置根区域.(

    长答案

    在过去的一年里,我们已经多次收到这个问题的变体。

    答案很简单:您不能设置单个区域定义。任何允许您SOA在此上下文中定义或以其他方式合成多个记录的软件都是损坏的软件,并且做损坏的事情不是 ServerFault 的主题。您要么需要选择让这种管理更简单的 DNS 软件,要么需要想出不涉及此特定快捷方式的不同策略。

    肯定有一些技巧可以让您的生活更轻松……以 BIND 为例,定义多个都引用同一个模板区域文件的区域是相当普遍的。这是完全合法的,验证软件不会发现任何问题:请参阅 MadHatter 的回答。大多数人忽略了这个解决方案,因为每次获取新域时添加区域声明仍然“工作量太大”,但是这种托管没有“配置一次然后离开”选项。

    较新版本的 BIND 支持一个名为的选项allow-new-zones,可让您通过新rndc addzone功能动态创建区域定义。你可能想看看这个,看看它是否符合你的需要。

    除了建议的解决方案之外,您的选择有些有限。有时,如果软件没有按照您希望的方式做事,您就会被困在工作中。

    • 4
  3. HBruijn
    2015-02-20T03:49:05+08:002015-02-20T03:49:05+08:00

    您可以使用许多快捷方式让您的生活更轻松:

    如果您使用 Bind 或使用文件来存储区域数据的类似软件:将您的区域指向同一文件,例如:

    zone "example.net" {
        type master;
        file "/etc/bind/zone/default.zone";
    };
    
    zone "example.org" {
        type master;
        file "/etc/bind/zone/default.zone";
    };
    

    因为您可以使用某些 DNS 速记,您可以创建一个通用区域文件:

    $TTL 1h      ; default expiration time of all resource records without their own TTL value
    @  IN  SOA   ns1.example.com. username.example.com. ( 
                                   20140218131405 ; Serial number YYYYMMDDHHMMSS
                                            28800 ; Refresh     8 hours
                                             7200 ; Retry       2 hours
                                           604800 ; Expire      7 days
                                            86400 ; Minimum TTL 1 day )
    @             IN  NS    ns1.example.com.      ; ns1.example.com is a primary nameserver
    @             IN  NS    ns2.example.com.      ; ns2.example.com is a backup nameserver
    @             IN  MX    10 mail.example.com.  ; mail.example.com is the mailserver
    @             IN  MX    20 mail2.example.com. ; the secondary mailserver
    @             IN  A     192.0.2.1             ; IPv4 address for the bare domain
                  IN  AAAA  2001:db8:10::1        ; IPv6 address for the bare domain
    www           IN  A     192.0.2.1             ; www.domain
                  IN  AAAA  2001:db8:10::1        ; IPv6 address for www.domain - note by starting the line with a blank it becomes the continuation of the previous record and this IPv6 record applies to www
    wwwtest       IN  CNAME www                   ; wwwtest is an alias for www
    

    这利用了这样一个事实,即区域文件中不以点结尾的主机名.始终会扩展,而$ORIGIN后者又隐式设置为区域名称。并且@是 $ORIGIN 的简写。


    与其手动维护单个区域文件,不如启用一种方法以编程方式与您的名称服务器交互。

    我使用了 PowerDNS,它允许将 RDMS 作为后端,非常适合我们当时使用的 LAMP 堆栈。Amazon Route 53 等云服务也公开了 Web-API。

    但即使是古老的 Bind 也支持动态更新,这是一种通过向主服务器发送特殊形式的 DNS 消息来添加、替换或删除记录的方法。这些消息的格式和含义在RFC 2136中指定。

    通过在 zone 语句中包含一个allow-update或一个子句来启用动态更新。update-policy有关详细信息,请查看绑定管理员参考手册。

    • 4
  4. sema
    2015-02-24T11:58:00+08:002015-02-24T11:58:00+08:00

    当您说“域需要进行相同的配置”时,您的意思是它们必须保存相同的资源记录吗?在这种情况下,DNAME除了一个域之外的所有域的 RR 不是更清洁的解决方案吗?

    我无法击败@MadHatter 导入相同模板文件的技巧,同时严格保持在您的问题范围内。我只能为LDAP后端提供类似的方法(在我的例子中,与 powerDNS 一起使用):associatedDomain为相关的 SOA 和 NS 记录添加属性,如下所示:

    dn: dc=vanitydomains,ou=DNS,dc=myDIT
    objectClass: dNSDomain2
    objectClass: domainRelatedObject
    dc: vanitydomains
    associatedDomain: vanitydomain.ORG
    associatedDomain: vanitydomain.NET
    associatedDomain: vanitydomain.COM
    associatedDomain: vanitydomain.INFO
    sOARecord: NS1.example.com  sysadmin.example.com 2011100701 28800 1800 2592000 10800
    dNameRecord: example.com
    nSRecord: NS1.example.com
    nSRecord: NS2.example.com
    
    • -2

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve