4. Requestor Behavior (请求者行为)
4. 请求者行为 (Requestor Behavior)
本节描述请求者 (即发出 UPDATE 请求的代理) 的行为。
4.1. 请求者向正在更新的区域的已知权威名称服务器发送 UPDATE 请求。此服务器可以是区域的主服务器或从服务器。如果服务器是从服务器, 请求将被转发到主服务器。请求者可以在找到有权威性且可以执行更新的服务器之前尝试多个服务器。
4.2. 如果服务器以 NOTAUTH 或 NOTIMP 响应代码响应, 请求者应尝试不同的服务器。
4.3. 如果响应代码为 SERVFAIL, 请求者应重试更新, 可能在一段延迟后。但是, 在没有 DNS 服务发现协议指定的更具体重试算法的情况下, 请求者不应无限期重试。
4.4. 如果响应代码为 YXRRSET 或 NXRRSET, 这意味着先决条件未满足。请求者可以使用修改后的先决条件重试, 或者可以中止更新。
4.5. 如果响应代码为 NOERROR, 更新已被主主服务器接受。但是, 这不保证所有从服务器都已收到更新。
4.6. 请求者可以在更新中包含 SOA RR 以设置或更改 SOA 参数。如果要按顺序发送同一区域的多条 UPDATE 消息, 并且 SOA SERIAL 由请求者管理, 则请求者应在发送后续更新之前检查区域的当前 SOA SERIAL (可能通过检查对先前 UPDATE 的响应)。
4.7. 对于适合单个数据报的 UPDATE 请求, 首选 UDP, 因为这对服务器的负载较小, 对请求者的延迟也较小。但是, 请求者应准备好在 UDP 请求超时时使用 TCP 重试请求。需要准确响应代码的请求者必须使用 TCP。
4.8. 虽然可以在单个 UPDATE 消息中包含多个更新, 但除非更新密切相关, 否则不建议这样做。原因是如果消息中的任何更新未能满足其先决条件或在处理过程中遇到错误, 整个 UPDATE 消息将被拒绝。