摘要

  • Draft 2 保留了一个狭窄而正当的结果:在反复检测和合理联系之后,从特定 AFRINIC 反向区域对象中移除失灵的名称服务器指针;只有全部服务器都失灵时,才移除该域对象。它不涉及 IP 地址分配或正向 DNS。
  • Draft 1 曾把周期检测、多次失败、并行联系、逐区处理、留痕和恢复写在可见文本里;Draft 2 自称意图、行动和结果不变,却把这些程序细节压缩成“确定失灵”“合理尝试联系”和“合理时间存档”等开放表达。
  • 2018 年和 2021 年的两套实施安排证明保障措施可以被工程化,也反过来显示 Draft 2 本身没有固定检测地点、失败次数、通知日、补救期、复核或恢复速度;后来运行的细节不能倒填进 2017 年政策。
  • AFRINIC 的正当位置是可替换、受约束的私营技术记账者与协调者。清理应绑定于具体反向区域缺陷,并以可复现证据、多联系人通知、逐区比例原则、完整历史、快速恢复和独立复核为边界,不能搭载会员纪律或其他争议。

L3 — Draft 2 留下了什么,又把什么交给了员工

从递归解析器的视角看,“失灵委派”和“没有委派”可能在最终结果上相似:都没有返回所需数据。过程却不相同。没有委派时,父区可以诚实地给出否定结果;失灵委派则把查询送向一条看起来存在、实际上走不通的路径。服务器可能无法到达,可能始终不响应,也可能在线却不对被委派区域给出权威回答。解析器因此消耗额外查询和等待时间,运维人员看到的则是一条容易误导排障方向的记录。清理这种指针有明确的技术价值,因为登记记录应当描述实际可工作的委派关系,而不是维持一个形式上存在、运行中失效的承诺。

但“失灵”不是只凭一次观测就天然成立的标签。一次超时可能来自检测端网络故障、路径抖动、防火墙策略、任播差异或短时维护;一处地点看不见,不等于所有用户都看不见;某台服务器对一种查询方式反应异常,也不必然证明它对目标区域永久失去权威性。因此,政策若允许从父区对应记录中移除 nserver 属性,真正承载后果的不是“清理失灵委派”这句目标,而是它背后的一组判断:从哪里测、测几次、跨多久、怎样区分暂时失败与持续失败、把通知发给谁、给多长时间修复、如何保存证据,以及错误移除后多久可以恢复。

2017 年 4 月 11 日提交的 Draft 1 把这组判断的大部分轮廓放在了公开可见的提案文字中。它描述周期性的自动检查,要求在标记之前出现多次失败,安排并行联系 admin-c、tech-c 和 zone-c,并允许视情况使用 org 或 mnt-by 联系信息。它还设想重复发送未获回应的通知,要求通知协议标准化且公开记录,按照具体区域移除失灵属性,保留可供成员查看的历史,并给出恢复安排。可选备注、自动删除与重新建立记录的程序都被摆在读者眼前。即便这些设计仍需评价,至少运营者可以从文本中看见一条从观测、提醒到处置、再到恢复的因果链。

Draft 1 的这种细度也暴露了真实的工程压力。2017 年 5 月 15 日的员工评估引用了对 5 月 12 日所分析 AFRINIC 反向空间的估算,称约 44% 存在失灵现象。这个数字是机构当时对所分析范围的估计,不是对所有委派永久状态的独立审计,却足以说明问题并非偶发的边角故障。员工同时要求在通知方式上保留裁量,进一步澄清适用范围,并移除明确的恢复条款。换言之,第一版已经把两种合理诉求摆到同一张桌上:运营者需要可预期的程序,员工则不愿把快速变化的实现方式全部冻结在政策正文里。

11 月 22 日发布的 AFPUB-2017-DNS-001-DRAFT-02 对此作出的选择,不是对 Draft 1 逐句修补,而是一次“完整重写”。Draft 2 称重写旨在简洁和清晰,并宣告意图、行动与结果没有改变。这个自我说明应被准确保留:现有材料不能支持作者另有隐藏目的,也不能把文字收缩说成突然创造了一种全新的清理意图。旧指针仍要被检测,相关联系人仍应得到接触,确认为失灵的条目仍要被移除,历史仍应保留。连续性确实存在。

变化发生在读者能够依靠什么来约束这条链条。Draft 2 删除了大量背景、术语、解释、影响、动机与可能实施方式,把有约束力的表达压缩到几个结果性动作:判断一项委派是否失灵;作出合理的联系尝试;移除已判定失灵的名称服务器属性;可以在对象中留下备注;若所有名称服务器记录都失灵,则移除完整的域对象;并在合理时间内让存档可用。每一个词都听起来稳妥,但“判断”“合理尝试”“合理时间”本身并没有告诉运营者具体门槛。

这里必须把对象层级说清。第一,单个 nserver 属性和完整 domain 对象不是一回事。如果一个反向区域列有多个名称服务器,其中只有一个持续失灵,比例相称的动作是从这一特定区域对象中移除那一个坏指针,而不是删掉仍然健康的服务器。只有当对象中的每个名称服务器记录都被判断为失灵,Draft 2 才指向完整域对象的移除。第二,同一名称服务器可能出现在别的区域;针对一个区域对象的判断不应自动扩散成“到处删除这台服务器”。权威性和可达性需要就具体委派关系来检测。

第三,domain 对象在这里服务于 AFRINIC 管理范围内的 .arpa 反向 DNS 委派。提案排除了传入的少数份额 RIR 记录和遗留资源。它不是对互联网正向域名体系的一般治理,也不是对注册人在其他登记处所持记录的普遍处分。第四,移除反向父区指针不等于删除其对应的 IP 地址分配。地址资源、路由可达性、正向 DNS 和反向委派是相互有关却彼此不同的层次。把它们混称为“收回资源”会夸大实际动作,也会遮蔽真正需要讨论的那一点:一个有限的数据库动作仍能产生真实的连续性成本,所以有限权力同样需要有限程序。

Draft 2 曾链接一份示例实施指南,但同时明确表示该指南不是政策的一部分,而且可能不代表员工最终采用的实施。这个 caveat 不是排版脚注,而是制度分界线。它意味着读者不能仅凭链接存在,就把示例中的任何检测频率、通知步骤或计时安排视为经政策固定的权利保障。指南可以向员工展示一种可能方案,却没有与正文同等的约束地位;员工若后来调整方案,也不能简单说违反了 Draft 2 中并未写入的数字。

这正是 D1 到 D2 的关键迁移。目标性规则继续公开存在,程序性门槛则离开政策正文,进入员工可以形成和修改的实施层。所谓“意图、行动和结果不变”并不能消除这种变化。一个制度可以维持相同终点,同时改变抵达终点前由谁握有判断空间。若原文本告诉成员会经过几次失败、联系哪些角色、怎样存档和如何恢复,而新文本只要求“合理”,那么最终删除的名义动作虽然相同,围绕误判风险、等待时间和救济路径的分配已经不同。

也不能把 11 月 22 日的发布写成已经生效运行的事实。当天发生的是 Draft 2 的公布,而不是董事会批准、政策手册纳入或生产部署。11 月 30 日,作者在 AFRINIC-27 远程介绍 D2;会议摘要记录了他们关于意图不变、WHOIS 权威问题与员工实施区分的说明,并将提案推进到 Last Call。这个会议是私营机构政策过程中的一次会议,不是立法机关开会,会议摘要记录的是机构程序与自我说明,不会因此产生公法授权。

Last Call 从 2017 年 12 月 1 日持续至 12 月 16 日,共 15 个日历日。邮件记录显示有人表达支持。12 月 28 日的列表讨论又留下了不同意见:一名参与者认为共同主席的报告没有充分写入 Last Call 反馈,也没有充分记录共识;另一名参与者为该过程辩护。封存材料只能证明这场争论确实发生,不能代替裁判来认定哪一方正确,也不能据此断言共识无效。更重要的是,不论私人过程是否按其内部规则完成,它都不把服务区域变成一个“人民”,不把参与者集合变成主权共同体。

后续时间线进一步提醒我们不要倒置事实。董事会在 2018 年 3 月 21 日通过第 201803.395 号决议批准 D2,会议记录还载有利益冲突讨论和首席执行官回避。2018 年 8 月 22 日,CPM 1.2 纳入第 10.7 节。实施材料则把起点放到 9 月 28 日,此后才出现公开的运行描述。董事会批准是私营公司的治理行为,手册纳入是机构规则整理,技术部署是员工运行行为;三者都不是 2017 年发布日已经发生的事情,也没有任何一个步骤把 AFRINIC 转变成政府或法院。

对 Draft 2 最公平的读法,是同时承认它缩短了政策、保留了狭窄结果,也承认缩短本身重新安排了可见性。它没有宣称要惩罚成员,没有触及地址资源的存在,更没有授权将其他商业或资格争议塞进反向 DNS 清理。它所留下的,是一个技术上可辩护的维护动作;它所交给员工的,是判定这一动作何时成熟的实质参数。制度分析不能把前者妖魔化,也不能因为前者合理就忽略后者。

如果把登记处理解为一名私营技术记账者,这个区别尤其清楚。账本需要反映运行现实,因此移除持续无效的条目可能是履行职责;但账本记录的是协调状态,不是创造运营者权利的源头。记账者可以校正一行失真的数据,却不能凭借校正能力获得对会员身份、商业行为或资源权利的一般处分权。Draft 2 的边界不应从“它是否善意”来推导,而应从动作与具体缺陷之间是否存在必要、可证、比例相称的联系来检验。