这似乎是一个非常基本的问题,但是,主 DNS 服务器如何知道它的从属服务器?
我的意思是,它是否解析区域文件并确定将 NOTIFY 消息发送到哪里?
如果确实如此,那么隐藏的主设置中的 NOTIFY 机制是否被破坏了,不是吗?
答案1
对于给定区域,主服务器的 BIND 配置中有两个选项:
notify yes
- 将向该域的所有已发布的 NS 记录发送通知。
notify explicit
- 将仅向配置中列出的 IP 发送通知also-notify
。
无论哪种情况,都必须配置从站以allow-notify
接受来自主站 IP 的通知。
一旦接受了 NOTIFY,从属设备便会发送 IXFR 或 AXFR 请求后退发送给主服务器。如果主服务器是“隐藏的”(即:未作为域的 NS 记录发布),则这无关紧要。从服务器必须直接配置主服务器的 IP,因此它们应该知道将请求发送到哪里。
只要主服务器的防火墙允许从服务器发出的请求,并且主服务器配置为允许区域传输,那么从服务器就可以检索其配置。(这是您必须锁定的部分,以防止未经授权的名称服务器抓取您的区域文件)
答案2
绑定 DNS 向除其自身和 SOA 中列出的主服务器之外的所有名称服务器发送通知。
notify yes;
发送通知至所有名称服务器在 RR 中**(除其自身和 SOA 主控之外)**notify yes; also-notify { x.x.x.x; y.y.y.y; };
发送通知至xxxxx,年和所有名称服务器在 RR(除其本身和 SOA 主机外)。notify explicit; also-notify { x.x.x.x; y.y.y.y; };
发送通知至xxxxx,年
答案3
严格来说,主人并不知道自己有奴隶,更不知道他们是谁。
担任主角色的 DNS 服务器所“知道”的是,它已被配置为“主控”某个区域。
进一步的配置告诉它如何组装其他名称服务器的列表,以便在该区域发生变化时发出通知。
我认为,常用的 bind 9+ 配置是让名称服务器从主控区域中的 NS RR 列表中构建通知目标列表。管理员可以使用 also-notify 配置项添加到该列表中。管理员还可以使用“notify”配置项更改行为。
因此,您可以说主机从其配置中学习如何“了解其从属”,并且大多数时候,这意味着区域中的所有 NS 记录。