我有一个内部网络(在云中),IP 为 172.16.0.0/20,还有几台服务器。bind9 运行的服务器的 IP 为 172.16.25.227,而另一台服务器(运行其他不同服务)的 IP 为 172.16.30.90。如您所见,第三个八位字节不同。
我已经设置了 bind9 并配置了正向区域文件 - 正向查找工作正常。然而,当我尝试配置相应的反向区域文件时,我遇到了问题。
配置反向区域从反转您的 IP 开始 - 这意味着 172.16.0.0 变为 16.172.in-addr.arpa。然后配置包含反向区域条目的文件(反向区域文件指向的文件)。如果第三个八位字节是固定的,我只需将第四个八位字节的值放在任何给定条目的每一行的开头。但是,由于情况并非如此,我不知道如何处理这个问题。我尝试了 25.227 和 227.25,但都没有用。当我停止工作并决定在一天后再试一次时,我注意到 bind9 不再启动 - 它无法启动。当我检查日志时,我发现阻止它启动的问题:
/etc/bind/named.conf.local:15:区域‘31.172.in-addr.arpa’:已经存在先前的定义:/etc/bind/zones.rfc1918:18
据我所知,此文件包含私有 IP 地址范围的条目,其目的是确保 DNS 服务器不会将针对这些区域之一的查询发送到互联网(无论如何它们都会被忽略)。但是,我现在想知道是否真的可以拥有一个子网掩码为 20 的 172.16.0.0 网络。我注意到 thezones.rfc1918 文件只指向 db.empty - 所以我考虑过将该特定条目的指针从 db.empty 更改为指向 db.172(我为反向查找创建的文件),但想问一下这是否 a.) 可行和 b.) 是好的做法。
答案1
子网掩码为 /20 意味着您提到的两个 IP 地址位于 172.16.16.0/20 子网中,而不是 172.16.0.0/20 子网中。
您不应该/etc/bind/zones.rfc1918
在文件中首先包含它/etc/bind/named.conf.local
,而应该在您自己的反向区域声明之后包含它。
回答您的实际问题:我想可能可以/etc/bind/zones.rfc1918
直接编辑,但不,这不是一个好的做法。