如何在 Ubuntu 12.04 上通过绑定创建伪域?

如何在 Ubuntu 12.04 上通过绑定创建伪域?

我通过 O'Reilly 的书阅读了一些有关 DNS 和 BIND 的必备知识。我的目标是拥有一个本地 DNS 服务器(即 seldon.foundation),它可以解析本地名称(即 *.foundation),但将其余内容转发给 OpenDNS 或 Google。

  • 我的区域文件:
$TTL 3h
foundation. IN SOA seldon.foundation. avery.foundation.com. (
 1        ; Serial
 3h       ; Refresh after 3 hours
 1h       ; Retry after 1 hour
 1w       ; Expire after 1 week
 1h       ; Negative caching TTL of 1 hour
)     

;
; Name servers
;
foundation.  IN NS  seldon.foundation.

;
; Addresses for the canonical names
;
localhost.foundation.      IN A     127.0.0.1
seldon.foundation.         IN A     192.168.1.151

;
; Aliases
;
dns.foundation.       IN CNAME seldon.foundation.
  • 我的named.conf.local:
zone "foundation" in {
        type master;
        file "db.foundation";
};

zone "1.168.192.in-addr.arpa" in {
        type master;
        file "db.192.168.1";
};

在我重新启动 bind 之后:sudo service bind9 restart我知道它会加载文件(并且加载时没有错误),因为我检查了系统日志。但是当我执行 a 时,dig seldon.foundation我没有得到预期的结果。

resolv.conf有两个 IP 地址,但文件中有一条注释说不要手动编辑该文件。我现在该怎么办?

答案1

回答这个问题的挑战部分在于知道要查看哪些文档。特别是,Ubuntu 12.04(我正在使用服务器发行版)的工作方式与named/bind的文档建议的方式略有不同。我花了很多时间调整不需要调整的东西。事不宜迟:

  1. 首先阅读有关 DNS 和 BIND 的资料。O'Reilley 的《DNS 和 BIND》一书的前几章非常精彩。网络上的很多示例都使用了缩写语法,在我看来,它不如较长的语法那么清晰。
  2. 编辑/etc/bind/named.conf.local如果您查看我的 pastebin 文件,您就会明白我是如何设置自己的网络的。同样,如果您不明白那里发生了什么,请阅读更多有关 DNS 和 BIND 的信息(或者在这里或在 serverfault.com 上询问一些更简单的问题,专门解决您不明白的问题)。
  3. 将您的区域文件放在 中/var/cache/bind如果您查看/etc/bind/named.conf.options,您将看到查找区域文件的目录位于/var/cache/bind。别介意这个目录 ( /etc/bind/) 中到处都是区域文件。我不明白为什么一些区域文件在这里被拾取,但任何用户定义的区域文件都必须位于/var/cache/bind。我把这个问题留给比我更有经验的巫师来解释。
  4. 将适当的DNS转发地址添加到named.conf.options这将允许您对子网无法处理的域进行合理的名称解析。您可以通过取消注释带有“转发器”的行来查看在哪里添加它(如果您使用的是 Ubuntu)。添加您要使用的 DNS 机器的 IP 地址。确保用分号分隔它们。
  5. 添加127.0.0.1到 resolv.conf。这很棘手,因为如果你打开它,/etc/resolv.conf你会看到一条提示,告诉你不要编辑此文件。你需要做的是按照这里的建议去做:Stéphane 于 12.04 介绍 DNS。编辑该文件,并通过在文件末尾/etc/resolvconf/resolv.conf.d/head输入您的本地主机,然后输入换行符。nameserver 127.0.0.1
  6. 使用 重新更新 resolv.conf resolvconf -u此命令将使用您在 中指定的新配置重置 resolv.conf resolv.conf.d/head
  7. dig seldon.foundation使用或其他适合您网络的方式重新测试。您应该在底部的服务器显示环回地址(即 127.0.0.1)。

感谢@Shane Madden 为我提供足够的线索以便继续前进。

相关内容