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
    • 最新
    • 标签
主页 / unix / 问题 / 489817
Accepted
Mario Nette
Mario Nette
Asked: 2018-12-19 19:31:28 +0800 CST2018-12-19 19:31:28 +0800 CST 2018-12-19 19:31:28 +0800 CST

这个区域语法有什么区别吗?

  • 772

我想通过 Ansible 构建绑定区域文件。要决定如何构建 jinja2 模板,我需要知道这些区域配置中是否有任何差异:

1.)好的老式方式:

$ORIGIN foo.bar.
@       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

        86400   IN      NS      ns01.foo.bar.
        86400   IN      NS      ns02.foo.bar.

www             IN      A       10.0.0.1

-

2.) 如果区域名称已经是 foo.bar,我是否必须指定 $ORIGIN?

来自named.conf:

zone "foo.bar" in{
    type master;
    file "zones/foo.bar";
};

来自区域/foo.bar:

@       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

        86400   IN      NS      ns01.foo.bar.
        86400   IN      NS      ns02.foo.bar.

www             IN      A       10.0.0.1

-

3.) 拆分顶点并多次使用'@'

$ORIGIN foo.bar.
@       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

www             IN      A       10.0.0.1

@       86400   IN      NS      ns01.foo.bar.
@       86400   IN      NS      ns02.foo.bar.

-

4.) 不使用“@”占位符

foo.bar.       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

foo.bar.       86400   IN      NS      ns01.foo.bar.
foo.bar.       86400   IN      NS      ns02.foo.bar.

$ORIGIN foo.bar.
www             IN      A       10.0.0.1

-

我一直想要这个作为答案:

$ dig foo.bar ANY +noall +answer
foo.bar.    1784    IN  SOA dns.foo.bar. hostmaster.foo.bar. 2018121401 10800 3600 604800 86400
foo.bar.    86384   IN  NS  ns01.foo.bar.
foo.bar.    86384   IN  NS  ns02.foo.bar.

$ dig www.foo.bar +short
10.0.0.1

问题:

  • 所有变体都会产生相同的 dns 答案吗?
dns bind
  • 1 1 个回答
  • 33 Views

1 个回答

  • Voted
  1. Best Answer
    derobert
    2018-12-19T20:46:36+08:002018-12-19T20:46:36+08:00

    答:是的,它们都是一样的。虽然请注意,我实际上并没有将这些区域加载到 DNS 服务器中进行确认;例如,我在阅读问题时可能错过了一个错字。将它们加载到 DNS 服务器,允许区域传输,然后传输它们——您应该得到完全相同的结果。

    细节:

    • 如果您 在 BIND9 手册中选中“Other Zone File Directives”$ORIGIN ,则默认为您在named.conf. 主要是您$ORIGIN在手动编写的文件中使用,例如,为了更容易处理子域($ORIGIN subdmain.domain.com.然后定义子域的所有记录)。

    • 同一部分告诉您这@是当前原点的快捷方式。所以把它拼出来是完全一样的。

    • 当您连续为同名指定两条记录而不重复名称时,第二条记录只是隐式使用最后一条的名称。引用RFC 1035(称记录所有者的名称):

    最后两种形式代表 RR。如果 RR 的条目以空白开头,则假定 RR 归最后声明的所有者所有。如果 RR 条目以 <domain-name> 开头,则所有者名称将被重置。

    (顺便说一句:$ORIGIN并且@也在 RFC 中,因此它们应该适用于使用相同区域文件格式的 BIND 以外的服务器。我只是使用 BIND 手册来获取比 1987 年更新的术语。)

    这些都是“主文件”格式的便利特性——它们与 DNS 有线协议无关。他们甚至无法将文件加载到 BIND 中(如果您已绑定重写区域文件,例如,由于允许 DNS 更新,那么您会发现它将重写文件更接近您的#4)。

    • 1

相关问题

  • Nginx - 创建链接到另一个(本地)网站的子域

  • 什么是根域?[关闭]

  • 如何使用不同的 DNS 服务器将主机名解析为 ip?

  • bind9反向解决问题

  • 如何验证我使用 9.9.9.9 作为 DNS?

Sidebar

Stats

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

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve