摘要
- DHCPv4 的 LoST 选项代码是 137,DHCPv6 的代码是 51;二者都编码一个而且只有一个 FQDN,不是 IP 地址、URI 或服务器优先级列表。
- 域名随后要进入 U-NAPTR 与 DNS,再经过地址选择、传输连接、服务身份核验和 LoST 协议交换。前一步成功不会自动替后一步作证。
- 最危险的不是某一层失败,而是把“选项解析成功”保存成“LoST 已发现”,从而永久丢失谁给了这个名字、系统又验证了什么。
一个过早变绿的仪表盘
下面是一段构造出来的审计时间线,并非真实事故。08:14:00,终端接入网络并请求配置。08:14:01,DHCPACK 携带代码 137 的选项,原始字节可正常解码为 lost.access.example,最后恰好有一个 DNS 根标签。08:14:02,监控把“LoST 发现”标成绿色。
此时没有任何 U-NAPTR 查询结果,没有 DNS 地址,没有验证状态,没有建立连接的对端,没有 TLS 服务身份结果,也没有 LoST XML、映射版本、联系 URI、呼叫尝试或接听记录。解析器完成的是语法工作,仪表盘却替它宣布了权威、可达与业务结果。
RFC 5223 的边界清楚得多。若接入网络自己部署 LoST,或知道由第三方运行的 LoST 服务,它可以把一个域名交给终端。终端再把这个域名交给 LoST 的 DNS 发现过程。RFC 没有让 DHCP 直接返回最终映射,也没有让接入网络凭一个选项代表下游所有系统。
发现是动词链,而不是一个状态:收到、解码、解析、选择、连接、核验、查询、映射。省掉任何一个动词,都会把尚未发生的事实写进已经完成的记录。
标准只给一个名字
IPv4 使用 OPTION_V4_LOST,代码 137;IPv6 使用 OPTION_V6_LOST,代码 51。域名按 DNS 标签格式编码,每个选项必须包含一个完整域名,并以唯一根标签结束。客户端可通过相应的参数请求列表或选项请求机制索取它。
这个“一个”很重要。字段不是服务器清单,不含排序或故障转移规则。它不是最终 IP,不是 LoST URI,也没有替应用规定跨网络移动后的缓存寿命。图注里出现的“List”不能推翻正文明确的单一域名要求。
审计系统至少要保存选项代码、长度、原始字节、解码后的 FQDN、语法检查结果与 DHCP 事务上下文。只存字符串,就看不出错误编码是否被宽松接受;只存 present=true,就无法发现值变化;把后续 DNS 得到的 IP 回填到 DHCP 事件,则会制造一条不存在的来源链。
IANA 代码点也不比这更宽。它协调实现对字段的共同理解,却不担保每个携带该字段的报文都来自合法配置者。共同语法不是共同授权。
“网络提供”必须能回答是哪张网
RFC 2131 规定 DHCPv4 的发现、选择、确认与租约,RFC 8415 给出当前 DHCPv6 基础。这些协议可以证明某次配置交换中,客户端从哪条 DHCP 路径接收了什么。
DHCP 服务器标识属于这次配置交换。它不会自动变成 LoST 服务的运营者身份,更不会证明对端对所有地点拥有映射权威。RFC 3046 的中继代理信息可以帮助定位接入路径,但路径元数据不是服务证书。
移动设备尤其容易暴露错误。终端可能从企业 Wi-Fi 切到移动网络,也可能在休眠后继续使用旧应用状态。一个域名在原接入环境中合理,不代表它在新环境中仍合适。系统必须把 FQDN 与接口、管理域、事务标识、服务器、中继、接收时间和租约状态绑定,并记录何种事件触发重取或失效。
若实现只保留最后一个域名,“网络提供”最终会失去时间和主体。它变成一句无法审计的被动语态。
RFC 明说攻击者可以替换指针
RFC 5223 的安全章节指出,攻击者若能修改 DHCP 响应或插入自己的响应,就可能把客户端引向受其控制的伪造 LoST 服务器,或者给出无效地址。RFC 5069 从应急呼叫标记与映射的角度讨论了这类风险。
RFC 3118 定义 DHCP 报文认证和重放相关保护。它证明“报文来源、完整性与新鲜性”是独立控制面,却不证明现实中的每个网络都部署了这些机制。审计应写“本次是否核验、结果是什么”,不能把可用标准写成已执行事实。
即便 DHCP 响应通过认证,其内容仍可能配置错误或过期。接入运营者有权为本地终端提供配置,不等于它对每个应急服务辖区都有最终决定权。认证能约束说话者,不能把说出的每个值变成永恒真相。
Heng Lu 的运行代码原则要求把权威放回实际决策点:客户端能证明自己消费了哪份配置、进行了哪些校验、暴露了什么状态。它不能替 DNS 解析器、TLS 对端、LoST 权威或接警机构作证。
域名后面还有 DNS 与身份
RFC 5223 把 FQDN 交给 RFC 5222 周边定义的 U-NAPTR/DNS 发现链。系统仍需找到匹配的服务记录、选择目标与传输、解析地址、建立连接,并确认服务身份。
一个格式正确的域名可能没有合适记录;DNS 可以超时;地址可以不可达;对端身份可以与预期不符。RFC 8446 保护 TLS 通道,RFC 9525 处理服务身份。若上游选择已被带偏,成功加密只会安全地连接到错误对象。
因此 DNS 证据不应只写“成功”。它需要保留查询、返回记录、TTL、验证状态(如适用)、候选地址、实际选择与时间。连接证据要保留端点与身份判断。这样,当 DHCP 选项保持绿色而连接失败时,问题才不会被错误归入“LoST 服务不可用”。
RFC 8917 为 LoST 验证服务定义单独的 S-NAPTR 应用服务标签。这说明发现层可以区分角色;标签表明客户端要找哪类功能,却不保证对端把功能执行正确。
找到服务也还没有拿到映射
DNS 与 TLS 都通过之后,客户端才有条件发出 LoST 请求。响应仍可能是错误、警告、重定向或带有独立来源、时效与边界条件的映射。
已经发布的 RFC 5222 文章拥有后半段论题:映射返回 URI,不等于呼叫已建立或有人接听。本篇不重复它。本篇只指出更早的一层:DHCP 给出的 FQDN 也不能预先证明未来映射正确。
RFC 6739 保护 LoST 服务器之间的映射同步与来源。后端签名并不能反向认证终端收到的 DHCP,也不能证明终端看到的 DNS 或连接的对端。两条证据链只有在保留标识与时间后才能真正相接。
RFC 6881 把发现放回应急通信的完整实践。定位、接入配置、发现、映射、信令和服务响应互相依赖,但每个环节都只能为自己观察到的事实负责。
应保存的最小证据链
顺序记录:接入接口与网络;DHCP 事务、服务器和中继;报文保护结果;原始选项与 FQDN;租约和失效决定;U-NAPTR 选择;DNS 结果与 TTL;TLS 服务身份;LoST 请求响应;映射适用性;会话建立;接听与服务结果。
管理层不需要把十二项全部放在首页,却必须确保底层记录没有被一个布尔值覆盖。简洁展示不应以不可恢复的证据损失为代价。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
