我正在使用 socks 代理连接到使用另一个应用程序的服务器。代理在 Solaris 10 上运行。托管代理的服务器配置为使用我们自己的内部 DNS 服务器 (bind) 来解析内部主机名。
有时,我们需要更改内部服务器的 IP 地址,出于某种原因,socks 代理可能需要 1 个多小时才能看到新的 IP 地址。产品供应商告诉我们,它使用的是操作系统的 DNS 解析器,没有自己的 DNS 缓存。
我们的内部 DNS 有一个 DNS 区域,其中包含多个子区域。我注意到它在开始时设置了 1 小时的默认 $TTL,但对于其中一个子区域,它再次设置为 1 天。请参阅下面的示例:
$ORIGIN .
$TTL 3600 ; 1 hour
mydomain IN SOA dns1.sub1.mydomain. dnsadmin.mydomain.com. (
2009077402 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS dns1.sub1.mydomain.
NS dns2.sub1.mydomain.
$ORIGIN sub1.mydomain.
dns1 A 10.0.0.1
dns2 A 10.0.0.2
server3 A 10.0.0.3
server4 A 10.0.0.4
server5 A 10.0.0.5
server6 A 10.0.0.6
server7 A 10.0.0.7
server8 A 10.0.0.8
$ORIGIN sub2.mydomain.
$TTL 86400 ; 1 day
server1 A 10.0.1.1
server2 A 10.0.1.2
server3 A 10.0.1.3
server4 A 10.0.1.4
server5 A 10.0.1.5
server6 A 10.0.1.6
server7 A 10.0.1.7
server8 A 10.0.1.8
$ORIGIN sub3.mydomain.
server1 A 10.0.2.1
server2 A 10.0.2.2
server3 A 10.0.2.3
server4 A 10.0.2.4
server5 A 10.0.2.5
server6 A 10.0.2.6
server7 A 10.0.2.7
server8 A 10.0.2.8
在这个例子中,$TTL 值是否只针对 sub2 子域更改为 1 天,还是也会针对其下方的所有内容进行更改?
这是一台生产服务器,所以你会明白,我想在更改它(删除第二个 $TTL)之前确保其行为,而不能真的只是“尝试一下”。我也没有开发 DNS 服务器可以尝试。
我已经检查了区域文件的文档,它没有提到当在同一个区域文件中遇到多个 $TTL 语句时会发生什么,或者至少如果遇到这种情况我找不到它。
任何帮助,将不胜感激。
答案1
上述网站上的措辞似乎暗示 TTL 将应用于遵循 $TTL 指令的任何记录(记录中没有明确的 TTL)。